HeroRobb / godot-psx-starter-project

A base project for creating retro psx style games in the godot engine.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hero Robb's Godot PSX Starter Project

(HR PSX)

A base project for creating retro psx style games in the godot engine.

Attribution

Many of the shaders used are from MenacingMecha's godot psx style demo, AesthicalZ's Godot PSX, Ahopness' GodotRetro, and GithubPrankster's GPSX so thank them if you use this because it would have never been possible without them. In addition, player_trigger.gd is heavily based on GameDev Compass, the screenshake is based heavily on ShaggyDev's. I also used/changed/stole/learned from tons of things from tons of different programmers and developers. I couldn't possibly list them all. You can attribute me for using this by keeping the default attribution in the intro if you want.

Screenshots

screenshot1 screenshot2 screenshot3 lol this one has a screen capture notification screenshot4

how to use this project

Quickstart

  1. Download all the code in the latest release and unzip it where you want your new project to be.
  2. Open Godot and click import, find the godot-psx-starter-project folder you got from unzipping and select the project.godot file inside it. You should be able to run the game using F5 to see a very short example/demo that will give you an idea of what can be done.
  3. Edit management/global.gd to add to the enums for your game (eg fill LEVELS with your level names, MUSIC with the names of the music you're using). Then you should probably save and click project -> reload current project because sometimes this can cause problems with exported members that rely on these enums, so it's best to be safe.
  4. Open management/resource_manager.tscn and edit the exported arrays (level_data, music_data, sfx_data, and ambience_data) for various data for your game, you should only have to add an entry to the array by creating a new resource_data type (eg level_data, music_data) and giving it an ID you set in step 3 and a path to the actual file (eg the .tscn file for level_data or the .ogg file for music_data).
  5. Make sure management/game_manager.tscn is the main scene in your project and open it to edit the exported variables for the GameManager and Launcher. Keep in mind GameManager has the array for default shaders and Launcher has a member for what scene it should transition to afterwards. If you're messing with stuff or trying to add this to an existing project, make sure the autoload singletons in Project->project settings->autoload for SoundManager and ResourceManager are the .tscn files and not just the .gd files.
  6. Most of how you should interact with the various scripts and nodes here in your game should be through the use of the signals in the SignalManager singleton (eg SignalManager.change_scene_needed.emit(Global.LEVELS.THE_SCENE_YOU_ADDED_IN_STEP_3).

A lot of the scripts have formatted documentation so you can see the autodocs by going to the script tab in Godot, clicking "search help" in the upper right corner and typing the class name from the top of the script or the name of the .gd file (eg: debug_menu). There is a problem with Godot where sometimes the custom classes get removed from the "search help" menu, which is annoying. To fix this bug, simply erase a bit of the documentation comments, save the script, undo the erase, save the script again, and it will show up. shrugs

GameManager

First you have to decide if you want to render your game in a subviewport or not. You can try both options by running management/game_manager_with_subviewports.tscn and management/game_manager_no_subviewports.tscn with F6 in the editor. I reccomend making the resolution 1280x720 with subviewports or 320x180 for no subviewports in the top left of the editor under project -> project settings -> display -> window -> viewport width/height. Make sure one of the GameManager scenes is the main scene in your project. In the GameManager scene, select the Launcher (the path to it should be GameManager/PPDitherContainer/SubViewport/LevelContainer/LauncherExample or GameManager/LevelContainer/LauncherExample). There are some values you can change in the editor for the GameManager involving which post-processing effects you want as a default, the framerate, etc. Many things can be changed in the editor for the Launcher as well.

TODO: the rest of the readme lol

About

A base project for creating retro psx style games in the godot engine.

License:MIT License


Languages

Language:GDScript 100.0%