The Trap
There’s a classic trap that many people fall into when setting out to create something - doing it all themselves and building it from scratch.
And despite being aware of this trap, and falling into it before, I’m determined to build my own engine for this game.
I’ve been learning about WebGL and have decided it’s the way to go. There is pixi.js, which does look good, but I just prefer the idea that I will understand exactly what’s under the hood if I build my own, and can customise it to work best for the needs of my game.
So there’ll be a lot of work before the actual game part begins, but that’s all part of the process, and I enjoy the process.
In my travels today I played some Surviv.io and Zombs, and it made me realise that I need to put some more thought into my game design. Arid will be an open world game based on exploration, PvP and PvE. With that comes damage and death, and I really need to think hard about how I handle that. In the aforementioned games, death comes quickly and I didn’t feel invested in the game enough to really care.
I’d originally thought about stripping the player of their items and having them start again in the same place as all new players. However, with the size of the world that I want to achieve, and the emphasis on exploration, it could potentially ruin a player’s motivation to start again.
I’ll have to keep thinking about it…
You want a piece of meat, boy?
So I’ve managed to move a little sprite around on a canvas via mouse input. It’s not 100%, but it’s a start.
I’ll tidy it up and then get it working across multiple clients over the network.
However, this isn’t going to scale well, so I’ve been looking at libraries like Phaser for creating the game engine, or just using Pixi.js to manage the graphics side of things and building my own game engine around it. I’ll create a few more prototypes and ultimately settle on whichever works best.
Or, you know, create it all from scratch.
Canvas
I spent some time today brushing up on HTML Canvas so I can get a basic player movement prototype set up.
I’ve also come across the anime.js animation library, which looks great, so I’ll probably use that for animation.
Development Begins
Development has started with some simple prototypes to test the real-time communication the game will use to communicate between client and server.
The stack is an ASP.NET Core back end and JS/canvas on the front end.
The game is 2D, using a trimetric projection, or something close (similar to isometric), using a custom engine.
There are several technical prototypes to get through before any art assets are required, so it’ll just be programmer art for a while.
The only art I can offer at this point, that’s my own and not for reference or inspiration, is this logo I quickly put together for the blog.
It probably won’t remain like this forever, but it’ll do for now.
Arid
Welcome to the development blog for Arid, an open-world MMO game set on a sprawling and desolate alien planet.
The idea and design of the game has been ongoing for a few years, and development officially began in early 2020.
No zero days!