A descriptive language for making video games
Tom Tsagk fe8fbd20d0 start implementation of characteristics, currently supports only transform | 6 years ago | |
---|---|---|
documentation | 6 years ago | |
examples | 6 years ago | |
src | 6 years ago | |
target | 6 years ago | |
README.md | 6 years ago | |
UNLICENSE | 6 years ago | |
game_structure | 6 years ago |
a language to describe video games in an abstract way, in order to allow compilation to different languages and platforms. this language is not meant to be user friendly. its purpose is for other languages to compile to this one which in turn can compile to any given platform.
currently this project supports very few features inside a game, and can compile to a python game
the concept is that, a user-friendly language can be created, which describes a video game. that language can then compile to this language, which in turn is responsible to support as many platforms as possible. so once this language supports a new platform, all the existing languages can automatically compile directly to that platform without spending extra time
supported compilation targets:
documentation/
: folder containing everything you need to understand this project bettertarget/
: contains all the supported target languagesexamples/
: contains example game data that are ready to be compiledsrc/
: contains all source codegame_structure
: a file describing the abstract data structure of a video game.
for more information on its syntax and what its for, see documentation/game_structure
in its current state, a game can have only one object with 3 vertices, 1 color and 1 matrix.
the plan is to support an infinite number of worlds, each one having infinite number of objects with custom data
to compile the hello triangle file from the examples, move to the projects directory from the terminal and run
perl -Isrc src/main.pl -t python examples/hello_triangle
this will create a folder in the current directory called "python_engine", which has everything inside to run a game (standalone). to run the game type:
python python_engine/engine.py
in my case I used python2
since I have pygame libraries for python2 only, adjust to your own system