The development of 2D pixel art platformer
Rain World started with a simple prototype made by Joar Jakobsson, who was studying graphic
design at the time. When the Swedish student wasn’t drawing
illustrations or creating logos, he took the time to learn how to program and make sprites
move around on his computer screen. One of his early video game projects called
“Freethinker” dates back to 2008 and included some primitive AI behavior, something he would
greatly expand on during Rain World’s development. Having little experience playing games himself,
Joar was mostly motivated to make fun little games he could play with his cousin who loves
video games. The initial idea behind the Rain World prototype
was to make a platformer character that wasn’t standing upright, like Mario for instance,
and instead create something that could fall, tumble and crawl. After sketching a few designs and applying
graphics to some standard box assets, the main character was born. Early on, Joar referred to it as “The Bear”
creature. In November 2011, he posted the prototype
on the independent gaming forum asking for feedback. A couple of months later, after some tweaking
and coming up with a game concept, he decided to start a devlog to keep himself motivated. The original concept, then titled Maze Runner,
involved a static camera so players can see the entire level during gameplay. Additionally, Joar wanted to create a small
ecosystem by putting three types of creatures in a collective food chain. Creature A was small and able to fly around
the map. Creature B was the Bear character controlled
by the player and able to eat creature A, while creature C was the apex predator and
able to kill the player. The goal was simple: eat as many A-creatures
within three minutes and avoid being eaten by creature C. Eat enough A-creatures without
getting killed and you advance to the next level. Since Joar really enjoys local multiplayer
games, he aimed to make a 2-player mode as well where the player that’s able to stay
alive and eat the most creatures would win the match. Furthermore, to ensure endless replayability,
Joar had already started building a custom level editor which he planned on making available
for players so they could create their very own levels. Apart from that, the main tasks ahead of him
were programming AI pathfinding, designing levels and adding graphics to said levels
and the other two creatures. The next couple of months, Joar started shaping
the general mood and atmosphere for the art style and was mainly inspired by his time
in South Korea as an exchange student back in 2011. Not knowing the language or its traditions
and customs, he remembers feeling lost and overwhelmed. He wanted to recreate that feeling of being
an outsider in a strange land. The concrete structures and industrial parks
of Seoul inspired Joar to create an underground looking aesthetic filled with tunnels, rusted
poles, incomprehensible neon signs, tubes, and platforms the player can climb and jump
around in. Joar mentioned on the devlog it resulted in
ugly looking levels. “I have always liked ugly environments. An abandoned building is a remnant of human
activity and human thinking, and you get a different idea about who we are from just
looking at what we've built than if you talk to any one of us. This might be the reason why the post-apocalyptic
trope is so popular; wandering around the skeletons of human activity tells a slightly
different story about us.” Joar stuck to a flat color palette, explaining
levels would be pasted together from hundreds of graphical elements and having lots of different
colors would start to hurt your eyes. Having fewer colors that mainly convey light
and distance, would blend in well together and create a sort of visual harmony. Being inspired by early 20th century cartoons,
he even briefly considered reducing the colors to a black and white palette. Other aesthetic influences include graffiti,
which is partially why so many areas in the game look abandoned. It’s also why Joar styled the games’ flora
to look like graffiti ornaments, rather than traditional looking plants. As Joar began designing more levels and refining
the art style, he started to distance himself from the original concept that focused on
getting a high score within a limited amount of time. Instead, he began leaning more towards creating
a less constrained platformer survival game. In April 2012, Joar shared he came up with
the title Rain World after working on a new rainfall mechanic that changed the premise
of the game. Now, players could only hunt and collect food
when the sky is clear since the extremely heavy rainfall would easily kill them. He mentioned on the devlog he likes the concept
of exploring a world that's heavily scarred by this force of nature that you hardly ever
see, which makes it even more terrifying to him. At the start of development, all code was
written in the Lingo programming language using Adobe Director, formerly known as Macromedia
Director, and Joar cobbled together his own physics engine as development progressed. In May 2012, he sent out a first alpha version
to forum members who volunteered to try it out. Opinions were very diverse, with some people
adoring a certain level, while others absolutely hated it. The same was true for certain gameplay elements
like wall jumping. It was clear Joar needed to make certain changes
to try and strike a good balance. He also continued refining the world and its
creatures. The smallest creature had to be something
the player couldn’t sympathize with too much since that was your source of food. So, Joar opted to make it look like a cross
between a bat and a fly. The apex predator on the other hand went from
looking like a snake to taking the form of a lizard-type creature. The player character still didn’t have an
official name, but someone on YouTube simply commented “slug cats!!” and Joar ran with
it ever since. To give players a fighting chance against
the lizards, rocks and spears were added to be used as distractions or as a means to defend
yourself. It’s important to note that during the early
stages of development, Joar was still in college and had to juggle between school work and
game development. This resulted in a one hour a day work schedule
for Rain World, although there were also moments he couldn’t work on it for weeks at a time. His limited schedule remained that way until
Joar found a way to work on the game full-time. Before we move on, I’d like to talk about
this video’s sponsor, Milanote. Milanote is a free online tool for organizing
your creative projects. It’s perfect to plan and carry out your
first video game project for example. What I love about Milanote is how easy and
intuitive it is to start assembling notes, images, sketches, videos, PDFs, Word files
and anything else you need. Thanks to over 100 built-in templates, even
video game specific templates as you can see, creating a structured yet detailed project
is a quick and simple process. If something is missing from the templates
you’re using, you can simply drag anything you need onto your project or copy and edit
elements you’re already using. You can work on your projects solo or you
can invite friends and freelancers to gather important feedback and collaborate with them
in real-time. Aside from using Milanote on your browser,
you can also download the app and access your projects on the go. Milanote is available for free with no time
limit. Sign up by visiting milanote.com/thatguyglen
or click the link in the description and start your next creative project today. Milanote, get organized, stay creative. Now back to the video. Although Joar had made the decision to create
a more open-ended survival game, he was still having difficulties choosing between a game
with a hub-world layout or story layout. Both had their pros and cons. A hub-world would mean players are free to
explore and discover areas in any order, increasing replay value and a sense of freedom. A linear story layout would mean a lot more
custom and interesting game scenarios, as well as more visually interesting levels. In the end, he thought it would be more fitting
to create a hub-area with a surrounding open world that’s free to explore. Joar ultimately wasn’t interested in creating
yet another linear platformer and wanted to go for something more unique. In addition, he started developing a custom
mode that would feature several challenges and support multiplayer. In August 2012, James Primate, an American
composer, stumbled on Joar’s devlog and immediately expressed interest. After sending over an audio sketch for Rain
World and emailing each other for a few days, Joar announced he and James would team up
and work on the project together from here on out. James is also one half of a chiptune music
duo called Bright Primate. It’s no surprise then that his musical partner,
Lydia Esrig, helped him to create a chiptune inspired soundtrack. Having previously expressed being bad at sound
design, Joar was relieved experienced musicians would now produce all the music tracks and
sound effects. In the beginning, James focused on sound only,
but slowly he also took on level design, and the business-side of things, to make sure
Joar could focus on the concept, programming and art. Their cooperation grew into an equal partnership. Though Joar was a bit scared to give up more
control in the beginning, he noticed that he and James were operating on the same wavelength
and James’ ideas were sometimes better than his own. Despite the game increasing in scope and having
a team of three people now, they mainly saw it as a cool art project they would release
for free in a couple of months time. Making money off of it was the last thing
on their mind. At this point in development, Joar had made
a lot of progress with the creatures' look and behavior. Instead of using traditional sprite-based
animations that flip through a few set poses for character actions or movements, Joar implemented
a blend of classical animation and code-based procedural animation. This means that characters consist of freely
moving interconnected limbs and body parts each with their own weight, range of movement
and more, just like a real body. Each limb is then individually animated with
a wide variety of actions and motions. This makes the creatures look a lot more naturalistic
and expressive. For example, when a slugcat is climbing up
a pole, each limb "knows" its own length and is able to grab and release a pole accordingly,
presenting a natural looking hand-over-hand motion. Similarly, when a lizard is crawling along
on the ground, each leg acts as an individual motor, pulling the lizard the distance of
the limb at a certain rate. Additionally, Joar gave the lizards the ability
to pick up on sounds as well. If a player lands on the ground, a lizard
might hear the corresponding sound effect and start to investigate. To be clear, it doesn’t know where the player
is, but it’ll go to the spot the sound came from. When a lizard is actively chasing a target,
it’ll ignore all sounds. Joar accomplished all of this by giving the
creatures an AI pathfinding system designed to give them a complex and robust method for
sensing their way through the game world. In this example, the pink squares being dragged
around are an abstract test creature. The pathfinding AI first sets up a grid and
tile system. Then it calculates the available pathways
around it. Blue tiles mean "I can get here", red tiles
mean "I can get back from here" and green tiles represent both and therefore is the
ideal path to take. This is why creatures won’t just mindlessly
go after the player if that means they’ll fall in the bottom of a pit somewhere. Their own survival always comes first. This same system also works for multi-room
situations, meaning it effectively scans the entire surrounding area to see where each
exit point is in every room. Of course, the AI also has to work for moveable
targets so Joar applied more dynamic pathfinding layers to make this work. Several subspecies of lizards were also developed
to introduce more gameplay variety. Early prototypes had five different versions
that all had their own personality and characteristics by tweaking certain variables and giving them
unique abilities. Joar also saw an opportunity to add more creatures
to the game. It would make the ecosystem feel more alive,
especially if they all look unique and behave in their own distinct way. Rain World’s beings are usually a mix of
a real animal or other references and Joar’s imagination and therefore didn’t necessarily
have to move and behave in realistic ways. It gave Joar the freedom to come up with a
wide range of creatures that move, hunt and interact with the world in interesting ways. Rain World didn’t have a typical development
process. Most of the time, the design process and the
technical implementation are two separate undertakings. However, Joar allowed his creative decisions
to be influenced by his technical limitations, as well as letting technical solutions serve
creative decisions. In other words, he was constantly floating
between the roles of designer and programmer which led to better ideas in both fields. What separates Rain World from most other
games, is that enemies don’t just exist to kill the player. That would go instead Joar’s goal of creating
an accurate ecosystem that the player is simply a part of. "Instead of thinking 'how can I make this
creature act and serve as an obstacle in the game' I went at it from the angle 'how can
I make this creature behave in such a way that it can find food and move around and
get back to its home before the night comes'. So instead of the AI creatures just existing
as a player obstacle, they exist in their own right, they exist there for themselves." This results in creatures that can be difficult
for players to overcome. They’re often highly unpredictable and have
the intelligence to outsmart the player at every turn. However, the difficulty isn’t defined by
how easy it is to kill other creatures, but rather how easy it is to sneak by them and
get to the next room. That’s why Joar made sure Slugcats don't
rank high in the game’s food chain, forcing players to constantly come up with new ways
of how to deal with each creature in a multitude of differently structured levels. What’s more, each playthrough is also unique
since creatures are randomly placed in every room. Joar does admit this can result in a horrifying
first introduction to Rain World where the player has to deal with a bunch of no-win
situations in just the first few levels alone. All of these elements combined resulted in
less than favorable reviews during the game’s release, but more on that later in the video. About a year after it was decided to develop
an open world survival platformer, Joar was having second thoughts. He was frustrated that the game lacked an
ending, a goal to really strive towards, a mystery to solve. Even though he didn’t think the basic premise
of evading deadly rainfall and predators, while simultaneously collecting enough flies
to survive another cycle of hibernation, was bad by any means, it would probably get boring
pretty quick. Ideas for a more linear experience, combined
with a narrative that features players finding and taking care of slugcat pups, started to
take shape. It culminated into a fully fleshed out story
mode in favor of the previously open-ended world mode. Even though the pups made it far into development,
they were cut from the final game and replaced with a different story scenario. In November 2013, Joar and James started thinking
about how further development could be funded. After multiple attempts to complete and release
the game for free, it became clear their passion project was far from finished. Aside from adding more polish and the desire
to include more creatures and biomes, a story mode now also made its way onto their ever
expanding to-do list. Furthermore, while Joar was now working as
a freelance graphic designer, he wasn’t making that much money, making it difficult
to keep development going. After contemplating things, Kickstarter seemed
like the best option to raise a budget that would hopefully be enough to finally finish
and release Rain World. The Kickstarter was launched in January 2014
with a funding goal of $25,000. In just three days, the goal was met and on
the last day of funding, over 3000 backers donated more than $60,000. During the Kickstarter campaign, Steve Gee,
one of the senior managers at Adult Swim Games at the time, reached out to offer Joar and
James a publishing deal. Adult Swim would help take care of the marketing
and make sure development could continue even if the Kickstarter money wasn’t enough to
finish Rain World. On top of that, Joar and James would remain
in charge of all creative decisions. While having no intention of partnering up
with a publisher before all this, the offer represented a foolproof way of realizing the
vision they had for their passion project. The duo accepted Steve’s offer. Having a publisher meant taking care of lots
of business related things. So, to make it all official, Joar and James
founded their own company called Videocult. The kickstarter money combined with the publishing
deal, meant Joar could easily put his freelance work on hold and focus solely on Rain World
for the first time since development started. The first order of business was to upgrade
the outdated programming language Lingo to something more modern and transfer all the
code to a more powerful engine. Joar eventually chose C#, mainly because it
shares a lot of similarities with Lingo and therefore seemed like the best candidate to
handle the migration process with relatively minor tweaks. Picking the right engine took a while longer,
but Joar ultimately landed on Unity. Much of the next year and a half was spent
porting the game over to Unity. In the meantime, Joar upgraded the game’s
lighting system to support things like dynamic shadows and a varying amount of light depending
on the time of day, features he’s been wanting to implement since the very beginning. It turned into one of the more challenging
aspects of development. See, Rain World’s levels consist of 30 layers
of graphics, each displayed on top of each other in order to create a slight 3D effect. In short, this kind of setup made it difficult
to cast good looking dynamic shadows. After lots of trial and error and trying out
many different shaders, Joar found a solution that didn’t impact performance too much. Speaking of performance, to accomplish the
ambitious goal of simulating an ecosystem where every single creature perpetually exists,
even when the player isn’t in the same room, Joar needed to come up with a new way of rendering
creatures off-screen in order to optimize performance. Before the switch to Unity, creatures would
enter a sort of stasis when they’re off-screen, meaning only their position was saved. Joar wanted to push things further and make
sure off-screen entities could move around and still interact with each other. For this purpose, he started laying the groundwork
for what he calls “the abstract creature framework”. This framework separates creature attributes
into different layers. The cosmetic layer for example includes art
assets, while the AI layer contains programmed functions. When a creature is off-screen, Joar could
now simply turn off the cosmetic layer and keep the AI layer active. That way, creatures could still exist and
go about their daily routines without it significantly impacting performance. In 2015, freelance illustrator Allegra ‘Del’
Northern was hired to help develop concept art and key art illustrations that could be
used in-game and for promotional purposes. She also helped further shape the look of
certain creatures, like giving some lizards certain qualities that were inspired by Asian
dragons. As development continued, she became an integral
part of the team. Del and Joar came up with the idea of designing
dual-natured creatures that could switch between different ways of traversal. The vulture for instance has the ability to
fly, but can also climb obstacles and navigate its way through small corridors. One of the most important additions to the
creature roster are the Scavengers. They were created to play an important part
of the narrative and needed to be much more intelligent than the other lifeforms. Additionally, the scavenger’s design was
inspired by one of the Kickstarter backers that paid for the reward to help develop a
new creature. Joar wanted each one you encounter in the
game to be one-of-a-kind and therefore used procedural generation to create the Scavenger’s
art assets, something that was already being used for the lizards. Once the creature’s cosmetics were taken
care of, Joar began programming a system that could give every Scavenger a distinct personality
and truly make each one unique. The earliest implementation consisted of three
base stats: sympathy, energy and bravery. From these, three more stats are derived:
nervousness, aggression and dominance. Later on, Joar also wrote an AI system which
he called Dynamic Relationships. It transformed the game’s current static
relationships into ones that are constantly being re-evaluated based on events caused
by the player and Rain World’s other creatures. A key part of this system is called “Social
Memory” and is made up of five parameters: like, fear, temp like, temp fear and know. It tracks the relationship between the player
and every other creature, including other scavengers. This boils down to a number of gameplay mechanics
like an extensive reputation system that causes scavengers to form tribes, choose tribe leaders,
participate in trading items and generally be neutral towards the player when you first
encounter them. However, if the player starts to frequently
display aggressive behavior towards scavengers, a tribe will eventually send a kill squad
after you. On the flipside, if players decide to help
scavengers, by rescuing them from predators for instance, they’ll eventually become
a part of the scavengers’ pack. Scavengers will then share their resources
and even protect the player in case of an attack. Eventually, forms of social memory and dynamic
relationships were applied to lots of other creatures as well and this, combined with
their already complicated AI, led to even more interesting behavior. For example, if a player knocks off a vulture’s
mask, it will try to endlessly hunt them down. Maskless vultures will also get attacked by
other vultures. If the player holds up a vulture mask in front
of a lizard, it’ll be scared of you. Packs of yellow lizards will get disorganized
if the player takes out the pack leader. If you offer food to a lizard, it might become
friendly towards you. The game’s Rain Deer will bow to other Rain
Deer with bigger antlers. These are just a few examples that illustrate
why Rain World’s ecosystem truly feels alive and special. And that’s not even mentioning its lineage
mechanic that can cause creatures that are being killed by the player to be replaced
with stronger versions of themselves. As a reminder, all of these complicated AI
systems are constantly being executed in the background, since creatures are always in
a state of existence, no matter if they’re on-screen or not. After the Kickstarter, Rain World’s audio
also went through quite the change. Back when James and Lydia joined the team
in 2012, they had a good concept built around the idea of Rain World being a small retro
pixel platformer and therefore limited the audio to 16-bit video game sounds. By 2015, the game had gone through so many
transformations, both in gameplay and atmosphere, that James felt the current soundtrack wasn’t
a good fit anymore. The game’s new and improved moody, immersive
atmosphere required a much more naturalistic, organic approach to sound design. Out of the 130 tracks that were already made,
the team selected 80 tracks that best represented the current version of the game and discarded
the rest. From there, James started experimenting more
with hi-fi synthesis elements and manipulating Joar’s original sound effects, like the
sound of slapping a ruler on a table. Even though they were recorded using the built-in
microphone of a laptop, after some tweaking and running them through several sound filters,
it actually began to match James’ vision. Excited about these early results, he began
incorporating more audio sources produced with everyday objects, a method better known
as “junk audio”. Apart from using junk audio, James also applied
more environmental sounds such as city sounds, buzzing insects, wind going over an empty
field, the list goes on. After some sound editing and applying more
filters, it gave the sound effects and music tracks a better sense of cohesion than before. Rain World’s minimal use of dialogue, or
any other form of exposition for that matter, meant the music needed to fulfill the role
of guiding you through the world and its narrative. James’ favorite sound in the whole game
is the rainfall sound. It was made using multiple layers of sampled
rainstorms which fade in more as the rain intensifies. Various gritty elements, distortions and filters
are added as it evolves from a natural rainfall to a deadly rain. Lastly, James added heavily pitched and distorted
pipe organ sounds, to add a biblical, god-like vibe that would instill a sense of fear and
panic into the player. Furthermore, Joar and James developed a dynamic
"threat level" music system that stacks up 8 to 12 layers of threat music depending on
how dire the situation is for the player. With more danger, more bass will be added,
more percussion elements, melodies, until a full-on soundtrack will accompany the game’s
intense combat. Each region has their own unique layers of
threat music. To avoid it becoming repetitive, each layer
of audio pulls from a pool of tracks, making many combinations possible. When James began taking on more level design
and general business responsibilities, Lydia was there to make sure music and sound design
stayed on track. 2016 was mostly spent adding finishing touches
and promoting Rain World’s upcoming release. In an update on the devlog, James addressed
just how busy he and the rest of the team were and how things have changed for indie
developers. He mentioned the time of indie developers
just working on a game, releasing it on Steam and selling lots of copies, is over. Nowadays, James believes if you want your
indie game to succeed, you have to take up many different roles. You have to go to an endless stream of conventions
to create awareness, do interviews with every journalist that reaches out, build support
with various communities and so on. He compared it to running a political campaign. Spending years of your life on one project
and perhaps even injecting most of your savings into it, it’s a big risk to just throw it
out there and hope for the best. On March 28th 2017, after 6 years of development,
Rain World was released on Steam and thanks to Carbon Games, it was also ported to PS4. It received mixed reviews from critics. The art style, fluid animations and soundtrack
were highly praised, but the game’s difficulty was too much for many reviewers. Gamespot for instance wrote how Rain World’s
harsh ecosystem can lead to your unpreventable demise, causing frustration. They gave it a 5 out of 10. In many instances, the difficulty became the
focal point of the review and Rain World’s complex ecosystem mostly went unnoticed. Joar admitted he wasn’t expecting all the
negative reviews for Rain World. “It never crossed my mind that I was making
a difficult game. Then, when it was released, that sort of became
its identity. But that’s never how I thought of it. I thought of it as a simulation, and what
was most important to me was the idea that the player is just another creature. There are no special cases for the player,
the player is treated by the world in the same way as all the other creatures. It’s not a world that revolves around the
player.” User reviews on the other hand were very positive. Players that took the time to learn the ins
and outs of the fascinating ecosystem, came to have a great appreciation for Rain World. As a result, the game became somewhat of a
cult hit. Videocult released several content updates
that added things like the long awaited arena mode that featured local multiplayer, 50 new
rooms and alternative slugcats that make the game easier or more difficult. In December 2018, Rain World was also released
for the Nintendo Switch. In March 2022, it was officially announced
that Rain World would now be published by Akupara Games. After a long legal dispute with Adult Swim
Games, Joar and James finally got the full rights to Rain World back. There wasn’t much they could say or do while
they were waiting for the ruling, which is why there was such a big gap between content
updates. Since the game’s initial release, some fans
started making their own mods to add new content and lore. One programmer with the username AndrewFM
released a mod simply called “More Slugcats” in September 2017 that added five new slugcats,
each with their own abilities. However, it was only compatible with Rain
World version 1.01. While Andrew was working hard to fix this
issue, the mod began increasing in scope. Years later, almost 40 programmers joined
in Andrew’s efforts to create a sequel worthy mod. When it was confirmed Videocult had the rights
back, they contacted the mod team and proposed a collaboration. Their teamwork resulted in Rain World Downpour. It contains the previously mentioned five
slugcat variants, as well over a 1000 new rooms across ten new regions, unique storylines,
new creatures, new items, a co-op mode for up to four players and more. Downpour was released for PC in January 2023
and the team confirmed players won’t have to wait long for console versions. To go alongside its release, the base game
received a free upgrade called Rain World Remix that made it much more accessible for
new players. When Joar looks back at the development journey
of Rain World, keeping a consistent devlog was key to keep himself motivated and to build
a long-term relationship with fans. “Post every day on your dev blog, even if
you barely made any progress. Try to always have a picture, or even better,
a gif of what you're working on. And be technical, the devblog is as much for
you to keep track of your own progress as for others to read, so really let it be a
development log and not some kind of marketing blog or hype vehicle.” Another piece of advice from Joar is to start
today. The barrier of entry for game development
is lower than ever before thanks to YouTube tutorials, Stackoverflow and other tools. Of course, this also means the market is more
saturated so the real hurdle according to Joar is catching people’s attention. “If we suppose we are indies, large scale
marketing is mostly out of the question so we have to catch people's attention by being
different and interesting instead.” He realizes he was very lucky to team up with
James so early in the process, since finding reliable co-developers who are in it for the
long haul, is another big challenge. “Games take years to produce, with many
many ups and downs, absurdly long hours, and little guarantee of success. It's impossible to make progress if people
are leaving or having to be replaced for various reasons.” As for the future of Videocult is concerned,
during their work on porting version 1.7 of Rain World to all available platforms, Joar
and James started playing around with several experimental projects as a creative outlet. Joar was mostly interested in creating a 3D
game and ANIMALMYN was the result of that. It reportedly was passed to another developer
when the team got the idea for another, bigger project. In 2020, the studio started sharing multiple
cryptic messages and videos, the first one titled Signal 001. Aside from some 3D visuals and a handful of
audio tracks, it’s unclear what the project is actually about. What is clear, however, is that Videocult
is hard at work on something new and the team is excited about what lies ahead.