2011 will see Anime 3D SFX hard at work as we’re still developing the Antistar sequels and the JME conversion, to say nothing about future plans (why, we’re busy enough doing what we do and doing it now).
While Antistar: Rising rallied hard fans, they are often prompt to note that they belong to an enlightened minority. Ay, a good game’s a good gift, so we decided to share Antistar with a wider audience, the 31st of December 2010 and the 1st of January 2011.
Heuristically (if ever coincidentally), connoisseur iPhone review site iFanzine listed Antistar in it’s 2010 roundup. A select club where our heroine in pajamas coexists with Spiderman, Marblenauts and Lara Croft.
Devil’s in the details still
So what are we working on? Well… lots of technical stuff is going through. Notably, evil stuff muxing user experience and artwork. For example, I never wanted to make the ground flat and square, although it could *simplify* walking around and path-finding. So instead I wrote methods for path-finding on meshes, and following contours, so the controls will feel nicer and we actually gain artistic freedom, instead of stepping back.
Another example is the blue kitten. Players (beta testers even) noted that the blue kitten doesn’t follow the player everywhere. It isn’t necessary to have the kitten around beyond chapter 3, but it’s nice. So because I don’t want the kitten to teleport auto-magically, I implemented path-finding to defeat moving platforms too.
I wasn’t all satisfied with our custom 3D engine, or the game framework for all that matters. I thought all this lacked flexibility, and it turns out that the design of this game demands flexibility – no wonder considering this title is meant to push our codebase forward, versus relying on existing functionality.
Quite a bit of work is going into avoidance / simple attack behavior too. And yes, again, all of this could be extremely simplified. But I don’t really want to do that. Why then, do these “small features” really add gameplay, isn’t it just a little bit of un-necessary polish?
Don’t think so. First, I already explained that artwork gets tied easily to draconian constraints regarding the shape of the terrain. But there’s something that’s a lot more important going on here. If a game world doesn’t implement minimally robust physical and geometric constraints, there won’t be a way that this game world can develop rich system dynamics grounded into physicality. Truly, from this angle it doesn’t matter just now, or for the coming update.
Well, just the beginning, is what it is.
With a fine brush
While a couple of pros are blessing the main character with their fairy hands, working on modeling and animation, I actually started redesigning and re-creating parts of the environment. I have a lot more flexibility on this side since I implemented the level editor. For now, I find the added element of freedom almost threatening. But somehow I’m getting fond of what used to be ‘just a design for a game’ and I feel willing to spend time ‘doing it over again’. I don’t want this to be just a bunch of platforms, move on and forget. So I guess even Klinnburg will look somewhat different in the next release. Later parts of the story will give us chance to unravel more of it’s mysteries too.
Stepping stones in the myst
Controlling a storyline doesn’t necessarily mean knowing everything in advance. I know fairly well what’s meant to happen in Antistar, up to Chapter XVI and beyond(!). I know it so well that I might change my mind about it. The same goes for game-play. It’s so easy to sketch ideas and settle on a plan, only to find out that we don’t like it anymore.
So I guess the next Antistar release, however overdue, will be a surprise for our players… …and for us.
Today I grabbed an iPhone4 – not quite at the price you get it in the US or the UK, and that gave me an immediate opportunity to judge the work I did on Antistar to support so called retina display.
For reminder, development started on an iPod 2nd gen. If you followed this blog on and off, you already know that getting the game to run at frame rate on the older iPods has been a constant struggle. Then I bought an iPad, and an iPhone 3GS along with it. The original plan was to do a separate version for the iPad, and performance tuning on the 3GS. The ‘iPad project’ sat in a cupboard for 8 to 12 weeks.
Optimizing for 3GS and iPod 3rd gen
On the 3GS, it became clear very quickly that there was spare processing time. Since I had already implemented depth of field (DoF) balancing (less details in the background when running out of processing time), this translated immediately into… more detailed images.
But I still felt I hadn’t reached the limits. So I figured a way I could introduce antialiasing without directly relying on the GL (remember multisampling is a late addition on iDevices), and that turned out to be rendering on canvas 1.5x as big as the screen, and letting the system resize and antialias the picture.
Well. That looked pretty good, and the game was still running very smoothly. Adding antialiasing did cause the DoF balancer to kick in at times, but nothing like the iPod 2nd gen.
The ‘Retina incident’
Now we get to the part that finally cost me nearly a $1000 (that’s what I got mine 4!) and somehow produced, as a collateral, a universal app running on all devices.
I postponed getting iOS4 on any of our devices. I also postponed getting the latest SDK. Seriously, if you’re about to release a game, what do you want? Do you want to fix all the bugs, then look into device / OS specific issues, or do you want to make a mess?
The first big surprise came from the iPhone4 simulator, and a short email clearly indicating that all iPhone games would run on the iPhone4 anyway.
Surely I did want to support the retina display (and the game does!). That still left me guessing what the performance of the device might be. With vague echos suggesting that the iPad and the iPhone4 ran pretty much the same hardware, the best way to have a try must be to run the game on an iPad. So I migrated the build to universal, and got to work.
At this stage, I was in for the second big surprise, and not a good one: given a bigger screen size, the iPad’s horsepower is worth something between the iPhone3GS and the iPod touch when it comes to 3D rendering (assuming you take away GPU optimizations, and I don’t have that running yet). Meaning…
…meaning that the DoF balancer kicked in much earlier on the iPad than it did on the 3GS. Kind of regrettable considering we have a much bigger screen, providing a more immersive experience, somewhat at the expense of having to handle a heavier, clumsier device.
And then what, well, this is what I did:
Where the user experience comes in…
Players reported that the iPhone 4 renders ‘just a little better than the iPhone’. If you’re comparing with an iPhone 3GS, this is necessarily true. We get a picture that’s just a little more crisp on the iPhone4. Other players asked me if the game really supported retina display. And it really does! But not quite in the way mip-mapped textures or a 2D game would look on your iPhone4.
I don’t feel my players on iPhone 4 are very happy. The truth is, they’d rather have less depth of field (and not know about it), than have less definition. Because increased definition is what they dropped the buck for.
So what’s left for me to do is drastically improve the engine performance. Because I don’t want anybody to feel they don’t get what they paid for.
Oh my. think about it, it’s a $3 title and it needs to run on a screen that’s 4 to 6 times as big as your PS3’s telly.
After 9 months of patient (neurotic?) elaboration, Antistar 3D: Rising (codename ‘hairlock’) is now available on the app store.
App Store link:
http://itunes.apple.com/app/antistar-3d-rising/id383382828?mt=8
Here’s what players say on forums:
“It’s a different adventure experience and it’s something I’ll definitely have to play more of to get a better impression”
“pros include: a very fitting and atmospheric soundtrack, day/night cycles in the open-yet-linear world, properly written dialogue, no loading times, small monologues from the protagonist as she comments on her situation and surroundings (gives her more character), unique and artistically styled environments, and the ability to play in either portrait or landscape.”
“I totally dig the psyched out gfx and enviros”
Sure! I’ve picked the best. There’s always a way to find negative comments especially if you spend enough time looking for them.
I want to take this opportunity to thank everybody who’s been visiting this blog since I started this project. There hasn’t always been much else other than page counts to encourage this work, and overall, I already know it’s been well worth it.
So yea. Here goes, did put a game together eventually. Time to stop?
No way! I think we’re here to stay.
While I get out of the promotion and release mess, an artist is helping me out towards a second release.
Tell you what. I can’t wait to get back to design and dev.
Here’s what you need:
Scouring royalty free sound sites for stuff takes a long time. Checking usage rights with artists takes roughly the time it takes to find songs in the first place (especially on low bandwidth). So what’s a long time? I’ve spent 2 or 3 days finding less than 20 samples. The music and effects are definitely better than what I would have come up with. More often than not, I find that I need to edit the sound (fade-in/out and level tuning), so I needed something like Audacity.
On the cool side, I found that artists I contacted (when they reply) are most friendly and approachable, so maybe checking free sites for stuff you can use is a good step towards the better way into sound and music: work with an artist you already know.
I also got slightly shocked finding that some of these guys drop a couple of sounds on a free site, then move on their merry way and become known for what they do, sometimes even signing up trailers and music for blockbusters. One thing about the internet is that it’s a huge collective memory, where the early experiments of gifted talents are beautifully preserved.
Hey. I’m way out of it. Next time I’ll explain two or three classes, no more, that can help you integrate sound and background loops into your iPhone game.
Apple just sent an announcement that devs should rebuild their stuff with SDK4. And all I’m thinking is, where am I gonna grab the download from this time, because with my internet connection, the standard source fails 19 times out of 20.
I’m kidding myself into believing that I fixed my critical bugs. But I still have so many items on my list… My app icon needs a little more attention too; I surveyed a little more than a dozen people with my current icon, and I didn’t feel it cut right where it should. Whatever that means… Maybe I’ll post results a little later, when the dust settles.
More exciting for me – being a visual animal, as kindly suggested by a dearest friend – my promo pics should be ready on monday.
I’m postponing releasing to Japan a little. It will be easier to get lost in translation than to figure how to market my stuff out there.
I like to do many different kinds of projects, but since I had my first computer in 1985, I had wanted to make games. In the 1990s the game market became very harsh and I applied myself to somehow forgetting about the whole thing.
After 9 years in the UK, I felt I needed a big, big change to put me back on track and start doing something exciting again. Stuffing all I had accumulated in black bags and dumping them downstairs was at a heart sore, it was also exhilarating and liberating.
Then I landed somewhere, didn’t have any work anymore, and kind of heard that there was a shortage of iPhone developers. It seemed like a good investment in learning for a near-useless java swing programmers with half hearted professional experience in Flash.
Then there was all the passive assets I’d accumulated. Learning design; learning illustration, and so forth… All this stuff that I got off my technical CV because it just makes me less employable in IT.
So finally I had learned everything needed to make games, and just for this once it didn’t seem counter-productive not to be a pure specialist in anything. I felt… …capable.
Icon Story One
I’ve been putting together advice, samples and a whole blurb for the designer that will hopefully do me a smashing icon for my game. I didn’t want to pitch for it. I didn’t want somebody senior or anything. But then it’s not just exciting. I’m kind of freaking out. How to pack 7 months of work in 57×57 pixels?
The Sound of Music
I put together sound loops and effects from flashkit.com and integrated that stuff with my game. Given the speed of my internet connection and the need to collect names and check licenses for each sound, I snailed along all day.
It feels a little weird to borrow public domain/royalty free stuff after doing all the coding and artwork solo but… …seemed like the right way to get the sound done, even though I can record and produce (sub?)-minimally acceptable music.
Finally I had a go at playing the game end to end. My GF is testing but she’s nothing like a core gamer, still struggling half-way. I thought the game was a little short but then… …I know it too well.
Either way, music and a couple of special effects added a lot to the product. Pretty much as I’d expected: before adding sound, felt like the game could ship without anything like background music or animal noises; after, it feels like sound and music are essential. The atmosphere is a little eerie and the mood is growing darker.
Compliance
I’m not sure what compliance is meant to be like on the app store. Here’s a few hints I collected:
On the bright side, even with fairly long sound loops (how long is long…?) my executable’s foot print is at around 22mb. That’s before converting sound to caf and removing garbage assets that I used to use.
It’s little bit of a nag to have to go through this stuff – I needn’t be lectured about smoothing the rough edges and what a well finished product looks like. I wouldn’t fix any of this stuff if I wasn’t worried about my app getting rejected. The bugs that I listed don’t noticeably affect user experience. How do I know? I had people toying with my game for a while. They don’t complain about any of this stuff. They complain about things that have nothing to do with compliance, like having better path-finding or more challenges. I would rather cater first to what users are bothered with.
Either way, I’m just being cautious here. I don’t have a clear idea what would get my product rejected anyway. Putting a few more days work into this won’t hurt.

For weeks and weeks, I held to a strict (ever slightly neurotic) discipline. Step towards getting my project done every single day. No exceptions.
I did relax the rule lately. I feel confident that I’m heading towards a happy ending. Meaning, a release. So I’ve been swinging between spare evenings and work evenings, and getting more sleep.
I’m not doing much else except working on content, and marveling at how adding content reveals bugs, and how fixing bugs un-fixes other bugs. But then, I accepted long ago that parts of my engine were poorly written. I would contend it was a sensible move too.
It’s about momentum. I know how to fix my stuff at least. There’s a time to make the code prettier – where prettier means better. Then there’s a time to make the artwork prettier.
I’ve designed technoid environments for parts of the game. But I’m really fond of the outdoor scenes, and I’ve just remastered the wooded areas surrounding Klinnburg.
By the way. There are NPCs in Hairlock. Friends and foes. Just because I’m not showing them doesn’t mean you won’t see them.