As of today, Picturelicious – the PHP Script that drives lowbird.com (an old version) and pr0gramm.com (nsfw; an even older version) – is now for sale. This is the first time I’m really trying to sell some of my stuff as software, so let’s see how this works out.
Packaging up something for a public release always means work, lots and lots of work. Asaph was no different and I was not even selling it. This time I had to be even more thorough. $700 is a lot of money, so I made sure I’d have a proper readme, all configuration variables are documented, the code is cleaned up and the script is really worth what you’re paying for.
I implemented a Paypal button to receive payments for Picturelicious; it really made me wish for an App Store. I do have the feeling that I will complain a lot about the App Store once I try to sell Yuckfu for the iPhone, but for now, Paypal sucks. It’s unbelievably complicated for the vendor and the customer. It tries to please everyone, but ultimately only confuses with too many options. Luckily, the software I’m selling only appeals to people who probably know how to use Paypal. But let’s not blame Paypal; let’s blame the W3C or whoever was to lazy to work out how the 402 HTTP status could be put to use.
Almost seven month ago I wrote about my experiments of “compressing” a whole movie into one single picture. A screenshot of the movie is taken every second and the screenshots are then combined into one big image. 60 frames per row, one row for each minute of film.
I tried this technique with a lot of different movies, but the one that looked most interesting turned out to be Stanley Kubricks 2001: A Space Odyssey. Now I’ve finally got it printed, glued onto a frame and hanging on my wall. I’m very pleased how the print turned out. Every single image is only 11mm wide, but you can still make out a lot of details.
I don’t know what the legal situation here is, but I found that “someone” already uploaded a “similar” image as a PNG file (11367x16232 pixels; 140mb): 2001-13-36-final.png on Rapidshare
Read on for a short tutorial to make your own movie poster like this.
In my last post I said I’d add some exhaust streams to my robot. I also said I’d use particles for that. Well, I didn’t. I spent several hours trying to get it right, but it always looked like my robot’s taking a bubble bath instead of riding on a powerful jet engine. I ended up using a single alpha blended sprite for each of the streams. This may sound cheap but actually looks really good.
As you will see in the following video, I did use particles for another effect: the huge explosion you’ll face every time you loose. Since there really is no way to “win” this game, I at least wanted to make the Game Over as visually appealing as possible. I also added a start animation – the robot now launches like a real rocket from a girder that is disconnected just after the engines have warmed up.
This video shows the game in its current state – it is by no means final. There’s still a lot of stuff missing: a properly designed HUD, effects when crates are collected or new ones spawn and of course: sound! I can’t really talk about sound yet, because I haven’t done anything so far. The only thing I can tell you is that Yuckfu will have sound and music. Hopefully.
Read on for some more in depth (and embarrassing) game developer geekery.
Finally something to write again! I remade the background graphics for my iPhone game, because the old ones didn’t fit too well (flying around with a spaceship in cave?), were never meant to be textured and thus looked unfinished. It was not an easy task. My motivation was at an all time low, because I had to throw away much of my previous work. After two unsuccessful attempts I was eventually happy with what I saw – and I really think it was worth it.
I’ll show you a screenshot of how the game looks like in a minute, but let’s start with something else: The main character. Yes, it’s a character now. Not a lifeless, boring spaceship anymore. Well, ok, it’s a robot – but a cute one! I blame WALL·E. I actually tried to mimic WALL·E’s eyes in my sketch, but failed. The rest, however, worked out quite nicely.
A Google search about cute robots was enough to gather my ideas for a new face. I finished the model in an hour or two, but then spent much more time on texturing, than I did on modeling. As you can see, the texture is quite saturated. I tried to really make him stand out from the background and also wasted my time with details no one will notice in the game. If you know what the number on his body stands for, get yourself a cookie (and a life)!
The background now resembles some sort of space hangar. If you look closely, you can find some influences of 2001 and Star Wars in my 3D model. Modeling and texturing this thing was a real pain. Everything had to fit. I didn’t have the freedom I had with the cave background, where it didn’t matter if the texture was off by some pixels, or one polygon was a bit larger than the next one – after all it was an organic structure. A hangar is not.
The large gate in the background actually opens during the game. Just to make it look more interesting and reward the player. It has no influence on the gameplay itself.
I also textured the crates with some photos of standard shipping containers. They come in four different colors, from red to blue, depending on how many you collected in a row. It looks really nice, when then screen gets slowly filled with these colors. It seems I’m not the firstone discovering the beauty of shipping containers.
Next up: Particle effects – flying a jet powered robot without seeing any streams is no fun.
Yesterday Google announced Chrome – Google’s very own web browser. It has numerous very interesting concepts – like the complete process separation of different tabs or the Javascript VM – however, one little seemingly unimportant detail stood out to me: Google Chrome places the tab bar above the address bar and the history buttons. Opera did it this way ever since, while Firefox, Safari and IE7 place the tab-bar beneath the address-bar.
The way Opera and Google Chrome do it certainly makes more sense when you think about to which element the address bar and page controls belong to. When you switch the tab, you also switch the contents of the address bar (the URL) as well as what the history back and forward buttons do. Every tab has its own URL, so it is perfectly logical that every tab should have its own address bar. Likewise, when you press the history forward or back buttons, you are navigating the history for the current tab only. These are not functions that apply globally to the whole browser, so every tab should also have its own page control buttons.
With all that said, Opera’s tab bar placement was the single most important reason why I rather migrated from IE6 (Avant to be precise) to a buggy Firefox Beta instead of to a faster and stable Opera several years ago. Of course my decision was influenced by the fact that I was accustomed to having the address bar on top, but ultimately I really believe placing the tab bar above the address bar is a bad decision from a usability standpoint. I mainly have two reasons for that.
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). It 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.
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…