The Journey So Far, Part 4/7

( This is a multi-part post. Part 1 Part 2 Part 3)

Even though we had managed to successfully send the first creature through the Albian Warp, there were a ton of bugs to tackle at this stage. Even though creatures were being sent, they were not being removed from the exports folder, putting a lot of strain on the immigrant checker script. Often times, the script would get stuck and creatures would stop warping in at all. Furthermore, while Creatures could be sent to offline users, the client and engine still had no way of telling who was online and offline. For testing purposes, I left my code treating everyone as online for the time being.

At this point ham5ter set up a Project Board on github for tracking what we still needed to do. We quickly filled the board with cards containing our hopes and dreams. We’re still doing it, too! These boards are a lovely way to organize and keep track of what’s going on within a bigger project like this, and anyone can take a look to see what’s going on.

 
While ham5ter was sorting out the client side of creature-management, I tackled portals next. For the most part the existing code worked okay after a few simple edits, but only for sending and receiving creatures to/from random users. Because I had to rewrite the way contacts worked, it was having a harder time dealing with sending to individuals, groups, and friends. It was also inaccurate with displaying its ‘open’ status properly, since we still didn’t have any way to detect who was online or offline.

Things were starting to get really complicated and messy at this point, CAOS-wise. Find-replacing and copy-pasting long blocks of code to make the original code Albian-Warp compatible was getting difficult to both read and deal with. Essentially we were having to replace every NET: command with our own scripts, and there were a lot of NET: commands.


So I tried out a CAOS method that I’ve been toying with for a while now, but haven’t actually used in any large capacity. I’ve been referring to them as ‘CAOS Functions’ and they involve storing scripts in a GAME variable string and then executing them later using the caos command literally called ‘CAOS’.


It’s still pretty messy, but this method allowed me to essentially find and replace a single NET: command line with a single CAOS line in most instances, making the Albian Warp conversions much less painful to read and write for both myself and hopefully any future developers.

Read part 5

3

Leave a Reply

Your email address will not be published.