02 Feb Making an MMO in seven days
A few weeks ago we presented a game we made during the Norwegian Gameplay Championship, and this we week do a slam-down with a second game we made in the same game jam.
RainBow is a fully functional MMO, made in under a week! Scoping is a huge part of games in general, and especially game jams. It’s absolutely crucial to scope small to be able to finish something at all! So making an MMO is probably the stupidest thing we’ve tried. This game jam lasted for a whole week though so we were seduced by the possibility of a larger project.
The theme of the game jam was fear, and with RainBow we wanted to tackle xenophobia (in Norwegian, xenophobia directly translates to “difference-fear”). In RainBow all players are given a random colour when they log on. To gain currency you will have to stand within a small distance to other players. The more players close together, the faster the currency accumulates for everyone. The close player’s colours will over time assimilate, merging at the middle ground, so a red and blue person hanging out will both turn purple over time. The currency gained can be used to craft a bow, arrows and walls, to create a small base for your group.
Those are the underlying systems. So what happens when a group with the same colour, meets another group of a different colour? Will you fight? Or will you become friends, work together, and a new colour will be created?
Our goal of the project was to give people an open playground, a small sandbox for people to explore and play around in. But near the end, we were (naturally) forced to cut things short and compromise, but we’re still pretty happy with the final result. By cutting and keeping features to a bare minimum we ended up with a Minimum Viable Product we can iterate on later.
We might continue on this project on the side a bit, adding some kind of persistence and “something to defend”. Maybe a hunger/food resource could fit neatly? Changing or adding something ‘small’ like this will change the way people play it on a massive scale. Playing around with these ideas and systems, and seeing the results almost instantly in a multiplayer setting, is a very fun way of making video games.
Words from the devs:
Design & Art
Making a game about xenophobia is super interesting! How quickly does a group of players turn into a hive-mind, with an ‘it’s us against them’-mindset? Especially in a huge MMO world, with rules of both survival and cooperation, will ‘societies’ emerge and automatically start to compete and/or kill each other? And if so, what changes will affect it? It’s not a novel concept in MMO-settings, but making a more simplified game with this as one of the main goals was an interesting challenge.
In DayZ and Rust, people don’t take chances with strangers (often for a good reason), but in RainBow, we designed it so you actually depend on other people to gain the only currency used to craft items. Being more people is always more efficient and better.
Like any jam, we didn’t have time to add all the things we wanted, though. The most notable being a need, like food, so there’s a dynamic element that drives your actions. I would also have liked to add more things to do other than shoot each other with bow and arrow, as this limited interaction automatically pull people towards aggressive interactions (even within the same groups!).
But even within these limitations, I think RainBow turned out to be an interesting experiment. While testing with 15 players, two gangs emerged surprisingly quickly (green and blue), and almost automatically started shooting the other ‘team’ – even though no-one told them to, and that nothing separates them except colour. In fact, they would actually benefit from working together instead! What strange people we are…
It would be interesting to see how a few more elements would influence their behaviour, though, so I’m looking forward exploring it more as a side project.
Design & Programming
There is a running joke in the indie game community where “making an MMO” is something you should never do ever unless you want a world of pain and frustration down the line. We’ve had this other, much bigger, “MMO” idea internally for a while now that has been lightly chuckled at due to the fact that MMOs are something that you should never ever do as an indie game company. There are few people in the indie game industry who actually know network programming. Not knowing what happens under the hood makes projects like these have a massive unknown scope. I’m one of the very few people I know who have network programming, security and optimisation as my main area of interest on the side. “I walk a lonely road…”
There is also the problem of bandwidth optimisation, monitoring and scalability. The standard existing solutions don’t do this kind of things, so you end up having to make them yourself. This takes time.
*SpatialOS kicks down the door*
Where have you been all my life?
SpatialOS makes life easier for everyone involved in developing the game. The programming is easier are more manageable than any other solution I’ve tried, the documentation is straight out amazing, the live inspector of the game and metrics blows my mind.
It’s live and deployed in the cloud with a few clicks. With this, designers can sit down and almost see immediate changes be made to the game with live players.
Oh, and it works great with Unity out of the box, so there’s that. With Unity exploding in popularity and with people who seem to know what they are actually doing, mixed with amazing support and an actual community, I believe that this solution is here to stick. Hopefully, we will see many awesome games be made with this new tech. (This is not a sales pitch, but please try it out.)
So in seven days, we made a functional and persistent MMO with the help of SpatialOS.