I spent the past few days to create the main graphics for my game. After lots of trail and error, I was quite happy with the flat shaded cave I had created (topmost picture). I did not look realistic in any way, but rather computer generated - which is, as I said earlier, probably not something everyone can enjoy. However, the flat shading worked really nice with the dynamic OpenGL lighting (quite a complicated topic of it's own), which gives the whole scene some more atmosphere.
When yesterday a friend saw some screenshots of the game, he told me that it looked all well and nice and then asked a very innocent question: "How will you texture the background?" My response was of course "not at all" - I mean, it's a flat shaded game, right? I turned out that he wasn't the only one who thought that this flat shading was just an intermediate step towards the final look.
I was initially opposed to using textures at all, but after some discussing, I decided to give a shot. I unwrapped the whole scene in Wings3D and used Photoshop to slap some colors and textures on it. The second and third screenshot are the results. One with a more comical approach, the other with realistic textures. To be honest - after all this I'm not very satisfied with either one. I don't even like the flat shading anymore.
Another friend asked me today, why the game is set in this cave in the first place. Wouldn't it make more sense if you'd collect these boxes in some sort of space hangar? Well, yes... yes actually it would. I'm not sure why I didn't loose a thought about the overall scenery at all. I just blindly took the very vague cave look from the original game without ever questioning it.
So, I guess I'll start anew with the background graphics. At least I'm now quite comfortable with Wings3D. It's a good thing I don't have a publisher in my neck. Wish me luck!
After my last post I read a bit more about displaying text with OpenGL. One of the more popular solutions is to have a single texture containing all (ASCII) characters of a font. As it turned out, there are several applications to build such a texture for you. Bitmap Font Builder is one of them. It looks a bit clunky, but gets the job done nicely - and it's free!
Here's a quick test I did with the Helvetica typeface. I exported the texture as a transparent PNG file, cropped it and added a simple drop shadow effect in Photoshop. For now, I only used the upper case letters. I'll probably come back later and export the full set of Latin-1 characters.
Read complete post »
It's been a while... I finished the basic gameplay mechanics of my iPhone version of YuckFu just a day after my last post, but hadn't yet found the time to write about it. So here's just a short update.
As you can see in the screenshot, the game still looks like crap. But that's intentional (no really, it is). The main focus of YuckFu was always on the gameplay, so thats the first thing I wanted to finish. Just to make sure it works on the iPhone - and it does! A game with good graphics that is no fun to play isn't worth anything. A game, however, that doesn't look nice and shiny but is fun to play, is still a good game. Just to clarify: I'm aiming for both, but I'll still need to tweak some values and let some friends test it before I move on to the graphics side.
And of course there's on thing still missing: the score. Displaying text in OpenGL applications has always been somewhat tedious. I haven't yet really looked if OSX provides some different solutions, but as far as I know there are only two viable options: Using a single texture with all glyphs in it (built in Photoshop or whatever), or loading a TrueType font and rendering each glyph into a texture. With both methods you'll face the same problems: Each glyph has to be stored in memory - this is fine for ASCII characters, but can get challenging with UTF8 characters. So a scoreboard with names consisting of characters outside of ASCII is probably not going to happen for YuckFu. The other problem is the lack of support for "features" like kerning. Even displaying proportional fonts can be a pain. So, maybe I'll just settle with a retro looking bitmap font - but not before I've checked if OSX does indeed have some magic way for solving these problems! Although they are not exactly on the OS side...
After some hours of reading to figure out how exactly the memory management with alloc, dealloc, retain and release works with NSObjects in Objective-C (here's a good article) and some more hours to get used to the funny syntax, I was finally able to do something with it.
To get my 3D model onto the iPhone, I had to find a data format that is easy to load and can be used directly in my Application without much modifications. I decided to export the model from Wings3D as Wavefront .OBJ file, which is a pretty straight forward ASCII format. I, however, didn't want to go through the hassle of parsing ASCII data in C, so I wrote a small PHP script to transform this .obj file into a binary format that was ready to be used with OpenGL ES.
This is where the fun starts.
Read complete post »
I haven't yet elaborated a complete concept of where I want to take Yuckfu visually, but after I did some quick sketches yesterday I decided against 2D graphics for obvious reasons. So, the background, the crates and the character will be drawn in 3D - that is with Polygons and stuff. I won't change the gameplay with this - you will still see the whole scene from a fixed side view.
Why not 2D graphics then? Simple: if I'd be the one doing them, they won't look good. I feel more comfortable with doing 3D stuff. My experience with real modeling software however is at a bare minimum. So here's another thing to learn.
Read complete post »
More than 4 years ago I released my first and (to this date) only game - Yuckfu - to the public. The game's concept and controls are ridiculously simple and can be grasped in a matter of seconds, but it takes hours to become good at it. The graphic sucks and there's no audio at all - the gameplay however still feels as fresh as is felt years ago. It still is fun to play despite of all it's shortcomings.
Why am I telling you this? Well, I have been playing with the idea to redo this game for the iPhone for quite some time now. The iPhone's capabilities and input methods seem like a perfect fit for it. And with the App Store I might even make a buck with this.
A few days ago I finally downloaded the SDK and tried to get familiar with it. Now that I'm 79€ poorer and actually able to test my desired input method for this game (the iPhone's accelerometer), I can safely say that it will be a lot of fun - not only to play, but also to develop!
I'm not planning to simply port the crappy graphics over to the iPhone, but to rewrite and re-design the whole game - and to kick myself in the ass a bit while I do so, I decided to blog about the process. Sadly, because of certain circumstances, I'm not able to talk about the iPhone's SDK too much, so I will try to focus on design and general programming aspects instead.
Since I'm new to Objective-C and OSX programming this will be quite an "interesting" journey. I hope you join me!
You can already read in numerous articles why code signing sucks, so let me just join the choir. The main reasons mentioned are lack freedom and overall complication - and it was indeed easier and free to get your iPhone application up and running on a jailbroke iPhone, than it is now with the SDK. I have gone through all the hassle of code signing yesterday, just to be able to test an application on actual hardware.
While other companies (Microsoft, Sun...) are opening up more and more, Apple denies itself from this movement and makes things more complicated for all of us. A very sad decision, and also one they can't and won't revert.
Update: Also, Fucking NDA.
So, I got some time on my hands and as you can see, PhobosLab now has new layout that is even more "retro" than the previous one. I do realize that these colors are probably not to everyones taste, but I like it - for now. Let's see how long this one will last...
I also moved all my sites, including this one, to a new server. So far everything seems to work just fine. However, if you do find something that is odd, please let me know!