We may earn an affiliate commission when you visit our partners.
TheCodingCult (aka Henrique de Carvalho)

Have you ever thought about creating a complex stats and skills system? Many games need them and it gets harder to make one that can be used in a variety of situations.

What stats to use? The default strength and dexterity? What formulas should I use for hit chance? Can we make a D&D-like stat system? What about a more classic JRPG one?

How to make skills ranging from a fireball to a skill that applies a negative status? How can I make this skill use Intelligence vs Wisdom in its calculations? And what if I just want to use percentages?

Read more

Have you ever thought about creating a complex stats and skills system? Many games need them and it gets harder to make one that can be used in a variety of situations.

What stats to use? The default strength and dexterity? What formulas should I use for hit chance? Can we make a D&D-like stat system? What about a more classic JRPG one?

How to make skills ranging from a fireball to a skill that applies a negative status? How can I make this skill use Intelligence vs Wisdom in its calculations? And what if I just want to use percentages?

In this course you'll see in depth how to create and balance stat systems. We will discuss about game design decisions and their consequences, then we will create a spreadsheet with stats and try to keep it balanced as different classes level up.

You will also use those same stats in a skill system we will develop from scratch in Unity. This system will be able to create damage skills, healing skills, skills that apply buffs and debuffs, etc. They will also use both percentage-based or stat-based calculations.

And to test everything, we will create a simple automated turn-based system.

I hope to see you there o/

Enroll now

What's inside

Learning objectives

  • You will learn about the game design aspect of stats
  • You will learn how to code different types of stat systems
  • You will be able to balance your game
  • You will be able to create your skill system
  • You will be able to create a turn order system
  • You will be able to create a buff/debuff system

Syllabus

Introdução
Intro
Unity and Preparing the Environment
Getting a Text Editor
Read more
Understanding Stats and Their Design
Creating the Project
Unbalance as a Design Decision
Utility vs Flavor
Numerical Gains or Talents
Coding a Stats System
StatEnum
Randomizing Stats and Accessing Them
StatSystem
TryToHit
Using Delegates for Modifiers
Delegates with Reference Types
StatModifiers as Components
Multiplicative Modifiers
Cause Damage
Fight
Project Backup
Balancing D&D-like Stats
Hits to Kill
Chance to Hit
Formulas for Hit Chance
Calculating Damage
Beginning the Simulation Table
Accuracy vs Dodge
Calculating Stat Growth
Setting Up Other Classes' Tables
Finding Balance for the Hit Rate
Finding Balance for the Damage and HP
Finding Balance for the Other Classes
Balancing Another RPG-like Stats
Another Way of Calculating Damage
Adding the new Damage into the Simulation
DEX vs AGI
Remaking the Hit Rate
Defense
DPS
Starting Stats Balance
Growth Stats Balance
Coding a Flexible and Balanced System
HitChance Script
Effect Script
Skill Script
Turning HitChance into a Modular System
Heal Effect
Targeting System
Simulator Choosing Skills Automatically
How Much Each Stat Contributes to the Skill
Reorganizing the Project and Script's Names
Skills that Applies Status Effects
Status Effects Stacking or Not
Adding Controls to Changing HP
Skills that Remove Status Effects
Delegates and Events On Turn Begin
Status with Limited Duration
Reapplying Status Duration
Damage and Heal Over Time
Percentage Effects
Skills with Multiple Effects
Creating other types of Targets
TargetsLowHPAlly
Targets Based On Status Effects
Creating the Classes/Jobs
Turn Order System
Adding the Turn Order to our Simulator
Fixing Bugs
Applying the Stats from the Spreadsheets
Final Project
Final Project Backup

Save this course

Save Game Development: Stats and Skill Systems to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Game Development: Stats and Skill Systems with these activities:
Review Unity Fundamentals
Solidify your understanding of the Unity game engine, including its interface, basic scripting, and game object manipulation, to prepare for the course's practical application of stats and skill systems within Unity.
Browse courses on Unity Engine
Show steps
  • Complete a beginner-level Unity tutorial.
  • Practice creating and manipulating game objects.
  • Review basic C# scripting concepts.
Review 'Game Design Workshop'
Gain a deeper understanding of game design principles, particularly those related to balancing game mechanics and creating engaging player experiences, which are crucial for designing effective stat and skill systems.
Show steps
  • Read the chapters on game mechanics and balancing.
  • Analyze the case studies provided in the book.
  • Reflect on how these principles apply to stat and skill systems.
Prototype a Simple Stat System
Apply the concepts learned in the course by creating a basic stat system in Unity, including defining stats, implementing modifiers, and creating a simple combat scenario to test the system.
Show steps
  • Define a set of core stats (e.g., Strength, Dexterity, Intelligence).
  • Implement a system for modifying stats (e.g., buffs, debuffs).
  • Create a simple combat scenario to test the stat system.
  • Document your design decisions and challenges faced.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Document Your Stat System Design
