prev next
Welly well well, what did *you* do last year?
I'm proud to say that I actually published two games at the end of last year.

First up was a two and a half year long project in Flash: Rocket Pop

Still doing some post-publish refinements to spark enough interest/popularity. The basic game seems fun, and I get an average of 45 minutes to an hour of gameplay in a single sitting from people who enjoy it. I don't understand why it's getting a rather mediocre reaction. Will keep at it.

Second up is the JavaScript port of Piconesia.

I'm kind of sick of Flash right now (even AS3), so I'm experimenting with a full JavaScript stack (client and server code all in JS). The port reimplements a bare bones set of AS3's display object system using canvas. I was impressed at how easy it was to port to JS. This is the "classic" variant of Piconesia, so it doesn't make any use of the server backend. I'm looking forward to also launching new versions that are maybe longer plays, or multiplayer, maybe some leaderboards with server-side validation.
Been working on a new FPS at work, so to blow off steam at home, I decided to make the most minimal possible FPS in Unity. No animation, no textures, nothing but collision, bullets, and respawning.

I'll probably add more bits and pieces later, but in the meantime, I'm just going to let everyone use what I have so far as a starting point for whatever.

Get the version 1 of RGBVS
Currently posting from my wife's new sony tablet. Took the opportunity to see how my flash games worked in the tablet format. Plink and physics sketchpad as well as piconesia seem to work just fine, except the buttons are too small for my fingers.

Speaking of piconesia, spry fox made a game called triple town that takes a similar approach, but it is far easier to figure out how to play. I could learn how to make piconesia a lot better bystudying triple town.
Although I haven't been able to touch it recently, I did some ATARI 2600 hobby projects a while ago. I'm using DASM, which is a good assembler. One problem that I had was that the existing binaries on the web didn't run on Windows 7. Fortunately, it's an open source project, so I was able to download the source and create a Visual Studio 2010 Express project and solution. Builds fine, and was able to compile some source code just fine.

Download big messy bundle at DASM22010_Win7VS
Well, look here! It looks like Node.js runs on Windows just fine as of v0.20! That changes everything :)
I'm moving all of my scripting tasks from Bash and Ruby to Node.js. I just like JavaScript so much as a language, and Node.js is fast and well-designed.

As a simple example, I wrote a script that scans directories for redundant files about as fast as I could think about it. As a complex example, I was able to write a simple indexed search engine for work in a couple of hours, with a web interface and everything.

I'll miss the ubiquity of Bash (Node.js doesn't really work on Windows, yet), but for anything on a Linux machine under my control, it's Node.js all the way!
I heard about a new game called Frogatto via It looked nice enough, but I was intrigued by the fact that it was also an open source game engine. So, of course, I had to check it out. Here's the main points in brief:

Hacking Frogatto
- Fun game, solid engine
- Oh, gosh, every time the big bad kills me, I have to go through a bunch of dialogue
- Hey, I wonder if I can hack the data files?
- Open up milgrams-throne-room.cfg and edit out a bunch of text.
- Nope, just changing the data files doesn't work.
- Ah, maybe data/compiled?
- Hmmm, nope.
- okay, a CLI arg --no-compiled
- Wait... wTF? TextPad saves don't appear in-game, but vim do? Is this a weird Windows 7 security issue? Yep.
- Okay, now that I found out the issue, time to play my edited level.
- Error dialogue.
- Look in stderr.txt, scroll to End, and see that I've got an error.
- Edit, run, and check stderr.txt until no more errors
- Success, the end-boss pre-fight cinematic now takes about 1 second :)

Frogatto As A Platform
- Impressions of the C++ code is that it was clean and well structured.
- Mixed data and script format is okay. I would prefer some separation, but it's not an important distinction.
- Couldn't figure out how to get the editor to launch (used the binary download from the website). didn't build right out of the box in Cygwin (missing MinGW).
- All in all, not my specific cup of tea, but definitely will be excellent for modding.
- The partitioning of the GPLed engine and proprietary (but open source) data allows for commercial development on Win/Mac/Lin and iPhone (iPad?). If they make an Android port, they'll have all of the major targets for non-Flash games.
Found an interesting (although not particularly useful) property of functions when plotted on the cartesian coordinates offset by their polar coordinates.

This example is secant:
var dt = 0.005;
function plot(t, fnt) { ctx.fillRect((t + Math.cos(fnt)) * 10, (fnt + Math.sin(fnt)) * 10 + 250, 1, 1); }
function sec(x) { var c = Math.cos(x); if (c == 0) { return -Infinity; } return 1/c; }

for (var i=0; i <1000; i+=dt) { plot(i, sec(i)); }

Don't know what it means, but it sure is purty ;)
On the corrosive nature of comment spam.

So, I tried having comments for a while, but it seems like only comment spammers actually used it. I actually stopped looking for actual comments, because I was always disappointed.

I took a fairly naive approach to the whole issue in the first place. I made sure that all text was properly sanitized so I wouldn't expose anyone to XSS attacks, and links would be nullified. Still, I didn't install any anti-spam software, because this blog just isn't important enough right now for me to spend that much time on it.

The goal of comment and wiki spammers is extremely dubious. They are apparently trying to either rope people into scams or increase the amount of links pointing to their crappy porn, Cialis, or online casino sites. However, search engine companies like Google actively fight against this kind of fraudulent search engine optimization. So, they end up getting an increasingly reducing benefit at greater and greater cost to the ability of anyone else to find legitimate information on the internet.

So, comments are gone, and probably won't be coming back. Oh, well.
Regarding Flash XML Sockets not receiving any DataEvents, I've found that the solution is that the data you send from your server to the Flash client must be terminated with a null character "\0", otherwise the client never seems to get the event.
prev next