ENIGMA\it - hpgDesigns/hpgdesigns-dev.io GitHub Wiki

ENIGMA, the Extensible Non-Interpreted Game Maker Augmentation, e un ambiente di sviluppo open source multi-piattaforma derivato da un famoso software Game Maker. L'intenzione è di fornirti un sistema di creazione di giochi che ha capacita di interfacciare un linguaggio ad alto e basso livello in coesistenza. A tale scopo abbiamo integrato una IDE, nominata, suo progetto sorella, LateralGM, o abbiamo una interfaccia da riga di comando.

Come Game Maker , ENIGMA comprende una scelta tra l'uso di un sistema Drag & Drop e un sistema basato sul linguaggio di programmazione. Questo linguaggio chiamato EDL, e un mix tra C++ e il linguaggio appartenente a Game Maker GML. Una parte degli obbiettivi di ENIGMA è avere una buona compatibilità con Game Maker, ciò puo' essere utile per compilare progetti in Game Maker, ad ogni modo, EDL offre molto potenti caratteristiche non presenti nell'alternativa. Alcune features includono l'abilità di compilare DLL e altri script in C/C++ e accedere alle funzioni , tipi e modelli in C++.

EDL adotta il GML tradotto poi correttamente in C++ per la compilazione.La quale e' in grado di ottimizare grandezza e performance del linguaggio incredibilmente, mantenendo una semplicità d'uso impressionante.

Perchè usare Enigma al posto di Game Maker

ENIGMA è elaborato per essere il più compatibile possibile con Game Maker. Dunque puoi caricare e salvare file come GM con LateralGM per poi compilarli con ENIGMA. Quando ENIGMA avrà un set di funzioni completo si potrà raggiungere piena compatibilità con Game Maker, beneficiando anche dei vantaggi di ENIGMA:

  • Maggiore velocità proveniente dal linguaggio interpretato a quello compilato. (Per un conteggio basico di cicli si può notare una velocità intorno alle 150volte in più)
  • Portabilità abbiamo disponibili molte piattaforme e opzioni di sistema.
  • Sicurezza accresciuta nel processo di compilazione. E' molto difficile decompilare allo stato di C++ del codice sorgente, i commenti della sorgente vengono oscurati come anche le variabili modificate, quindi è difficile avere un codice integro se decompilato.
  • Una riduzione del tempo di inizio (tra 40 e 93 per cento, dipende dalla piattaforma)
  • L'abilità a creare e accedere alle funzioni , tipi e modelli in C++.
  • L'abilità di compilare DLL e altri script C/C++ giusto nel programma.
  • Aumentate potenzialità di debugging
    • Access to a number of C/C++ classic debugging techniques (print to console)
    • Ability to use debuggers (gdb)
    • Access to the resulting C++ code
    • ENIGMA's built-in Design Mode
  • No YoYo Games. Which means it's:
    • Completely FREE
    • Open source
    • Has regular bug fixes
    • And developers actually listen to you
  • Many other improvements, additions, increased flexibility

Why Use Enigma Instead Of C++

ENIGMA offers some major benefits from just using C:

  • A prebuilt engine to base your creations off of, and a simple interface which accepts C/C++ code.
  • High level functions, and variables with variant datatypes. Arrays with no risks of overflow.
  • Resources are included for you in the engine, no additional work is required to load them.
  • Lax syntax and a friendlier typing system. Semicolons aren't required, templates don't require parameters, and var can represent strings or numbers.
  • Much greater ease of use, especially for those with little programming knowledge, allowing you to learn the logics of programming under a practical game development environment.

Understand, of course, that the processes ENIGMA takes to handle instances and resources may be slower than a custom engine in pure C++. Much care has been put into each system, however, and in the end, the differences will most likely prove insignificant. In any case, our goal is to have the simplicity the system offers justify any speed reduction. Options will exist for further optimization, such as variables that some may find a waste of space being removable.

Data types are dynamic if undeclared, but unlike in Game Maker, you will be able to declare something you do not plan to change as one byte. Or a short, double, string; whatever you like for optimal performance. This way, it will use less memory if you declare it yourself, but you will be able to switch between data types if you do not specifically declare it.

Proof

Want some proof of ENIGMA's prowess? Try some of our games: http://enigma-dev.org/edc/games.php?action=list

Note that most of these game were made in Game Maker, but ENIGMA can directly compile Game Maker games so they run a lot faster! Most of these games could also be made even faster by taking advantage of ENIGMA's extra features such a type casting and control over the internal mechanisms.

The ENIGMA Team

ENIGMA is developed and maintained by a growing number of individuals.

NOTOC