After my iPhone fall from grace, I bit the bullet and bought a new iPhone. It sucks, I'm out of pocket. I'm trying to get over it and I'm optimistically looking to the future. I've jailbroken again, and I'm very aggressively developing a new iPhone application (out side work hours) with an estimated launch mid year.
I have been noodling around the idea for a while and even mentioned it before on this blog. I started development it on Wednesday 18th March, and since that time I've bashed out: 1) a project plan, 2) a functional requirements specification, and 3) draft technical designs for four major technical risks in my project (should one do business plan for a self-managed iPhone game?).
I have been debating with myself over the last few days how much information to publicly release on my ramp up to build. I've tendered comment on functional spec from mayhem and some developer friends, with excellent results so far. Frankly, I'm afraid that some kid with 6 months more ObjectiveC/OpenGL experience than me will see my idea and scoop me. I want to make some cash out of this (cover the cost of the phone/s), but more than the money (I have a good job in the real world) I want this app to exist in the world so that I can burn phone cycles (and my phone battery) playing with it. This latter need supersedes my concerns, so I'm going to release general descriptions of what I'm working on and release more (like the docs) to those who show an interest.
The code name for my project is 'Natural Selection', although iPity or iPhone Resurrection may be more appropriate project code names. The app is based on my obsession with simulated morphology evolution over the last 10 years, way before I dropped out of the world to do my Masters and PhD in Computational Intelligence.
The description from the head of my functional requirements specification is as follows:
The 'natural selection' iPhone application is an evolution simulator for the iPhone and iTouch platforms, providing light entertainment in a game like environment.Naturally, there is more to it, especially along the lines of making it a 'game' (thanks Dave) and interactivity toward reinforcing behaviour (thanks Nigel). If you're at all interested, I hope that the description wets your appetite. Contact me if you want to know more, or get involved in some way! In the medium term I'm starting to evaluate 3D and physics engines for the iPhone platform (to give me a leg up), and I'm desperately going to need a source for sweet iPhone-esk graphics and music in coming weeks and months.
Natural Selection provides a selection of 3D environments and challenges for a virtual creature to adapt to and solve using an evolutionary process. Example environments include walking, swimming, flying, jumping, following, carrying an object, and fighting. The environment defines a virtual 3D space including a plane, obstacles, gravity, friction, and weather. Creatures are defined by a base body plan (head, body, arms, legs) in terms of 3D geometrical shapes that are connected via simulated muscles. The evolutionary process operates upon a genetic code that defines a given creatures body plan and muscle sensor-to-actuator configuration.
The user selects an environment and a base body plan from their respective libraries and watches as the creature adapts, specialising to the constraints of an environment under an evolutionary process. The user interacts with the process passively by moving the camera around the environment as the creatures evolve, and directly by manipulating the parameters of the evolutionary process. The parameters for the environment can be modified in real-time, changing the objective and constraints imposed on the creature under the evolutionary process.
Creatures and environments can be saved with screenshot and a symbolic name that can be used to load the creatures and/or environments in a later simulation. Creatures can be shared with friends via electronic communication such as email.
I think an iPhone or OpenGL hacker could whip something up in a few weeks to scoop me. Right now as I type this I think I would be pissed off (emotional brain). Nevertheless my rational brain keeps kicking in reminding me of the 10 years of my life I have dedicated to studding to this domain and the 5 years of that I spent designing building these kind of systems. I've got the heuristic and algorithmic savvy as well as the passion to pull this app off well, maybe better than potential scooping competitors. And if this suspension of disbelief fails me, at least there will be some incarnations of the idea out there in the wild (hopefully) for me to play with.


3 comments:
I had the exact same idea (my PhD also involved some evolutionary computation). I don't have the spare time required to pull it off, so I never really considered even trying to actually do it. I'll be very excited to see what you can actually produce with the concept. Good luck.
Hi-
I know how you feel because I went (and still am) going through this emotional high of ideas.
I will (humbly) say this. Don't get too emotionally invested. If your idea is good and you the idea is influenced by some prior game/idea out there, then chances are good that someone has done it or someone is doing it. I just drafted up an idea only to find someone implementing it.
BUT, with that said, that doesn't mean that your app can and will be better. I just think it's prudent to set your emotions in the right place so that you don't get crushed if you see someone doing the same/similar thing and choose to continue on.
It might be useful to do a SWOT analysis. Identify your "threats" and how you can beat them. For example, it seems like you have very specific algorithmic knowledge that a teenage objective-c programmer couldn't replicate. That's a strong position to be in.
Anyway, good luck. I look forward to seeing your results. We're all in this together trying to invent cool things. :)
Just stumbled across this post in my own search for existing genetic algorithm/creature apps for iphone. It really shouldn't take much effort to implement as you describe above.
Rather than take the time to develop it myself (Also a PhD student trying to finish by August), I'll be glad to offer assistance if needed. I just released an iphone/ipod touch app based on the sio2 engine (cerebrii - 3d brain atlas : cerebrii.com/app ) that just hit the appstore last week.
I ended up in at same point you were at and headed to sio2 as the forums are very active and the blender3d work flow makes life simple.
Feel free to send me any questions. I spent entirely too much time handling messaging and objectiveC memory issues to let my experience go to waste.
I would love to see the equivalent of breve creatures for iphone!
Good luck!
Post a Comment