Otherworld is an offspring of an idea I have had brewing since about the year 2004 or so. Back then I was thinking “it would be great if there was a game where everything was made by characters, from resources dug from the earth or gathered from nature, nothing is magically generated out of nothingness — and there will be babies”. Yes, one of the core ideas from the start is that I want to simulate parenthood, families, lineages and clans. I want your character’s ancestors to count. And babies are cute. Except when they’re annoying and messy.
For years I played a game called Cantr II. It had almost all the features I wanted to see in the game, except babies. No, everybody pops out of nothingness in the age of 20. Once I saw a 20-year-old emote that he was 3 and another person said that one can not be 3 when they are clearly 20. I came to accept that Cantr would never be my dream game. It could be a good game, but this wasn’t even the only flaw.
To list some, Cantr includes mixed technology levels, which bug me to no end. It’s completely normal to see someone wearing an uncured hide loin cloth, while riding a motorcycle. Or a worker who has access to steel technology still using bone knives and stone axes because they’re cheaper. *shudder*
The violence system has also caused a lot of grief. Instead of doing a complete rewrite, they have been patching on new limitations for over 10 years, and nobody is ever satisfied. Due to the slow-paced nature of the game, you can only hit a person once a day. So try having a duel. Even if both parties are online, you hit once and then you have to wait 24 hours real time, twiddling your thumbs or emoting hits that don’t actually count. At one point, skills were added to allow some people to be better fighters than others. This meant a lot of people were abandoning newspawns with poor fighting skill and strength, because reaching the high levels would take real life years of training every single day. Ain’t nobody got time for that.
Mushroom people and other dead ends
At one point I was briefly brainstorming a game with Adam Berg, who is a professional programmer. This idea didn’t get further than the start. I mostly spent my time fiddling with a Flash program that would allow drawing polygons by dragging and dropping anchor points and also made a crappy interactive doll where you could change the dimensions of the clothing (where the hem lands, how wide is the neckline, etc). One of the ideas for the game was that there would be an alternative type of people called the mushroom people, who were immune to pain, didn’t have to eat and could lead a fast-paced, easy lifestyle. This was meant to fill the needs of people who aren’t interested in a slow healing process and fancy cooking. Soon after we started questioning ourselves: Why were we doing this? Why trying to cater to a group of people who are basically griefers? The project soon fizzled. However, I saved some of the materials I had written to be recycled elsewhere.
In April 2012 I started fleshing out some background information for Otherworld. I researched things that I found relevant, such as how tall boys and girls grow by a certain age. Yes, at this point this felt like something I just had to know. Five years later, height still plays no part in the game. I also had an idea of calling object types “presets” and they would have a tree hierarchy, so that you have the concept of “knife” and then the sub types of “bone knife”, “stone knife”, “bronze knife”, “iron knife” and “steel knife”. Or “building” – “hut” – “palm frond hut”. I wrote a php script for an editor that allowed me to enter new presets in the local database. By this point, the game only existed on my computer and was run through apache.
In August 2012, I drew the first maps for Otherworld. Five years later, we are still currently using the same map, but there are plans to switch over to a completely new map once the testing phase ends. At this point I was dead set on the world being spherical, no matter how confusing it would be to simulate! This idea has later been scrapped for simplicity’s sake. Currently the world is a cylinder but it’s not completely out of question that it would one day return to a spherical form.
Also in August, I had to make changes to all existing code to switch from mysql to mysqli. I considered pdo but it looked more complicated to me, so I settled with mysqli and have used it ever since. I’m very glad that I didn’t just think “meh, I’ll fix it later” because currently Otherworld contains roughly 300 php files, some of which are over a thousand rows long. I admit I have used quite a bit of copypaste instead of trying to come up with functions to combine actions that are almost similar but not quite.
I continued working on mostly background research until September, after which I took a break.
In 2013, I worked on and off on things like which animals there should be and spend a lot of time entering the anchor points of polygons which describe the shape of the islands, forests, deserts, etc. into the database. Pretty much manually. Only to later decide that I would instead use a system where it reads the terrain type from an image file, thus rendering polygons obsolete. There was also an idea that islands would be randomly generated near coasts, and if nobody living had them memorized, they would cease to exist. Overall, the thought was that people can only memorize a limited number of locations, and if nobody has a location memorized, it gets purged and if another person later explores the same location, the trees, rocks, water etc. might be in different parts of the local map. Hopefully we will never run into a situation where we will be forced to forget locations to save space. It seemed to me that storing local maps in image format (100×100 pixel images where red, green and blue stand for different aspects) would take less space than entering the same data in a database. I could be wrong, and it could most likely be optimized, but we can think of this later. Currently having the local maps as visual files makes it easy to see at a glance if there are bugs in location generation. I still haven’t finished tweaking how water behaves, so a lot of coastal locations have roughly diagonal “inlets”.
In 2014, I worked on the concepts of clothing, cooking, jewelry, skills, character creation, activities, defense and NPCs. In 2015, I did hardly anything at all, as far as I can remember, only writing the rules for the game and researching what people look like with different fat percentages (which is a better indication of health than BMI).
2016 is when things finally started rolling properly. In January, I decided the placement of the resources, of which there were lots. I wanted to have all the things we couldn’t have in Cantr, especially zucchinis! (I love zucchini.) I researched which part of the world each plant was originally from, then placed them on the islands that were inspired by that part of the world. Some problems existed, such as North America and Europe being merged into a single continent, as well as Asia and South America. Also, there was no India anywhere, which turned out problematic because a surprising amount of things originate from India. Also, the Mediterranean region was only added as an afterthought, and technically exists at a latitude where it would be too hot for that climate.
It was in June 2016 when I truly got inspired of turning Otherworld into reality. Overall, 298 background research and conceptual files were created, as well as roughly 140 php files.
Major failed idea: Flexitime
One thing needs to be addressed from this era. At this point, the idea was to have flexible time, so that people could advance at their own pace within a month ( = one day in real life), and at the end of the day, people who hadn’t spent all of their moves would be moved over to the same starting line. This made human interactions very difficult, as people could only interact if they were in the same moment on their own timelines. There had to be workarounds, like pending gives – when you give something to a person who is in an earlier point on their timeline, they only receive the item when they reach the moment of giving on their timeline. If they leave the location before that, the item either returns to sender or falls on the ground if the sender has also left. Also there was an idea that if somebody left a location, it would be possible to follow them within 12-18 real life hours and instantly jump to their location and time as if you had started following them the moment they left. Also combat was going to work so that people had to confirm their reaction within 18 real life hours, and if they didn’t, the attack would be resolved automatically. This would mean that people could be stuck in combat for days, especially if somebody was stalling on purpose. The benefit would have been that if the defender did happen to be online, they could choose to speed up combat. But why would they want to, if waiting 18 hours would give them time to rally all their OOC friends in their defense? It took me months before I accepted that this idea was too complicated and had to be scrapped. There might still be some ghosts of processing methods that were overcomplicated due to flexitime.
Since 2017 is still ongoing, I won’t go into details on what has been done during this year.