It’s been a bunch of months since I blathered on about game dev. I’m still crazy excited about the iPad but haven’t finished anything for it.
I have about 10 prototype games in the making, and lots of other ideas spread out in my top secret Idea Notebooks and nerdy voice recordings I make to myself while on the commute back and forth to work. I haven’t been able to decide which to make though!
SpinCycle was a lot of fun to make, and barely took any time- which is fantastic. Simple ideas like that are hard to come by though, and my free time is extremely limited these days, mostly nonexistent when working 2 jobs and dealing with a ridiculous commute. So I get plenty of time to design but not much time to code.
First I need to finish up BigFish, which is a Facebook 3D fishing game I am creating with a business partner. I gave it a whirl on the iPad and it looks fantastic, so I will most likely port it to iPad once it’s done on Facebook.
Of all the games I’ve made for iPhone so far, CastleGuard2 has had the biggest success and following, indeed I still get emails and sales on it almost every day. So I am pretty sure an update for that game would be a good business decision too.
Arcana: Spell Duel is my personal favorite game, but did very poorly in terms of sales and feedback, and took the longest to build. I did come away from that project with a fantastic dynamic spell effect system though, so it wasn’t a total loss.
DangerLands is an enormous project, and I have a good crew still on tap to work on it, but it’s been hard for me to get back into it. Still, of all the projects I want to spend time on, RPGs seem to call me home the most. There are a couple technical hurdles that are stopping me from getting back full force into DangerLands though, and if I am going to jump in I need to work out a theoretical solution first.
The first issue is server networking. I love working with Shiva very much, but it doesn’t yet have a scriptable server. This means I have to use a specialized client to act as a server, and optimize it. Ideally I would have a fault-tolerant client/server, so that instances are hosted by players. The big issue with this is making it work nicely when the controlling player leaves the game. Pocket Legends seems to do this very well, and I should study/observe it more to understand what’s going on. It’s important to incorporate into the architecture early on, but hard to do it in a neat and clean way. I had begun to do something like this with DangerLands, but that kind of tech takes a while to get right.
The real hairy ones are the networked objects. Scene geometry and even character data can be hosted on the other clients, straight from the server. Yes, that can be a trouble area, but should be minimal on a relatively closed platform. Networked objects which need to think and maintain persistent state across clients are a different animal. It feels like I need to create some kind of centralized monster controller, so that monster states and current information/brain activity can be maintained on all clients. When the hosting server sends out information about a monster instruction (Bandersnatch is attacking Dave), all the other clients should tuck that away into their own inactive monster controllers. Then, if the hosting server should disconnect, the next client in line can start up their monster server and pick up where the departed hosting server left off. It sounds simple, but I know it will be complex.
The other hurdle is with multiplayer code. I had a foolish notion that I would run lots of players on maps, but it’s just not feasible. It seems much more practical to divide up into instanced areas like Pocket Legends does (and many others), and have some central ares for casual hanging out. I would love to architect the entire game with only a single headless pass-through server, and spread out the server load to all the other clients.
So, step 1 for the continuance of DangerLands would be to get just type of flow working. I also aim to GREATLY simplify the character framework, and reduce the stats/skills to minimize the data being thrown around.
This kind of framework would let me work on some of the other game ideas I have in the future. We will stick with click-to-move/tap-to-move so I don’t have to finish up my dead-reckoning code either
Anyway, just a few random thoughts on what I want to do next.






