- Fix bug with continue: - CHECK IF STILL THERE!
- If choose "no" (and exit game), when come back with "continue", we're back with the last life ...
=> Don't allow to continue if chosen "no" (delete data)!
- If choose "no" (and exit game), when come back with "continue", we're back with the last life ...
- "Fix" debriefing stuff: Need to determine when it's last level (MODIFY "IsGameComplete").
=> EITHER:- reach a level with no "next" (=null)
- all the levels are "completed" (=true)
- Check why calling "CommitChanges" in "DebriefingFail", but not in "Debriefing".
- (?) Might not be a good thing to call "PlayerPrefs" in "SessionManager.Reset"
=> If want to keep data persistent through different games (eg: highest scores, etc.) - "GameData.Leave" calls "SessionManager.Save" to save the data when leaving the game graph.
- This can be a problem as data is not saved before, so in case of crash (or voluntary "kill" of the application) the data will not be saved (which can be seen both as a bug or as a way to cheat)
=> OK to keep as is?
- This can be a problem as data is not saved before, so in case of crash (or voluntary "kill" of the application) the data will not be saved (which can be seen both as a bug or as a way to cheat)
- Make documentation
=> Use, objects/projects, tests, etc. - Write README.md
- Remove/fix TODOs
- Add comments in "scripts/GameData" of V1
- Remove useless "using" in scripts
- Unify
- Coding style (uniformise)
- Variables/prefabs/resources names
- Add/remove comments
- Remove/comment logs
- ...
- Files in "Resources/Xml/" should not be common
=> Move out of engine (& set templates/examples) - Remove things from "tests" than could be generic
- General:
- For calls to "LoadChildState", use enum of defined children instead of strings
=> How?- set param as public in Editor
=> And provide list of child states (instead of hardcoded!)
- set param as public in Editor
- See how to manage init timer and game timer properly
=> NOT as in RAD! - "continueScene" should be enums instead of strings! (?)
- For calls to "LoadChildState", use enum of defined children instead of strings
- Data:
- Serialize data for save/load & options/ingame files
https://gamedevelopment.tutsplus.com/tutorials/how-to-save-and-load-your-players-progress-in-unity--cms-20934 - Use binary files for save/load & options/ingame files
=> Look at:
https://answers.unity.com/questions/1219643/how-to-store-game-variables.html
- Serialize data for save/load & options/ingame files
- LevelManager:
- Add listeners management:
- AddListener(listener, eventType) => Called by listeners
- NotifyListeners() => Called when an event occurs
=> Use this for "Start" listeners (when "doingSetup" is done)
- Set "HudController" as public field
- Remove "HUD" reference from "LevelController" and do everything in "LevelManager"
=> Pass variables from "LevelController" to "LevelManager"
! - No need to get variables from "GameData" from "LevelController" ("LevelController" and "HudController" are independent)
- Add listeners management:
- HudController:
- Don't override fade delay with flash speed
=> Use different variables - Set "timeStep" as a variable
- Don't override fade delay with flash speed
- Level:
- (?) Add "Pause", "Unpause" & "Quit" to "Level.cs"? (as abstract)
- (?) "StartLevel" in "LevelManager" should override method from "Level"?
=> Add abstract method in "Level.cs"? - (?) Add "NotifyHit" in "Level.cs" (common?)
- (?) Add "NotifyHeal" in "Level.cs" (common?)
- Add symbolic links script for Linux ("set_links")
LATER:
- Add a graph editor for the state transitions
- ...