
proto-engine
This version is no longer maintained. You can find the up to date version on GitHub.
ProtoEngine is a general-purpose, fast 2D game engine, using JavaScript powered by Google's V8 JavaScript engine.
You can get acquainted with the engine on the Getting Started page.
And, of course, here is the obligatory Hello, World (for v0.3 Alpha): ``` var console = require('console');
addListener('loaded', function () { console.log('Hello, World!'); }); ```
Or, if you prefer actual graphics: ``` var video = require('video');
var font;
addListener('loaded', function () { font = new video.Font('AndaleMono.ttf'); });
addListener('draw', function (renderer) { renderer.draw(0, 0, font, 24, 'Hello, World!'); }); ```
Stable Features (v0.2)
- Modular JavaScript Development
- Event-based API
- High-level Sprite rendering API
- Simple Audio playback interface
- True-type Font rendering
- Simple Sprite-sheet based Animation system
- Basic Standard library
Alpha Features (v0.3)
Completed
- Linux Support
- Switch from SDL/OpenGL to SFML
- Added Color and Rect classes
- Added Shape class for polygon rendering
- Added PostEffect class for GLSL Fragment Shaders
- Added a streaming Music class
- Advanced Animation system
- Multiple Sprites per frame
- Sprites placed at relative x/y coordinates from the Animation origin
- Embedded sounds
- Integration with PhysicsFS for better filesystem support as well as loading files from multiple archive formats (zip, 7z, pak, wad, etc)
API Improvements
- lib/builtins.js file that adds built in methods to extend the native types
- Better debugging support
- Full stack traces (excluding C++ stack for now)
- Improved event-handling
- addListener() can take 1 object argument. Any method in the object that matches an event name will be used as a handler for that event.
- removeListener() can be used to unbind both object and function handlers.
- Bounding-box and per-pixel collision detection for Sprites
In Development
Cleaning up code and testing
Roadmap
Version 0.4
- Level System
- Variable size tiles and levels
- Flexible system for specifying blocking areas
- Multiple tile layers
- Objects
- Dynamic Objects, script-able through JavaScript events
- Static objects, using sprites or animations
- Warp zones to take the player to a different level (for doors and such)
- Top-level scripting, with events for common level actions, with the option to use custom events.
- Variable size tiles and levels
Integrated Development Environment
- Project Manager
- Configurator
- Code Editor with Syntax Highlighting
- Animator
- Level Editor
- Distribution Manager to package up game into a distributable
Version 0.5
Networking API
- Asynchronous callback API (so your game can run, with the request running in the background)
- TCP/UDP/HTTP(?) support
- Stripped down Server executable
- Encrypted packages to hide assets for commercial games (as well as a package manager to accommodate this)
Project Information
- License: New BSD License
- Content License: Creative Commons 3.0 BY
- 10 stars
- hg-based source control