About
More drunken Game Development…
A new version of our Game Last Call:for alcohol is on the App Store.
Here is the app store link if you don’t know about it;P

Yes we did think a lot of this game while drinking so but I did a few updates to add more polish and fun. I know it seems obvious but here are a couple of pointers for developing on the iPhone:
- Make clickable option/text/UI reactive. Player with fat finger want to know they have clicked something, and sometimes they and their pudgy little paws tap wrongly and the game just sits there ..Curses your users will say, this game sucks!
- Test it on as many version of the iPhone you can get your hands on. A game that runs fine on the 3GS runs terrible on a 3G (which I happened to finally get access to when my sister was around). None of my testers every told me so and they probably won’t.
- When you are loading something and it take a while..tell them so by displaying the word “Loading..” or have a progress bar…Curses! this game sucks it’s hung!
- It’s never to late to make your game better
- Marketing your game is a good idea (yes you can get all the sympathy buys and buys for people off Facebook/Twitter you like) but actually putting your butt out there and pushing your game is a good idea
- There is a such a thing as bad marketing…make sure you are ready with Press Releases
- Add social add-ons…researching OpenFeint now;P
Juggling projects and being independant
The life of of independent developer is a pretty solitary one, especially if the people you work with are not physically in the same place as you are. It is an extremely busy one though, right now I have 3 projects that I am working.
Adventure! is currently in full production. Although I have alluded to it in the various prior posts I have never really talked about it. Adventure! (or Adventure Story on Facebook) is an online RPG game creator. Through a webpage you can put together an RPG game, and then share it with your friends or via Facebook and later the Android (and if I can figure out how to dance around Apple’s restrictions, the iPhone). This isn’t some pansy push button game creation systems that I have seen on the web that are only good at making silly clicky games, this is a full game creation system with scripting, in-game cut scenes etc..abet in a 2D tile based graphic system. I usually try to spend 3 full days working on it and we hope to get something available by Christmas. It is being built using Flex and Pushbutton Game Engine but I have tried to make sure the data formats don’t lock me into it in case I do a custom port later.
Manhanttan Murder Mystery is a Facebook game I built a prototype in HTML4 & PHP a while back. It’s a bit like Cluedo and Kill Dr. Lucky. I have decided to revive it from the prototype (which was pretty fun for me except I think the people I played with were not that fun;P). This time however I am going to be using HTML5 as the platform instead of Flex allowing me to figure out how ready it is as a Game Development platform. Last time I checked audio wasn’t ready yet but the standard seems to be picking up steam.
Lastly, having just renewed my iPhone dev license, I will be looking to develop another iPhone game. Something I like this time, not something I think somebody else will like. Got a few ideas but I leave Sat/Sun to figure it out.
Good thing is the Nick the artist I am working with has his computer and we can go crazy now..we’ll crazier than usual. I’ll be posting up more concepts soon for Adventure! and maybe some plans for the premium module we will be working.
Designing a Job based RPG system Part 1
Adventure, the RPG project I have been working on has finally gotten to a stage where I need to design a simple RPG system to round out the features list. As far a CRPG design goes, beyond the standard stats and class driven design, one design I have always loved to design is a “Job based” RPG.
Job based RPG have often seen more prominence in Tactics oriented RPG, because of the large number of ‘party members’ you eventually recruit. The large number of jobs available, would keep players happy with being able to swap, level up and grind out different soldiers to battle. The job system has it’s origins in the Final Fantasy series more specifically developed in Final Fantasy III, later Final Fantasy V and Final Fantasy Tactics. There was also the Ogre Battle series plus the other great Tactics games put out by Nippon Ichi.
My initial research into the jobs system will focus on Final Fantasy V and Final Fantasy Tactics as there are some pretty interesting design decisions made there. Before that I would like to state my initial objectives in designing a RPG system for Adventure. I say initial, because some of the objectives may change after a fair amount of research.
- Design a non-statistic heavy CRPG system. Adventure’s basic RPG system is meant as a create a framework for potentially RPG’s systems to be created. Most RPG’s that try to ‘innovate’ try to tack 101 statistics, attributes,parameter that modify,enhance,boost a character in wierd and wonderful ways. Yes you get a very “cool” system and maybe a uber-flexible system but what you lose in end is system that nobody but most anal min-max player cares about. I know I don’t play RPG’s that way, and I am pretty sure that others who play CRPG’s don’t either.
- Make the statistics available obvious on what they do to a character (and for the player)..Yes 1/2 Vitality + 2/3 strength * item bonuses might to logically to a designer, not so much so to a casual player. Str=damage, that’s pretty obvious.
- Focus on abilities versus spell lists. That means every ability is a spell. Group abilities around a job because it makes sense.
- A balanced game is a myth. No game is perfectly balanced. The CRPG system simply provides a platform and needs to be flexible enough to change and change is the keyword. Thanks goodness, I am not designing a PvP system right off the bat.
Final Fantasy tactics IMHO had a great job system, where you started as “Squire” that was a generalist and could learn how to be a “Archer” or “Knight” if you reach level 2. Alternatively, you could switch to a “Chemist” and then switch to a “Black Mage” or “White Mage” at level 2. Each job allow the player to acquire job abilities specific(in most cases) to that job. So the Thief job would allow the player to “Steal” .

