Setup - Kermalis/PokemonGameEngine GitHub Wiki

System Requirements

The game engine itself uses .NET 6.0. You will need the developer kit for it, but your IDE usually will provide it for you during setup. You will also need an OS that has OpenGL 4.2 drivers (for your GPU or integrated graphics on your CPU). OpenGL 4.2 was released on August 8th, 2011, so... you probably don't have to worry about it being available on your system. OpenGL is used since EXECUTING ORDER 66 (https://github.com/Kermalis/PokemonGameEngine/pull/66). There is a release on the repository that contains the old software renderer version.

Pokémon Sprites

The game by default shares the animated (.gif) files and mini-sprite (.png/.txt) files used in PokemonBattleEngine. You can download the PokemonBattleEngine repository and place it in the same directory as the PokemonGameEngine repository. The file path would look like this:

- Base Folder
  - PokemonBattleEngine
  - PokemonGameEngine

Alternatively, you can download just the PKMN sprites folder from PokemonBattleEngine's repository and update the PokemonGameEngine.csproj file. The line you're looking for is under <!--Pokémon sprites-->. Update the path there to point to the animated sprites folder you downloaded. The sprites use a specific naming scheme, so do not rename them unless you are going to edit the sprite loading functions in PokemonImageLoader.cs.

Assets

The assets are resources the game uses, such as scripts, images, text files, etc. The release build of the game takes all of these assets and places them in an Assets folder next to the game binary for direct access, and this is how you'd distribute your game easily; just copy the entire game's folder including the assets. However, the debug build of the game will access the assets from their rightful locations on your system, which makes the build take less time and also saves space on your drive (currently around 400MB) since they're not being copied.

Certain assets need to be built into a way the game can understand. For example, all scripts are stored in .txt files for the developer to easily change. However, the game reads all of the scripts as a single binary file, which saves space and processing time. These assets need to be built every time they are changed before you run the game because their original formats (.json/.txt etc) will not be seen by the game by default and are not copied to the release Assets folder.

Those assets are built using NUKE build.

Setting up or updating NUKE

If you run _build and see that it asks you to update (after you updated the nuget package), then follow the instructions provided to update the tool. If it asks you to update configuration, make sure you do that because you will get errors if you forget to. You can skip the "global" configuration update, since this just adds an unnecessary global.json to the solution directory.

Building the assets with NUKE

To build the assets, you will need to run the _build project every time you want to build assets. It's a normal C# project, so you would run it like you would any other program, and can debug it normally if you had to. The build command to run is specified in Main() in Build.cs, so you can change which command to run, such as cleaning the assets or building only specific assets.