Blog > Duedo - my first 2D game engine
Duedo - my first 2D game engine
Information technologyI can't consider myself a strong gamer, but the desire to know how a video game works has always attracted me.
For this reason 5 years ago I started developing a framework, using many existing guides and engines, trying to understand how they work.
Following my first game, I started to take it seriously and I decided to develop my own 2D framework, this would have given me the opportunity to keep updating myself to extend its potential. In other words, I would have been forced to study.
Hence the idea of Duedo, a small framework based on HTML5 canvas that I have not yet documented, but which is giving me great satisfaction.
Why do I decide to speak only now? Some time ago I was asked by a client to develop a small 2D application, the complexity of which required something more than usual HTML and CSS. I immediately took the opportunity to put a suspended project back on its feet, completing it with a physics engine (Box2D) and writing the code for the missing parts. Today Duedo is an almost complete project that I am improving over time.
Among its features:
- Sound manager
- Can preload and play: mp3, wav, ogg, mp4
- Dynamic sounds: you can give a world location to the sound: smanager.Play("soundname").SetLocation(x, y);
- Callbacks for every sound playing
- Google speech recognition to trigger vocal commands inside your game
- Events
- Set customized events based on time (like a spaceship that appear every 10 seconds or by a random value)
- Give to each element a customizable lifetime
- Handle objects temporary modifications
- StateManager
- Create your own game states (menu, menu2, gameplay, menu3)
- Animations
- Animate the properties of a graphic object (mysprite.Animate( { prop:val }, time, "Linear"))
- Bind customized callbacks to the animations
- Input and interactions manager
- Keyboard
- Mouse
- Customizable input properties
- Handle pointer events: like dragging or click or pointerover, pointerup ...
- Particle System
- Spritesheets and image rendering
- Geometry and math support
- Parallax
- Box2D Physics engine
- Tilemap: to develop