Monday, April 11, 2011

Sprite Editor, v2.5, and more...

I spent a goodly amount of time, yesterday, on the Sprite Editor.  First, converting it to the v2.0 code base, then fixing some nagging bugs, and adding some new features.  Nice to see that Chrome finally fully supports all of the canvas methods.  I was playing around with it, and seeing how usable it is and I'm pretty happy with what's starting to form.

From the get go, the application is built upon The Render Engine.  I believe heavily in "eating your own dog food" if you're going to push something.  The entire app is built with the engine as its back end, proving that TRE isn't just for games (though, I don't think it'd make a good spreadsheet or word processor back end).  In fact, once I got it pretty stabilized, I used it to create some icons for use in the app itself.

The app is going to be a way to put together sprite sheets for use in the Level Editor, and your games.  It will take all the hard work out of organizing the sheets, and exporting them to a PNG file for your game's consumption.  It's being designed to create sprites in any of the following sizes: 8x8, 16x16, 32x32, and 64x64.  I chose the powers of two because a lot of math can be done quickly with simple shifts which JavaScript (and all other languages) are fairly good at.

This app will be the foundation of the Level Editor, which will change forms soon.  The old idea I had for the level editor isn't panning out so nicely.  I look at what Phobos Labs has designed, and it fits nicely with what I want to be able to do.  The idea of collision shapes, triggers, movers, and such is all pretty standard fare, but bringing it all together is what'll make the tools feel complete.

My goal for The Render Engine has always been a complete package.  Everything you'd need to be able to get up and running "quickly" (it's in quotes for a reason).  While learning the engine itself will take time, hopefully the swath of tutorials, included demos, and the tools provided will give people a nice starting point.  Things are starting to come together nicely and I'm feeling confident about being able to release a nice v2.0 soon.

What I'm thinking, at this point, is that I will trim the features list for v2.0 so I can wrap up soon and get something stable into your hands.  So, here's a short list of what I'm putting off until v2.5:

  • Particle Effects Editor
  • BSP broad-phase collision system
  • Layered/Parallax rendering context
  • SVG rendering context
  • AI/Pathfinding
  • Mobile platform optimizations
  • IndexedDB and SQLLite unified storage
  • Multiplayer
  • Isometric Tilemapping
I know it seems like a lot of things, but if you look at everything that has been done so far, and is still planned, the list is still pretty beefy:
  • New linker simplifies engine usage
  • Restructured engine, in its own namespace, separated from game code
  • Rebuilt containers, including new LinkedList
  • New convex collision hulls and narrow-phase SAT collision components
  • Replaced Box2dJS with Box2dWeb
  • Updated demos, new demos, updated and new tutorials
  • Abstracted sound system: HTML5 and SoundManager 2 support
  • Updated HTML rendering context with transformation support
  • Updated Scrolling Background context
  • Cookie, DOM, and window-based storage
  • T-SQL support in DOM storage
  • Tilemaps/tiles support
  • New sprite animation types, plus sync/async animations
  • Raycasting support for tilemaps
  • Animation callbacks
Plus, these are yet to come:
  • Sprite editor
  • 2D Level editor
  • Fully realized SpriteActor with assignable actions
  • Collision and Trigger boxes
  • PolyBody, GearJoint, PullyJoint, MouseJoint for physics

1 comment: