-
Notifications
You must be signed in to change notification settings - Fork 1
Add game features, update graphics #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
gonuke
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks pretty good, mostly very minor points, and some may not make sense - I'm guessing some things about how Godot works...
| *.ogg | ||
| *.png | ||
| *.jpg |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we discussed this before, but don't we want include these artifacts to ensure the reproducibility of the project?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They are not included for the same reason as the .csv, .ogg, and .obj files, which is that they can be large and take up too much space in the repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are they all large? I think we need to find some solution to this. Can you post some information about file sizes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.csv
points.csvis 222KBtank10.csvis 223MB (large)tworoom10msht.csvis 28MB
.obj
GeigerCounter.objis 3MBTwoRoomModel.objis 43KB
.ogg
geigercounter.oggis 6 KB
.jpg
- In total, the
texturesfolder is 18.5MB - Each
.jpgranges from 0.4MB to 2MB, and there are 4.jpgused for each PBR texture. There are currently 5 PBR textures in game.
The fonts folder is 451KB.
Another thing to consider is that the .git folder will become very large if there are ever any changes made to these large binary files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah... a little larger than we'd like and I don't want to get into git large file stuff...
That said, we would like to have an easy way for someone else to replicate this. We can host these files somewhere and have a step to download and unpack them into the right place.
We may also want to think about how we separate them out. For example, I could imagine building a library of textures (jpg) and sounds (ogg), but the geometry (obj) and rad data (csv) are unique to a particular case.
|
I made the following changes:
|
Closes #6, #8, #9, #11.
New Features
Main Menu Screen
Level Select Screen
Loading Screen
.csvfile into an array takes a relatively large amount of time).csvfile takes up most of the time and it happens first)Pause Screen
Objectives
For Level 1, there are two objectives:
Completing an objective will cause a notification to be displayed and will mark the objective as completed in the Pause Screen
End Screen
Models
Code Review
General thoughts:
Mainscene's name toLevel1since the new default scene is theMainMenuscene.onready varfor the paths to certain nodes. This is to increase readability and also performance because we only have to find the node once at the start.GeigerViewport.gdbecause I realized that the tutorial I followed for 3D Labels was outdated andLabel3Dexists starting in Godot 3.5 (the version I'm using)Global.gdGlobal.go_to_scene("...")load_scene()loads a scene in the background while displaying the loading screen. Used for loading in scenes with radiation maps that need data from.csvfiles (since they load slowly)go_to_scene()switches to a scene directly without showing the loading screen. The deferred method is there just to make sure that nothing is running when we try to switch the current scene.MainMenu.gdThe reason why we don't call
get_tree().quit()in the_on_QuitButton_pressed()function and instead send a notification so that the game quits in the_notification()function is because in the future, we might want to do things before we quit, such as saving Player data and whatnot.ObjNotif.gdThis uses an array as a queue to store all the objectives because it's possible for the player to complete multiple objectives at the same time. Without the queue, only the first objective completed will send a notification, and the other objective notifications won't be shown. This could be updated in the future to use a
ScrollContainerso that multiple objectives can be shown at once.Player.gdRemoved the
GC_click_soundvariable because it wasn't used in this script, so its existence seemed arbitrary. Don't worry, it's been added toLevel1.gdsince that's where it was actually being used.text_theme.tresThis is a
Themethat I'm using for the buttons inMainMenuandLevelSelect. Originally, this was so that I could reuse the same theme in different scenes, but then I realized that I could just copy and paste themes across different scenes, so I didn't save any more of my themes as.tres. This could be removed if necessary, it would just take a little bit of effort to remake the theme and not save it.Thoughts, Questions
Modularity
Previously, there was the idea of being able to plug in
.csvfiles into the game in order to simulate different radiation situations. After texturing the TwoRoom model, I do not think this is a feasible idea without some advanced infrastructure to generate the associated models, textures, and collisions in Godot. This is because the.csvfile will get you the radiation map, but it doesn't have any information about the collisions (which must be done in Godot), model, or textures.Quit, LevelSelect Buttons
Currently, the Quit and Level Select Buttons have similar functionalities wherever they are. Should they be made into their own scenes for more modularity and not having to repeat these functions in other scenes? Currently, they are being used in the
MainMenu,PauseScreen, andLvlCompleteScreenscenes, and it's unlikely they will be used in another scene. Also, making them scenes means 2 extra scripts and scenes.Final Remarks
If anyone has any ideas about what I should add to the game, please add a draft or issue in the GitHub Project.