Sunday, January 31, 2010

Back to game devving

Yes! I am back! I haven't been away for long, 3 days is not much but if you consider the entire week before announcing the break in which I wrote less than 100 lines of code then I have rested considerably.

Taking time off and looking at things from another point of view (the point of view of a person that's not doing anything constructive or work related except for a small job-thing) I finally found a way to do what I like doing (making games) without losing sight of what I want to do (make games). This might sound obvious for many but it wasn't for me. You see, every time I wanted to make a game I started making an engine practically from scratch, an engine I wanted to be reusable robust etc. I was dumber than the dumbest guy in Dumbville, the capital of Dumbland. Every single little thing had to be implemented by me (on top of wanting too much things I didn't really need) which led me through many failed attempts of reinventing the wheel and making unfinished libs I didn't really need. Whenever I asked myself "Is it worth it to do everything by yourself?" I always answered promptly "Yes! I can learn tons from it!", and even though I indeed learned many things ultimately it kept me behind. If I had first made the games and only while making them I tried to implement the missing functions not only I would learn more but I would have actually made something worth showing to people!

So what I've come to create a few commandments for myself:
-Thou shall not program what is not needed.
-Thou shall try to use freely available libraries for thy needs before writing your own.
-Thou shall not reinvent the wheel if it's irrelevant to thy progress!

I think that's all of them.
Another good thing that came from the pause in programming my engine is that now I want to work on it so I can finally start making a game I planned! This is mostly because I realized how tedious it is to write GUI applications without a purpose! Passing those few tutorials made me really want to make something useful again, so I already finished my collision detection engine (I call it finished but I'll be adding more functionality later) and now I'll just write the display layers and the game manager code and this will be it for this engine iteration(I already lost the count).

Thursday, January 28, 2010

Taking a break from Game Dev

Yeah... Like the title says I decided to finally take a break. The reason behind this is that mind have become saturated from thinking about how to integrate new parts, about what to do with my engine etc. I won't, however, take a break from programming in general. Two days ago I became interested in simple web development and started reading some tutorials on HTML as well as CSS. I might also learn PHP later on, as I believe this might help me out to create a site for my little one man studio, but that's reserved for future at least a year ahead. I won't need a site until I actually make a game I want to show instead of the little crappy ones I make to test my engine functions that provide no more than 10 seconds of entertainment....which is mostly because of the graphics, not the playability of it.
Today I found a download I made in summer when I desperately wanted a GUI library despite not needing it. It's called JUCE, so far it looks pretty great and I can definitely see the possibilities for it's use as it's cross platform, free and is open source! My plans for it involve learning how to use it and make some programs so my mind won't become saturated with working on my engine. Unfortunately I won't be able to use it if I go commercial since I'd have to buy a license for 400$ which isn't something I would be willing to spend right off the bad on one license until it proves to be valuable enough and if the game sells enough to let me use it.
If any of you know of a good GUI library that doesn't require me to be open source I would highly appreciate if you told be about it (especially if it looks just as sweet as JUCE does)

Here's an old post from Scientific Ninja
Make Games not Engines
It made a little discussion going on in my head and although it didn't made me stop making my engine and start making games, it cleared my head a little and I decided to write the functional version of Litterbox as fast as I could and add more features while I'm working on a game (which I'll either chose from my list of unfinished games or invent new one after I return to game deving).

That's all for today! I'll see you next time!

Tuesday, January 26, 2010

What actually is Litterbox?

Yes, another gargantuan post, and as always I have way to much to say about way too few things.

A most of the times when I talk about my pet game engine I mention really vague stuff like I'm working on the entity system, or collision system or whatever. This works great during conversations as a quick way to say "I'm actually doing something that doesn't involve scratching my butt", however if you're reading this blog then you're either minimally interested in what actually my engine is about or you have too much spare time and are wasting it reading random blogs from the LudumDare feed(in which case you've probably already read more interesting blogs like Hamumu's or Bleck's and are just too lazy to do anything else than read the less interesting ones) and being this the case you'll probably won't mind if I describe how my pet engine works. If I'm lucky it won't derail as my last post did (yeah, originally I was just going to talk about my engine a bit, but then I got distracted and ended up doing a rant/tutorial about the ever so useful macros).

Sunday, January 24, 2010

My Little Litterbox and Advanced C++ Macro Tutorial

I decided to let the "El Poho" name belong to my past, since I already have a name for my one manned so called studio which is "Catbox Beta" I actually came up with a more suiting name for the engine:
The editor will be probably named after another cat related thing (catnip? nah... it sounds more like scripting language to me).
Litterbox inherited a lot from El Poho but it allows me to go a step farther. With every iteration of my engine I learn new tricks, I find new traps I must avoid and learn to plan more and more ahead. The results of 20 or so iterations of my engine, since the day it could barely run a pong game are quite notable. Everything is so beautifully modular I can add and remove components without much hassle. The two months I played with the Valve's Source engine didn't go to waste either! I learned the power and infinite usefulness of macros, this knowledge makes me cringe every time I hear those naysayers say that Macros are bad, and that they only replace consts and inline functions! WRONG! Macros are a nifty little way of putting text in places making creation of new classes a cinch! Get ready for some learning because here comes a class about advanced use of C Macros!