Posted September 21, 2024 by JamesKiddx
Ah wow, gotta remember there is no auto save for this. Unity ate up almost all 16GB of ram, and the OOM Killer decided Chrome was a good target to kill and good bye dev log.
Anywayyy
Dev Log Week 1-
From the start I knew I wanted to go a bit more ambitious than the concept I wrote up ( which was awfully rushed, as the last few weeks have not been great time wise ), So to begin with I got a very basic World created using a tilemap with Assets from the wonderful https://kenney.nl/. Just a blocked off area with colliders and a few trees, something to run around in.
Next up I bought in a basic character sprite and got some basic movement and camera control working, I decided to bound all movement to whole numbers to keep a traditional tile based game feel.
Next up for some reason I implemented a Minimap cause that seemed a fun thing to do.
Once I had the basics above working I figured it was time to go crazy, So I started work on MMO'ifying things.
First up was getting a basic websocket connection working to allow the client to speak to a server when embedded on itch, or ran standalone, I decided to use https://github.com/sta/websocket-sharp on the client and server as it sounded great, recent commits, stars, looked active.
After sorting that out, I first worked on basic auth and character create/select, No UI for this yet how ever.
Then I got the server handling a "world" and tracking mobiles/items, and sending updates to players in range when any tracked property on a mobile in range changes, or something new moves into range. This is all very basic at the moment of course and glosses over all technical details which would make for a boring post I spose.
Thursday night came and I was just getting the client sending Movement requests correctly and figuring I was going to make fridays deadline, when I started to run into random disconnects and crashes deep in the websocket library code.
I start to read the Issues on the websocket-sharp library and notice their isnt many responses from the author, then I discover the commit history is like 6 years of changing the line endings in 1-2 files, its all fake activity.
So i disabled all the networking, and got a build up just in time for Fridays Testing!.
Testing was great and revealed some issues like these black lines, that Xavier pointed me in the direction of solving <3
Testing also helped me track down Diagonal movement being double speed, and my movement giving a sickening juddery feel to the camera.
After further testing it came time to try a webgl build of my MMO master piece, first up was Cant do a Websocket connection from a HTTPS site, it must be a WSS connection, so i needed to get a domain and a cert for my server, then Needed to update the code to do secure web sockets.
Then I ran into the fun of an AOT environment like webgl which means no reflection, which means issues deserializing anything with generics or even something basic, so my Dictionary<string,object> wouldn't deserialize on webgl.
Few more hours and we have.....
Players, running and frolicking in a a meadow, with an AI'less ghost to boot!