I have been working on a project for the iphone for about a month on and off that is a cellular automata plus a synthesizer. I know this has been done about a million times before, but all the existing ones are the Game of Life, and I am interested in a slightly different CA. POV at Ludum Dare just recently posted a challenge to get a game out in the month of october, and have at least one sale on it, and I decided to take him up on it. I already have two posts on the topic over at the ludum dare blog (1, 2), but I decided to move my project blogging over here so I wouldn’t jam everything up too much with incremental project updates.
Yesterday I made a huge amount of progress, but I also excized a bunch of features. The main thing that I progressed on was adding in a saving system, so now your cells are properly generated when you close and reopen the software. I had built a nice system for copying between the c arrays that I use while the software is running and objective c arrays that are really easy to serialize when I was working on mujik, and I just needed to revive it for this project. Sometimes it is as simple as remember where your code was that you wanted to use. Also on mujik I had build a main controller that handled which screens were currently rendering and where to send the events. I am going to need to rebuild that system for this because it is desperately in need of it.
The first thing I cut out was zooming on the main cell world. It is just too much of a pain to get it working, and is something that I would like to get back to when I have time to work on my reimplementation of uiscrollview. If anyone has any advice, or even better, source code that I can look at, it would be greatly appreciated. The second thing I excised is the super awesome synthesizer. I am just going to cut it back to a simple subtractive synth, because I have the code nearby, and I don’t feel like diving into the full on rebuild my synth engine nonsense this weekend. I am going to try to model the controls after the Juno 6, but I am going to also cut way back on them because I don’t want to write another scrolling view.
One thing that is working out pretty nice is pixeling as I go along. I am using a combination of photoshop and opacity. I bought opacity at the beginning of this project because I thought that it would be really nice to just drop the code that it produces right into my views. I eventually switched to using openframeworks, but the system of factories and variables that it has makes it really easy to cut up the graphics and output them to slices I can use as sprites. I am not really happy with its performance, it seems to suck ram and die about once every four hours, but that may have been the screen capping software that I was using as well. Also doing logo design in it is kinda tricky because it is half vector, half pixel, but I think bringing in an existing logo from illustrator or something like that could be really good.
Speaking of timelapse, here is the first night and day of working on it. The software was crashing a bunch, so there are a few missing hours. Sorry about that. You can get some glimpses of the software in there though.
Even though I am aiming to have the bulk of the work done this weekend, there are still a bunch of things in here that I am noticing will need a second pass through. The scrolling / zooming view is a big one, another big one is web sharing of your layouts. Also the way that synths are linked to the world I don’t really like at all, it needs better graphics to help explain the linkages. So much to do this month, so little time. Thanks a bunch POV!