Blog Home
Posts for 2008/07
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!
Shaun Inman just released Shortwave, an “extensible quick-search and shortcut system”. It is quiet similar to YubNub or my PL Cmdline in that you use keywords to trigger different search engines.
The problem with all of these tools is the lack of an anonymity. As soon as you want to define your own commands, you’ll have to create an account (YubNub or PL Cmdline), or even upload a file somewhere on your webspace and tell the app the location of this file every time you search for something (Shortwave). So in theory, every search you do through one of these tools can be logged by the website and traced back to you.
I never put a second thought in how to fix this privacy issue, until I realized that Shortwave makes use of a Javascript bookmarklet. So why not move all the functionality on the client sides bookmarklet, instead of passing all commands and search terms through a website? Shaun Inman thought he knew why not:
All searches pass through the Shortwave domain for one very simple, evil-free reason: if all the triggers and destination urls were embedded in the JavaScript bookmark that bookmark would need to be updated every time a new trigger was added–in every browser and on every computer that uses it. That would be an absolute syncing nightmare.
However, you don’t need to put all commnads into the bookmarklet – instead, just let the bookmarklet load an external Javascript file that you put on your website – just like a waves.txt for Shortwave. Sadly my comment in Shaun’s blog stating this idea was quickly deleted (along with my other comment about an XSS vulnerability on the Shortwave site). So here’s my implementation of a Client Side Shortwave I will just call quicksearch.js for the lack of creativity.
Read complete post »
Ever since this blog went online I used Favatars to make it more easy to recognize authors of comments. I think this worked out really well for my site, as many visitors have their own websites and favicons. However, despite Paul James pointing out that Cool URIs don’t change, I had more and more 404s when I viewed my site. All of these resulted from favicons that weren’t there anymore.
To fix this, I wrote a small PHP5 class that attempts to download the favicon from the commentators website. This class is very conservative – it stops a download if it’s bigger than 50 kb, has a short timeout, only allows PNG, GIF, JPEG and ICO extensions and silently returns if there’s any error. Here’s how you can use it:
// Create a new Favatars object and tell it to save
// all favicons to files/favatars/
$favatars = new Favatars( 'files/favatars/' );
// The get method attempts to find a favicon for the given
// URL and returns the local path of the downloaded favicon,
// or an empty string if none could be found.
$comment['favatar'] = $favatars->get( $comment['website'] );
Read on to view the source of this class.
Read complete post »