I can’t say that I’m tired, more than anyone else that has been working on anything of their own for a few years.
At the moment I do have a bit of a headache, but do feel a bit of a relief since my application is working just as it was a few months ago, before I decided to port my CSG library to C++.
Am at a point where wanted to be about 3 months ago. But that is software development for you. The accumulation of tasks over time sort of looks like a bell curve and your initial time estimates seem like ramblings of a madman rather than a calculated assumption.
Just like I wanted to be done with something within a few months after I started this stuff 4 years ago.
You learn a ton doing serious personal projects and you change and adjust your targets and expectations as you progress and get more educated. How to manage your time and deal with the mix of work and family of 4.
I just want to do something of my own, spend my energy on something that actually might result in a better working situation for my hobbies and personality. Spend a lot of time reading up on and playing with technology, learning new things and figuring out what sort of an idea is worth pursuing.
I have a lot of ideas and find ideas quite easy to produce, but to actually find one that is worth pursuing and seeing what sort of an idea it turns into is another thing entirely.
Working full time on this project for about 8 months before taking on contract work.
After that, I am working 50% for about 4 months. Attempt to apply for some grants and while doing so, find myself changing the ideas to fit into something that might be able to get an actual grant.
Alter my plans, because I am starting to feel humbled by my decision and am looking for a way to make good of it. Looking at how to change my ideas, direction and ways to make my projects become something that I could love and be able to work on full time with grants and other options.
I’m now a full time employee again, spend my weekends working on this, and some nights. Progress is a lot slower and I am iterating a lot on my original idea, add some rough setups for game mechanics and tests.
Realize that the cost and effort of making the content is the biggest issue for me. Not the programming and setup of game logic, but creating all these items and environments. And most of these DCC applications are very slow to work with.
Start working on a gray box editor to build rough level setups and maybe some very basic content, but that spirals out of control into a very basic primitive painter that can be used to build content rather fast. Looks very blocky and voxel like, but is not made of voxels. My 5 year old step son did also influence my push to try this out since I wanted to see if I could build some simple shape building tool for him.
Varying resolutions of these simple primitives plotted on a fixed grid. Looks nice, but my inexperience with making serious systems that are optimal and can handle a lot of data is starting to hurt. So I decide to change all that and rewrite the core of the editor so that I can actually make my content and levels without the performance of the editor crawling to a halt.
I implement this rather convoluted index system with quad trees and pre-computed tables that ends up being rather difficult to maintain and extend. Find myself about 6 months in, when things are starting to work, that my problems would have been quite a lot easier if I had just spend a few weeks on educating myself on some computational geometry. Add some plane clipping so that I can shape my blocks in better ways, but as I have run into before, ensuring that they are robust is quite a difficult challenge.
I look into some plane based academic papers on doing boolean operations on polygonal meshes, which is a little bit more than I need but I read this all up and have it working in 4 – 6 weeks.
At this time, I have started waking up at 5 am so that I can spend the quiet hours at the house in the morning to work on my project.
Progress is good and I get very interested in this technique and what it can actually do.
Boolean operations on polygonal meshes that is unconditionally robust and does not suffer from any sort of floating point accumulation issues. Bravo!
By the end of this year, my day job, our team and project gets cut, but I get about 3 full months to work on my project full time.
I rewrite the editor, and make it smoother and nicer, integrate all the plane based plane cutting CSG stuff and have a semi functional editor in the beginning of this year.
I’m working about 75% as a contractor and spending about 1 week a month on this project for about 4 months. I have an infant to take care of so I need to shift my working schedule to the evenings until his sleeping patterns stabilize. But as of April 1st, I am a full time employee working on VR stuff during normal hours.
Since this CSG stuff is very performance critical and I want to get people to test my stuff, I decide to port this stuff to C++. This was a lot more work than I anticipated. Mostly because after I ported it, I did not have a good marshalling layer for the data and ended up adding bunch of fixes and features to the managed library that I would then need to port into the native library to help with the transition.
Some time in June I decide that I have had enough of this soft transition period and just pull the plug and fix up all the issues.
And since I am making this library into a native re-usable library I better make it good, simple and be able to respond to various other options that might come up.
After settling on and being happy with the API, it took me a while to get rid of all the bugs that were hurting it.
And now, I have a plane based, unconditionally robust C++ CSG library that is fully integrated into my editor. As of a couple of hours ago.
This is madness. But, good madness.
I have learned a lot about people and myself in the process and forgotten a few things as well I believe.
But anyway, I need to head to bed.
Thanks to all those that think well of me and hope for the best regarding this maddening trip.