I’ve been unable to google the source of the recent upturn in Fugu Maze sales on the App Store – the most I can tell from my AppViz report is that it might be taking place in Great Britain. And since it has taken place since the most recent app update, I’m going to guess that part of the popularity is due to the photo picker feature (if that’s true, then the Unity iPhone Enhancement Pack has already paid for itself!)
Customizing a maze with your own “wall photo” may be more fun to some than actually solving the maze. Here are some screenshots of my tests, using an old college photo, a picture of my cat, and a baby picture of my nephew.
How small can you make a Unity web player? Well, I haven’t bothered to try building an empty scene to see its size, but it must be less than 20K, because my menu scene on Fugu Games is 19,534 bytes. I wouldn’t say it’s imperative to make it that small, but it is the first scene that automatically loads on the site’s home page, so it should load reasonably quickly for anyone, anywhere (as long as they’re on a platform that supports the Unity web plugin). And if some Flash developer starts acting superior about file sizes, you can retort “can you do 3D in 20k?”.
There isn’t much to this scene – just some textured spheres scripted to constantly look at the mouse position (just in case you didn’t realize this is 3D), a single directional light (again, 3D), and some mouseover and mouseclick behavior, the latter which loads the bigger players (some of which could use a Biggest Loser treatment).
Even with this simple example, it took a little effort to squeeze it down. One standard technique – scale down the textures size. The original size of the texture is overkill for small spheres. Setting the max texture size to 256 didn’t noticeably degrade the graphics (although 128×128 started to look coarse).
A less obvious source of unnecessary texture size is the font. There’s just one font here, but we’re certainly not using the whole Unicode character set. And I decided I didn’t really need mixed-case text.
Finally, I removed the Pro and Standard Assets from the project, primarily to remove the scripts I’m not using. Even unused scripts are built into the web player.
The bad news is that the HyperBowl Facebook app was down much of yesterday. The good news is that it’s back up with an updated dimeRocker-Facebook platform. I hastily rebuilt HyperBowl with the new API and uploaded it last night, but I did take the time out to try out the new themes, eschewing say, the RPG themes, so previous players may notice the new look:
I think that space theme blends well with the logo scene. It was about time for a HyperBowl Facebook update, anyway – I’d updated the other HyperBowl web players with some improved GUI screens (in particular, the arcade multiplayer selection screen) and spent some time compressing audio to get the player size down (from 10MB to 7MB). Now I think it’s time to diverge this version a bit and try out more of the dimerocker API to get some real Facebook integration, maybe by GDC (the problem is, GDC is my deadline for everything!). Stay tuned.
A recent reading of Richard Tedlow’s excellent biography of Andy Grove renewed my appreciation for Moore’s Law, which states that the number of transistors that can be placed on a chip will double every two years. This is why my latest MacBook Pro costs less than an Apple computer from 30 years ago.
Meanwhile, I have C-SPAN2 on right now televising the hearings on the latest Anthem Blue Cross rate increase. I say “latest” because I haven’t heard anyone mention that Anthem raised rates last year. I joined Anthem two years ago because my previous insurer, Healthnet, quadrupled my premiums over five years and then for a while terminated me after they lost (i.e. cashed without crediting me) my check, then after I complained to the State of California sent me a half-hearted apology blaming me for writing illegibly – which normally is a pretty valid accusation, except they addressed me as “Ralph Chu”.
I haven’t had a similar dispute with Anthem, but they did increase my premium immediately upon acceptance because I take cholesterol pills, and then another $2 per bill for not letting them automatically draft from my checking account, and then premium increase last year and the now much-publicized increase. Altogether, my premiums have doubled in two years (you can see why I didn’t allow them access to my checking account – they might decide it’s more efficient to empty the whole thing immediately).
Oddly, my cholesterol pills have gone up in price, nearly doubling in the last five years. Each batch is getting more expensive to make? (Apparently there’s a big pharma inverse to Moore’s Law).
Not everything has gone up. My car insurance has gone down over the years. As with computers, you get more car for the money these days, too (although not on the same curve as Moore’s Law – otherwise, we’d be commuting to work like George Jetson). Some costs have been volatile. Like real estate. I bought my condo in 2001 – it might list for 30% more now, but probably would take longer to sell. However, compared to three years ago, it’s a deal. Gas also has gone up and down, but I’d guess over the past decade it’s up at least 50%. I just read that college tuition has outpaced inflation over the last twenty years, which means it’s probably been doing that longer, since I went to college twenty years ago and I heard something similar then (business schools, heal thyself!)
The problem is that, as far as I can tell, pay hasn’t gone up, except for a Web 2.0 bubble a few years ago in Silicon Valley. As a contractor, I can get paid what I quoted ten years ago (with a bit of eye-rolling and hand-wringing), and a good way to avoid taking on more projects is to quote more. On the other hand, most of my work is in the game business, which isn’t notoriously high-paying. But the IGDA has stepped up and is now offering a group insurance plan, which was a timely factor in my recent membership renewal. It would be an interesting turn of events if people started entering the game industry for the benefits.
HyperBowl is now on Scoreloop. Here’s their supplied score widget showing some HyperBowl activity.
I’m not sure Scoreloop really meshes that well with HyperBowl. For example, I set the score sorting to descending by level and descending by score. The problem with that is a low score on the Forest Lane will be ranked higher than a high score on the Rome Lane. On the other hand, if I sort just by the score, then the easy high scores on the Classic Lane will dominate. Ideally, I’d like to see high scores per level. It might make more sense to just use Scoreloop one the lanes that I release as individual apps.
Related to that, right now it seems you can beat a challenge score from one level with a score from another. That’s probably my mistake, though – I should defer the initial option to start a challenge until after the lane selection (right now it’s in an earlier menu). One update, coming up.
Still, there is a problem in that anytime the Scoreloop GUI is brought up, the challenge option is there, which means it shows up when you finish a lane and the score is submitted. I think the idea is that you’re supposed to handle that eventuality in your own code, but using the supplied Unity plugin, your options are limited. I may try Agon Online, next. I started with Scoreloop because they reached out to me and they actually had some printed documentation. My first impressions are that Agon may have the easiest integration and more comprehensive documentation and OpenFeint has the most involved, but also the brings the largest player base. But we’ll see…
I’m one of those Lisp loyalists who goes on and on about how I did this and that in Lisp and why do we have to mess around with all these newfangled languages when we had all those features in Lisp way back when (see my dated whinging). But I’m not enough of a loyalist to actually stick with Lisp (unless you count a tiny bit of Emacs customization). I still have my copy of CLtL2, but it’s buried under a stack of books on Python, Ruby, C#, Java, Javascript, Actionscript….
Nevertheless, there are still some Lisp practitioners plugging away. For example a friend of mine, Shiro Kawai, has implemented Gauche Scheme, intended for system scripting and accompanied by a number of extensions, such as OpenGL bindings. This is intriguing – the first Lisp I learned was Scheme in the now defunct 6.001 course, then I learned Zetalisp and Symbolics Common Lisp on the Symbolics Lisp Machines. So when I moved on to Lucid and Franz Lisp on Sun workstations and Windows PC’s, the implementations seemed a) huge and b) somewhat removed from the OS. Meanwhile, with scripting languages like Perl, Python and Tcl showing up, I wondered why we couldn’t script in Lisp? (A decade later, I’m asking the same question about game scripting languages) The Gauche-GL extension also makes me think all those GLUT demos could be done in Gauche-GL
I don’t speak Japanese, but I’m sure Shiro explains the possibilities better in this Google Talk.
It’s only been a week since the last Fugu Maze update, but I couldn’t wait to add the photo picker from the Unity iPhone Enhancement Pack. Double-tap the screen, and you can paper the walls of your maze with baby photos or cat photos (at least, that’s what I tested with).
To avoid confusion with the single-tap operation of the flashlight, I decided to just leave the flashlight on.
WordsEye Feature 1.4 is on the App Store. This update uses the photo picker function in the Unity iPhone Enhancement Pack that allows you to select and play your own tunes while viewing the WordsEye pictures.