Nameless

Introduction

Nameless is an action RPG with heavy emphasis on crafting. All your player's skills will be bound to the type of weapon they use, creating a truly classless system. The crafting will take place as a handful of different skills. There will be Bladesmithing (daggers and swords), Fletching (bow and arrow crafting), Spellbinding (staffs and mage books), Blacksmithing (all metal items), Tanning (all leather items), Cooking (all healing items), and their counterparts in gathering. There will be three unique areas to the game world, each with a unique boss, enemies, and crafting materials. Nameless is my current passion project. I'm really using this as a chance to spread my reach across as much of the game as I can. Aside from a premade engine and art assets, I'm creating everything from the ground up.

Story

The world was torn apart by the evil demon king Nailliv. There is only one weapon that can defeat him, created by his own hand, but it was destroyed and all of its pieces scattered across the remnents of the world. Each piece is protected by and imbued with an ancient evil. As the pieces sat in waiting for their master to return they leeched consentrated evil into the surrounding land and their inhabitants.

Overview

Putting together Nameless has not been an easy task. It all had to start with some good planning. It's important to lay down the bones you want your game to follow, and the direction it needs to go in, before you start putting in any of the actual groundwork. For me, this mainly consisted of dropping my thoughts into flowcharts and mapping out potential classes and how they work. It probably looks like a jumbled mess, and that's because it is! It really helped me frame out the backend of my game and get the ball rolling.

This is an early screenshot from when I just started planning out the game mechanics and UI.

This screenshot is from when I was planning what the class structure would look like. Not everything ended up exactly the same, but this really helps get the code off the ground.

Not all of my thoughts are jotted down at my computer. My notebook is filled with sketches, notes, maps, all kinds of good stuff!

Once most of the core features and class structure was planned, it was time to move onto the design and development. I always like to start with the menus. The main menu is the first interaction point in the game so it's really easy to jump off from there. Once I get the placeholders in for a few menus and some button interactions, I can really start in on the code. I really wanted to focus on longevity and expandability in this project, so I created a handful of helper tools and a command interface. The helper tools, or 'Nameless Utility', cover everything from loading and caching game objects, to encrypting character saves. The command interface lets me create custom commands with callbacks that allow me to debug and interact with various features in game. Both of these tools allowed me to streamline development immensely and get the bare game up and running. At this stage in development, I was mostly working on the core backbone of the game. I was mainly focused on the flow into the game. Making sure that everything starting from pressing play through loading into the game world was properly working.

After I got the characters saving and loading, I started to work on character interaction and the UI. I created a robust animation controller to dynamically queue and control player animations. This was an important feature to make sure the player movement and attacks feel responsive. The animation controller was incredibly tricky to set up. It was very finicky to sync up the player inputs with the events and states of the character animations. Once the character was properly responding to player inputs, I decided to take a step back from code and update the UI. Thanks to doing the prep work in advance, I was able to just jump in and start swapping the assets. Many of the menu designs stayed the same but not all. A functionality and scope changes, features get added, dropped, and changed.