File: sokoban3d_commentary.txt | Size: 5,146 bytes | Download file | Back to directory listing | BWPOW's homepage
by Two Citronas
email: bwpow@two-citronas.com
web  : http://two-citronas.com/

Personal contact info:
Samuel 'bwpow' Kupka
email: bwpow@ideaz.sk
web  : http://bwpow.eu/

Colorful commentary
-------------------
I would like to thank you for trying out my game. I have to admit, I'm little worried about it, because I like to release products, that are well tested and checked. This one is neither tested, checked nor finished. But, let's start from the beginning.

When my good friend Marian told me about this idea a little more than a week ago, I instantly loved it. I've been aching for some good programming action and all I've been getting were either dull or console projects. Those are not so bad, but I've missed the creative part. Even the fact, that my current job is extremely time demanding and therefore have barely any free time, couldn't let me down and I agreed to do it almost instantly. Monday evening was chosen as a release deadline, because I'm only able to work on my own stuff during Sunday. But since I usually work at night and sleep during the day, Sunday evening was no good. Hence, the Monday.

The idea for Sokoban3D came quickly. I've always loved this game and thought it would be fun to play it in first persons view. It ways Saturday night and I was thinking. If I would do this, let's make it more interesting. My favorite library, Allegro, had released its fifth version, which is built completely from scratch and thus different from the one I was familiar with. It looked like a good opportunity to learn it while making something real. So, I've opened manual page. I've seen it before, studied it some months back, but never really tried it. At first, I was horrified. Concept has completely changed, everything was new, even the most basic stuff. OK, let's try and look at some examples. WTF, WTF, WTF??? I went to bed early.

When I woke up on Sunday I was still a little hesitant about new allegro. The old one was perfect, almost too perfect. I guess, that's the reason to f**k it up :) But I decided. If I have to gain anything from this weekly games experiment, I have to do it. I dig into the manual pages once again. After a while I was ready to start the game. First version contained just the code to create some window. No compile errors! Great! But it didn't work. OK, let's study some more first. Ah, I get it. After changing some lines window appeared. Yes, I am the greatest.

Slowly, I was adding more and more functionality, using one display for coding and other two to show manual pages. It was very frustrating almost the whole time. Rarely something worked as expected and that meant another searching a studying. It took me six hours just to create "loading" screen with some rotating picture and text in the different thread from where the actual loading of stuff took place. It was really tricky and I am not even sure if I did it correctly. But it works, or at least it seems to be working.

Gradually, as I used more and more addons, the game started to take it's current shape. After approximately 18 hours, I've got it working. The only things that were missing, were menu and some HUD information panels. That shouldn't be very hard, or at least I thought so. It took me 3 more hours to figure it out, how to draw into the OpenGL textures with allegro. After that, it went smoothly and it took only 3 more hours to create in-game menu.

It was already 3pm when I was done. There are many things, that are missing or not working very well. For example, the code that does collision testing was originally meant to be only temporary solution, because I wanted to play it quickly and didn't want to bother with geometry. It really sucks. But I didn't have time to replace it with good one, so it has stayed in the release. Also, there is some strange behavior on some systems, where allegro refuses to draw into textures and instead of HUD and menu, you can see one of the in-game textures stretched through the screen. I don't know, what's wrong and why is it doing that. The worst part is, that I can't detect it, because allegro gives me positive texture id and everything seems alright. There are many things, that I am not satisfied with, but don't have time to change it. Maybe in some future releases.

Now I see, that it's not so easy to make something in such a short time. But, in spite of all that, it's playable and even enjoyable to some extent. For example, I've tried to finish all four levels without looking at the map and trying to remember all crates in my head. The fourth one was especially tricky at first.

When you play it, please keep in mind, that I had only a few days to create all of this and was using library, that was completely new to me.

Hopefully, some free weekend will come my way and I will have time for another game. I would like to meddle with Allegro's built-in functions this time. Until then, take care and have fun :) Also, if you make your own maps and are willing to share them, please, send them to my email address bwpow@ideaz.sk. Once in the while, I plan on releasing some updates containing stuff created by other people as well.