AngelScript: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
stile e grammatica
 
(16 versioni intermedie di 14 utenti non mostrate)
Riga 1:
{{O|informatica|gennaio 2024}}{{Correggere|informatica|gennaio 2024}}{{W|informatica|gennaio 2024}}{{Linguaggio di programmazione
|nome = AngelScript
|immagine =
|autore = Andreas Jönsson
|data = 2003
|versione = 2.36.01
|utilizzo = Sviluppo videogiochi, grafica 3D
|paradigmi = Script, [[programmazione imperativa]], [[programmazione ad oggetti]]
Riga 15:
}}
 
'''AngelScript''' è un [[linguaggio di scripting]] [[Compilatore|compilato]] a [[open source|sorgente aperta]], pensato per lo sviluppo di videogiochi. eÈ stato sviluppato da [[Andreas Jönsson]] per l'azienda [[AngelCode]]<ref>{{Cita web|url=https://www.solvusoft.com/it/file-extensions/software/andreas-j-nsson/angelscript/|titolo=Cos'è AngelScript? (di Andreas Jönsson)|sito=www.solvusoft.com|accesso=2024-04-08}}</ref>.
 
== Descrizione ==
AngelScript è caratterizzato da una [[Sistematipizzazione deistatica tipi|tipizzazione]]delle staticasue variabili, un [[Programmazione orientata agli oggetti|orientamento agli oggetti]] (simili ai puntatori [[C++]], ma con unla differenza che la [[garbage collection|pulizia della memoria]] chedi Angelscript usaadopera la tecnica del [[Reference counting|conteggio dei riferimenti]]), [[Ereditarietà (informatica)|ereditarietà]] singola ed [[ereditarietàe multipla]] con l'ausilio di interfacce, nonché la possibilità di gestire un overload[[Overloading|sovraccarico]] degli operatori. AngelScript può essere utilizzato con qualsiasi [[Ambiente di sviluppo integrato|IDE]] pensatoche persupporti [[C++,]] come: [[NetBeans]], [[Geany]] ed [[Eclipse IDE|Eclipse]].
 
