Welcome to the home of my MonoGame tutorial series: A Summoner’s Tale. It is similar to my Shadow Monsters tutorial series. It has been revamped to use the latest version of Visual Studio, 2022, and MonoGame, 3.8.1. The back story is that the game is set in a fantasy world. Some of this world’s inhabitants can summon monsters from the shadow plane. The battle against each other. Ten years ago, something unexplainable happened. Shadow monsters started appearing without being called. Ten years ago, the protagonist’s father and five other summoners set out to find out why. They never returned. Can the protagonist solve the mystery of the appearance of shadow monsters and their father’s disappearance?
The complete source code for the tutorial series is available on GitHub at the following link. In addition, the individual projects are linked below.
https://github.com/Synammon/summoners-tale
Tutorials
Tutorial 01 – Getting Started
If I’ve said it once, I’ve said it one hundred times. Building a game is a lot like building a house. It will collapse if it is not built on a good foundation. For that reason, this first tutorial in the series focuses on laying the foundation for the game. This one is about creating the game state manager and adding a frames-per-second counter to the game. Also, because this will be a cross-platform game that will run on different platforms, it is set up with that in mind.
Tutorial 01 – Getting Started
Tutorial 01 – Source Code
Tutorial 02 – Tile Engine
One of my favourite things about an RPG is exploring the world and finding new places and items. To do that, you need maps. To render a map in 2D is usually more efficient to use a tile engine than painting a map in Photoshop. For that reason, this tutorial implements a tile engine.
Tutorial 02 – Tile Engine
Tutorial 02 – Source Code
Tutorial 03 – Bringing it Together
The past two tutorials had essential aspects of a complete game: a state manager and a tile engine. In this tutorial, I add a third component, an input manager. After I have added the input manager, I add a couple of game states and move to render the map on the gameplay state. I also cover scrolling the map with the aid of the input manager.
Tutorial 03 – Bringing it Together
Tutorial 03 – Source Code
Tutorial 04 – Graphical User Interface
To build the editor, we need some GUI elements. That is because I won’t be using Windows Forms as I have in the past. After all, I want everything to be cross-platform. So I like things running on Mac, Linux, and PC. There may be a few elements that won’t run on Linux. That would be the animation builder and the conversation editor. I will be doing separate tutorials for Mac and PC for those. The other thing I do in this tutorial adds the project for the editor. Also, it repairs a few conflicts by adding another project to the solution brought up.
Tutorial 04 – Graphical User Interface
Tutorial 04 – Source Code
Tutorial 05 – Graphical User Interface Part Two
We need one control that I didn’t add in the previous tutorial: a list box. It will be used for a lot of forms I will be creating. Speaking of forms, this tutorial adds to the concept of forms and game states. Unlike a game state, a form can cover only part of the screen. I didn’t add the ability in this tutorial, but you will be able to drag forms around the game window. I had to make a couple of adjustments to controls in order for all this to work.
Tutorial 05 – Graphical User Interface Part Two
Tutorial 05 – Project
Tutorial 06 – Graphical User Interface Part Three
There is one control that we will really use: a text box. This tutorial goes over how to create one. I was going to do a file open/save box, but I decided to do that in a future tutorial. This tutorial covers resolving some of the bleeding because rendering was not done on whole pixels.
Tutorial 06 – Graphical User Interface Part Three
Tutorial 06
Tutorial 07 – Animated Sprites
The editor and moving the map are all well and good. What we are missing is sprites. So, this tutorial covers adds in sprite class. Also, it covers adding an animated sprite to the game for the player to control. The map scrolls as the player moves the sprite.
Tutorial 07 – Animated Sprites
Tutorial 07 – Project
Tutorial 08 – Multiple Resolutions
I wanted to cover multiple resolutions before going much further in the game. So, I cover it now so there won’t be a lot of changes down the road. Also, I demonstrate how to save and load a settings file in the user’s application data folder.
Tutorial 08 – Multiple Resolutions
Tutorial 08 – Project
Tutorial 09 – Back to the Future, I mean editor
In this tutorial, I bounce back to the editor and cover rendering the map in the editor and scrolling the map when the mouse is at the edges of the map. I also demonstrate creating a flyout menu that scrolls on and off the window.
Tutorial 09 – Back to the Future, I mean editor
Tutorial 09 – Project
Tutorial 0A – All About Character
In this tutorial, I bounce to the game and add a character generator that the player can use to create their character in the game. Also, I cover walking around the map.
Tutorial 0A – All About Character
Tutorial 0A – Project
Tutorial 0B – Going Mobile!
This tutorial focuses on adding projects for the two mobile platforms: Android and iOS. I will likely split the tutorials into three going forward. The core that is common between the two mobile platforms: one for Android and one for iOS.
Tutorial 0B – Going Mobile!
Tutorial 0B – Project
Tutorial 0C – Movement Revisited
In the spirit of keeping the game cross-platform, this tutorial revisits being able to move the sprite around. It aims to have the same ability across all platforms. So, it implements tile-based movement that can be triggered by either a virtual D-pad or the keyboard if one is attached.
Tutorial 0C – Movement RevisitedTutorial 0C – Project
Tutorial 0D – Where Is That?
This tutorial mirrors tutorial 08 from Eyes of the Dragon 4.0. It updates most of the controls and adds in a file explorer for selecting files. It is meant mainly for Windows, macOS and Linux.
Tutorial 0E – Who’s That Girl?
Her name is Rio, and she dances on the sand. Okay, this tutorial mirrors tutorial 09 from Eyes of the Dragon and adds characters to the map. Also, it moves to use a similar tile engine to that game.
Tutorial 0F – Look Who’s Talking
In this tutorial, I begin with having conversations with characters in the game. Most of the work is done. However, there are still some important pieces to put in place.
Tutorial 0F – Look Who’s Talking
Tutorial 10 – Look Who’s Talking, Now
This tutorial mirrors tutorial eleven in my Eyes of the Dragon 4.0 tutorial series. It makes some adjustments to conversations. It lays the foundation for being able to read and write conversations.
Tutorial 10 – Look Who’s Talking, Now
Tutorial 11 – It’s Clobbering Time
This tutorial lays the foundation upon which the combat engine will be built. It adds shadow monsters’ classes and classes for moves they can perform.
Tutorial 11 – It’s Clobbering Time
Tutorial 12 – Hulk Smash!
This tutorial picks up where the last tutorial left off and adds the game states required to have combat between shadow monsters. It also makes a few adjustments to shadow monsters.
Tutorial 13 – Codex
This tutorial is above creating moves to be used by shadow monsters in combat. It was initially going to be moves and monsters. However, covering moves alone was getting very long.