I went into the graphic design project knowing it was one of the most time consuming projects, but one of the most important because it defines the look and feel of the entire feel, as well as creates the first impression.
I also had
very little experience with graphic design.
After lots of research, I decided on a low poly style.
Not necessarily because it was, "the in thing", but because it seemed I could create 100% of the graphics, art, assets, etc. as a solo developer.
Next came researching software.
After many days of reading, testing, and YouTube, I decided on Blender.
And it was a very easy decision after learning about one key feature: it runs Python!
Blender & Python (& AHK)
After deciding on a low poly style, and Blender as my software, I found this
video, by the great, and wonderful. and amazing
Grant Abbitt.
I followed the video many times, and made many trees.
But then more importantly, I learned Python, then wrote a script to create a pseudo-random tree with a single click, based on a set of constants I assigned for the tree, such as trunk diameter, branches, forks, leaves, and colors.
That was it, I was off to the races.
Fast forward a few months and I had a few thousand lines of Python that created entire gameworld sectors (see
Highlights below for the GIF!)
One very unique feature to this design was that although the same handful of assets were used for a specific object (let's say a fly agaric mushroom) when any of the different assets were placed in the gameworld, the size and rotation angle was randomized, giving the feel of even less repeating assets :)
And the final aspect to this design process was to learn AHK (AutoHotkey).
This allowed me to let AHK take over the keyboard and mouse, run the Blender Python, and create the gameworld while I was away from the computer!
Isometric Gameworld
In my heart, I knew I wanted an isometric gameworld, mostly because of Super Mario RPG.
Shooting an isometric gameworld in Blender was "easy", just change the camera angle!
Implementing it Unity on the other hand, proved to be a tall task.
Quite a bit of code was required to account for things like foreground/background, pivot points, colliders, physics, and more.
Also, each asset required a little more planning to implement it into an isometric world.
But, as usual, once the workflow was finalized, it was totally worth it!
Low Poly Art - Gameworld Assets
Blender and Python (& AHK) could create the gameworld, but I still needed to create the assets that are used in said gameworld.
I really did like the low-poly art style, and it really fit my creative style (I am by know means an artist!)
So I did as I always do, I researched a ton, and created massive spreadsheets.
I researched grass, rocks, mushrooms, flowers, plants, trees, colors, and their climates as well as growing patterns.
Then I created them all in Blender :)
Low Poly Art - Inventory Assets
I took a slightly different approach with inventory assets.
As far as "what" I needed to create, that had already been decided when creating the game mechanics.
For example a blue herb, or green tea, or wooden shield.
This design process was mostly using reference art, then having a lot of fun bringing the asset to life.
And with all of the gear (weapons, armor, etc.) I had even more fun adding an extra layer of creativity by branding it with the lore of the game.
Whether it was forged by a certain famous blacksmith, or used in a great war, or originally designed for a specific warrior, each piece has it's unique marking.
And with Unity's FBX import, the player can see the 3D model of each piece and inspect it for themselves (see
Highlights below for the GIF!)
I also created the tools using a similar process.
Inkscape
I also needed a basic 2D software to design some basic icons, as well as add some flair to the UI.
I decided on Inkscape, which is definitely not without it's flaws, but it got the job done.
Most of the UI was designed with Inkscape, including the scroll symbols for magic abilities and sword techs.
I also used inkscape to create the world map, region maps, and dungeon maps (see
Highlights below for the Screenshots!)
Other Designs (see
Highlights below for the Screenshots!)
I also used blender to create the battle backgrounds, similar to the gameworld, but built differently and shot at a different camera angle.
The cutscenes were designed in a "comic book page" style, and shot in hand-built gameworld areas at many different camera angles.
Building creation (including castles!) was another huge project, but again Blender Python (& AHK) to the rescue.
I was able to write a few different scripts that literally built entire houses from the ground up.
As a matter-of-fact, the dungeons use similar scripts, because each room is essentially a "separate building".
And last, but certainly not least, was the creation of the characters, both "human" and enemies!
That was such a huge project, that it has it's own project page
here.
Special Effects
Finally it was time to add some flair to the battle animations.
I used images, code, and animation events to add Attack FK (mostly motion lines).
This was a bit tricky with different animations, weapons, and characters, but in the ended, added the perfect little bit extra!
I then used Unity's particle system to create many different effects.
It was used for items, magic, abilities, UI effects, and more.
The particle system is quite robust, and can be used in many ways.
The higher level magic animations use multiple layers of particle effects :)