Groundwork part 2

Groundwork part 2

I had hoped to be coding today but the new host may be as inept as the old host. Time will tell. So that disk space issue was apparently linked to their image for Ubuntu 20 which I was using because I usually just use Ubuntu for servers since it is so ubiquitous if I run into a problem, someone else has likely solved it. So here we are with CentOS, which while it is stable... is a pain in the ass to get configured. The default packages for the package manager are years out of date so it requires some googling to get a version that I am using in dev (being on Arch, mostly using packages from AUR so a lot of the latest git commits...)  so hooray.

You would think they could just resize the container/vdisk from a web interface. I assume they probably use Proxmox since their prices are cheap. I have proxmox on my r710 here and I am pretty sure I remember being able to resize disks for VMs. Whatever, though. So I set about installing Debian, thinking hey... close enough. Nope. It just outright refuses SSH connections and their panel for managing the server without SSH doesn't work so... yep. Slowly whittled my way down to CentOS. On the plus side... SO FAR anyway, it works. It'll require some extra work but if that's what it takes, that's what I gotta do.

So currently I am installing libs and dev tools, hopefully they support c++17 or I am going to be in for a long day. From what I looked at they have GCC 8.3 which I do believe is compliant with the ISO CPP 17 standard but I've been wrong before.

Why can't package names be the same across package managers? Why does it have to be libpq-devel on DNF while it's libpq-dev on apt and pacman? Just causes confusion, doesn't it?

Had to do all my DB config in the Postgres Command Line. None of the web interfaces wanted to play ball. Whatever, I didn't take that PostgreSQL course for nothing.

Alright so there's Redis installed and configured, PosgreSQL installed and configured, running a slightly old python3 but whatever... the auth server is capable of running. Now to run it and see if it implodes!

It's alive! (again)

Now I have to redo some stuff in the connections of the servers and then get those running... Also...

Don't you hate when this happens?

When you start panic mashing Ctrl+C hoping it will take but only a Ctrl+\ will do. You know something has gone terribly wrong when you gotta Ctrl+\

First lunch, then servers.

Well, I got the servers running properly while my rice was cooking. The client loses connection after a second or 2, not sure why but I mean... it works.

It works.

I think the crash might be Inventory related. I might need to modify the Inventory wrapper. The good news is we don't hit 100% cpu though, Even though the server is REALLY unoptimized. I think the problem is pretty simple, actually. The client is losing connection because of how often I am updating the world state. Let's see if I reduce the enemy count... will I stay connected?

Yes, so it is just a question of optimizing the enemy controller and that will happen automagically with the Map State refactor. Alright.

Combat functions

There is another bug with ghost enemies, where an enemy will exist on a client but not on the server. It's something to be aware of but given the type of bug I am pretty sure it will resolve itself in the great refactor.

Fixed that inventory creation bug, I was accessing the wrong arg for the character name in the Inventory wrapper... now I must take my dog out.

Alright, So now that that is all working on the server I guess it's a good time to take a look at my weekly schedule for the month. Well, I guess I could get the forums set up and get to work on modelling map state, since I spent so much time on the MMO project today anyway.

Forums up. Good enough for now.

Spent the last hour or so writing out a plan for the map state system. I think between the wiki and my whiteboard I should be alright to start on implementation tomorrow. I had hoped to be doing it way sooner but it did certainly turn into a whole... thing. Plus that depression bout set in and messed me up but I bounced back (I think). It's 4:40 now or I would even get started on implementation now.

What's important is I now have a wiki for documentation instead of this massive pile of papers going forward. I have a forum for anyone interested in the projects to discuss them and also people now have a way of contacting me more directly. I have deployed the actual game server to an actual remote server and have had it running all day. What I will do next is run all the processes in Screen overnight and see if there's any memory leaks or CPU usage discrepencies. I will also create a windows distribution of the Client and allow a few people to log in if they want to see it in the current state.

Anyway I should probably be off, dinner needs to be made and it's very nearly 5pm. So I will setup those processes in screen and clock out for the night.