|
@@ -0,0 +1,92 @@
|
|
|
+---
|
|
|
+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.
|
|
|
+---
|
|
|
+
|
|
|
+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 <code@phaedrusdeinus.org>
|
|
|
+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 comiler 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.
|