Monday, November 7, 2011

Input Components & Behaviors

I've been wrestling with the different types of rendering in The Render Engine, trying to keep the two in sync so that it's really ubiquitous as to which way you go: either canvas or DOM.  The problem is that events were "simulated" in the canvas and were "actual" in the DOM.

Thursday, November 3, 2011

Down, but not Out...

While my provider let my domain name lapse, I want people to know that I'm still working on The Render Engine.  It was, for a while, not a priority as I was starting a new job.  However, a unique opportunity at my job allowed me to use the engine to create a demo for one of our clients.  Since then, I've been asked to enhance the engine more.  I expect to commit the revisions to the engine soon.  I found a number of things, mainly around DOM rendering, which needed to be tightened.  Additionally, I implemented autonomous steering behavior components which I intend to include.

I haven't forgotten about everyone - even sent an email to the appMobi folks to let them know that the engine is at GitHub so they could update their links.  When I get a moment, I'll put the old site there too.

Sunday, August 14, 2011

v2.0.0.11 beta (Beta 2)

I have created a download for the next beta release.  I've also updated and uploaded the API docs for the current version.  As usual, please post any issues you run into on GitHub.  Thanks.

Get it: renderengine_2.0.0.11b
Get the docs: renderengine_2.0.0.11b (API)

Thursday, August 11, 2011

New joint types

Just wanted to let folks know that I've just completed adding pulley, prismatic, and weld joint types.  I also did some refactoring to clean some things up.  Getting close to another beta soon...

Tuesday, August 9, 2011

Tutorial 14 - Data Storage

I have finished the tutorials by adding Tutorial 14 for data storage.  This tutorial demonstrates using TrimPath SQL which is included with the engine.  It exposed some issues with data storage objects, which have now been corrected.  Additionally, I've compressed TrimPath Query, and done some renaming to be consistent across files in the "/engine/libs" folder.  This concludes all of the tutorials I wanted to get done for v2.0.

If anyone would like to see some additional tutorials, please let me know in the comments.

Monday, August 8, 2011

Tutorial 12 - Physics

I just committed the Physics Tutorial to the repo.  It's just a simple example of setting up a simulation, adding rigid bodies, and getting them to animate.  I also made some changes to the tutorial naming for consistency.  Finally, I noticed a couple of bugs in the PolyBody component.  The first was a bug in the world scale division value.  The second, which is still unresolved, is that the polygon isn't rendering where the physical body is located.  There's an offset that exists that I need to resolve.

Wednesday, August 3, 2011

Refactored Tutorials and Small Updates

I've completed refactoring of the tutorials and only have two left to create (Physics and Storage) before I'll say they are completed.  I ended up splitting up what used to be tutorial 11 into two tutorials so I could demonstrate convex collisions and particles separately.  I don't want to combine too much into a tutorial which might end up confusing someone into thinking that two unrelated functions are somehow related.  I hope to get the Physics and Storage tutorials completed shortly, but it's a factor of how much time do I have.

In addition to refactoring the tutorials, I have made several small tweaks to the engine which were usually related to bugs I've found.  There are also some new methods added and old functionality cleaned up.  The engine continues to get more stable as the days go on.  Look for another beta shortly, as it feels about right to do so.  I haven't had the time to focus on the Level Editor, but I still plan on getting that completed for the final v2.0 release.

My website continues to be down which is extremely upsetting.  I really have enjoyed having a website for free for a long time, but it's probably time to find somewhere to host it.  Really all I need is a PHP host, and only in the very most basic sense of needing PHP.  I hope to have the website back up and running soon.  Also, the documentation is getting a bit outdated so expect that to get regenerated and uploaded soon too.

Wednesday, July 20, 2011

v2.0.0.10 (beta 1)

I know I'm kinda sneaking this out there, but I've released what I'm calling v2.0.0 beta 1 (officially v2.0.0.10).  The website is still down - I'm so pissed it's not even funny.  I'm losing followers on a daily basis and it's kind of hard to make a release without a website to back it up.  My emails and inquiries have fallen on deaf ears.  I guess this is what happens when hosting is free, eh?

Anyway, this is really just a version change and a ZIP build of the engine.  I just found myself really wanting to tag this because it's mostly there.  Please start hammering away at this and submitting bug reports.  I'm going to focus on the 2D tile map level editor from here on out.

Thursday, June 30, 2011

Website Still Down

The Render Engine's website is still down.  I'm starting to get a bit frustrated, due to the fact that I really can't release v2.0.0 as a beta unless I have a site to promote it on.  I've spoken with my server host and he assures me it'll be up "soon" which seems to be code for "when I get around to it."  I guess I shouldn't complain about it... the site is hosted free and the domain costs me $1.00 annually to renew.  But it is frustrating, as I said.

Tuesday, June 21, 2011

UI Controls

Something new in The Render Engine v2.0!!  I've added a new demo which showcases the new UI controls in the CanvasContext.  They are still early in development, but when I abandoned the UI concept a while back, I figured it would be something people would accomplish within the browser with jQuery or something similar.  However, there isn't a good way to get UI controls, especially input controls, into graphical contexts.  There's now a new demo for them.  It only functions in Chrome right now, but I'll get it working in the other browsers soon enough.

