Skip to content

A fully-featured Pokemon Battle Simulator created with Unity 2022.1.7f1+PKHeX Database.

Notifications You must be signed in to change notification settings

Linekan/pbs-unity

 
 

Repository files navigation

Pokemon Battle Simulator in Unity (PBS)

Update - 2022.7.05

  • Base unity version is 2022.1.7f1 but you can easily downgrade to 2021.3LTS if desired.
  • PBS has been moved to its custom assembly definition for easy handle.
  • External assets have been placed outside (root assets folder).
  • PKHex4Unity has now fixes when NET standard is selected but 4.x is required in order to work with savefiles.
  • If you have SFB already installed, remember to delete the Assets\PKHexForUnity\ThirdParty\StandaloneFileBrowser\Plugins folder.
  • Added icons as MIT license from PKHeX repository.
  • PKHeX Core is not require to compile but to use it, add the define symbol #PKHEX_FOR_UNITY

Update - 2022.6.03

The system has been updated to version 66.0.9 of Mirror and Unity 2022.1.3f1 for QoL. In addition, my PKHeX wrapper was imported for full database.

Update - 2020.11.20

Came back to this project for some small updates and to more formally open-source it.

  • Integrated the Mirror Package to enable PvP functionality.
  • Created a ZenHub Board for this project to better organize issues and epics. To see it, just install the ZenHub browser extension, and you should see the "ZenHub" tab listed beside "Pull Requests".
  • Code cleanup and asset folder reorganization. This will be an ongoing project, with issues going under this epic

Overview

This was a short project I worked on and off for about 4 months, and it simulates the Pokemon battling system for the 8th generation. The focus of the project was solely the battle system, so there is no overworld or exploration component. Furthermore, most of the present game data such as Pokemon, items, moves, abilities, etc. are placeholders used to test the wide range of mechanics. The underlying system is in place for users to add their own game data to the project.

Screenshots

BattleScreen BattleScreen
BattleScreen BattleScreen

Wifi Battle Demo

Youtube Link

Notable Features

  • Single & Double Battles
  • P v. P, P v. AI
  • Mega Evolution, Z-Moves, Dynamax & Gigantamax
  • Most Moves & Abilities
  • Status (non-volatile & volatile), weather, terrain conditions
  • Entry Hazards
  • Some items
  • More...

Notable Missing Features

  • Audio, will be captured by this epic
  • Most graphics (Trainers, Moves, etc.), captured by this epic
  • Animations

How To Play

Make sure you select the scene 'BWBattleScene' in Assets/Scenes, and click the Play button at the top of the Editor.

The scene can also be played by building the project.

Controls

  • Arrow Keys: Navigate battle menus
  • Spacebar: Confirm selection
  • X: Cancel selection
  • Z: Trigger special command (Mega Evolution, Dynamax, or Z-Move)

To change battle settings:

  • On the Scene Hierarchy, go to PBS -> Network Manager
  • There should be an expandable Battle Settings attribute
    • Required Players are the amount of human players needed to start a battle
    • Total Players are the amount of players in the battle. The amount of AI Players = Total - Required
    • Currently only tested with P v. P, and P v. AI

IMPORTANT: Game Data

Game data entails Pokemon, types, moves, abilities, items, statuses, environmental conditions (weather, terrain), and each of these has its own class and associated database where their properties are meant to be stored. MOST GAME DATA ARE PLACEHOLDERS. They are not fully implemented and not meant to be used in a release. The databases are in-memory dictionaries for quick testing, but in the future these should be formal databases (SQL most likely).

Customizability

All the game data classes are designed to be customizable and allow for easy plug-and-play of new features (moves, abilities, items, status conditions, weather, etc.). It is even possible to build new features using old ones as a base. For example, I was able to create the following features without much battle code editing:

  • 'Heavy Rain' extends from 'Rain' (simply adding new effects on top of Rain)
  • 'Toxic' extends from 'Poison' (1 additional damage stacking effect)
  • 'Blaze' and 'Overgrow' differ by one property value (the type affected)
  • 'Parental Bond' can have more hits, and scale damage differently
  • ... many, many more

Looking for Contributors

Discord Link

Anyone can contribute to this huge project, and contributors will be needed!

You can contribute by:

  • Opening issues for missing features
  • Working on open issues
  • Reporting bugs
  • Suggestions for improvement and optimization
  • Any other way you can think of

Any small contribution helps! Here are some smaller issues I've noted that anyone can help out with.

Final Notes

  • Most of the code isn't documented as well as I'd like, and that work will be captured by this epic
  • There is some legacy code, and that will generally be phased out, captured by this epic
  • If you need help with learning what certain parts of code does, just hit up the Discord

Disclaimer

Pokémon Battle Simulator (PBS) is an unaffiliated, fan-created project based on the Pokémon video game series, owned by Nintendo, Game Freak, and The Pokémon Company. PBS neither owns nor claims to own any portion of the Pokémon franchise. All custom artwork and coding for PBS is credited to their creators, but the intellectual property remains under ownership of the aformentioned parties.

About

A fully-featured Pokemon Battle Simulator created with Unity 2022.1.7f1+PKHeX Database.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • C# 98.9%
  • Other 1.1%