I first got seriously into programming sometime around my freshman year of High School. This is for a few reasons. But one of the reasons I remember doing so was because of a Minecraft Mod called Computercraft. The mod itself added computers as well as robots, called turtles, that players could program in Lua. And I did this quite a bit and it allowed me to get over some self-doubts. As a result of not wanting to test my programs in the limited environment of the game. I later installed a Lua Interpreter. Which allowed for the creation of quite a few other projects I did. And while most are effectively lost at this point. It was a start to my journey.

Quite a few years later. In my senior year of High School, I ended up finding another “game” that allowed me to discover a fascination with simulations. As well as the idea of programming within a contest. That “game” was Halite. And while I never ended up participating in an active contest I enjoyed making bots that could play against each other. Though I can’t say I was ever really good. Either way, it was added to an early version of my Projects list. Though without much description of what to do around it.

The Present

Now here we are. It’s nearly 5 years later and I’m finally getting around to it. Unfortunately many of the original resources for Halite 1 at this point have mostly been pulled offline beyond the Open Source Repositories on Github. With the old domains such as halite.io and 2016.halite.io are now redirected to the company that created the contest. Who seems to have decided to take all the Halite sites down sometime between September 1st 2022 and October 6th 2022 according to the Internet Archive. With all requests to halite.io being redirected after October 2022. However, it also indicates that the last successful capture was a 3xx redirect. Aligning with the closing of their last contest.

The Plan

So with the last remaining official resource outside of the Internet Archive being the Github repository. I decided that I would attempt to resurrect the site. At least in a static capacity. I might try to do more in the future. But for now. That’s my set goal.

Containerize The Site

The first up was to get a “working” containerization of the Website running. Though the instructions within the repository are for a full install of Ubuntu, I’m going this route to reduce my system requirements. As flawed as that idea may be.

Looking at the Contribution Guide it should be as simple as running some install scripts. But the scripts for whatever reason didn’t work right off the back. So I broke the scripts into RUN commands for building the Docker Image. And this worked for the most part. At least from appearances. The problem though boiled down to the fact that the scripts were meant for a VM. Where installing something like Apache would result in a running service. So I had to figure out how to configure Apache and start it within the container.

So after some digging in the admin folder in the repository I found another set of install instructions. And while this didn’t solve all of my problems it did give me enough to get a working Dockerfile. Though it’s not without it’s possible issues. But for now, it will work for what I’m doing.

Other Issues and Considerations

Now that I had a working way of running the web server then came a couple of other things I need to consider.

One of which is in what format I wish to publish a static version of the site. For this project’s timeline, I don’t have the time to fully rewrite the site to be new. And that was never the intention. But what I don’t want is for my version of the site to be mistaken as the original. Or for an attempt to take credit.

Another issue is the number of “dead links” like the links to the forum. And while I have access to the “homepage’s” code I don’t have access to the forum’s code or data. And given it likely had quite a bit of user data I don’t think I’d want to handle that. There are quite a few dead links and even a few dead paths. Such as downloads to resources.

So with those issues in mind. My plan is as follows. I’m going to modify the Home page and the footer to label the site as a copy of the original. Likely with a link to an Internet Archive version of the site. As well as a link to the original repository. I will also be going through and removing links that lead to dead paths. And for links that lead to the forum I plan on replacing them with equivalent links to Internet Archive versions of it. They might not load as fast as the original forum. But they should at least provide connections to pages that are lost otherwise.

Deployment

As for deployment, I plan to use Github Pages as I have before. And using wget I created a static copy of the site. Allowing it to be easily hosted.

Future Plans

And with this monthly project done. I will likely move on to the next one. However, I do have plans for this. Eventually, I want to better containerize the whole thing. As well as produce some documentation for it. Unfortunately, my current goal of a project a month does not give me the time necessary to do everything. But then again. If I didn’t have the time constraint I’d probably never get things done. So it’s a double-edged sword I suppose. Either way see you all next time. The results of this page are available here.