Monday, June 20, 2011

Recent Changes - Nearing Beta

I finally got level saving and loading working, using object serialization and deserialization.  Objects now have the ability to serialize themselves into JSON, then back again which makes saving and loading a lot more robust.  I've split the 2D tile mapping demo into two parts - one with the editor and one without.  This will help with understanding how the two are related.  Additionally, I pulled comments from all of the JSON files because it was causing headaches that I didn't want to deal with.

Latest Progress

Sorry about the lack of posts, especially while the main web site has been down for a while.  My ISP is working on the issue.  The RAID array has been giving him multiple problems, so he's swapping it out with a new array and will have the site back soon.

The Render Engine Level Editor has been progressing nicely.  I've been battling with how to make the editor work, exactly, because everything is hosted in the browser.  There isn't a server side component to it which makes it a bit difficult to come up with how, exactly, to launch it.  It isn't a game of its own and instead functions as a game add-on.

Thursday, June 2, 2011

Level Editor

I've been working on the Level Editor for The Render Engine for some time now.  It's really starting to come together.  It has core functionality in it which allows you to draw actors (sprites) and levels (tile maps) in the interface.  Right now it's still in its infancy, but it's starting to feel like an editor.  Eventually it will be how you set up a level for a 2d tile mapped game.  You can try it out by grabbing v2.0.0 from GitHub and firing up the Tile Mapping Demo.  When the "game" loads, press the F4 key and you should get the editor.  It isn't very intuitive right now, but it at least shows progress.

Wednesday, May 25, 2011

Updated Demo & Particle Emitters

I've updated the vector demo over at The Render Engine web site.  It now includes a particle emitter component on the asteroids.  I sped up the rotation of the asteroids so the effect is more evident.  I'll probably slow them back down in the future.  I also want to add some jitter to the particles themselves so they don't look so organized.  Go check it out here:
http://www.renderengine.com/demos.php

What's the Scoop?

Recently it's been about experimenting with The Render Engine.  There are a lot of things I want to do, but only so much I can do so that I can get a beta ready.  For those who haven't seen it, I uploaded a zip file containing the v2.0.0 docs to Github.  I've been working with raycasting and tried an experiment with a layered rendering context.

Wednesday, May 18, 2011

Raycasting and Collision Model Querying

Over the last few days I've added ray casting and querying to the AbstractCollisionModel class.  Ray casting is the method of tracing a line through a collision model and determining what objects the ray intersects.  Querying is a way to test the collision model for objects which satisfy a certain condition.  Ray casting can be used for quickly determining if something, like a bullet, would impact an object.

Friday, May 13, 2011

v2.0.0 Demo

I have updated the demo page at http://www.renderengine.com/demos.php with an updated version of the Vector Demo (Asteroids Evolution).  It has always been my testbed when it came to how the engine performs.  I base all of my performance testing on it because it demands so much in so many areas of the engine.  Newly added is the Accumulator Particle Engine which accumulates particles and fades old ones out over time.  The Mover2D component was updated to adjust to reduced frame rates and not feel sluggish.  The perfomance is almost identical to the demo from v1.5.3.  In fact, if you run them side-by-side, you should notice that they are nearly equivalent.  However, the v2.0.0 engine is doing so much more behind the scenes so it's a testament to its capabilities.


This update includes a number of things that v1.5.3 didn't have:

  • Abstracted sound engine
  • Accumulator particle engine
  • Native screen redrawing with requestAnimationFrame()
  • Performance improvements in Math objects
  • SAT-based collisions
  • Saving/loading of high score from localStorage
  • Frame rate adaptive mover component
  • ... and more

Saturday, April 30, 2011

Virtual D-pad

Just a quick post to say that I restructured the engine a little so I could enable a virtual d-pad on touch devices.  Currently works on my iPad (but not on my HTC Thunderbolt).  Also corrected a bug in the Sprite resource type to correspond to the changes I made to R.math.Rectangle2D.

Oh yeah, one more thing... I put an "index.html" file in the "/demos" and "/tutorials" folder to make it easy to launch those.  I needed it because I was working on my iPad and typing in the full path was a pain in the backside.  You will be happy it's there because it's a quick reference to each demo and tutorial.

Friday, April 29, 2011

Sylvester & Speed

I've got some great news for The Render Engine!  This morning I did some optimizing for the engine that has resulted in a big speed improvement.  Since the beginning, The Render Engine has depended on Sylvester for it's 2d and 3d math.  While Sylvester is a fantastic library, it is generalized for solving a multitude of mathematical problems involving vectors, matrices, lines, and planes.  This generalization, while good for accurate calculations, is bad for performance.

Thursday, April 28, 2011

Engine Stepping

This morning I was able to add a small bit of code that allows a developer to step the engine a frame at a time when the metrics panel is being displayed.  I plan to use this to profile single steps of the engine to find areas where large sums of time are being spent.  I also have a fix, from last night, that I thought I committed (but didn't) which cleans up some things, enables native frame requests, fixes IE9, fixes a bug in pooling, and also deprecates set- and getHostObject() in favor of set- and getGameObject().