Mogrimera Disciple of Order
Artist Friendly Tools
In order to build a large RPG you need some handy editors and tools! From editor pages, complex object spawning, object updating based on inspector changes, to customized inspectors with buttons and macro command! The idea behind all of these tools was to make folder/data handling and making game ready assets easier for designers (including myself) and artists that are in the project.
To maximize efficiency we broke down variables to sliders when able to. Building buttons that could build in an actor from scratch in editor, even allowing update of art , colliders, camera rig, sub objects like personal UI elements, etc. based on a selection from a procedural drop down menu on the object! This not only speeds up production but made the tireless task of setting up things like having to update things after editing (when unable to use prefabs), down to a single click which led to less mistakes and bugs being made.
Complex AI And Time Events
Utilizing A* as a base and Behavior Tree’s I was able to inject my own code to create what Mogrimera needed for AI. Due to the way Mogrimera handles it’s animation, characters, and world we needed a more elegant solution to path finding and tweaking. Utilizing A* really improves the workflow for AI, allowing a lot of things to be automatically done within custom locomotion scripts. While custom nodes for a plugin called Behavior Designer allowed me to utilize a behavior tree the way I needed it, with it’s own custom nodes to follow our needs.
Since time is a driving factor to the gameplay of Mogrimera, we wanted to push AI decisions and routines with it. Creating a system that runs off of polymorphism to quickly create needed blocks as needed and ensure a less buggy system in play. This not only allows us to create a drag (or click) and drop system that enables designers to patch together the routine of the AI quickly and easily alongside the behavior trees. These can then be put around the world to spawn or actors/objects hooking up to a manager to help keep resource usage minimal.
Another important thing for us was the ability to markup sections of our map visibly to help define wandering fields, spawning reach, area to area node pathing and environmental information such as food/water sources. While Aline helps with the back end, we’re able to pair it with script variables/methods to really build some intricate editor handles.
Optimization in Mogrimera
Mogrimera is an open world rpg, where many creatures wander the world and you play as a wizard going to school! With such a large scope we needed to really get creative with optimization.
The first hurtle was having this all run in real time with a day system involved. With a large world with dynamic environment, and lighting. mixed with over thousands of objects including grass meant trouble from the start. But having control over static flags, procedurally combining meshes, light baking and light management made the environments manageable. While fine tooth combing over things like start methods, scripting techniques to refine and lower overhead costs and custom garbage allocation allowed them to run rather smoothly with minimal load times.
Finally, setting up appropriate occlusion made this game run at an incredibly fast 60+ frames per second at the desired level of detail!
Designing The Levels
It was my duty to take game elements, as they became available, and organize/place them in a scene to test gameplay. My job includes white boxing, prefabbing, nesting prefabs, sculpting, manipulating terrain, applying appropriate collision, applying static properties, and material tweaking.
The majority of lighting came from a few sources throughout the level. I am primarily using layering to mask off certain objects from lights for more control over the coloring.
The final touches were made with post-processing and custom shader graphs. I added a little bit of bloom and used color toning to create a wide arrange of colors from cold to warm. Lastly, I used the vfx graph to produce a nice overlay of fog that the player can run through.
Here’s a quick glimpse at the varying layers one of my areas had!
Fun With Shaders
Mogrimera has a lot of cool concepts behind a lot of it’s art, but sometimes while art is great, shaders are needed to fully make it. However, shaders can be rather difficult to understand and do. While I do know a bit of GLSL my preferred way to create them now is with a graph. Whether that’s through Shader Graph or Amplify, I’m rather proficient with both. From utilizing normal/spec/smoothness maps I was able to create paper doll characters that feel alive in the world by showcasing their fake depth from the light around them. To creating water that can dynamically move around it’s world and be projected along it. Shaders can be fun, make the impossible… possible, and really help showcase a truly amazing piece of art.