As promised last week I’ll now give more insight about the means and purposes of the mission system on a gameplay and game experience level.
After a good coding day I’m proud to say that it looks like the good end to begin with (downside-up), I’ve come up with a good file formatting:
<Mission> <MissionCode></MissionCode> <!-- Mission unique code --> <MissionTitle><MissionTitle/> <MissionType></MissionType> <!-- Secondary,Primary,PrimaryChoice (autosave), Generic --> <Prerequisite> <SystemName></SystemName> <SystemFaction></SystemFaction> <PlanetName></PlanetName> <PlanetFaction></PlanetFaction> <PlanetType></PlanetType> <!-- sand, ocean, ice, void,... --> <PlanetLevel></PlanetLevel> <PlayerStanding></PlayerStanding> <!-- combat rating--> <PlayerFactionStanding> <Faction></Faction> <Standing></Standing> <!-- Faction behaviors --> </PlayerFactionStanding> <Count> <Ship> <ShipType></ShipType> <ShipFaction></ShipFaction> </Ship> <FreeCargo></FreeCargo> <CargoObject></CargoObject> <Equipment></Equipment> <Money></Money> <Number></Number> <Sign></Sign> <!-- used to get "at most" or "at least" info --> </Count> </Prerequisite> <MissionText></MissionText> <MissionChoices> <Choice> <Label></Label> <Code></Code> <!-- empty if last mission in the stream --> <File></File> <!-- empty if same file --> </Choice> </MissionChoices> <MissionActions> <SummonShip> <Type></Type> <Faction></Faction> <Number></Number> </SummonShip> <Money></Money> <CargoObject> <Object></Object> <Sign></Sign> <!-- used to know if adding or removing (end of a transport mission) --> </CargoObject> <Equipment></Equipment> <Ship></Ship> <FactionStanding> <Faction></Faction> <Sign></Sign> <!-- always + or - 1 in standing --> </FactionStanding> <PlayerStanding></PlayerStanding> </MissionActions> </Mission>
Each element inside the big parts (Prerequisites, Choices, Actions) being removable or duplicable to allow good flexibility. You can put several missions from the same « mission stream » in the same file to avoid having thousands of mission files.
Everyone and even non-programmers muggles have faced more than once the antedilvian problem of which action to do first in a row of two, each one interconnected tightly with the other ( « chicken or egg » sentence).
In my case it happens with the mission system, composed of two parts:
– a mission manager, interpreting and acting/linking missions
– a mission object, to store the mission infos (text, references for checks, …) and to link the references to the next mission(s), it can allow for randomly generated « basic missions » like bounty hunting, cargo hauling,…
The question on which one to begin is in my point of view like a key and its lock.
I decided previously to store the missions information in several mission files written in a XML-like fashion, using keywords I’ll detail the different checks to perform, then I’ll display the text of the mission and the possible choices ( yes/no/next ), each one pointing on the next mission.
I’ve decided for now to try an « downside-up » approach, designing the needed infos and then the manager to use them.
More news here as I dig into the problem 😉
Hy there sparklineers, it’s been over than two weeks without post and much happened during that time.
I’ve begun to rent the domain name for the project, Alcyon-Infinity.com, and started recruiting a team to help with the tremendous load of work ahead.