So, that went interestingly… I meant to get this written up a weekend ago, as I promised, but unfortunately planning and organisation fell through.
H4 First Feeling:
Mostly I learned a butt-load about scoping and organisation, which in all honesty, was what I was aiming for. I would like to have a beautiful polished game to offer, but I don’t think that was a realistic goal… Mostly because it was over-scoped!
Developing for today:
A lot of what went wrong, was that I coded for what was to come. While I am actively concentrating on trying to code minimums and then alter as needed, there is still so much modularity within the code structure that is a) superfluous because I never used it, and b) “extra” functionality. While I know that these “extra” functionalities can make the difference between a good game and a great game, if I don’t have a game to offer, then it’s the difference between good nothing and great nothing – multiplying zero by one million is still zero.
Learning ClanLib and C++:
It was a good first project for really getting going in ClanLib and C++. I’m pretty sure that the next C++ project I get into will get off the ground a bit quicker, as I really feel that my understanding of the pros and cons has increased, my ability to utilise the language to achieve my goals has grown, and as I mentioned earlier, I also know now why people don’t use C++… ClanLib is also good but is really still a relatively young framework. One downside is that it is completely 2D: the rendering order for objects must be controlled from my side of the code as the concepts of Z-Depth don’t exist. A con, that is a little annoying.
Version Control Softwares:
Oh man. I am never working without this stuff again. The amount of times comparing revisions saved my arse, or the ability to test out extremities with the security that undoing everything is just one click away is fantastic. I am really glad that I took on learning a little about the stuff for this project, because I can’t wait to keep using it in future. With a little more understanding behind me now, I’m also really glad that I went with Mercurial. One of the greatest features is the ability to version things locally. I’m under the impression that SVN, for example, doesn’t offer such functionality. Working in the train, where I didn’t have the internet available, is a prime example of the benefit of the local versioning.
A benefit of using a low-level language such as C++ helped my a little with scoping. It still needs work mind you, and I really need to concentrate on the goals of a project so that I don’t get too sidetracked and develop unnecessary rubbish. Sometime developing unnecessary rubbish is fun, but it is, as the name suggests, rarely an important or worthwhile use of my time.
One thing I really noticed is that as many people suggest, attempting to brute-force a product with man-hours rarely works. I really need to make sure that I get moving in the breaks I schedule – cleaning and cooking are things that I don’t really mind doing, so it shouldn’t be too hard – and stay away from the screen as much as possible. That being said, I’m pretty impressed with how hard I can be on myself. I really feel like taking on self-employment as a full-time job could work for me… in the sense of organisation. Whether or not I have the entrepreneurial spirit that a friend of mine has so recently made me envious of, is something I’ll find out a little further down the road I guess.
One thing that I never thought I would need was a calendar. Man, some people (see: me) are idiots! Blocking out time with GCal was one of the greatest things I tried out. It really helps to not only know when to work, but when not to work, and as a method of showing myself how little time I actually have. It failed towards the end and I am certain that it was a major factor in the reduced productivity. As I mentioned above, throwing man-hours at a problem doesn’t help if they aren’t organised. Towards the end, when feeling like I hadn’t done enough work, I did just that, and lost focus, and wasted heaps of time. Lesson learned!
I was hoping that the final product would resemble a infinitely configurable version of Tetris, however what I have has fallen far short of that. That being said, the goal of project had little to do with the final product – it was a learning experience. I’m not trying to make a sell-able game, or even a portfolio piece, it was an exercise in learning about self-organisation, taking my biggest bite of C++ so far, looking at a couple of new tools for games dev, and most importantly, a “test of the waters” to see if I could one day do this as a full-time thing. So naturally, with no predefined fail-conditions, I feel that the project was a success! 😉