Objective/Mission/GoaL system?

Im trying to figure out a way to create an ‘automatic’ objective system so like at the start of the game, one mission will pop up and hence will be completed by a player action or so then that mission is completed (with an indicator) then another mission pops up (in the UI) and so on. I would also want the missions to be editable easily in a way that I don’t want to hard code every mission (if that is possible) otherwise what is the most efficient methods in creating an objective system without clicking it to activate, just an auto start and auto complete kind of missions based on player actions.

For example:

  • Game starts
  • Mission 1 pops up (“Walk forward”)
    *Player presses W
    *Mission 1 updates to (“Mission X complete”)
    *Mission 1 text dissappears
    *Mission 2 pops up (“Walk left”)
  • Player presses A
  • Mission 2 text update (“Mission 2 completed”)
  • Another mission pops up and so on…

something like this i am looking for but its hard for me finding a way to control player action that will affect the objective system like picking up batteries or walk towards door.

If you want to be able to have your missions that generic, you are having your work cut out for you.

In any way, you should start to categorize your missions (e.g. fetch, kill, travel), and perhaps see if it’s possible to deconstruct your Mission into a collection of objectives (e.g. a Mission is a collection or sequence (not the same, sequences are much more difficult) of objectives). These objectives will require specific coding with some Parameters to check, and you’ll have to implement a system that checks all currently active objectives. As soon as you have completed an objective, you’ll invoke the next higher process to see if you have completed a mission.

Usually, you’ll then encode mission in some Kind of XML or JSON which will allow you to edit them outside your game. There really is no Limit to the complexity you will Encounter here - just think about the added complexity to cover displaying the objective. The naice Approach would be to simply store ‘Walk forward’ in the objective description. Then remember that this game may be for an international audience, and you may need to add hooks for Translation.

And, some kind of rule engine that iterates the active objectives and interprets game actions is required. I do understand that your examples above where just that: examples. But for very, very simple or small missions, it’s usually worth creating separate tutorials that can take care of the very, very small stuff in a dedicated matter much better than a fully blown Mission System.