Solidify your understanding of stat system design by creating a detailed document outlining your design choices, formulas, and balancing considerations.
Show steps
  • Outline the core components of your stat system.
  • Describe the formulas used for calculating stats and effects.
  • Explain your balancing considerations and rationale.
  • Include diagrams or flowcharts to illustrate the system.
Balance a Pre-Made Stat System
Hone your balancing skills by taking a pre-made stat system and adjusting its parameters to achieve a desired level of difficulty and player progression.
Show steps
  • Obtain a pre-made stat system (e.g., from a tutorial or asset store).
  • Identify areas where the system is unbalanced.
  • Adjust stat values, formulas, and modifiers to achieve balance.
  • Test the system with different character builds and scenarios.
Create a Turn-Based Battle Demo
Demonstrate your mastery of the course material by creating a complete turn-based battle demo in Unity, showcasing your stat and skill systems in action.
Show steps
  • Implement a turn-based battle system in Unity.
  • Integrate your stat and skill systems into the battle system.
  • Create a user interface for displaying stats and skills.
  • Add AI opponents with different strategies and abilities.
  • Polish the demo with visual effects and sound effects.
Review 'The Art of Game Design'
Expand your understanding of game design principles and learn to think critically about your design choices, particularly in relation to player experience and the impact of stat and skill systems.
Show steps
  • Read the sections on player psychology and game mechanics.
  • Apply the 'lenses' to analyze existing stat and skill systems.
  • Reflect on how these lenses can improve your own designs.

Career center

