Learn how to include three essential game mechanics, Shops, Special Abilities and Traits, in your games.
This highly acclaimed series was over 200% funded on Kickstarter, and is designed for intermediate users of Unity. We recommend you take at least the first half of our Complete Unity Developer 2D or 3D, or equivalent, as a prerequisite.
Learn how to include three essential game mechanics, Shops, Special Abilities and Traits, in your games.
This highly acclaimed series was over 200% funded on Kickstarter, and is designed for intermediate users of Unity. We recommend you take at least the first half of our Complete Unity Developer 2D or 3D, or equivalent, as a prerequisite.
You can use the code we create in the course in any game or project you build. We’ll be using an RPG as an example. You don't need to have completed the previous parts of the RPG Series (the RPG Core Combat, Inventory Systems and Dialogue & Quests courses) but it will give you an advantage if you already have.
The course is project-based as we believe this is the best way to learn Unity and C#. You will not just be learning dry programming concepts, but applying them immediately to a real RPG as you go.
We’ll provide the RPG project created so far in the series so that you can practice integrating to an existing complex project. Every element of the project we touch will be fully explained and no knowledge of the project will be required.
In the course we will be building the following from scratch:
Shop and Traits UI
Integration between Traits and a modifier system
Main menus
Barter system giving discounts to player with high charisma
Buying and selling
Filtering shop items by type
Flexible and composable special abilities
Cooldown timers
Mana and money
In the process of the course we will cover advanced topics such as: C# Delegates, Interfaces, Lambdas, Strategy and Composite Patterns.
You will get full lifetime access for a single one-off fee. The creators are qualified and experienced coders and avid gamers, so are able to explain complex concepts clearly, as well as entertain along the way.
You will have access to a course forum where you can discuss topics on a course-wide basis, or down to the individual video. Get plugged into our communities of amazing developers on Facebook (nearly 20k), in our own TA-curated Community (17k views/day), and our student chat group (10k live at any one time).
The course is still in production with new videos dropping on a weekly basis, making now a great time to get involved and help shape its future.
Shops and Abilities are core to many game genres. So why not join us and get started improving your game development right now?
In this video (objectives)…
Sam takes us over the architecture of this RPG and how it is split between courses in the series.
In this video (objectives)…
Rick explains which version of Unity will be used in this course and why this decision is important.
In this video (objectives)…
Sam shows us the finished shops prototype and outlines the journey to get us there.
In this video (objectives)…
Sam shows us how to speed up UI development with a reusable library of UI components.
In this video (objectives)…
Sam finishes what he started and finishes making his Component Library
In this video (objectives)…
Sam shows us how to build the outline of a shop UI using our reusable components.
In this video (objectives)…
Sam shows us how to make a header row prefab.
In this video (objectives)…
Sam shows us how to create our rows based on the headers and how to keep everything in alignment.
In this video (objectives)…
Sam shows us the main classes that will provide the data for the shop UI.
In this video (objectives)…
Sam shows us how to use the Shopper component to display UI when a shop is opened.
In this video (objectives)…
Sam shows us how to close shops and we hook up the got names for each shop keeper.
In this video (objectives)…
Sam shows us revises how to dynamically build a UI list.
In this video (objectives)…
Sam shows us how to link the ShopItem class to our RowUI prefab.
In this video (objectives)…
Sam show us how to expose the stock configuration in the editor so that a designer can use it.
In this video (objectives)…
Sam shows us how to create a widget to add and remove to our transaction.
In this video (objectives)…
Sam show us how to store the quantities of items in our transactions and to use Actions to update the UI.
In this video (objectives)…
Sam shows us how to transfer items from the shopping basket to the players inventory.
In this video (objectives)…
Sam shows us how to calculate the total price of a transaction.
In this video (objectives)…
Sam shows us how to create a simple component to act as the players money.
In this video (objectives)…
Sam shows us how to create a UI to display the balance in the player's purse.
In this video (objectives)…
Sam shows us how to track stock in dictionary to limit purchases.
In this video (objectives)…
Sam shows us how to disable the buy button when a transaction isn't possible.
In this video (objectives)…
Sam lays the ground work for checking the inventory space for a transaction
In this video (objectives)…
Sam modifies the Inventory script to support checking for stacked items and free slots.
In this video (objectives)…
Sam shows us how to switch between buying and selling mode and calculate different prices on this basis.
In this video (objectives)…
Sam shows us how to calculate the availability in the inventory when selling.
In this video (objectives)…
Sam shows us how to confirm a transaction when selling.
In this video (objectives)…
Sam shows us how to bind the filter buttons to Shop.SelectFilter via a new FilterButtonUI component.
In this video (objectives)…
Sam shows us how to display the currently active filter by setting Button.interactable = false.
In this video (objectives)…
Sam modifies the InventoryItem and GetFilteredItems to show a filtered list in the shop.
In this video (objectives)…
Sam shows us how to unlock items in a Shop stock based on the player's level and experience.
In this video (objectives)…
Sam shows us how to refactor GetAllItems() to work with cumulative discounts by level.
In this video (objectives)…
Sam takes us through more refactoring from storing the stock as state to storing the stock sold.
In this video (objectives)…
Sam implements ISaveable on the Purse and Shop components.
In this video (objectives)…
Sam shows us around the Ability system and it's power and flexibility.
In this video (objectives)…
Sam shows us how to connect the PlayerController to the Action Bar to launch Special Abilities.
In this video (objectives)…
Sam explains the architecture we will use for our composable ability system.
In this video (objectives)…
Sam shows us how to create an abstract base class Scriptable Object and how to inherit from that to create our first Targeting Strategy.
In this video (objectives)…
Sam shows us how to run a coroutine from a Scriptable Object to implement delayed targeting.
In this video (objectives)…
Sam shows us how to use Raycasts and Sphere Casts to get a list of targets within an area of effect radius.
In this video (objectives)…
Sam shows us how to make a summoning circle prefab and spawn it at the correct location.
In this video (objectives)…
Sam shows us how to apply the strategy pattern again to create filter for our targeted Game Objects.
In this video (objectives)…
Sam shows us how to apply the Strategy pattern again, this time to create configurable effects for our Abilities.
In this video (objectives)…
Sam shows us how we can make our method signatures simpler by grouping parameters into a single class.
In this video (objectives)…
Sam show us how to create a new Effect Strategy to launch particle effects.
In this video (objectives)…
Sam show us how to use Dictionaries to store cooldown timers for Scriptable Objects.
In this video (objectives)…
Sam show us how to use and image type "filled" to overlay a cooldown timer on our action bar.
In this video (objectives)…
Sam shows us how to create a component to track mana and display it.
In this video (objectives)…
Sam show us how to regenerate mana over time.
In this video (objectives)…
Sam show us how to integrate the Mana system with the progression system to level up
In this video (objectives)…
Sam shows us how to build effects to trigger animations and rotate towards our target.
In this video (objectives)…
Sam shows us how to apply the composite pattern to creating very flexible effects.
In this video (objectives)…
Sam show us how to cancel abilities on death and have abilities cancel other actions.
In this video (objectives)…
Sam challenges us to save our mana.
In this video (objectives)…
Sam shows us how to implement a self targeting strategy so that we can heal ourselves!
In this video (objectives)…
Sam shows us how to spawn projectiles from an Effect.
In this video (objectives)…
Sam shows us how to setup directional targeting for our projectiles.
In this video (objectives)…
Sam polishes of the fire spray ability and shows us how we could extend the Ability system.
In this video (objectives)…
Sam shows us the traits system we will build in this section.
In this video (objectives)…
Sam shows us how to mock up the UI for our traits window.
In this video (objectives)…
Sam implements a row UI script to make our traits UI interactable.
In this video (objectives)…
Sam shows us how to connect our UI to a Trait Store component on the player so we can have a quota of points to allocate.
In this video (objectives)…
Sam implements a staging area for points before confirming an allocation.
In this video (objectives)…
Sam shows us how to allocate more trait points when we level up.
In this video (objectives)…
Sam shows us how to link the trait system with other gameplay via the modifer system.
In this video (objectives)…
Sam implements a barter system using modifiers, traits and stats.
In this video (objectives)…
Sam recaps the section and challenges us to extend our traits system.
In this video (objectives)…
Sam shows us the prototype for the main menu section including the new death respawn and penalty.
In this video (objectives)…
Sam shows us how to set the scene with a moving main menu backdrop.
In this video (objectives)…
Sam shows us how to import a font to create a main menu title. We also assemble our main menu mock UI.
In this video (objectives)…
Sam shows us how to tweak the save system to load the last level from the main menu.
In this video (objectives)…
Sam shows us how to switch between UI screens and configure this entirely in the editor.
In this video (objectives)…
Sam shows us how to use PlayerPrefs to store the last save game name and we use InputFields to select a name.
In this video (objectives)…
Sam builds a Load Game UI to list all our saved games.
In this video (objectives)…
Sam shows us how to list all the save files on the file system.
In this video (objectives)…
Sam shows us how to use Time.timeScale to pause a game while a menu is displayed.
In this video (objectives)…
Sam hooks up the save and quit functionality in both our menus.
In this video (objectives)…
Sam shows us how to respawn the player character when they die.
In this video (objectives)…
Sam shows us how to reset and Animator and refactor our health component to achieve resurrection.
In this video (objectives)…
Sam shows us various bugs in the respawn system and we fix them all. We also reset enemies so that we have a safe space to respawn to.
In this video (objectives)…
Sam fixes some bugs and shows us how we could extend our project.
In this video (objectives)…
Sam and Rick discuss designing a gameplay moment to pull together the features we have implemented in our RPG.
In this video (objectives)…
Sam shows us how to clear out our level and sketch a basic enemy placement.
In this video (objectives)…
Sam show us how to implement auto attacking and sped up gameplay so we can quickly test our combat.
In this video (objectives)…
Sam shows us the maths behind armour and how to make it scale as the game progresses.
In this video (objectives)…
Sam shows us how to play test and tweak our combat encounters and values.
In this video (objectives)…
Sam shows us how to think about pricing items based on their impact on our health.
In this video (objectives)…
Sam shows us how to allow money to be picked up or given as a reward to a quest.
In this video (objectives)…
Sam shows us how to set the monetary value of drops so that we can replenish our health from fights.
In this video (objectives)…
Sam reuses the condition system from dialogues and quest to put limits on equipping certain items.
In this video (objectives)…
Sam shows us how to tweak a heavy enemy to get a really tough and challenging fight.
In this video (objectives)…
Sam shows us how to scale experience points for ranged enemies and tweak to get level up at the right time in the game.
In this video (objectives)…
Sam shows us how he adds dialogue that responds to the players equipment and traits.
In this video (objectives)…
Sam shows us how to implement conditions on quest objectives to finish off our moment.
In this video (objectives)…
Sam tells us how to continue our own RPG journey.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.