Development Diary: The latest on the big update

The latest on the big update
kveroneau(Game Creator)
Jan. 8, 2017, 7:42 a.m.

Firstly, I apologize for the delay in writing this post. I know many people were eagerly waiting for this development blog to be posted.

Quite a bit of the code has been updated, and I have been working on VM hypervisor daemon most recently. Progress has been slow for a couple reasons, I have been busy with my personal life a bit, and updating the code into a micro-service like environment is taking a bit of time to plan and implement. The engine is being separated into frontend/backend/VM components. The frontend is where players connect into, this is currently Telnet, WebSockets, and FTP connectors. These frontend services then talk to the backend game engine. The game engine is more or less responsible for managing player input, taking care of session handling, chat, in-character command sets, and the out of character command sets.

When the player requests TTY access to a host they have in their direct possession, the backend game engine sends out a request to the VM hypervisor requesting a TTY enabled VM so that stdin and stdout from the VM code running is directed to the player's terminal. From here, a shell is spawned on their TTY and they can begin controlling their host by running programs. If a program requests a network socket to another host, then the VM hypervisor opens a new connection back to itself, the VM hypervisor requesting a non-TTY VM. This network stream can then start sending and receive bytes to communicate between hosts. This can be a virtual shell, a file transfer protocol, or a mail protocol for example.

What will be making this update very slow to release is that the shell and all the current hardcoded commands will need to be written in 6502 assembly. Furthermore, the update will be using block devices for storage rather than the hardcoded file-system which is currently in place. While I am hoping the update can come out sooner than later, there is still a bit of work to be done. I am hoping to get some time off from my full-time job which will allow me to dedicate entire days to getting this release out.