The Journey So Far, Part 5/7


“Alpha Andromeda” was the second version of the client, released on April 15th. With the help of Malkin (of Malkin’s Little Creatures Blog) and Pilla, we warped norns like crazy between each other, finding plenty of new bugs to squash.

Meanwhile, Civvi (of Civilian Life) channeled her warp-enthusiasm into crafting us this gorgeous artwork:


We decided as mascot for Albian Warp, she would be a portal-blue tinted Chichi– a descendant of Warpy (the mascot for the Warp Week celebrations of days past). We named her Meili, after a Norse god of safe travel. She’s become quite the inspiration when the coding gets tough!

And the coding got pretty tough at this point. One of the biggest challenges of this project for me was having to rewrite the Who’s Wanted Registers. Previously handled with NET: commands, the WWR was a mechanic that kept track of users as they went online and offline and sent messages to the agents that needed to know that information. It was quite a frustrating piece of code to write from scratch and still doesn’t function perfectly but, it was enormously satisfying the first time I got a notification that a friend had come online.


Having (mostly) functioning Who’s Wanted Registers meant portals were a lot more accurate too, lighting up when the people they were connected to went online, and blinking out when they weren’t.

More testers hanging out in the discord began to take notice at this point, and Mea and Verm joined in on the testing and bug-searching party! It was great to see that contacts list start to fill up.


We ran into a frustrating problem at this point– the Albian Warp client was being treated as a virus by AVG and other programs. This seems to be an unfortunate side effect of programs compiled with PyInstaller, as this issue details. Thankfully our testers were able to work around it and join in the portal-y chaos!

Civvi and Riakodoadam also joined in the testing party later on, and ham5ter released a threaded version of the Alpha Andromeda client. A later restructured version of the client actually removed outgoing creatures from the My Creatures folder occasionally, so we didn’t have to clear it out as often. With all the interest, we finally put together a simple “How to get started” guide on the github-hosted project Wiki. We left worlds running with portals open and were excited to see what we came back to. It was starting to feel more and more like the actual warp!


But… something important was definitely still missing.

The Journey So Far, Part 4/7

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.

The Journey So Far, Part 3/7

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


Creatures weren’t actually traveling across the web yet, but you could log in on one account, send a creature to another account, and then log in on that account to receive the creature as long as you stayed on the same computer. Ham5ter was able to implement the creatures warp out/in code from the CAOS side, but while he was working on getting the server side running, I decided to test things out and start refining the immigrant checker code. But… that’s when things got a little weird.



The Bedbug-Bug, as it would later be known, was thankfully (mostly) remedied by the time the server side of things was running.

Finally, after more testing and debugging, on April 4th, the very first norn, ‘hans’ traveled safely through the Albian Warp from ham5ter’s computer to mine:


How does it feel, hans?

Read part 4/7!

The Journey So Far, Part 2/7

( This is a multi-part post. Read part 1 here)

Inspired by the progress so far, I rigged up some CAOS to allow for the agent-messages sent between the clients to show up in the in-game inbox:


Mail was working! Well, sort of. You still couldn’t compose messages within the game yet, or pick someone from a list of contacts, or.. anything else really. But we also had a lot of fun testing, stressing, and crashing the client by sending message full of nonsense syllables, line breaks, and super long subject lines.



Around this time, ham5ter was nice enough to give me a crash course in using github. This was kind of new and scary to me, but if anything is going to push me into learning newer technologies, it’s probably going to be something Creatures-related. The AlbianWarpGameModifications repository was put to good use. Things were getting official! The ball was really rolling now.


Getting contacts working was the next task. If you used the warp back in the day, you might recall that adding specific people to your contacts could be a bit of a pain. Your contacts list was world-specific, so each time you started a new world you had to either reimport your contacts from an exported file, or start over. While the Docking Station site website was active, you could manually add contacts via the web interface, but once that was down you either had to resort to using CAOS or warp creatures out to random people until you happened to warp one to the person you were looking for. Ham5ter proposed having the client simply automatically fill in the contacts with everyone that was registered, making that struggle a thing of the past. Excitement was rising over the realization that maybe we could not only bring back the warp: maybe we could make it better!

