{"id":394,"date":"2021-01-09T01:13:52","date_gmt":"2021-01-09T06:13:52","guid":{"rendered":"https:\/\/cynthiamcmahon.ca\/blog\/?page_id=394"},"modified":"2023-03-07T07:21:17","modified_gmt":"2023-03-07T12:21:17","slug":"eyes-of-the-dragon-monogame-tutorials","status":"publish","type":"page","link":"https:\/\/cynthiamcmahon.ca\/blog\/monogame-tutorials\/eyes-of-the-dragon-monogame-tutorials\/","title":{"rendered":"Eyes Of The Dragon MonoGame RPG Tutorials 3.0"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"533\" src=\"https:\/\/cynthiamcmahon.ca\/blog\/wp-content\/uploads\/2020\/12\/eotd-background-1024x533.png\" alt=\"Eyes of the Dragon MonoGame Tutorials\" class=\"wp-image-181\" srcset=\"https:\/\/cynthiamcmahon.ca\/blog\/wp-content\/uploads\/2020\/12\/eotd-background-1024x533.png 1024w, https:\/\/cynthiamcmahon.ca\/blog\/wp-content\/uploads\/2020\/12\/eotd-background-300x156.png 300w, https:\/\/cynthiamcmahon.ca\/blog\/wp-content\/uploads\/2020\/12\/eotd-background-768x400.png 768w, https:\/\/cynthiamcmahon.ca\/blog\/wp-content\/uploads\/2020\/12\/eotd-background.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Eyes of the Dragon<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Eyes of the Dragon MonoGame RPG Tutorials<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Update!<\/h2>\n\n\n\n<p>I am in the process of updating the tutorials to the latest version of MonoGame, 3.8.1, as Eyes of the Dragon 4.0! Visit the new <a href=\"https:\/\/cynthiamcmahon.ca\/blog\/monogame-tutorials\/eyes-of-the-dragon-4-0\/\" data-type=\"URL\" data-id=\"https:\/\/cynthiamcmahon.ca\/blog\/monogame-tutorials\/eyes-of-the-dragon-4-0\/\" target=\"_blank\" rel=\"noreferrer noopener\">MonoGame RPG Tutorials Eyes of the Dragon 4.0<\/a> page.<\/p>\n\n\n\n<p>Welcome to the home of my Eyes of the Dragon MonoGame RPG Tutorials! These tutorials are a reboot of my old <a rel=\"noreferrer noopener\" href=\"\/blog\/eyes-of-the-dragon-xna\/\" target=\"_blank\">XNA RPG tutorial series Eyes of the Dragon<\/a>. They are written for MonoGame 3.8 and Visual Studio 2019. Read the tutorials to understand the content best as they build upon one another. <\/p>\n\n\n\n<p>Eyes of the Dragon is a 2D role-playing game set in the town of Hartsward. It features the common elements of a role-playing game: inventory management, character classes, skill and spell trees and combat. The back story is a daring thief has stolen the sapphire eyes of Graynar, the stone dragon. Without his eyes, Graynar cannot animate to protect the town from the evil denizens of the wilds. A great hero is needed to track down this thief and recover the eyes of the dragon.<\/p>\n\n\n\n<p>The code for the MonoGame RPG tutorials is available on GitHub at <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/Synammon\/MG-EyesOfTheDragon\" target=\"_blank\">https:\/\/github.com\/Synammon\/MG-EyesOfTheDragon<\/a>.<\/p>\n\n\n\n<p>You can find the tutorial repository on my <strong><em><a href=\"https:\/\/drive.google.com\/drive\/folders\/18CBmiwnMyi47UzrE2fkjoTmDo68hr3d-?usp=share_link\">Google Drive<\/a><\/em><\/strong> as well.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 1 &#8211; Getting Started<\/h4>\n\n\n\n<p>Like when building a house, when building a game, you need a sturdy foundation. This tutorial lays the foundation for our game by building the state manager and the title screen for our game. It also builds the input handler that will be used for gathering input.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1GIxpvc3kIo0Ij6NSr4AtJWhmCl_BfI9b\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 1 &#8211; Getting Started<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 2 &#8211; More Game Components<\/h4>\n\n\n\n<p>Picking up where the last tutorial left off, this tutorial creates some more game components. In particular creates a control manager and some controls, a label and a link label. It also adds another game state and demonstrates how to move between game states.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/110A0n2ZH54nI36ebtKf2hLIwBBtQaZW9\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 2 &#8211; More Game Components<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 3 &#8211; Even More Core Game Components<\/h4>\n\n\n\n<p>Once again, the focus of this tutorial is core game components. First, I make updates to the control manager and add in the new control, the picture box. I also create the menu structure on the start menu and wire the event handlers to make it work.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1vvYBgI_0r6vHxf7fArZj3F-gkYV1b8eH\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 3 &#8211; Even More Core Game Components<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 4 &#8211; Tile Engine Part 1<\/h4>\n\n\n\n<p>Exploring the world is an important part of a role-playing game. For that reason, this tutorial is about creating the tile engine. Because our world is made up of tilemaps, we require a tile engine to render them. So, I create a basic tile engine in this tutorial that will be expanded on as we go.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1gzR-nXqptgcKy9hELkJ04__YhYpnRqYI\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 4 &#8211; Tile Engine Part 1<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 5 &#8211; Tile Engine Part 2<\/h4>\n\n\n\n<p>Since it is such an important part of the game, I will be spending a lot of time on the tile engine. For that reason, this tutorial continues to improve the tile engine. It is about having multiple layers on the map and introduces the player component.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1L3zXqfJoiOrt5DQdn9d830TjsPzIYRwe\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 5 &#8211; Tile Engine Part 2<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 6 &#8211; Character Generator<\/h4>\n\n\n\n<p>Creating your character is an integral part of playing a role-playing game. In this tutorial, I add a character generator to generate the player character.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1KQgIvIsNPBww_uBmgFlbtqVSitOYxgxi\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 6 &#8211; Character Generator<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 7 &#8211; Animated Sprite<\/h4>\n\n\n\n<p>The player needs to be able to control their character. In this tutorial, I ad in an animated sprite for the player to control<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1nrR0hHulp9YqCy4RONAGhNC3Uhr99yqW\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 7 &#8211; Animated Sprite<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 8 &#8211; Updating Character Generator and Tile Engine<\/h4>\n\n\n\n<p>The character generator and tile engine are working. However, there is room for improvement. As a result, I make some changes to the character generator to include a character preview. Changes to the tile engine include improved zooming and the use of a transformation matrix when rendering.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1luQzsqIqbewcEGSbUhNA6Y964sYRQKSL\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 8 &#8211; Updating Character Generator and Tile Engine<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 9 &#8211; Item Classes<\/h4>\n\n\n\n<p>Having interesting and unique gear is an integral part of a role-playing game. For that reason, the main focus of this tutorial is creating the base classes that will represent items in the game.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/10NeKy0VW__7lsLgCKrXXajxeIqkJ1Ktx\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 9 &#8211; Item Classes<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 10 &#8211; Character Classes<\/h4>\n\n\n\n<p>The game uses a class-based role-playing system rather than a skill-based role-playing system. For that reason, I implement the bases class for entities and their classes.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/17emqahbtcUmriEeXzwcDQnnXvMOW9gMm\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 10 &#8211; Character Classes<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title center large wp-block-heading\">MonoGame RPG Tutorials<\/h4>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 11 &#8211; Game Editors<\/h4>\n\n\n\n<p>Creating a role-playing game requires a lot of data. For that reason, this tutorial is on creating editors to create, read, update and delete data for the game. <\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1ScM252NEIUfhSwnEbRYpxS7On1Fg8BaT\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 11 &#8211; Game Editors<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 12 &#8211; Game Updates<\/h4>\n\n\n\n<p>After that monster tutorial on game editors, this tutorial returns to the game. It modifies the gameplay state to use a player component. It also updates the world-class and updates the tile engine, so it is more efficient in its rendering.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1OGIn0PYkQtYTNGXZ81-YwOkcbXxL0p8Y\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 12 &#8211; Game Updates<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 13 &#8211; List Box and Load Game Screen<\/h4>\n\n\n\n<p>Rendering lists is a common factor in role-playing games. For that reason, I add a list of box control to the controls implemented in the game. Also, I add a screen for loading games. I also refactor the character generator, and gameplay states a little to separate the concerns of duty.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1FOweGaRnS8sKq6ub-U6v3vHwlLimtOXy\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 13 &#8211; List Box and Load Game Screen<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 14 &#8211; Back to the Editor<\/h4>\n\n\n\n<p>Since we still need data, this tutorial goes back to. The editor. It combines parts A and B of the old XNA Eyes of the Dragon tutorial, so it is longer, though not near as long as tutorial 11. I also include my test data, so you don&#8217;t have to enter it manually.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1NAiW6521d84iTfhaZmydUa1NlXSm-5pf\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 14 &#8211; Back to the Editor<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 15 &#8211; Skills, Spells and Talents<\/h4>\n\n\n\n<p>In an RPG, the characters know how to do extraordinary things like cast spells. For that reason, this tutorial lays the foundation classes for skills, spells and talents. Also, it lays the foundation for crafting items.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/12zorTIeU2ssqSBT1e59C6QfdIMcJto_t\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 15 &#8211; Skills, Spells and Talents<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 16 &#8211; Quests and Conversations<\/h4>\n\n\n\n<p>An important part of RPGs is interacting with the world around you. That ranges from doing quests to having conversations with characters in the world. For that reason, this tutorial is focused on quests and conversations. It wires the basics that will be used in the future.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1NjE870h9r3DKSz1ysvLpJDWOzgUj1yWG\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 16 &#8211; Quests and Conversations<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 17 &#8211; Finding Loot<\/h4>\n\n\n\n<p>Finding new and interesting items is a fun part of any RPG. For that reason, this tutorial adds chests to the game that hold money, items and potentially traps!<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1-r6X4mRih9PLx5b3apJVNjqDtp-wHZhP\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 17 &#8211; Finding Loot<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 18 &#8211; Finding Loot &#8211; Continued<\/h4>\n\n\n\n<p>Picking up where the last tutorial left off, this tutorial continues with finding loot. It updates the game editor to allow the creation of chests and keys. Also, it covers adding the editor content to the game and reading it into it at runtime.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1eLWGiZWIxJos0YNdZevWJiMkf8RBynzr\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 18 &#8211; Finding Loot &#8211; Continued<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 19 &#8211; Skills Continued<\/h4>\n\n\n\n<p>Since characters can do things is an important part of an RPG, this tutorial continues with the skills that allow characters to craft and barter.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1CVHQX3hDMu4G817HOsK4lkSVzR-Hs-tI\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 19 &#8211; Skills Continued<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 20 &#8211; More on Skills<\/h4>\n\n\n\n<p>Since we now have data to work with, this tutorial takes that skill data that has been developed and brings it into the game. Also, it demonstrates how to assign points to skills.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1Uo8rvmF7_I7F0fNtGU1uQTZcRMmUiY1M\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 20 &#8211; More on Skills<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 21 &#8211; More on Items<\/h4>\n\n\n\n<p>This tutorial continues in the game and items. Also, it adds classes for managing items and the party&#8217;s backpack that will hold all of the loot that they have found.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1xG2YGQUl6xQm_PVJbIhf9JSlo9ynEFQp\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 21 &#8211; More on Items<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 22 &#8211; Reading Data<\/h4>\n\n\n\n<p>So, this tutorial covers reading all of our data into the game. Also, it updates the character creation process to use a character instead of a sprite for the player.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1HguKAZstbA-kXIXd4r0q0-8EFWtQyGVd\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 22 &#8211; Reading Data<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 23 &#8211; Level Editor<\/h4>\n\n\n\n<p>So, having a rich, immersive world is a huge part of a role-playing game. For that reason, this tutorial starts with building the level editor so you can build your world.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1PccZyIbHPl4hV9PY-StDvMzmCT7eOnZT\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 23 &#8211; Level Editor<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 24 &#8211; Level Editor &#8211; Part Two<\/h4>\n\n\n\n<p>There was a great start to the level editor. However, there was a key component missing. There was no way to save a map and load it back in. This tutorial adds the saving and loading capability to the level editor. It also makes some changes to the way tiles are painted.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1hpRNrpU3CTbd5YWM0nXxKFn7fZuCxuOd\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 24 &#8211; Level Editor &#8211; Part Two<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 25 &#8211; Level Editor &#8211; Part Three<\/h4>\n\n\n\n<p>So, this tutorial makes some improvements to the level editor. Firstly, it changes the painting code to make it more responsive than it was because it was rather sluggish. Secondly, it adds some larger brushes and visual cues as to what is being drawn. Finally, it adds the functionality to be able to import and export layers and tilesets.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1QjQ9644G2H7sPdRUfXJNcRYNgPVxAcGF\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 25 &#8211; Level Editor &#8211; Part Three<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 26 &#8211; More on Skills<\/h4>\n\n\n\n<p>This tutorial does more work on skills. Also, it adds a transition period when switching between game states.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1u6K9tNQKKbpNQEJ5hlqoMmE71xHT7TQS\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 26 &#8211; More on Skills<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 27 &#8211; Updating Components and Talents<\/h4>\n\n\n\n<p>In this tutorial, I update a couple of our components. Also, I flesh out how talents will work.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1DLfmMtYrakk8ZI9e5YgEJLrFrybckaES\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 27 &#8211; Updating Components and Talents<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 28 &#8211; Spells and Effects<\/h4>\n\n\n\n<p>Where the last tutorial worked on talents, this tutorial works on spells. It also works on effects that are applied by spells and talents.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/18jQqe97TjqY7z0EAc1QrY3pFIkUVk1OX\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 28 &#8211; Spells and Effects<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 29 &#8211; Weaknesses and Resistances<\/h4>\n\n\n\n<p>This short tutorial introduces the concept of weaknesses and resistances to different forms of effects.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1sggtVPCy-w3rY8ViWl41m6BnBMWTffDh\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 29 &#8211; Weaknesses and Resistances<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 30 &#8211; Updating Weapons<\/h4>\n\n\n\n<p>After making the changes to damage types, the next logical step is to update weapons. For that reason, this tutorial adds the ability for weapons to have more than one type of damage associated with them. Again, this is different than the XNA tutorial series.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1npXbnSBgRwu0yzcYMdjsuAhhBMaU18OR\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 30 &#8211; Updating Weapons<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 31 &#8211; Tile Engine Update<\/h4>\n\n\n\n<p>While the tile engine was good, there was room for improvement. So, in this tutorial, I make some updates to the tile engine to make it more robust in how it handles layers.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1sgZI8yokeYxpcuKpyIvVBkvsrIvVSoZj\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 31 &#8211; Tile Engine Update<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 32 &#8211; Collisions<\/h4>\n\n\n\n<p>So, the player can walk around the map, but they can also walk through walls. For that reason, this tutorial adds a collision layer to prevent the player from walking through certain tiles.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1I_Z06hF0EpUPbbNF0d-WdjrXn4XKB6Yu\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 32 &#8211; Collisions<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 33 &#8211; Non-Player Character Conversations<\/h4>\n\n\n\n<p>Talking with non-player characters can be an important method of moving the story forward. For that reason, this tutorial covers how we will be handling conversation.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1NZu7l21zapX6goNThMxgaE_2eUtPYREo\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 33 &#8211; Non-Player Character Conversations<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 34 &#8211; Non-Player Character Sprites<\/h4>\n\n\n\n<p>The game is much more interesting if the player has characters to interact with. For that reason, this tutorial covers adding a non-player character, NPC, sprite to the map and collision detection. It also wires starting a conversation with that character.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/18G7shw65Rqr3yLtnWQvaVKLBtI64uCCv\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 34 &#8211; Non-Player Character Sprites<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 35 &#8211; Conversations<\/h4>\n\n\n\n<p>Finally, we get to talking to the characters. I first, how how to manually code conversations. Then, in a future tutorial, I will create a conversation editor and read in conversations at runtime.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/13X_fb9Sty1ROG9rIpnpFcGuapPWOesBx\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 35 &#8211; Conversations<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 36 &#8211; Animated Tiles<\/h4>\n\n\n\n<p>When I originally wrote the XNA tutorials, I requested to add animated titles to the game. For that reason, this tutorial covers how to add animated titles to the game.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1fN0G-sih2Dz_pV0skn77r9_0g7h1X560\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 36 &#8211; Animated Tiles<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 37 &#8211; Map Editor Revisited<\/h4>\n\n\n\n<p>Since there are now animated tiles, the next logical step was to place them on the map. For that reason, this tutorial goes back to the editor to place animated tiles and paint collisions.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1M0QHBVI3xqv-Ae98uUrC69XfPbczMEt5\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 37 &#8211; Map Editor Revisited<\/a><\/p>\n\n\n\n<h4 class=\"tutorial-title wp-block-heading\">Part 38 &#8211; Loading Maps<\/h4>\n\n\n\n<p>Since the level editor is now complete as the map format will not change, I add the ability to load levels in the editor and the game.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/18grrBzrWH4BEaCmRIeAM8uwK_8mO1cMh\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 38 &#8211; Loading Maps<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 39 &#8211; Characters Revisited<\/h4>\n\n\n\n<p>The focus of this tutorial is creating characters in the map editor. It also covers saving them with the map and loading them back into the editor.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1-6Eet9VlRQ2kYxXtyMgNIY51r20J-OpK\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 39 &#8211; Characters Revisited<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 40 &#8211; Characters Revisited &#8211; Part 2<\/h4>\n\n\n\n<p>So, we could load characters into the editor but not into the game. This tutorial allows for loading maps and characters into the game.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1CSAsyk_jc6ELhn0wFAtkwSVpCJNe-reu\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 40 &#8211; Characters Revisited &#8211; Part 2<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Part 41 &#8211; Spells and Talents Revisited<\/h4>\n\n\n\n<p>This tutorial creates some spells and talents that can be used in the game. The battle engine requires them, so they are being handled now rather than later.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1c2cIxemgDlPNIiLYkLBSGxBWa0VTfPlv\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 41 &#8211; Spells and Talents Revisited<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 42 &#8211; Merchants<\/h4>\n\n\n\n<p>The player needs gear, and the easiest for them to get it if they have the coin is to buy it from a merchant. For that reason, this tutorial covers creating merchants and adding them to the game for the player to interact with.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1nhpftj6Y8lEZApZ6MWpnzA8F8-uKhfxG\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 42 &#8211; Merchants<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 43 &#8211; Equipment<\/h4>\n\n\n\n<p>The player can now get equipment from merchants. However, there is no way to view what they have purchased, or found, or stolen. This tutorial covers rendering the items that the player has found.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/16DkALEZEV6Kz_CzKgvhVHVnSiLUMNVqU\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 43 &#8211; Equipment<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 44 &#8211; Equipment Continued<\/h4>\n\n\n\n<p>The player has their backpack, and it renders on the screen. However, they still cannot equip the items they have found. This tutorial covers equipping and unequipping items.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1jSaAq-mbhAAyzOLCbTwj0fTu7AfqYKED\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 44 &#8211; Equipment Continued<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 45 &#8211; Mobs<\/h4>\n\n\n\n<p>An important part of a role-playing game is challenging opponents to overcome. For that reason, this tutorial covers adding in mobs, or monsters, for the player to battle.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1L3bGSKOUXp62gMlif5-LOFroxYMlMvp6\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 45 &#8211; Mobs<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Part 46 &#8211; Combat Engine &#8211; Part 1<\/h4>\n\n\n\n<p>We have all of the pieces in place to start on the combat engine. So, this tutorial is the first installment on creating the combat engine.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1XvhlQtXuoo2BNq_xlitXNaE2MfQWkWgw\/view?usp=sharing\">Part 46- Combat Engine &#8211; Part 1<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 47- Combat Engine &#8211; Part 2<\/h4>\n\n\n\n<p>The combat engine was missing, dealing damage to mobs and taking damage from mobs. This tutorial covers these topics.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1HEozB2YD1Yq86wHEepE2TT_zxCLnMVCK\/view?usp=sharing\">Part 47- Combat Engine &#8211; Part 2<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 48 &#8211; Combat Engine &#8211; Part 3<\/h4>\n\n\n\n<p>Fighting with just weapons is boring so I included spells and talents to be used in combat. This tutorial covers being able to use spells and talents inside the game.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/19a9I2emQrgqPd9mKQYZpbCNlO63uOVfm\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 48 &#8211; Combat Engine &#8211; Part 3<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 49 &#8211; Combat Engine &#8211; Part 4<\/h4>\n\n\n\n<p>The combat engine needed a few improvements, so this tutorial covers them. It also adds in some new equipment that can be bought from the merchant.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1dwuxZYu2Ge5Xt6cfKXCtqqqw7BG_bFnp\/view?usp=sharing\" target=\"_blank\">Part 49 &#8211; Combat Engine &#8211; Part 4<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 50 &#8211; Combat Engine &#8211; Part 5<\/h4>\n\n\n\n<p>The combat engine works as expected. The one thing that it doesn&#8217;t do is drop loot if a mob is defeated. For that reason, this tutorial covers dropping loot when a mob is defeated.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1Lq5qb11bc6BMU-BJwvx7QZZg6p0CZrbh\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1Lq5qb11bc6BMU-BJwvx7QZZg6p0CZrbh\/view?usp=sharing\" target=\"_blank\">Part 50 &#8211; Combat Engine &#8211; Part 5<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Part 51 &#8211; Refactoring Game Items<\/h4>\n\n\n\n<p>So, there is an issue where you have to create a game item each time you need one manually. Because this is inefficient, I refactor game items to implement the ICloneable interface and modify the GameItemManager class to use this change.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1RmIi8gzW_01fiVB7C_oMUYQb9VvLg-wz\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1RmIi8gzW_01fiVB7C_oMUYQb9VvLg-wz\/view?usp=sharing\" target=\"_blank\">Part 51 &#8211; Refactoring Game Items<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Part 52 &#8211; Gold and Experience<\/h4>\n\n\n\n<p>Two pieces were missing in the game. There was no way for the player to get gold, and there was no way for the player to gain experience. This tutorial addresses those issues. Also, I add in potions for the player to connect to heal themself.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1HE0CkC-3963tglRapCxuq2rkQhLSsEtY\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1HE0CkC-3963tglRapCxuq2rkQhLSsEtY\/view?usp=sharing\" target=\"_blank\">Part 52 &#8211; Gold and Experience<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 53 &#8211; Levelling Up<\/h2>\n\n\n\n<p>There is another piece missing. The player can gain experience, but they will always be level one. For that reason, this tutorial focuses on displaying the character&#8217;s stats and levelling up.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1yA0sCSSi0JqSaG-GcQFrb4JdgvUeP0eh\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1yA0sCSSi0JqSaG-GcQFrb4JdgvUeP0eh\/view?usp=sharing\" target=\"_blank\">Part 53 &#8211; Leveling Up<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 54 &#8211; Levellin Up Revisted<\/h2>\n\n\n\n<p>I introduced a bug in the last tutorial. The player could level up fine. However, they did not gain health and mana or stamina, depending on their class. This tutorial fixes that bug, and it redesigns the character stats screen.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/15vqrsgmKJWRPvr-knZ0IztsylTn0wXzh\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/15vqrsgmKJWRPvr-knZ0IztsylTn0wXzh\/view?usp=sharing\" target=\"_blank\">Part 54 &#8211; Levelling Up Revisted<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 55 &#8211; Going Real-Time<\/h2>\n\n\n\n<p>In this tutorial, I start moving to a real-time combat system. In it, you can attack and kill mobs, but they do not attack you yet. They will chase you if you get too close, though, but they will never overlap with you.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1DqPTiyz4-a-aSD00lbha0g6xHWrAw_O8\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1DqPTiyz4-a-aSD00lbha0g6xHWrAw_O8\/view?usp=sharing\" target=\"_blank\">Part 55 &#8211; Going Real-Time<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Part 56 &#8211; Going Real-Time &#8211; Part Two<\/h2>\n\n\n\n<p>In this tutorial, I continue the journey on the path to real-time combat. It covers mobs attacking the player and the player healing over time if they are injured.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1tMdiFuH25YLi1u9JqyiH5fO9H9FhcLNe\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1tMdiFuH25YLi1u9JqyiH5fO9H9FhcLNe\/view?usp=sharing\">Part 56 &#8211; Going Real-Time &#8211; Part Two<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 57 &#8211; Going Real-Time &#8211; Part Three<\/h2>\n\n\n\n<p>This is the third in my four-part tutorials ongoing real-time as far as combat is concerned. This tutorial begins with casting spells and activating talents. Then, it introduces hot-keys for activation and shows how to draw targeting. It also heals mana and stamina over time, the same as health.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1_0MRK3_7GXye3RJfbfM49MFb0OZ0amwB\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1_0MRK3_7GXye3RJfbfM49MFb0OZ0amwB\/view?usp=sharing\">Part 57 &#8211; Going Real-Time &#8211; Part Three<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 58 &#8211; Going Real-Time &#8211; Part Four<\/h2>\n\n\n\n<p>This tutorial finishes my four-part mini-series on real-time combat. It activates the spell or talent selected with the hot-key and applies its effect.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1oDm6TynPC6AaqiJmGfboF-uCeNzw_ZnU\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1oDm6TynPC6AaqiJmGfboF-uCeNzw_ZnU\/view?usp=sharing\">Part 58 &#8211; Going Real-Time &#8211; Part Four<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 59 &#8211; User Experience<\/h2>\n\n\n\n<p>The user experience for the game needed some updating; this tutorial aims to fix that. For one, it was mainly a keyboard-based game with little mouse support. This tutorial adds mouse support to the keyboard-only areas of the game.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1lqRwp4Foyvmgf3wffkGGyawuih8EBfzH\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1lqRwp4Foyvmgf3wffkGGyawuih8EBfzH\/view?usp=sharing\">Part 59 &#8211; User Experience<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 60 &#8211; Quests<\/h2>\n\n\n\n<p>Finally, we get to quests for the player to accept and finish. This is the first of multiple tutorials on quests because it is such a big topic. Once completed, you can talk to an NPC, get a quest, finish it, and turn it in.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1B4ClPY9uM-_blei9TGIYyu0Qz6coviIr\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1B4ClPY9uM-_blei9TGIYyu0Qz6coviIr\/view?usp=sharing\" target=\"_blank\">Part 60 &#8211; Quests<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 61 &#8211; Quests &#8211; Continued<\/h2>\n\n\n\n<p>I wrap up with quests in this tutorial, fixing a bug from the last tutorial. Also, I update the conversation state to save what conversation you are on with an NPC.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1lgTwoCdg25uzKRwaYtRe0dXAw-tWp64K\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/1lgTwoCdg25uzKRwaYtRe0dXAw-tWp64K\/view?usp=sharing\" target=\"_blank\">Part 61 &#8211; Quests &#8211; Continued<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 62 &#8211; Back to the Future! Uhm, Editors, I Meant editors<\/h2>\n\n\n\n<p>This tutorial was long to write and is the first of two parts. This one covers creating spells with the editor. The next part will cover talents.<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/18plI67eWsdFNACjy2ORnM-FUk0wua1vu\/view?usp=sharing\" data-type=\"URL\" data-id=\"https:\/\/drive.google.com\/file\/d\/18plI67eWsdFNACjy2ORnM-FUk0wua1vu\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Part 62 &#8211; Back to the Future! Uhm, Editors. I Meant Editors<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eyes of the Dragon MonoGame RPG Tutorials Update! I am in the process of updating the tutorials to the latest version of MonoGame, 3.8.1, as Eyes of the Dragon 4.0! Visit the new MonoGame RPG Tutorials Eyes of the Dragon 4.0 page. Welcome to the home of my Eyes of the Dragon MonoGame RPG Tutorials! &hellip; <\/p>\n","protected":false},"author":2,"featured_media":0,"parent":149,"menu_order":6,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-394","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/pages\/394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/comments?post=394"}],"version-history":[{"count":77,"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/pages\/394\/revisions"}],"predecessor-version":[{"id":1224,"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/pages\/394\/revisions\/1224"}],"up":[{"embeddable":true,"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/pages\/149"}],"wp:attachment":[{"href":"https:\/\/cynthiamcmahon.ca\/blog\/wp-json\/wp\/v2\/media?parent=394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}