Learners who complete Game Development: Stats and Skill Systems will develop knowledge and skills that may be useful to these careers:
Game Systems Designer
A Game Systems Designer specializes in creating and balancing the underlying systems that govern a game's mechanics, such as progression, combat, and economy. This role requires a deep understanding of mathematics, statistics, and game theory. This course directly addresses the core competencies of system design. The course's examination of hit chance formulas, damage calculation, accuracy vs. dodge, and DPS calculations should be particularly useful. The course also addresses the creation of a buff/debuff system, turn order systems, simulations, and skills. All will contribute to the ability to create and balance game systems. The modules on 'Understanding Stats and Their Design', 'Balancing D&D-like Stats', and 'Balancing Another RPG-like Stats' are foundational.
Gameplay Programmer
A Gameplay Programmer is responsible for implementing the game mechanics and systems that define how a player interacts with a game. This role involves writing code to bring game design ideas to life, focusing on player controls, artificial intelligence, and game logic. This course helps gameplay programmers learn how to code different types of stat systems and how to create a skill system. The course's hands-on approach to building a skill system in Unity, including damage skills, healing skills, and status effects, helps you implement core gameplay mechanics. The course's final project focuses on integrating stats from spreadsheets, directly connecting game design with code. A look at turn-based systems will be beneficial to roles in some contexts.
Game Designer
A Game Designer conceptualizes and designs the rules, systems, and mechanics that make a game engaging. This role involves a deep understanding of player psychology, game balance, and the overall player experience. This course may be useful for prospective game designers as it explores the game design aspects of stats, balance, and the consequences of design decisions. The course's hands-on experience in creating and balancing stat systems, as well as building a skill system from scratch, helps build a foundation for designing engaging and well-balanced games. By learning to create damage skills, healing skills, and skills that apply buffs and debuffs, you learn to add depth and strategy to your game designs. Knowledge of balancing D&D-like stats and RPG-like stats would also prove useful.
Mobile Game Developer
A Mobile Game Developer specializes in creating games for mobile devices, such as smartphones and tablets. This role requires proficiency in mobile development platforms, such as iOS and Android, and an understanding of mobile game design principles. This course helps mobile game developers improve the fundamental game design skills needed to succeed in the mobile market. The course uses Unity, a popular engine. The course's exploration of game design aspects of stats, balance, and the consequences of design decisions is transferable to mobile. The course's hands-on experience in creating and balancing stat systems, and building a skill system, contributes to skills when designing engaging mobile games.
Combat Designer
A Combat Designer focuses specifically on the design and implementation of combat mechanics within a game. This includes designing enemy behaviors, weapon systems, and player abilities, ensuring that combat is engaging and balanced. This course helps prospective combat designers by providing understanding of game balance and the design decisions that impact it. The course looks at the creation of damage skills, buff skills, and debuff skills. There is also coverage of hit chance formulas, damage calculation, accuracy versus dodge, DPS calculations, and status effects. These are central to combat design. The modules on 'Cause Damage' and 'Fight' are also helpful in this context.
Technical Designer
A Technical Designer bridges the gap between game design and programming, implementing game mechanics and features using scripting languages or visual scripting tools. This role requires a blend of creative problem-solving and technical skills, as well as an ability to work with both designers and programmers. This course may be useful for learning about the game design aspects of stats, building your ability to balance games. The course directly addresses the implementation of stats and skills inside of Unity. The modules on 'Coding a Stats System' and 'Coding a Flexible and Balanced System' can be applied to the toolsets used by Technical Designers. The final project also provides a chance for Technical Designers to showcase the skills they have learned.
Math Programmer
A Math Programmer specializes in using mathematical and statistical techniques to solve problems in software development. This role is common in fields like game development, simulations, or scientific computing. This course helps math programmers improve skills in statistical and math-based modeling for games. The course's focus on stats, skills, and balance helps math programmers work with numerical systems. The course's lessons on hit chance formulas, damage calculations, accuracy versus dodge, DPS calculations, and simulations are particularly valuable.
Artificial Intelligence Programmer
An Artificial Intelligence Programmer designs and implements AI systems for games. This role requires a strong understanding of algorithms, machine learning, and game mechanics. This course helps AI programmers gain a better grasp of game mechanics and design. The course's exploration of different stat systems, skills, damage, and balance helps AI programmers create more sophisticated AI behaviors. An understanding of turn-based and buff/debuff systems would also prove useful.
Economy Designer
An Economy Designer is responsible for creating and managing the in-game economy, including resource acquisition, item pricing, and progression systems. This role involves analyzing player behavior and data to ensure a fair and engaging economic experience. This course may be useful for prospective economy designers by teaching about the design aspects of game balance. While the course focuses on stats and skills, which are more closely tied to character progression, the underlying principles of balancing systems and understanding the relationships between different elements are transferable. The course's lessons on numerical gains versus talents and utility versus flavor can also be applied to crafting a balanced and interesting economy.
Simulation Designer
A Simulation Designer conceptualizes, designs, and implements simulations for various purposes, such as training, research, or entertainment. This role requires understanding of mathematical modeling, programming, and user interface design. This course may be useful for simulation designers as it teaches statistical modeling for game applications. The course's focus on stats, skills, and balance helps simulation designers create realistic and engaging simulations. The course's final project of applying stats from spreadsheets to a turn-based combat system mirrors the work needed to model a simulation environment.
Data Analyst
A Data Analyst collects, processes, and analyzes data to identify trends and insights that can inform business decisions. They use statistical techniques and data visualization tools to communicate findings to stakeholders. This course may be useful for a data analyst working with games by understanding the underlying mechanics and systems that generate in-game data. The course's emphasis on balancing stats, skills, and combat systems provides a framework for interpreting player behavior and identifying areas for improvement. The course's exploration of different stat systems, hit chance formulas, damage calculations, and simulations may also provide a context for analyzing game data.
Software Engineer
A Software Engineer designs, develops, and tests software applications. This role involves writing code, debugging issues, and collaborating with other developers to create high-quality software products. This course may be useful for software engineers wishing to improve skills in the design of numerical systems in games. The course uses Unity as its development engine. The course's hands-on experience coding different types of stat systems, creating a skill system from scratch, and developing a turn-based system helps build a foundation for designing and implementing complex game mechanics. The modules on 'Coding a Stats System' and 'Coding a Flexible and Balanced System' provide practical coding experience.
Monetization Designer
A Monetization Designer focuses on creating and implementing strategies to generate revenue from a game. This involves designing in-app purchases, subscription models, and other monetization mechanics, while ensuring a positive player experience. This course may be useful for a monetization designer as they learn about balancing systems, and how they relate to player experience. The course, while not directly focused on monetization, covers game balance, player progression, and the impact of design decisions. The course's exploration of different stat systems and skills may provide a foundation for designing monetization mechanics that are fair. The knowledge of player turn-based systems might inform pacing
Quality Assurance Tester
A Quality Assurance Tester is responsible for identifying and reporting software defects through systematic testing. This role involves executing test cases, analyzing results, and working with developers to resolve issues. This course may be useful for QA testers as it provides a deeper understanding of game mechanics and systems. The course's focus on stats, skills, and balance helps testers anticipate potential issues and design more effective test cases. Testers are able to better understand the impact of changes to stats, skill, turn-based, and buff or debuff systems. The 'Balancing' modules also help QA testers.
Full-Stack Developer
A Full Stack Developer is a versatile software engineer who can work on both the front-end and back-end of web applications. This role requires proficiency in multiple programming languages, databases, and server technologies. This course may be useful for full stack developers who wish to develop statistical prowess in the context of game development. The course uses Unity as its basis. The course's hands-on modules on coding different types of stat systems, creating a skill system from scratch, and developing a turn-based system helps build a foundation for designing and implementing complex systems. The modules on 'Coding a Stats System' and 'Coding a Flexible and Balanced System' provide practical coding experience.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Game Development: Stats and Skill Systems.
Provides a comprehensive overview of game design principles, including balancing game mechanics and creating engaging player experiences. It is particularly useful for understanding the design decisions behind stat and skill systems. While not directly focused on coding, it offers valuable insights into the 'why' behind the systems you'll be building. This book is commonly used as a textbook in game design courses.
Offers a wide array of 'lenses' through which to view game design problems, helping you to think critically about your design choices. It's valuable for understanding the player experience and how stat and skill systems contribute to it. This book is more valuable as additional reading than it is as a current reference. It is commonly used as a textbook in game design courses.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2025 OpenCourser