December 23, 2017

2017 In Review

This year has been a busy year. While it feels significantly less productive than the previous year about the same amount of effort has been put into my ongoing project. I want to keep this post short but realistically there isn't a ton to talk about and a heck of a lot more to get done.

My first part of the last quarter was focused on reworking how terrain generation is going to work and get it capable of handling faster generation that the previous version I had. It helped my point out a few bugs I had in the previous version so it was very much worth the time. I've been working on my physics engine for most of the latter part of the last quarter with the odd piece being done for the actual project itself.

I have come up with a robust and efficient solution to both physics and graphics that I am currently in the process of developing out the implementation. Nothing to really show as everything I've been doing is extensively unit and performance tested to make sure I'm not missing any details.

At first, I thought my solution was going to allow for extremely fast physics, but the simple truth is that I have to compromise between accuracy and robustness. On the upside, I have a moderately efficient solution to solving complex convex polyhedral collisions. One of the challenges has been making it robust without comprising too much on performance. The solution I use is an approximation and by putting some limits on the physics engine I can make it stable and fast. The cost, however, is that I need to be careful with edge cases because it is only an approximate solution. I can very easily get myself into a situation where I get completely garbage solutions which would ruin the experience. The exciting part of what I have done with the physics can also be used by the graphics part of the engine which should allow me to scale up some of the neat lighting effects I plan to make use of.

The plan for the next quarter is to finish off the physics engine and get all the parts of it working smoothly and integrated into the game engine. Then I'll be able to focus on getting the graphics engine switched over to the new system.

All in all, I'm a little disappointed with where the project is at after a year of deciding to swap out the physics and graphics parts of the game. It certainly feels like a few steps backward, but each step forward I take now seems to be on a more solid foundation than before. However, that's about 10s of thousands of lines of code later.