How One Programmer Created Gaming's Most Complex Ecosystem

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
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.
Info
Channel: ThatGuyGlen
Views: 1,385,034
Rating: undefined out of 5
Keywords: how rain world was made, how rain world was developed, how rain world was created, rain world behind the scenes, rain world video game documentary, how it was made, making of rain world, rain world making of, video game documentary, behind the scenes, rain world documentary, rain world development, rain world downpour, video game, procedural animation, procedural generation, james primate, joar jakobsson, downpour, ecosystem, ai, indie, documentary, videocult, thatguyglen
Id: 6Ji2q3WQE78
Channel Id: undefined
Length: 28min 28sec (1708 seconds)
Published: Tue Apr 04 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.