Two years for developing an MMO

Two years for developing an MMO #

I am a huge fan of MMORPGs. I particularly enjoy the raiding experience. I like to play in coordination with other people to defeat a boss. In recent years, I developed an aversion to the current direction of popular MMOs. I do not want to grind for hours to have one hour of raiding time.

That feeling sparked the idea to develop an MMORPG that focuses on raiding. Since October 2021, I worked on Raiding.Zone in my free time.

Prototyping with the Korge game framework #

I already had some experience with building web services and real-time calculations. The idea evolved for a couple of weeks. After that, I wanted to try it out and see if it worked.

For the game server, I chose Kotlin, SpringBoot, and WebSockets. To maximize code reuse, I tried the Kotlin game framework Korge.

The framework is potent for prototyping. I could build something that worked in a couple of weeks.

first prototype

I used it for a couple of weeks before I was getting more and more frustrated. The framework misses some advanced features. There is no “camera” feature, and particles are hard to simulate. It builds on the JVM, so the performance will take a hit if you have more complex scenarios.

Top-down Prototype in Unity #

Eventually, I threw the Korge prototype away and rebuilt it in Unity. I built some code-generating tools for C#. That enabled me to reuse my data structures and serializers from Kotlin. Right now, I have about 10k lines of generated C# code. I have used Unity before while I was studying. But things changed, and I had to relearn most of it.

One of my major problems was that I never needed to design something good-looking. In my career, I always focused on backend and infrastructure problems. So, I had to learn to paint and compose pixel graphics. I had to get my head around particle systems and Materials. The result was ugly or with more goodwill spartan. first trailer

I reworked player avatars, redesigned all enemies, and added more details to the levels. There were even basic animations for casting and movement.

second trailer But I hit a roadblock here. I couldn’t make it more appealing without an enormous effort in creating more pixel graphics. Imagine a top-down style that is slightly tilted forward.

I didn’t want to invest the rest of my development time in creating sprites for each direction a character could look at.

Redesign in Voxel style #

After many long walks bouncing ideas and overthinking later, I decided to try Voxel style.

It is related to the pixel graphics I already tried out. There is just another dimension to take care of. I used the sublime tool MagicaVoxel.

voxel art

I reworked one scene, was satisfied with the result, and reworked the whole game. Most of my particle effects were portable to 3D. The player avatars were more demanding.

Dynamic equipment systems for player avatars are a challenging topic. You want to reuse most of your animations but allow special weapons to have their animation. After some hardships, I got something working. It makes excessive use of animator triggers.

Different weapons sometimes have different walking animations. But AnimationOverrideController solves this problem.

first 3d trailer

Without lights and shadows, it still looks flat. Baking the Lightning correctly and in a finite time was a challenge.

Fortunately, my development PC has a GTX 1080 and 8GB of video RAM. That means I could use Unity’s GPU-Baking feature. Baking still took an immense amount of time. I had to reconfigure my meshes and materials and redesign some levels. Previously, one of my scenes contained 50 Point lights. I reduced it to 10, but baking still took over 3 hours for the final version.

with lights and shadows

Marketing is either frustrating or pricey. #

Before doing anything to sell my game, I read a lot of articles and guides about game marketing. The overall message was that you cannot start with marketing too early.

So, I started producing a trailer for the very first 2D version. I got mixed feedback at first. The idea seemed nice, but the graphics got a lot of reasonable criticism. I kept improving my game and publishing trailers and articles. Time after time, the comments became more positive.

Of all the platforms I tried, I found to be the best. They have quality control and keep the amount of low-quality content in check. On average, I got around 100 views per dev-log. That puts you in the top 20 of the site. This list directs valuable traffic to your game. is over-saturated and doesn’t impose restrictions on how many updates are allowed per week. So there is a lot of low-effort content. Some people even post three dev-logs a day.

I can also suggest for dev-logs. They have less traffic than IndieDB but are also restrictive about update intervals.

I also posted regularly on some subreddits, but all the indie gaming subreddits are full of people like me. We don’t consume content and only want to fan out our stuff to get views.

My most efficient but boring marketing tools were ads on Facebook and Instagram. You even get some followers and likes from them. After registering, you can create a campaign, set a daily cost limit, and it starts delivering clicks to your chosen site. They are cost-efficient. You get 10 clicks for 1$ invested.

facebook ads

After starting my campaign, I realized that Kickstarter isn’t a great tool for video games. There are tons of campaigns from which only a few are successful. My best guess is that the successful ones already had a platform before starting their campaigns.

I had some success with Twitch streamers. I wrote a ton of streamers that already play World of Warcraft. Of the over 50 requests I sent out, only two got answers. One of them resulted in a deal. I just looked for streamers that have 20-50 viewers on average. They don’t reach as many people as a Reddit post, but you get a ton of high-quality feedback. That service isn’t for free. I paid about 5 $ per viewer per hour.

I tried out Keymailer. Keymailer connects you with content creators and game influencers. They present your game to them, and they can request a key for your game. You can also search for influencers and offer them a key directly. My overall success was mediocre at best. One content creator produced two videos. But unfortunately, they don’t show relevant gameplay.

steam launch I launched my game on 05.09.2023 into Steam Early Access. The is available on Windows, macOS, and Linux. To determine the content of the upcoming updates, I need community feedback from Early Access. I plan to add more levels, weapons, and features to it. But I don’t know if the community wants a more competitive raiding mode or another dungeon.

If I wanted to draw a line after two years of development, I would say it was fun most of the time. I learned a ton of new stuff and used technologies I had never touched before.