Hey guys, just a heads up, I'm going to be gone until Tuesday because of a trip. So I'm posting this early, since I decided to make a weeks worth of progress in a day - I'd hate to let you all down. Plus I had a bad day, and bad days are excellent for programming. Your productivity soars.

Anyhow, here's what I did today:

Finished refurbishing and re-implementing our old physics engine

Overhauled our engines to be more organized, added WSW2D engine as a sister engine for WSW3D

Did some tweaking and general bug-fixing

This may not seem like much, but replacing a physics engine is no game. We spent the last weekend getting our old engine ready for implementation, and I've just now gotten the chance to finish overhauling the game.

Why did we do this? It's actually kind of a funny story. You see, when we released the first demo back in September of last year, we had been using our own custom physics engine. Daniel had a more experienced friend tell him that making your own engine is never a good idea, and suggested we use Bullet.

Daniel presented some facts and opinions, and eventually I gave in and we implemented it. At the time, replacing our entire engine with it seemed like a good idea - the reason why we did this was because he was going to need a more sophisticated physics engine to support features like physics-based particles and ragdolls.

Once it was implemented, I had a lot of trouble using it for gameplay - because as it turns out, Bullet limited us a lot when it came to using it for extreme things like going 40 miles per hour on 500 x 500 map - I'd often fly straight through walls or out of the map, and the only way to remedy this was to jack up the UPS, or Updates Per Second. It ended up at 256 before it was stable, and by then we had decided that was not going to work - it was too intensive.

So we both agreed, "If you want it done right, you have to do it yourself," which hilariously enough, has essentially been our motto from the get-go. We did the same thing with the original graphics engine because jMonkey is terrible, and I did it as well with the sound engine because Pauls 3D sound engine wasn't too good either in terms of it just working. Respectively, WSW3D and WSWSound are probably me and Daniel's magnum opus' in terms of programming anyway, so it all turned out pretty awesome.

Anyway, we spent last weekend refurbishing our old physics engine, dusting it off, and putting back in. We're turning the physics into a hybrid engine, where Bullet will do less important tasks like ragdolls and particles, whereas ours will do the heavy lifting - because unlike Bullet, our engine was built for high speed action crazy.

So lastly, what does this mean for the game? Well here are some features I'm going to have the pleasure of possibly adding and re-implementing: