Hello,
I'm looking into AC and I wanted to ask a couple of questions about the feasibility of using AC for the game I am developing or if I'd be trying to push AC out of what it is actually designed for too much.
First, an example of what the game would be trying to accomplish in simple terms;
2D adventure setup, scenes revolve around clicking buttons/objects which will trigger events/animations, minimal character movement if any, game is driven primarily via conversation (text box, multiple choice).
Example; You are a hotel manager and you've inherited a rundown hotel (maybe it's haunted, I dunno), you need to rebuild the hotel and attract customers.
You start with say 10 rooms that when clicked on, will allow you to build a type of room (bedroom, laundry room, staff room etc) which will then define the scene that occurs when you select the newly built room and hit enter.
As far as events triggering, I believe AC can do this with a combination of the On Load cutscene setting and Variable checking which seems fairly straight forward so I don't have any questions about that.
Questions;
Is it possible to replace parts of a scene (such as the door for one of these rooms) with another object/icon as part of an event and have this save for future visits? e.g you click a door and build a bedroom, this door now changes to the bedroom icon or some such and persists across visits to this scene.
Is the aforementioned example feasible in AC in a sense of it being worth while using AC for this or if coding this outside of AC would be the more efficient path here?
Cheers
Comments
As the detail you've provided is a little bit simple, I can't give too thorough an answer - but know that you can always rely on a mixture of both AC and custom coding.
While AC's variable etc systems can generally be used to "add on" functionality that go beyond the standard traditional adventure elements that it is designed for, sometimes it makes more sense to just integrate separate code on top of it - but you can still use this in conjunction with the rest of AC.
In the case of replacing parts of the scene, you can approach it from a couple of ways:
AC is able to handle the addition of new Hotspots etc at runtime, so long as you tell the StateHandler to update its own internal record of what's in the scene. As per the front page of the scripting guide, this is done with a simple call of:
AC.KickStarter.stateHandler.GatherObjects ();
Which option you go for is really down to the complexity of the sim and personal choice, though as AC isn't geared towards sim-like gameplay it may well be that its not the best asset for the job in this case. A series of customisation tutorials, however, can be found here. Know that you can also check out the Manual online before purchase, and Section 12 covers extending AC through code.
If you want the same Actions to run regardless of the reason the scene was opened, you can create a third Cutscene and have both your OnStart and OnLoad Cutscenes run it using ActionList: Run.
Another feature to keep in mind of is the ability to parameterise ActionLists - see this tutorial. This allows you to "recycle" Actions to have them perform the same steps on different objects, but should generally only be introduced once you're ready with the way things work for one scene / scenario, and are ready to make a more generalised ActionList that you can use anywhere.