Isle of Ruan
Prototype Postmortem
Isle of Ruan
Isle of Ruan is a prototype created with Unity over the course of a month, from November 16, 2021 to January 16, 2022, for a single-player fantasy game that takes place on a remote island populated with magical creatures and monsters. The game itself was intended to be a more combat oriented take on Rust with RPG elements.
Overview
Isle of Ruan began as a personal project in an effort to expand my knowledge and gain experience with utilizing assets and tools in order to design a playable game, similar to the process that would take place in a professional setting. Experimentation quickly turned into a desire to create a prototype of a “what-if” game that had been sitting in the back of my mind for a couple of years. This idea was a spin-off of the popular survival game Rust but with RPG elements and a class based combat system that could include fantasy elements and creatures.
Tools
Gaia Pro 2021 - Gaia Pro is a powerful world building tool with procedural generation capabilities.
I knew I wanted to create a way of procedurally generating the world to get the same unpredictable element that Rust gives with each new world. Having important resources and locations randomized is a key element of what makes Rust enjoyable and was one that I wished to imitate. I started off with a couple of attempts of creating my own procedural terrain generation tool that ended with unsatisfactory results as my terrain objects had a tendency to clip through the terrain at one point or another. To get the best results I decided to utilize Gaia Pro in the generation of my terrain and configured it with my desired settings to populate the island with my assets.
RPG Builder - RPG Builder is quality tool capable of setting up an rpg’s base elements quickly.
RPG Builder seemed like the type of tool suite that a studio would utilize in their game design process so I decided to focus on using this tool as the foundation for the game. It’s a well designed tool suite that allowed me to set up most of what I needed with relative ease due to its documentation, however it’s dependence on itself made customizing certain aspects of the game rather challenging at times.
Process
The first step of creating Isle of Ruan was to get the island created, but I wanted to create it in a what that the terrain would be interesting and unique each time but wouldn’t cause issues with resource placement and possibly future mechanics, such as building. So I experimented with settings until I could accurately generate islands that had hills and valleys in moderation and relatively flat areas so that there was enough variation without it looking boring. This was one the most important processes for the game since it would impact the look and feel of the game the most.
Setting up the terrain objects, textures, and overall feel of the world was the next point of focus. I wanted to populate the world without over crowding it and minimizing the impact on performance as much as possible while still making the game look alive and gorgeous. Utilizing Gaia’s rules for biome spawns I was able to find a nice balance while also controlling where they would spawn. Which helped prevent unnecessary spawns in places where it wouldn’t make sense, such as underwater or on cliff sides. After adding post processing, water, and wind effects to the world I was happy with where it was at and began focusing on the gameplay part of the game.
Learning and utilizing RPG Builder to create the gameplay and UI of the game was the most time consuming and informative aspect of the game. RPG Builder utilizes scriptable objects and a custom editor to set up almost everything an RPG could need so I spent most my time learning the tool and experimenting until I could easily utilize it for what I needed. I started with getting the most basic elements set up first such as the character controller and basic animations to ensure that there were no issues with traversing the terrain. Once that was established I could turn my focus to creating the other elements for the game such as the class system, combat, crafting, etc.
Once the player’s side of things were completed and I was more or less happy with how things were looking I turned toward creating the NPC’s that the player would be fighting. This was the last thing I needed to implement for a working prototype and personally my favorite to work on due to it bringing everything together. I created four different npcs each with their own animations, loot tables, and stats, including boss versions of three of them. This was to add variety and difficulty to the game while also ensuring that all the previous systems were functioning properly
What Went Well
The island generation in terms of its variety while also remaining realistic and traversable is by far my favorite part of the game. I’m particularly fond of Level Design an seeing each new island looking roughly how I wanted them too within their parameters was extremely satisfying and encouraging. I believe the reason it turned out well is because I kept the island from being too uniform while preventing unrealistic situations for an island so that it aided to the concept of being stranded on an island.
The look and feel of the game after everything is said and done looks fantastic and garnered a lot of comments and praise during development from friends and colleagues. The grass and trees are diverse without being dense and cluttered so there is plenty variety everywhere you look. The low poly art style is consistent and pleasing to the eye, combined with the lighting and slight breeze make the environment seem alive.
Prior to this project, scriptable objects were something that I knew of but had no experience with in a project, so working with a tool that used them for a large portion of its functionality allowed me to get a lot of hands on experience with them. The best result of any project is to learn and while I learned many things during this month I view the understanding of scriptable objects and their application to be one of the most rewarding moving forward.
What Didn’t Go Well
<Describe the biggest struggle the team encountered while building the game, and describe what went wrong, and how you might improve next time>
Animations were by far the biggest struggle encountered while building Isle of Ruan. With limited knowledge and experience in regards to animation I opted to utilize Mixamo.com to obtain animations for the game. I also personally found RPG Builder to be difficult to work with in regards to animations due to its required dependence on certain scripted elements and how they impact animation speed/transitions. The lack of experience and inability to custom make animations resulted in choppy animations and transitions. In the future I’d definitely learn how to work around a single one of these issues by either learning to make my own animations to tailor toward the player controllers script or by designing my own player controller to work in tandem with the tool.
Performance was another area that I struggled with at first due to my limited experience with LOD’s and the impact on performance open worlds can have if objects don’t have them. My first mistake was populating the world with hundreds of game objects with no LOD’s in conjunction with the grass. After some research I managed to fix this by adding LOD’s and using Unity’s terrain system to populate the world with trees and grass, which drastically increased the performance. The performance isn’t perfect but it’s playable at this point in time and moving forward I’ll research more on ways to optimize rendering performance via code or other tools, especially in open world projects.
The flow of the game is probably the most disappointing aspect of the game. As the game stands the only thing to do is gather resources, craft, and hunt monsters. It occurred to me that during the design process I focused too much on learning and bringing my concept to life, and failed to recognize that a core reason the game I based it on was fun is due to the fact that it is a multiplayer game with creative elements. My prototype lacked the ability to play with others and the capability to capture the audiences attention outside of its combat mechanics. In the future, when my skills are more adequate, I would like to improve this project by adding building mechanics and networking functionality to allow people to play together.
What’s Next
I do at some point intend to revisit this project when I’m confident I can properly implement the elements needed to make it the way I originally intended, but for now intend to shelve it until that time comes and use it as a valuable learning experience from feedback.