Porting Aquaria To the PSP
Apple Prophet writes "Just a few short weeks after BitBlot released the source to Aquaria as part of the Humble Indie Bundle, Andrew Church hacked up an ambitious homebrew port of the game to the PSP. He wrote a detailed synopsis of the technical challenges in an article on the Wolfire Blog, and of course, contributed all of the patches back to the project so anyone with a homebrew-equipped PSP can try it out. Check out the mercurial repository for the source."
Don't post mercurial repositories to slashdot. Its a fantastic version control system and I use it for all my personal work and a lot of my professional stuff, but exposing a python runtime to slashdotting is not going to work very well.
If I did it again I would just point directly to the source files and let anybody who really needs to see the revision history search for it.
And people: please go light on this server.
http://michaelsmith.id.au
I wasn't the one who posted the story, but I added a Coral Cache redirect for Slashdot referrers after the Wolfire column went live (just in case -- even though we all know Slashdotters never RTFA). People who actually want to clone the repository will presumably know not to use the Coral Cache URL, people who are just browsing shouldn't notice a difference, and hopefully my server will survive the onslaught. (:
From the game's website, screenshots, and hardware requirements it seems possible that this game could be ported to the Wii. The simplistic control scheme (mouse only, keyboard can just be used for starting/exiting game) could easily have it work on pretty much any gamepad for any system. The technical hurdles the dev went through just to get it to the PSP (a platform of much less popularity than several others) suggests he possesses the resolution to get Aquaria on other systems.
The size (200MB) is within Wiiware limits, although I've become skeptical of Wiiware because of the massive price discrepancy between that store and the prices indie developers charge online. Obviously Nintendo wants a worthwhile profit, but when one can get PC versions for a tiny fraction of the Wiiware cost which are largely fixed for a long time, sometimes not going down ever...tends to make you wonder if Nintendo would even be willing to sacrifice anything at all for a much higher exposure of indie titles. But, that's expected of most corporations obviously.
Twenty years ago, games were not far off what many indie titles are today - made by between one and five people with the costs minescule compared to the development houses of today, and involving simple but entertaining and addictive concepts. The difference is that these games circa 1990 sold for $30-50, even some simpler titles that required much less work than certain more elaborate games of the day (Monkey Island, Mercenary series etc) . Considering one can pick up some of the best indie titles for under $5, and get much more hours of entertainment than if that 5 bucks went on a movie ticket or an exorbitant hour using Starbucks wifi...it's pretty damn good value.
Yea. For the first 10 minutes.
I'm guessing your attention span was too short.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
This is an excellent article, showing how many things are often taken for granted by modern software developers. Mr Church did a great job not only porting the game, but also taking time to write about all these things.
For anyone who started programming in "ye good ol' times", techniques used by Mr Church are fairly obvious and were in everyday use. Memory manager, optimizing file speed access - all of that has been used in many games written in 80s/90s. Games had "resource files" with their own index tables, games used own memory managers because C/C++ did not provide ones suited to the task, games' memory usage had to be optimized because PCs typically only had 640KB usable for programs (later a bit more thanks to extended/expanded memory access), and graphic cards did not provide any shaders or other hardware acceleration for games at all, just a tiny bit of memory.
Operating system (DOS, Windows 3.1) did not help a lot with things like memory management, either.
Judging just by how modern games and applications work, programmers no longer spend time taking care of such optimizations. They just throw the problem at OS or memory (4GB required), making software run as slow on fast CPU, as older optimized software ran on 100x slower CPUs.
This is amazing work. I bought the Humble Indie Bundle specifically to get Aquaria (and support Linux indie games!). The fact that he managed to port a working version to the PSP so quickly is awesome. Bravo. *goes to throw copy on PSP*
It is no measure of health to be well adjusted to a profoundly sick society. - Krishnamurti
I wouldn't call it a generation "clash" so much as a "progression" from one generation to the next. As one who's been programming for a fair number of years, I certainly advocate knowing the details of what's going on at the lowest levels; if you're not familiar with how caches work, for example, you might have trouble figuring out why a loop over a 2-D array is running so slowly (answer: you have the loops inverted, so every array access is missing the cache). For those who have learned programming in more modern environments, I hope my column has been informative. But at the same time, if your target environment has the capability to take care of all the details for you, I see nothing wrong with taking advantage of that. If your PC can generate new kittens faster than STL kills them off, then by all means, blast those felines to bits. (: After all, that's the whole point of progression in computer technology -- to let the programmer focus more on the high-level problem and less on the low-level nuts and bolts.
Also, just in case it wasn't clear from the column, it was not at all my intent to criticize the original software. There are certainly things that I would have done differently, but in my own playthrough, the game ran nearly flawlessly in its target environment. Creating a complex piece of software like this is no small effort, and I have nothing but respect for Alec (Holowka, the developer) for completing his work to such a high caliber.
Okay so maybe I'm missing something obvious here but I don't actually see a download link for the PSP port any where on the site. Is it one of those compile the source yourself sorts of things? I don't see anybody else asking so I must be missing something obvious...?
"UNIX is very simple, it just needs a genius to understand its simplicity." -Dennis Ritchie
Agree that "clash" is not the best expression - I meant a difference, not fight. You are right correcting that.
Knowledge is the key, absolutely. In programming just like in many others areas it became more and more complicated to know and understand all past details - there is just too many of them. People working longer time (like you) have a certain advantage as soon as development is done on something else than the most current generation of hardware and tools (that take care of some details).
I did not get your columnt as criticism at all, just pointing out very interesting facts that are well worth knowing :-)
Thank you for valuable comment, keep up great work just as you did over all these years!b