Hello folks !
About me: I studied computer science ~15 years ago. Did not code much afterward. I did a small game prototype in html + js (& jQuery) around 2014, before ES6. I’m now working more seriously on the same game but with a client/server architecture.
The game will be web-based and similar to gacha games like “AFK Arena”, “Summoner Wars” or “Epic 7” in terms of mechanisms / tech requirements. So, an RPG auto-battler with asynchronous indirect player interactions. Most interactions are effects players will have on the world ; leaderboards ; debuffs they can send each other. Nothing instant and a small delay (hundreds ms to a sec) in propagating the info to other players is fine. It will be mostly menu and text-based with little to no graphisms. No sound.
I want an authoritative server to avoid cheating and keep a somewhat competitive PvE environment.
I’d love to get your input on my technical stack as many of these topics are brand new to me and I’d welcome some fresh pair of eyes to guide me a bit. My goal is to keep it as simple as possible to create a MVP that can evolve and scale into a full game if things
I’ll be using:
- Confluence as my game design wiki and tech doc wiki.
- VS Code as my text/code editors with a few plugins along the road
- GitHub for version control
- DigitalOcean platform app hosting (5$ plan) for a simple server deployment directly from my GitHub repo (I lack the linux skills for a droplet setup and want to keep things “simple”)
- Node.js for the main server runtime environment
- Express.js to ease the server/http request process
- Socket.io for WebSockets & server <-> client communication. It feels like a safer route compared to HTTP Rest API since I will need server->client communication in many different places in my game.
- EJS for the back-end html template file generation
- Google OAth2 for authentication, with passeport
- HTML / JS for the front-end browser display and client logic
- jQuery for the client-side DOM manipulation
- MongoDB Atlas (free plan) for my database with Mongoose (haven’t research much this one yet but it seems like a helpful tool to model object into the db) & compass for db visualization
- Vue.js for UI (I hesitated between vue / react / angular but it seems like vue have a gentler learning curve)
- Stripe (later) for payment processing.
This is what I’ve come up with so far after doing a fair bit of research. Maybe a bit generic but what is your opinion of it ? Am I missing things ? Are some of the above not necessary ? Any tips / advice / criticism will be appreciated 🙂
I’d be happy to answer questions and/or clarify any point if needed.
Cheers !