Since our game is already a Blazor WebAssembly, we will easily be able to deploy it to multiple cloud hosting platforms. Any service that provides for a static website will also be able to host our game. In this series, we're going to be working with Azure for our web service development, so it makes … Continue reading Lesson 5.2: Setting up Azure Storage Account for Static Website
Author: DarthPedro
Lesson 5.1: Introduction to Serverless Architecture in Azure
In the last few years, the concept of serverless computing has become much more prominent, but what does that actually mean? There are clearly servers in the cloud running code to implement our web application or service. But with serverless cloud implementations, we free developers from infrastructure management and allow the cloud providers to manage … Continue reading Lesson 5.1: Introduction to Serverless Architecture in Azure
Lesson 4.15: The Wrap
This was another large chapter with many improvements to our game engine. Along the way we also learned some key concepts and design patterns that can be used in any .NET and C# project. Learning in the context of building a game is always more fun for me, so I hope you're all enjoying the … Continue reading Lesson 4.15: The Wrap
Lesson 4.14: Move Remaining Data to JSON
We've made progress moving our data files thus far. In this lesson we are going to convert the last three factories to load their data from JSON files. We will follow the patterns that have been used in the last 3 lessons: Data Transfer Objects, our JsonSerializationHelper, and modifying the factories to retrieve instances of … Continue reading Lesson 4.14: Move Remaining Data to JSON
Lesson 4.13: Read World Data from File
As we continue moving our data from code to files, the world locations are the big source of data to convert. We will follow the same design principles as the last two lessons: JSON file with data, Data Transfer Objects for reading data and creating game objects, and refactoring corresponding game classes to be more … Continue reading Lesson 4.13: Read World Data from File
Lesson 4.12: Read Monster Data File
We are going to continue our move to data files by working on the monster data. We will follow the same design that we described in the last lesson. We will create a new JSON data file, create a couple of Data Transfer Objects to use in serialization, and update the MonsterFactory to load and … Continue reading Lesson 4.12: Read Monster Data File
Lesson 4.11: Load Item Data From JSON File
We currently define all of our game data in code. We did this for simplicity and to learn the coding concepts without worrying about data management. If we want to add a new GameItem, we need to code that into the ItemFactory. But as we grow our game, we really need to move all of … Continue reading Lesson 4.11: Load Item Data From JSON File
Lesson 4.10: Attack Initiative and Hit Logic
Now that we have the Battle class, we're going to make the combat more interesting. Currently combat is very static... the player attacks and monster and then the monsters respond with their own attack. Attacks always hit the opponent and cause a random amount of damage. But that's really all the variance in the combat … Continue reading Lesson 4.10: Attack Initiative and Hit Logic
Lesson 4.9: Enhanced Combat with Battle Class
In this lesson, we are going to focus on refactoring our combat functionality out of the GameSession view model. There are various methods that deal with combat and handle either player or monster deaths, so it would be helpful to encapsulate all of the combat related code into its own Battle class. We are also … Continue reading Lesson 4.9: Enhanced Combat with Battle Class
Lesson 4.8: Create Centralized Message Broker
As we plan to refactor and expand the combat system, we notice that there are a lot of messages returned from combat methods that need to be displayed. Our plan is to refactor the combat code out of the GameSession class and into its own class that manages the intricacies of combat. To make it … Continue reading Lesson 4.8: Create Centralized Message Broker