The Quixotic Game Engine was created with 2 things in mind, spimplicty, and performance. The engine will take care of all the rendering and updating, you are ensured to have the best perofrmance possible so that you can stick to creating and deploying your game!
##Examples
-
Non-tiled-based collision detection, meaning you can detect collision with any game entity.
-
Solid performance, fastest peroframnce possible with 3 make up frames.
-
Easly make hundreds of entities.
-
Uses webgl, allowing for faster rendering.
-
Easily create tile maps, with power to edit each tile individually. (tile map builder coming soon!)
-
Easy managable speed, meanning you can slow things down or speed it up as you wish. There's also an event listener for when the speed changes.
The core of the engine is a display class, this takes care of all the webgl stuff. Then the engine class which takes care of calling update and render functions. A controller class for handling client events. And a game class which glues everything together.
The display class allows you to create rectangles, cameras, and polygons. All of which are extended from the WebglEntity class, which allows you to move, rotate, scale and translate object (Read docs for more methods).
With rectangles, you can fill, stroke or attach images onto them, there's also a provided spritesheet class. Read docs for more info on using them.
The engine class takes care of calling update
and render
functions, the update functions will gets called as fast as possible, it also allows up to 3 make up frames. The engine class takes in a framerate arguement, if the framerate provided was 1000/15, (15 frames per second), it will only call the render function 15 times a second, but update it as fast as possible.
The controller class takes care of all the events, such as key down, key up, mouse down, mouse up and mouse move. Read docs for more info
The collision handler takes care of collison detection, this is done by looping every other object and skipping the ones that have already looped over it in the current frame, meaning if you're checking for collision betweeen object1 and object2, as well as object2 and object1, it will only check collision once and handle expected behavior. Read docs for more info.
Ontop of all these classes comes the game class. This is where everything comes in together. When created, it creates a display instance, a display instance and sets it up, and a controller instance and sets it up. Read docs for more info.
Here you also create game entities, the game entities are extended from the display rect class, this allows you to move them and such. It also got more methods such as accelerate
, which allows you to add onto the entity velocity.