The Rewrite (with screenshots!)
It’s been a while since screenshots! I’d like to talk about why that is. If you missed it last post, I rewrote the game from the ground up.
The problems with old Gravitas were just too much to cope with– the giant list of unfixed bugs and performance issues was completely draining our passion for creating the game. Zack went ahead and took a break to work on a simpler project (a wise decision), and I decided to do what I could to keep the project on life support and hopefully wade through the issues to make it fun to code again (a likely very crazy decision).
Well, as I said, the problems were daunting, and each new fix led to greater complexity. Not only was the code itself messy, but the very architecture and relationships upon which the game was based were outdated and poorly thought-out… basically a structural nightmare.
About two weeks ago I set aside a weekend. I canceled all plans and pulled my classroom-sized whiteboard out of the garage. I drew a class map. I designed it carefully to address the issues which cropped up after a year of development. I also kept it extensible– I want Gravitas to be able to grow and cope with every crazy new planet, ship or block we add to it.
Upon reaching a sufficient structure on which I could begin re-creating the game, I went to work. New Gravitas is now beginning week 3 of development. I think I have a lot to show for that:
As you can see, picking has improved and even has a better visual indicator of the object you’ve selected onscreen. Building is also functional again, albeit with a totally messed-up GUI. Particles and other visual effects are also back in action:
As well as basic object physics which allow me to perform such a wonderful barrel roll (it looks so amazing in motion, I’ll try to take a video later!).
Let me stress again, that this is 2 weeks of work from blank code. I did reuse a lot of the original methods, but each was retyped (not copy-pasted) so that I could double-check every step. I also did a full rewrite of the geometry which appears to fix all graphics bugs of the old game while improving performance and allowing for larger ships and asteroids (they are both divided into multiple buffers now!).
For some perspective, let’s consider where Gravitas started– one year ago, it was a 2D game based largely off the MMO Star Sonata with a more empiric focus. At some point a few months in we decided to go 3D and modular, using the current cube system. 7 months later (at least), we hit a dead end. Now, within a month I believe I can reach that same point and further.
At this point it doesn’t seem like a stretch to me to say that this is exactly what the game needed. I’m sorry for the minor setback, but believe me– the momentum I’m running on here is astounding, and I’m very optimistic about having a playable game (and maybe a demo!) by the end of the summer.
Thanks for staying tuned. I’ll probably get off work early today and pick up a copy of Realtime Collision Detection at the library. By the end of the week I hope to recreate the physics/collision system to handle larger ships and take up less processing time.