allAll'interno di un ambiente AngelScript si possono utilizzare nativamente le funzioni appartenenti ai linguaggi di programmazione [[C (linguaggio di programmazione)|C]] e [[C++]].<ref>{{Cita web|url=http://www.iue.tuwien.ac.at/pdf/ib_2010/CP2010_Weinbub_1.pdf|titolo="ViennaIPD - An Input Control Language for Scientific Computing"|autore=Josef Weinbub|autore2=Karl Rupp|autore3=Selberherr|autore4=Siegfried|data=2010|lingua=en|formato=PDF|accesso=27 aprile 2019}}</ref><ref>{{Cita web|url=http://accu.org/index.php/journals/1608|titolo="Simplifying the C++/Angelscript Binding Process"|autore=Stuart Golodetz|sito=ACCU|data=febbraio 2010|lingua=en|accesso=27 aprile 2019}}</ref> La sintassi della [[Classe (informatica)|classe]] di AngelScript è identica a quelle delle [[C++#Definizione di Classe|classi di C++]] in base alla progettazione. Non sonoessendo necessarie funzioni proxy per incorporare AngelScript nelle applicazioni [[C++]], viene facilitandofacilitata l'integrazione dei due linguaggi.<ref>{{Cita libro|nome=Michael|cognome=Dickheiser|titolo=Game Programming Gems 6|url=https://archive.org/details/gameprogrammingg0000unse_e9q4|anno=2006|editore=[[Don Schechter#Charles River Media Group|Charles River Media]]|ISBN=1584504501}}</ref>
 
Esistono diverse differenze tra AngelScript e [[C++]]:
 
* AngelScript non supportatollera [[Ereditarietà multipla|l'ereditarietà multipla]]; tuttavia, un simile risultato può essere ottenuto utilizzando le interfacce.
* Non è ammessa la dichiarazione dei [[Metodo (programmazione)|metodi]] o proprietà al di fuori del corpo della classe.
* Tutti i metodi (inclusi [[Costruttore (informatica)|costruttori]] e [[Distruttore (informatica)|distruttori]]) sono [[Funzione virtuale|virtuali]].
 
== Utilizzo ==
AngelScript è utilizzatostato più volte adoperato nello sviluppo di videogiochi,<ref>{{Cita pubblicazione|autore=Taketoshi Nishimori|autore2=Yasushi Kuno|anno=2012|mese=Maggio|titolo=Join token: A language mechanism for programming interactive games|rivista=Entertainment Computing|volume=3|pp=19-25|doi=10.1016/j.entcom.2011.09.001|url=https://tsukuba.repo.nii.ac.jp/?action=repository_action_common_download&item_id=33964&item_no=1&attribute_id=17&file_no=1}}</ref> inclusialcuni esempi sono: ''[[amnesia: The Dark Descent|Amnesia: The Dark Descent]]'',<ref name="official-list">{{Cita web|url=http://angelcode.com/angelscript/users.html|titolo=Applications using AngelScript|sito=AngelCode|dataaccesso=April 27, 2019}}</ref> ''[[Amy (videogioco)|Amy]]'',<ref name="official-list" /> ''[[Dustforce]]'',<ref name="official-list" /> ''[[penumbra: Overture|Penumbra: Ouverture]]'',<ref name="official-list" /> ''[[penumbra: Requiem|Penumbra: Requiem]]'',<ref name="official-list" /> ''[[Puddle]]'',<ref name="official-list" /> ''[[Sine Mora]]'',<ref name="official-list" /> ''[[SuperTuxKart]]'',<ref name="official-list" /> ''[[warhammer: Mark of Chaos|Warhammer: Mark of Chaos]]'',<ref name="official-list" /> ''[[Warsow (videogioco)|Warsow]]''<ref name="official-list" /> e ''[[Jazz Jackrabbit 2|Jazz Jackrabbit 2 Plus]]'',<ref name="official-list" /> oltre ad essere supportatotollerato come linguaggio di scripting in ''Urho3D''.
 
[[Hazelight Studios]] ha sviluppato un plugin che integra AngelScript nell'[[Unreal Engine]]; l'hanno utilizzato nel 2022 per scrivere ''[[It Takes Two (videogioco)|It Takes Two]]'', il loro videogioco, in AngelScript.
[[Hazelight Studios]] ha sviluppato un plugin che integra AngelScript nell'Unreal [[Unreal Engine|Engine]]; questo è stato utilizzato nel [[2022]] per scrivere il loro gioco, ''[[It Takes Two (videogioco)|It Takes Two]]'', in AngelScript.<ref>{{Cita web|url=https://github.com/Hazelight/UnrealEngine-Angelscript|titolo=Hazelight/UnrealEngine-Angelscript on GitHub|sito=[[GitHub]]|accesso=15 settembre 2021|dataaccesso=}}</ref> il plugin verrà utilizzato anche da Embark Studios nei loro prossimi giochi ''The Finals'' e ''ARC Raiders''.<ref>{{Cita web|url=https://careers.embark-studios.com/en-GB/jobs/1161763-senior-gameplay-programmer-games/ed57c5e4-f694-4bb6-9683-534edf92e029?utm_campaign=page_1916407_cta_17398026&utm_content=https://careers.embark-studios.com/pages/gameplay-at-embark&utm_medium=cta-block&utm_source=teamtailor-page|titolo=Senior Gameplay Programmer - Games|sito=Embark Studios|lingua=en|dataaccesso=2023-11-23}}</ref>
 
Un altro possibile esempio did'uso utilizzodel linguaggio è il programma interattivo di d'animazione 3D dell'[[Università di Ulma|Università di Ulm]].<ref>{{Cita web|url=http://graphics.uni-ulm.de/lehre/showcases/animation/0405/index.php|titolo=Animal Race|sito=[[University of Ulm]]|lingua=de|dataaccesso=2013-05-31|dataarchivio=25 maggio 2014|urlarchivio=https://web.archive.org/web/20140525232744/http://graphics.uni-ulm.de/lehre/showcases/animation/0405/index.php|urlmorto=sì}}</ref> 

Nell'ambito della [[robotica]], invece, sipuò usaessere adoperato per programmare le regole comportamentali di agenti robotici.<ref name="BrandoffSayama2009">{{Cita conferenza|titolo=Cultural transmission in robotic swarms through RFID cards|conferenza=IEEE Symposium on Artificial Life|DOI=10.1109/ALIFE.2009.4937709|anno=2009|isbn=978-1-4244-2763-5}}</ref>
 
== Note ==
<references/>
{{References}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
 
{{Portale|informatica}}
 
[[Categoria:Linguaggi di scripting]]