![](https://the64thgamer.com/Images/Screenshot%20from%202024-04-03%2011-47-16.png)
v0.13a is focusing on getting multiplayer up and running. So far its been decent but I've also worked on other pieces of the game (since multiplayer coding is very intensive to setup and boring).
Terminal
![](https://the64thgamer.com/Images/Screenshot%20from%202024-04-04%2001-50-51.png)
There is now a terminal in the game accessible to send commands. All of the debug text on screen has been moved to these commands, alongside more commands being added. This terminal is also useful for giving the player themselves debug information, alongside allowing "headless" servers to function where the server owner isn't a player in the game.
ROMs
Currently within the code I've also ported the ProjectDMG source from Windows Forms to work inside Godot. This will be the architecture I use to program software that runs inside the game such as on arcade machines and accessing terminals. This is better than some custom solution because it allows me to save and load states with no data loss for save files, it restricts what software I can make to allow things to be period appropriate*** (Game is set in 1979 though its almost 90s hardware, close enough), and allows people to homebrew their own custom arcade games if they want.
PDMG supported joystick but now my build also supports a standard keyboard alongside custom 4 color output. I'm eventually going to hook it into a hardware address so software can change the 4 colors at any time. I'm also going to implement a custom header lockout so other PDMG files won't work and only ones developed for Pneu will function.
A custom ROM file is also inside the repo that acts as a simple writing terminal. You can type most letters, backspace, and use arrow keys to change position (though there's currently no visual indicator). The source is also available in /Scripts/Programs/Terminal. This has to be separately compiled with GBDK and the Header-Utils to clear the header info.
This is currently just something in the repo though and there aren't any plans for it to be implemented in-game anytime soon. This was just to ease my mind that it was possible, and to allow me to begin learning C to write the arcade programs in advance.
Multiplayer
Currently in the repo Multiplayer is working for LAN with any number of players. You can create and join servers and send over a custom player name, alongside properly disconnect and be sent player info no matter when you join. That's it though from the user side. Sending over chunk data, player assignment, player movement, approving and denying player actions with rollback, ect. are still very far from being finished. The update is gonna take a few weeks but that's just the nature of implementing multiplayer.
Generation
Generation is currently improved as it now runs on FastNoise2 instead of FastNoiseLite, which also allows me to have more complex noise setups in the future. The performance is negligible because there is still a major lag spike in chunk generation, but that is due to the mesh generation algorithm being slow. Once that is improved than the gains from this will also be noticeable.
![](https://the64thgamer.com/Images/Screenshot%20from%202024-04-04%2013-55-39.png)
Briefly however while I was porting the code, generation looked very strange. I save my code commits often so this is playable if you dig in the repo history a bit.
Another improvement to generation was me caching a lot of variables for re-use, alongside not regenerating noise when the noise was Y-independent. This definitely reduced the lag spikes I'd say by like 30%.
![](https://the64thgamer.com/Images/Screenshot%20from%202024-04-07%2014-37-50.png)
Currently though this has led to multiple bugs I must sort out. This is due to me haphazardly naming variables the same thing, and I need to properly separate them in the cached system (This will take eternity).