FF Tactics Job Tree
The job system would also however place restrictions on the how the player grew in strength and what equipment they could wear. Games such as Ogre Battles and later Tactics games would increase amount of jobs to a bewildering amount. Final Fantasy V also used a similar system but unlocked jobs through the plot points of finding specific crystal pieces. To this effect, it was less open-ended, designed to open up more powerful jobs later to allow a more uniform level progression and keeping the challenge level of the game kept in check. Players didn’t have to change their jobs, it’s just that some battles would be easier and certain game features (i.e. items, magics) would be unlocked if the player chose those jobs.
So let’s see what I can take away from these designs.
- Job Tree’s = good
- Locking Job’s = understandable, but not totally unavoidable
- More abilities = good
- Less stats in FF Tactics = good
- Too many job choices to early = bad (for starting), good (for replay)
Next I will drill down more into the jobs system, character statistics, abilities and changing jobs.
Open Web Asia
Open Web Asia was an experience in the duality of the Internet. It was great to meet some new and old friends again. Talk to some of the people on what they were doing. It was of course filled with “Internet” personalities and the bullshit level was tolerable for this type of conference. There was real substance here. In Malaysia, you always get the feeling of us not quite being there yet. We have small portion of really great people surrounded by vast ocean of mediocrity. We tend to want to portray ourself as hip and happening (which is true, from my experience I’ve always found Malaysians more inventive and creative) but it always seems like …like a flash in the pants..
Old money and older people trying to understand a rapidly changing world of infinite connect-ability with the same dog and pony show thrown into the mix counterpointed with a younger crowd of people born to handphone, twitter et al..
Still, I won a Netbook..now having Ubuntu LTS installed…met some interesting people..and the food was decent..I do wish however that I could meet more developers..
Character Concepts
A creation of a new product is daunting challenge for any game developer and it is in pre-production where the basis of most of your ideas are developed. The creation of characters that populate your world are extremely important because not only are they going to be what the player ends up looking at the most often but also the character becomes the games mascot and spokesperson.
Over the last week, I have been working with Nicholas to develop some character concepts for Adventure. He did some concepts for me to look at, so that I could start the process of refining our vision of what the characters would be like in Adventure. I thought it would be useful to share some of the ideas I communicated with him explaining what and how to think about the concepts.
Character concept approach
- In developing character concepts there are usually main characters and supporting characters
- It is useful to give main characters names which personalizes the character to you the artist and provides an emotional connection. Use this emotional connection to give the character a personality.
- Focus should be on the main characters first, the the supporting characters.
- Drawing the main characters in various emotional states are also helpful (i.e. happy, sad, angry). It will also give guidelines on your art style etc and how to draw expressively for characters. Character sheets show these various states, poses are important as they will provide a way to carry the character forward to the future. Conceivably the character will not always be drawn by the same artists, so capturing as much detail of the original conception is extremely important.
- Thinking about the personalities of the character(s) are also important. Usually this will reflect the default look of the character. Does your character like pizza? etc..
- Manga novels (i.e. Bleach) are all built around characters concepts and the world. It is also a good source of character stereotypes.
- There is no harm in imitation so long as you put your own personal touch into it. Character tend to follow archetypes and although critics may be annoyed at the “another young boy/girl exploring an RPG world”, the “hero’s journey” is the basis of 80% of an RPG game.
- Characters developed should carry over to different mediums (i.e. plastic toys) as well as possible. Characters developed for games as in books are commercial and should be given the proper considerations in their development.
Implementing OpenID using PHP,JanRain and Zend
OpenID is being touted as the way forward in allowing the chaos of user identity management to brought to a manageable level. OpenID has been available for a while, but has finally started to build traction primarily because the “big boys” of the Internet have decided to get behind it. Unfortunately, what is being said and the reality are two different things.
Google, Yahoo, Microsoft have all setup their own “unique” way for other websites to allow access to their user data with each requiring their own login step (and appropriate logos) to sign in. My initial naive exception was that I could key in a username and password and I would instantly be logged into the website that supported “OpenID”. Sadly that isn’t so, and the mess is left to you to implement a login system. I won’t go into the theory behind OpenId as that is already well covered by many sites including Google, OpenID itself and by various articles. I will however include a diagram which illustrates the steps behind an login process as it is useful to keep in mind when implementing it.

