Hey all -
I'm in the process of rethinking how I should organize my project and wanted to run it by you all to see what you thought in terms of organization/optimization and how AC would best behave.
In a hypothetical situation, say there is a game that is broken up into multiple "days" (I say hypothetical but I mean actual...because that's what I'm doing). Each day has a host of locations that the player can explore. There are outdoor areas that they can walk around in, they can discover a house, open the door, transition to a house "interior" environment, explore that, leave, continuing exploring outside, etc...Now that house might have different events that might take place on different days, or it might change look, etc...
I currently have every exterior and interior broken out into separate scenes and I'm just calling Change Scene on a trigger enter when it's necessary (or on a specific event), but have different versions of each of those scenes for the day in which it takes place. Ie:
PROJECT
-> Scene: Day 1 - Town Exterior
-> Scene: Day 1 - General Store
-> Scene: Day 1 - Saloon
-> Scene: Day 2 - Town Exterior
-> Scene: Day 2 - General Store
-> Scene: Day 2 - Saloon
etc...
To me that makes more sense from an organizational standpoint, but I did have someone suggest that I make each day its own large scene that would contain *all* locations and characters relevant to that day...this seems like it would be very unwieldy, but I'm open to looking into it. So it would be more akin to this:
PROJECT
-> Scene: Day 1 - All necessary locations/characters
-> Scene: Day 2 - All necessary locations/characters
-> Scene: Day 3 - All necessary locations/characters
etc...
It certainly cuts down the number of scenes in the project, but I'm nervous that it would just become a massive beast that would be difficult to track down issues and to optimize later down the road.
Any thoughts?
-z
Comments
I haven't done much in the way of variables yet. I have a few local variables that are basic true/false booleans that just checks to make sure a player has done something. If they have done the proper task, then the scene continues. If they haven't, then something else takes place (they usually get killed). In terms of global variables, I'm needing a little more guidance . As Xidore suggested above, I want to setup a "Day" variable to check which day the player is in (there are 7 days in my game), and I'm starting to feel a little overwhelmed. Right now I have a global variable setup using an integer and just going from 1-7 (or 0-6). I get that certain interactions can check what variable I'm in, so stuff like dialogue and that sort of thing, I understand...I'm having a bigger issue of having certain objects be available/visible based off of what day I'm in...For example, I want there to be a location that the player walks by pretty frequently to have a crowd gathered around in a certain day. Do I attach the "Remember Visibility" component on those objects and set a variable to it that way? Likewise, there might be quest items that show up in certain days and I'm just not sure how to get started on some of that stuff.
Another big global variable that I need to setup is having the system remember where the player is coming from and going to when on the OverWorld Map scene. I'm not too sure how to set that one up. Basically, if you're walking around in the OverWorld scene and walk to the front door to the General Store, I need the system to keep the day in mind when you enter the General Store Interior scene, but then when you exit the General Store Interior and back into the OverWorld scene; it needs to remember the player start location that's outside of the General Store itself...Do I use markers for that kind of stuff and then have another Remember component on those things? Multiple PlayerStarts?
Sorry, I'm feeling a bit dumb about some of this stuff in terms of just getting started. I feel like I need a "Global Variables for Dummies" book.
Thanks for any info!
Looks like this could help me out with the OverWorld location issue...now I just need to figure out the Day variable!
You can also use the Scene: Check previous Action to determine which scene was last visited - may be useful!