Engine development with canvas
I'm working on a 2D HTML5 game engine, which I will release though I think I'll be the only user, but anyway, it's for fun! I have lots of ideas for things I want to add, and things I think need added, but I'd like some advice on things that should be added.
Currently, I have the following implemented:
- Base class ( provides classical inheritance which other classes extend )
- System class ( maintains system clock and 'threads' )
- Game class ( update & render loop )
- Image class ( caching and simple rendering )
- Entity class ( self contained object with update & render methods )
- Input Manager ( simple isdown for mouse & key )
I admit, it's not a lot, but I have a lot more working in rough builds that I need to add to the engine, these include:
- Tile based and entity collisions ( using AABB )
- Multi-channel audio ( with caching - not working 100% )
- Animations ( split images up into frames )
- Timers ( frame based and 'precise' )
- Tilesets and Tile maps ( pre-rendering on the maps for speed! )
- Websockets ( send, receive -> [..,..,..] - very simple )
- Vertex based shape rendering ( uses render types akin to that of Game Makers' primitives )
- Smart redrawing ( using 'dirty' rectangles, not optimized )
- ...
There's a lot more not done that done, but this is a hobby project, so I have no issues! Now, the question remains, what am I missing? The engine will be geared towards 2D games, but that doesn't mean I have to limit myself to retro capabilities. Why not particles? :)
TL;DR: What features should a 2D engine have?
Posted Jul 10, 2012, 4:34 AM UTC · edited