Create a 3D RPG in this ORK 3 tutorial series.
About this Tutorial Series #
This tutorial series will go through setting up an RPG based on the status system setup tutorial series and will cover a wide range of topics: battles, menus, quests, crafting, etc.
The game will use Turn Based or Active Time battles – or both, if you want. It features a large world scene with 2 towns and many fights in between, as well as a dungeon with 5 levels you can access from the world.
There are several sub-series handling certain aspects of the setup with their own tutorial number count:
- ANIM
Covers animating battles (starts here). - BATTLE
Covers battle setup independent from the used battle system (starts here). - TURN
Covers setting up the Turn Based battle system (starts here). - ATB
Covers setting up the Active Time battle system (starts here). - MENU
Covers setting up the menu screens (starts here). - DUNGEON
Covers setting up the dungeon (starts here). - QUEST
Covers setting up quests (starts here). - CRAFT
Covers setting up a crafting system (starts here).
The sub-series are sprinkled in-between the overall tutorial numbers and can also continue at a later time. It’s recommended to follow the tutorials as they are listed – also, each tutorial links to the next one at the end.
This tutorial series is still ongoing and not yet complete.
Download the Tutorial Assets #
The assets provided for this tutorial series are not for commercial use.
You can download the tutorial assets here:
Please note!
This package requires using at least Unity 2020.3.
It’s recommended to use LTS (long term support) versions.
You’ll probably get a couple of import warnings for some of the FBX models of the package, you can ignore them.
Used Assets & Special Thanks #
You don’t need to download them separately, all you need is included in the tutorial assets pack download above.
I’d like to thank Jean Moreno (JMO) for letting me use some of his Cartoon FX particle effects in this tutorial. The used particle effects are coming from the Cartoon FX Free, Cartoon FX Remaster and Cartoon FX 2 Remaster assets.
Remember, the tutorial assets are not for commercial use, if you want to use JMO’s effects, please purchase them in the Unity Asset Store.
Another special thanks to Quaternius, who provides a large range of free 3D assets under the CC0 license. If you like Quaternius’ work, consider joining their Patreon to support them!
First Steps #
Before getting started with the actual 3D RPG playground tutorials, we’ll have to do some basic setup in the Unity project.
1. Create a new Unity project #
Use the Unity Hub to create a new Unity project.
Use at least Unity 2020.3 or newer.
Use the 3D template to create the project.
2. Layer Setup #
First, after creating the new Unity project, we’ll set up a new layer that’ll be used by the tutorial assets.
Open Unity’s layer settings, either via the Layers popup in the upper right corner:
Or via the Unity menu: Edit > Project Settings… > Tags and Layers
If your project already had layer 10 set up, you probably started with a project that has something else set up, e.g. by using a different project template. That shouldn’t have an impact on the tutorials in most cases.
Change the following layer.
- User Layer 10
Set to Combatants.
As the name suggests, this is the layer the prefabs of our combatants, but also their equipment, will be placed on. The tutorial assets are already set up that way.
Why? It’s generally a good idea to have things on different layers, e.g. for this tutorial, the ground (and other scene assets) are on the Default layer and the combatants on layer 10 (Combatants). This makes it easy to use raycasting for positions on the ground without being blocked by combatants.
3. Import ORK Framework #
Import ORK Framework (including Makinom) into your Unity project.
Use either ORK’s free test version or your paid version from the Unity Asset Store (via the Unity Package Manager).
4. Import Tutorial Assets Pack #
Import the tutorial assets pack you downloaded above.
5. Adding Scenes to Build Settings #
For being able to load scenes in a running game, they have to be added to Unity’s build settings. After importing the tutorial assets, we’ll add the scenes that where included in the package.
Open the build settings using the Unity menu: File > Build Settings…
Add the following scenes to the Scenes In Build:
- Assets/Scenes/Start Menu
- Assets/Scenes/World
- Assets/Scenes/Forest Battle Arena
- Assets/Scenes/Swamp Battle Arena
- Assets/Scenes/Dungeon/Dungeon Level 1
- Assets/Scenes/Dungeon/Dungeon Level 2
- Assets/Scenes/Dungeon/Dungeon Level 3
- Assets/Scenes/Dungeon/Dungeon Level 4
- Assets/Scenes/Dungeon/Dungeon Level 5
- Assets/Scenes/Dungeon/Dungeon Battle Arena
You can delete the SampleScene that is included in each new Unity project. It’s located in Assets/Scenes/.
6. Follow the Status System Setup Tutorials #
This tutorial is based on the status system setup tutorial series.
Either follow the series to set up the status system, or download the completed setup and import it into your project.
You can also use a different status system setup if you want – just keep in mind to make the needed changes in the setup based on your system (e.g. using different items or equipment).
7. Initial Unity UI Setup #
Follow the initial setup tutorial for the Unity UI module, this includes:
- changing your project’s UI System Type to the Unity UI module
- setting up TextMesh Pro
- setting up the UI Environment scene (for prefab editing)
- creating a first UI box prefab
- creating default input prefabs
You can also download the UI asset package provided in the initial setup tutorial and use them in your project setup instead of setting up the prefabs. You still need to set up TextMesh Pro and the UI Environment scene.
Ready! #
You should now have a set up Unity project with ORK/Makinom, the tutorial assets, Unity UI module setup (including TextMesh Pro) and the ready-to-use status system setup.
And with that, it’s time to start with the setup – we’ll start with setting up the player to get out into the world.
Download the Completed Project #
If you only want to test out the project or compare it with your own setup, you can download the completed tutorial project (up to the currently last tutorial: 16 Follow Me!):
Download Completed Tutorial Project
This is a Unity 2020.3 project, extract the content of the zip-file and open the project in Unity. The completed project comes with ORK 3’s free test version (you can import the full version from the Asset Store after purchase).
The project starts with the Turn Based battle system in use. Navigate to Battles > Battle System > General Settings and change the Default Battle System to Active Time to use the active time battle system.
Missing Script References #
If you run into missing script reference warnings or don’t see any UI when playing, reimport the following folders (in that order):
- Assets/Gaming Is Love/Makinom 2/
- Assets/Tutorial Assets/_Created/
That should solve missing script references on the UI prefabs.
Detailed Setup Guide #
Here’s a detailed guide to setting up the completed project in Unity and reimporting the folders to avoid missing UI scripts:
- Download the completed Unity project (zip-file)
- Unzip the file
- Add the project to your Unity HUB
- Open the project with at least Unity 2020.3
- (Optional, only needed with missing script references)
Right-click on the folder Assets/Gaming Is Love/Makinom 2/ in the project view tab and select Reimport - (Optional, only needed with missing script references)
Right-click on the folder Assets/Tutorial Assets/_Created/ in the project view tab and select Reimport - Open the Start Menu scene (Assets/Scenes/)
- Hit play
The completed project comes with ORK 3’s free test version – just import your full version into the project in case you want to use it.
Controls #
The finished project uses the following controls:
- WASD
Player movement - Right Mouse Button
Hold+drag to change camera - Mouse Scroll Wheel
Change camera zoom - Arrow Keys
Navigate menus - Space
Accept/interact - Escape
Cancel - F1
Call menu - E/Q
Switch between tabs or combatants in menus