But maybe it was too early to get excited. After all, what’s a warp without… warping?

 

Read part 3/7 now!

The Journey So Far, Part 1/7

Hey everyone! Aiko here, aka Amaikokonut of Naturing :: Nurturing. As a lot of you know, I dove in pretty hard when I heard that Albian Warp was kicking up again and have really gotten my hands messy with the CAOS side of things. Thank heavens ham5ter has been able to handle all the client and server side stuff that I don’t understand.

Anyway, it’s been a while since this blog has had an update, so I wanted to try to share with you the journey as it’s been so far from my perspective, along with some of the hilarities and mishaps we’ve run into along the way. While my view of the story is almost purely about the CAOS side, maybe ham5ter will post his viewpoints at some point too. The client and server development side of things is a whole other story in and of itself!

This post got so long (over 2000 words and 40+ screenshots!) that I split it up and will be posting one part every couple days until you’re all caught up. It’s been quite a long road so far and trying to cram it all into one post was a little overwhelming, so be sure to check back for the rest of this travelogue.

This chapter of our story starts around the end of March this year, when ham5ter posted about his intent to continue the Albian Warp Project as “a very basic client, server and basic tools that do nothing more then bridging CAOS and the network communication.” Not long after, he began posting live updates on his progress in the #AlbianWarp channel of the Caos Coding Cave discord server. Discovering that the Caos Class Library could be used from within Python, he decided that the Albian Warp Client would be written in Python as well, much to the joy of everyone who dislikes using Visual Studio.

Around the same time, ham5ter explained how exactly these tools were going to work:


I expressed an interest in helping out with the CAOS side of things. Pilla (of Pilla’s DS Agents) posted a neat mockup of what a message on the receiving end might look like:


Excitement was building, and it didn’t even have to build for long. The very next day, the first “Alpha Alpaca” client was shared with the development channel, and ham5ter, myself, and Mea (of Caos of the Creatures Realm) took part in the first “green light” test in a very long time. Although nothing in the game itself was really working yet, the client was sending and receiving agent messages (now referred to as DMAs) just fine!


At this stage it was discovered that due to Windows protection mechanisms, the client and the DLL often needed to be unblocked before they would function. We also learned, after some frustration, that the CAOS Class Library was incompatible with other tools that interface with the game such as the CAOS Tool and the CAOS Debugger, as these tools interfere with the Shared Memory. These are still problems we are looking to mitigate, but they didn’t stop us from moving forward.

 

Read part 2/7 now!

Current State of Albian Warp

Hallo!

Life has been super unpleasant for me in the last year or so, but I am back! Though I have been quiet, I have been doing some work on the server. I am currently gathering up everything regarding Albian Warp so that this project can be more useful.

In the immediate future I intend on having a dedicated test server going, as well as instructions on how to see the beloved Green Light again. There’s a massive amount of new things I have learned that should hopefully make expanding the server relatively easier.

Albian Warp News Update

Hi, Ham5ter and SillySina here.

Due to personal Stuff going on with our lives, the Albian Warp Project stalled a little. However, we are rebooting this project!

Why the Reboot?

The original Albian Warp Code was quiet messy and hard to follow. Also a great obstacle was the fact, that ham5ter originally intended to develop his own Communication Protocol. Developing a new protocol is a relay cool challenge on its own, but with Albian Warp it was more of a hindrance! With the reboot we have the opportunity to speed up developing by getting rid of all the hindrances.

What now?

We decided to totally scrap the original server code base and start over with an Webservice-based approach. On the Serverside, we decided to Stick to Python and use Flask, a very cool frameworks to speed up development!

The Client is still based on C#.Net and makes use of the CAOS Class Library ham5ter wrote. But, for Security Reasons, we decided that we want to put the Authentication out of the Game Engine and move it into the Albian Warp Client, where the Login credentials cannot easily be accessed by every Agent that is in the Game!

Another thing that we want to do, is to keep this blog more up to date, so brace yourself for more frequent updates. ^^

Where is the Source code now?

Another thing that I wanted to do is, to move all the Projects I work on over to Guthub, I closed down my personal gitlab server “http://git.ham5ter.de/” and we moved the Albian Warp Git Repositorys over here: Albian Warp on Github.com.

