proto-engine


2D Game Engine powered by V8 JavaScript

http://img651.imageshack.us/img651/7243/protoengine.png

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.
  • 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

Labels:
Game CPlusPlus JavaScript SFML V8 2D Framework C