I realized I never wrote a blog post on my game project Blocks. Blocks was my project for the course in game design I took last autumn at my university.
The grading criterias for the course focused on polish and completeness. As I was studying 160% back then I concluded that I would have no chance at making a big interesting game complete with my limited time. Instead I planned on doing a very small game, and polish it very well to make sure it seemed finished and well thought through.
For Blocks I used the libGDX framework, mainly because I wanted to learn how to use it for future android development. LibGDX was a lot more low level than I had first expected. This caused the programming to take longer than I had wanted and it was barely that I could hand in my project on time.
I made a bunch of stupid misstakes when coding this game, but I learned a lot too. The way the screen changing works feels kinda backwards. But there is little/no run-time allocation this way and that's good. The whole ScreenManager/Changer thing isn't very elegant. There is a rather akward bug when entering new high scores. Can you spot it? Easy to fix though. The whole way of handling input isn't good. A chain of command pattern would be much nicer and removes some boilerplate code. I coded the networking before I added the particle effects. This made the networking thread try to access the OpenGL contex which is a big no-no. This is solved with making an event queue that is processed in the main thread. I should have thought of this earlier. Events rule. The rendering procedure with passing global and local offsets everywhere is very unpleasant and ugly. A proper scene graph or similar would be preferable. The networking code was kinda hacked into the rest of the engine and isn't very stable at all.
But yeah, I learned a lot :)
Feel free to clone the repo (silven.nu/bloxx) or view it on GitWeb.