In my day-to-day job, I work as a software engineer building web interfaces for our company’s products (think websites). That means I work with HTML, CSS, and Javascript extensively.
I’ve decided to use the same technology for Realms. Javascript is a great scripting language for quickly building things. The ecosystem is filled with tools to make development easier and better.
As an example, I’m using Electron to package the game for the variety of desktops that it supports (Windows, OS X, and Linux). Electron makes creating desktop apps about as simple as you can get, using the web technologies that I’m familiar with.
I’m writing the game in Typescript, a superset of Javascript that includes static type checking. That doesn’t mean much to non-programmers, but type checking enforces certain contracts inside your software, making it easier to maintain and less prone to bugs (IMO).
The game development community has traditionally written their games in a language like C++. This is partly for performance. I’ve written software in C++ a bit in the past, but it’s always been too cumbersome and difficult for me to write with. Luckily, Realms doesn’t need to be super-fast — it’s a turn-based game with simple graphics. Web engines have advanced to a point where they are quite fast at rendering and scripting. Of course, as the game progresses I’ll be sure to keep an eye on its performance and report any findings I have.