Full notes
Full Actor, RE: Actor update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Events
- Server
- UI and audio
When I started making Actor, RE
Actor I knew I needed a backend service to do the game logic to send data and whatnot around to all the clients. I have a long professional history with PHP for like...20 years.
But for Actor, RE
Actor I thought it might be good to branch out and try Node.
So entering that whole world, I was pretty overwhelmed, so I just went with Express and Common JS. I liked the idea of TypeScript, but it seemed like a lot and I wanted to make a prototype and get it all up and running.
The prototype turned out fun (hooray!) and after a lot of development, application separation and restructuring, and deploying, I stepped back and looked at the project as a whole. It was sufficient to do everything I needed for the game and then suddenly I realized: I needed to moderate text going in!! I don't want people to be allowed to use bad words in the game; especially if it is being played in a public place!
I found Content Shield by Zach Handley (https://github.com/zachhandley/ContentShield) and it was a perfect fit! ...Except my app was in Common JS. So! It was finally time to switch over to TypeScript to mainly get to integrate text moderation into Actor, RE: Actor and also get the benefits that TypeScript provides.
I learned a lot really quick and chatted with some friends who know a lot more on the subject than me. They were super helpful, and after a few nights of delirium and asking questions to myself like: "Am I doing this right? Is this how it's supposed to go? Is this even worth it?", I came out with my answer: Yes it was worth it.
Event at the second day of converting the solution over, I found 4 bugs I hadn't noticed before. And, I sussed out two other different situations to optimize and fix up.
As the conversion of the code completed, I now needed a way to deploy all this stuff. At first I had it totally wrong, but a pal showed me how to properly deploy it all.
So when a new version of the Actor, RE: Actor service ready to go up to prod I use three three simple bash scripts that I wrote to do my bidding: build, deploy and install. I simply run ./build 1.2.0 (or whatever semver I am making) to build it. Then ./deploy 1.2.0 and it ships it up to a artifact server. Then on the servers I want to deploy it to, I can pull them out of rotation and run ./install 1.2.0 to install it on that machine, test it and then put it back into rotation. Easy!
Before I wrap up this migration reflection, I wanted to also say that I plan on bringing Actor, RE: Actor to different countries and languages so more people can play. Another benefit of Content Shield is that it supports a lot of languages right out of the gate! And I can supply my own if a language isn't supported, so that's great too. So moderating text is one less thing I have to worry about when making the game in French, Italian, German, etc etc.
Anyhoo, that's enough rambling! Glad I have the Actor, RE: Actor app in TypeScript now!
-Quack Mike
Source
Changelog.gg summarizes and formats this update. How we read updates.
