Ghost Chaos – now available on Apple’s App Store
Posted by Johannes Stein on Apr 21, 2010 in Development, Games, Mac OS X | 2 comments
Apple just approved my game “Ghost Chaos” made with Objective-C and Cocos2D.
What is it all about?
About three years ago, I played a little mini-game that ships with Mario 64 for Nintendo DS on a DS a friend of mine loaned me. It was some kind of “Luigi’s Mansion” light. I always thought the game controls were really awesome taking adavantage of the touchpen. Basically, you have your flashlight and make the ghosts disappear, while the ghosts only appear visible to you when they are in the light cone of your flashlight. You have a time limit which makes the game pretty hard, because you only have a few seconds to get one ghost. Well, someone might have something like that developed for the iPhone App Store, but I haven’t found an app like that. Maybe I was just looking in the wrong place. So I decided, yeah, I’m gonna make a game that resembles that mini-game.
Unfortunately I haven’t unlocked the mini-game on my Nintendo DS yet, so I constructed the game from the memories of playing it then. I also took some creative liberty and modified the controls: You can either make the ghosts disappear by tapping on them or follow the ghosts with your light cone. Both ways have their advantages and disadvantages: While tapping only targets one ghost, it serves the purpose in the first levels, while the light cone can target multiple ghosts at once and will be only way to solve the levels in time when you are playing Level 8 or higher.
Here is a gameplay video:
Click on “Read more” for the post-mortem.
Read MoreUsing C-ish code in FreePascal
Posted by Johannes Stein on Dec 3, 2009 in Development, Miscellaneous | 0 comments
I really like the pascal syntax and I really like C# syntax, so how can I mix those two together? I wrote a parser which can manage that task.
The following snippet looks like a mixture between C#, C++, Objective-C and JavaScript:
namespace testunit;
@interface
using
SysUtils;
type
MyClass : class {
private
fMyString: String;
void addMyself();
public
function addThat(): int;
published
property MyString: String get fMyString;
}
@implementation
void MyClass::addMyself();
{
if (fMyString == "") then
{
fMyString = "This is my string.";
}
else
{
fMyString = "This is my new string.";
}
}
function MyClass::addThat(): int;
{
}
@end
Read More