The CAOS Class Library and my CaosConsole can also be found on Github: Ham5ter’s GIT Repositories on Github.

Can I help?

If you know your Way around any of these Languages:

  • Python
  • C#.Net
  • CAOS

You Can probably help us! Take a look into the GIT Repositories, and contact us via dev@albianwarp.com, and we will see where we can fit you in. 🙂

I can’t Code, but I still want to help!

Very soon we will release a (hopefully working) Alpha Client, and a Basic Webpage, where you can Register a Albian Warp Account.
By using the Alpha Client, and reporting any “weird Stuff” and unforeseen Error Messages to us, dev@albianwarp.com you are greatly helping us!
Also if you have cool Ideas or just want to talk to us, you can join the Creatures Caves Chat, where we most of the Time hang out.

If you have a Github account, feel free to submit bugs/”weird stuff” in the issue tracker. Just, please search before posting a duplicate error!

Thank you for your time!

Albian Warp pre-1.0 Test Release

I posted a few days ago on the Creatures Caves forum about the delay in development, then promptly forgot to update here. So, here’s an update.

As many of the community already know, life has gotten in the way of Albian Warp off and on for the past few months. Unfortunately for us, bills do not pay for themselves, so paid work takes top priority. In between work, though, I have begun rewriting the server to make it more extensible and easier to update in the future.

The biggest reason I have decided to rewrite the server is that I have learned a ton in the last month, which I want to apply to Albian Warp. I have also been talking with several other people about various projects that we’re working on, and have come to the conclusion that they all intersect at certain points. We all have some pretty amazing ideas, which should, if completed, make it easier to install and extend Creatures Docking Station.

I am still following the path laid out in the previous post, but am not sure when I will have this stable for testing. While I am programming on the new version, though, I am taking what ham5ter did for the Albian Warp Client and making it usable for everyone, so we can get going with enabling the Green Light for everyone! When ham5ter is around, I’ll be working with him to integrate this into the website proper.

If you are interested in helping out, please let us know on our Creatures Caves thread!

AW Messaging on the way

Life has been keeping ham5ter and I terribly busy, so I thought I would send out an update to let everyone know this! I have been going through the .cos files and assessing just how much we’re going to need to take out and/or modify. From doing this, it has come to my attention how woefully bad my interpreting of CAOS is. (It really isn’t that bad, it’s just far different to my eyes after staring at Python all day.)

Within the next few days I will be setting up a “live” development server, so that I can start testing a registration and login system for everybody. That is the server where I will be pushing updates to before I put them in the code repository, so that I can get some real testing done. This does not mean that there is a whole lot that you would visibly be able to see working, it would just be testing the basics so that we know our foundation is solid before moving forward.

For all you daring souls, this would be a perfect opportunity to help us do some testing. I cannot stress enough that things are not going to be terribly exciting after connecting: until messages are put in, all you will see in your game is the green light.

This is the current path I am thinking about going down:

  • Establish registration and login
  • Establish server-announce, so that the server can send messages to everybody that is logged in
  • Establish status messages, so players can update their statuses
  • Establish other messaging systems to pave the way for sending and receiving creatures.

I have chosen this path order because it would greatly help us test out sending and receiving information, without accidentally sending broken creatures to everybody. The last thing I would want to see right now is everything crash because a creature failed to send correctly.

What are your thoughts? As always, your ideas and suggestions are always welcomed (and encouraged)!

We have a brainstorming thread going over on Creatures Caves!

Sourcecode is now available

Hi, yesterday i made the Source-code of Albian Warp public, i hesitate a little to do this step, due to the Fact, that the Source-code is… well, at this point everything is more like a proof of Concept, this is not what the final Product will look like!

Currently no Documentation or Installation Manual exists, but thos familiar with GIT, c#, CAOS or Python, can now Follow the Development!

At this point, i want to say, that we are still looking for Contributors! so if you look through the Source-code and think “Oh Noez!  what are they doing *facepalm*” just contact me or SillySina 🙂

https://github.com/AlbianWarp

The Sourcecode can be found over here:

EDIT: Fixed dead Link
EDIT: Everything is released under the GPL3 License!

Greetings.
Ham5ter