I took almost 2 weeks off from directly working on LEWD because I needed to make a new chat for one of my other sites, RPHaven.
Really, I had to, sadly. I’ve been doing a bunch of upgrades to my primary server, and some old libraries and software that the 3+ year old chat I made for RPH used would just not work with the upgrades. The best thing to do was to write a new chat from scratch on node.js.
The upgrades I needed to do were related to both performance and security.
Previously my server sometimes would max out the CPU on a core, which would make slow downs. Like sometimes the forums were slow, despite being really inactive, just because of other things on the server being such a big draw. Now you can see the forum pages load pretty instantly.
The other thing was security and data integrity improvements I spoke about earlier. I wanted to move the database to another server so that there are less points of entry, and I wanted to get daily backups set up. Given that I want to make it so people can start funding the game and getting it made soon, I didn’t want any potential scenario where after someones contribution has been credited, something goes wrong and the record of how much they contributed is gone.
Performance is really really good now. I cut CPU usage on my primary server by about 70% at peak times. Same with memory. Data went from peaking at about 15mb/s outbound to 8mb/s outbound.
Now, to be clear, the game server for LEWD is a totally different server. However, the basic website stuff, like this blog(which is still a little slow, which just seems to be a WordPress problem) and the forums, as well as the upcoming account management stuff I’ve made myself, are all on my main server.
For “just a chat” it’s a fairly complicated thing. On RPH you can have many characters under an account, but you can also use all those simutaniously in real time. Seen there, with the tabs on the bottom for two of my different names each in a different room. Then there’s all the real time status updates, yada yada.
It’s not time wasted, even though it was lots of time not spent on LEWD. Despite getting those security and performance improvements done, it was good practice at rapidly developing things. I also got to play around with a few Inter-Process Communication(IPC) solutions and get a feel for their strengths and weaknesses, which are things I’m going to need when it comes to spreading my MMO server across multiple servers but a single shard(like EVE Online does). In RPH’s case, IPC is used because the messenger is separate from the chat, with the messenger usable on all pages, but they share a lot of data.
I hate when MMOs divide the player base over multiple servers because they couldn’t properly design/program a single shard solution.
As for the future, and what’s next
I reallyyy need another break. Not as long as before, just a week or two, but I’ve been working 100 hours a week for a few months now.
Not just yet, though. I stumbled across a writer that I was quite impressed with, and I want to get at least part of the dev tools finished up, like in the sketch I posted about earlier.
I like to think that’ll take a week but… ehhhh, I don’t know. I know I’m going to end up beating my head over converting all the current content with how the JSON is currently formatted to the new format the new tools will use. I’ve put a lot of thought into the ideal way to have the JSON organized to have as many open possibilities for its use, and have the most possibilities open for plugins and such for different sorts of game systems for other games and content.
What I really need to do is also make a refactorer which can take old content and update its schema to work with any future changes. This is something that’d also be useful for mass batch changes on content (IE changing every instance of a word, or name of a function/method).
Basically, things will seem dead for most of this month. It’s not that I’m not doing a lot, it’s just I’m doing things that don’t actually visibly improve the game. I’m doing things under the hood, laying the foundation for the game to really be made properly. I’ve been doing a lot with getting my business set up, merchant accounts, user account management, looking for artists(did find two!), the aforementioned security improvements, and so on.
There will be some minor improvements to the game client this month, at the very least. I was thinking about adding a fog and line of sight thing.
There’s been quite a number of people that mentioned that they “couldn’t see the whole map” and had to zoom their browser out. I thought that was rather odd. Like, why assume you should see the whole thing? In most 2d games like Pokemon, Zelda, MUDs, etc, you can’t simply zoom out. Well, I think if I added a line of sight thing that that would help make it more clear, as well as more immerse. It should look really cool, too. :3
The other thing is that I want to add a prologue ahead of character creation. A little bit of backstory, where you are, with a small cinematic preview of the solar system.
Hopefully when the tools are done, that writer I found will be able to add some content, too~
So for this month, things are going to be slow as I’m doing all these backend things, and I need a week or so break, but things should pick up if all goes well.