--- title: Resurrecting Zombies tags: haxe, games, zombie protagonist description: Digging up and dusting off some decade-old code to see if it works with a months-old compiler. category: coding --- About ten years ago, I decided to write [a flash game](/stuff/zombie_protagonist.html). I used unconventional technologies ([Haxe](http://haxe.org/) for the code, and [darcs](http://darcs.net/) for the source control). After tinkering with it for a year or so, I never touched it again (This, I fear, is not uncommon in the world of side projects). Until now! I've got a new site, and I'm trying to clean up some old stuff, so it's time to dig up the code, dust it off, and see if it works, and how it works. ### Darcs Originally, I self-hosted the code, accessing it via using darcs over ssh on my server. Eventually, I used a hosting service for darcs (patch-tag.com). When that site folded a few years back, I failed to get a copy in time, and assumed that the source was lost. But, wait, I found a tarball of the source! It has no history, but at least it's something. Hopefully it's the most recent version. But, wait again, I found a buried source directory that actually included the `_darcs` information! Excellent! I had a copy of the full history after all. Now, I love darcs[^pijul]. I use [git](https://git-scm.com/) professionally, of course. It's incredibly fristrating to use git after being acclimated to darcs -- so many things become awkward, or translate poorly. Yet git is the lingua franca of modern source control, and to deny that is to [claim that forests don't exist](http://www.theatlantic.com/science/archive/2016/09/flat-earth-truthers/499322/). Therefore, I must convert to git. Darcs has some [minimal, but excellent documentation](http://darcs.net/Using/Convert) on exporting to git. Which I use. But a `git log` shows me only one commit. What's up with that? I want my full commit history, please. Several hours later, I finally just try `darcs log` in the darcs repo: ~~~ {.bash} $ darcs log patch 93e98bccb6c6773f349d394eb27bf311081b0fac Author: jmelesky Date: Tue May 12 15:11:18 PDT 2009 * import from darcs1 repo ~~~ Well, that answers that. I apparently destroyed the history myself, seven years back. More's the pity. That does answer whether I'm dealing with an ancient darcs repo, or [a slightly less ancient](http://darcs.net/DarcsTwo) one. ### Haxe Now that we're in a git repo, let's see if we can compile this son of a gun. Haxe is easy to install, but has changed quite a bit since it was young and edgy and called "haXe". I've got a file called `build.hxml`[^hxml] in my repo, but apparently haxe no longer uses that sort of build file. Instead, I'll start with something that's my best guess [based on modern compiler usage](http://haxe.org/manual/compiler-usage.html): ~~~ {.bash} haxe -cp . -main ZombieProtagonist -swf Zombie.swf ./Actor.hx:47: characters 8-19 : Actor should be Void .... (lots more errors) ~~~ Well, I guess the language has progressed a bit. Or, I suppose, this is a version which never compiled. I think the former, though. More work to be done. In the meantime, the project is [up on github](https://github.com/jmelesky/zombie_protagonist). Tune in next time to see more of my continuing struggles to create a SWF file. [^pijul]: If I were to start over again today, I might be tempted by [pijul](http://pijul.org/), which has most of darcs' strengths, and few of its weaknesses. But I'm not, so I won't. [^hxml]: The [documentation for the old compiler](http://old.haxe.org/doc/compiler) indicate that this was really a thing, which is good, because the [modern stuff](http://haxe.org/manual/compiler-usage-flags.html) doesn't mention it at all. I got a bit concerned for my past sanity.