Bob Borchers on Innovation
I feign ignorance on all things Apple. I may have a Mac Book Pro and an iPhone , though I may think they are cool nifty gadgets I doubt very much that I am a fanboy. So when Bob came to town, I decided to find out “Who” this Bob was.
The crowd was a mix of entrepreneurs and corporate types. You can tell the difference, the corporate types were dressed in their suits while the entrepreneurs were in jeans. Well most of them, except the entrepreneurs who have made it. Mingling not being my strong point, I sat down and proceeded to work out some outstanding bugs in the current build of Adventure. After the traditional introductions came Bob’s talk.
So Bob’s talk broke down into:
- Don’t have to be the first or the best
- Change the rules
- Give an obvious benefit to your customers
- Keep innovating and compete against yourself
Fairly general commentary, fairly useful…You know in the “Hmmmmm……” kinda way. What was interesting was the mix of people and the general undercurrent about how risk adverse local investors are. I think it’s a pretty regional feeling and the only people willing to put up risk capital are governments. However with Malaysia budget deficient, I doubt we will see less “money” being thrown out.
Private investors only want to “cash in” after you have made some money and “want to expand”. Still I can’t say that is the worse problem here in Malaysia. I think just finding capable people to work with is far harder especially complementary skillsets. I’m still looking for a Art director type person, a financial person and a marketing person in no particular order.
I leave you with iPhone Bob:
Flex Remoting, the iPhone and other matters…
For the past week or so, I have been investigating various Remoting solutions that I can implement for the Flex Games I have currently developing. The basic features that I am looking for were:
- Translation of complex data types (being able to map classes on the client and matched on the server)
- PHP supported
- Compressed data format
- Transparent RPC mapping
I initially started with AMFPHP but switched to ZendAMF. AMFPHP seems to be falling behind in support with the last release in 2008 which is decades in Internet time. Zend AMF is also backed by Adobe which is a good sign. On the side note, iPhone integration looks pretty good to with a Cocoa AMF. I would have preferred C++ but I guess it will do in pinch for now. I will be testing that next week or so.
Zend seems a bit fat, because you have to also include the Zend Framework as well. That’s something I’m going to have to figure out to see if it can add value to services I am writing.
Commonly used Game Design patterns
Game developers are fairly practical in their implementations. The most practical of Design Patterns that every game developer should understand intimately are:
- Singleton – Singletons are needed but often abused as a design pattern. A singleton is basically a class with one instance. Most prior singletons were not thread-safe but with multi-processor architectures of hardware, this should be a consideration. Singletons are common used for creating loggers, database/networking access objects.
- Factories – Factories are usually coupled with singletons. Factories are often found in resource/assset managers allow managed assets to be created. The role of a factory class is to “create objects” based on a template with specific functionality or generic
- Model-View-Controller – The Model-View-Controller is a way to separate (but not necessarily simply) functionality of complex systems. A Game Engine could use the MVC design pattern to sort out the various components into logical blocks of code. MVC is used extensively in Flex development to break up monolithic applications into manageable portions. The Model contains all data used by the application. The View is what the user sees and the Controller is Application core, responding to events from the View and coordinating resources from the Model.
Ubuntu, Flex and AXDT
Right now there aren’t any good open-source development environments for Flex. Everybody seems to be using Flex Builder, which you have to pay for. For me, I like things free especially since my primary web development platform is Ubuntu 9.10. I did find AXDT which, which I feel shows the greatest promise in evolving as a free alternative to Flex Builder. Plus it helps that the primary target seems to be Ubuntu.
For more information, you can go to: www.axdt.org. I have got it working with the latest Flex 3.5. I am having some trouble with Flex 4 though but that’s still in Beta. Primarily I wanted something to allow me to edit mxml and Actionscript files not caring much about layouts. I have also been able to get it working with AMFPHP. So far it has done most of what I want.






