Original Post
Hello,
I'm working on an Amiga Games in Blitz Basic. Inspiration is from Moonstone, Diablo 3, and Monkey Island 1, but it's basically a shoot-em-up/side-scroller. It will be based on an open map, like Moonstone, where routes between places (e.g. planets or space stations) are shorter shoot-em-up stages. In each place you can buy / sell, talk to characters, etc.
Upon this, I'd like to have a story. The question is how this should be represented in the game. I have a number of types (structs) to start with, for example, Character, Dialogue and Quest. I am also thinking of making an editor where you can create new characters, and above all dialogues.
Does anyone have experience with something similar? I'd like to avoid FSM, just think it leads to cluttered code. Would also like to avoid a lot of if-statements and switch statements for each characer, like "if quest1 done then say else say blah blah".
One solution would be to implement a small scripting language that takes care of decisions for the characters, and which can be loaded dynamically (the behavior of a character can then be loaded and replaced when a certain quest is completed).
Ideas, anyone?
I'm working on an Amiga Games in Blitz Basic. Inspiration is from Moonstone, Diablo 3, and Monkey Island 1, but it's basically a shoot-em-up/side-scroller. It will be based on an open map, like Moonstone, where routes between places (e.g. planets or space stations) are shorter shoot-em-up stages. In each place you can buy / sell, talk to characters, etc.
Upon this, I'd like to have a story. The question is how this should be represented in the game. I have a number of types (structs) to start with, for example, Character, Dialogue and Quest. I am also thinking of making an editor where you can create new characters, and above all dialogues.
Does anyone have experience with something similar? I'd like to avoid FSM, just think it leads to cluttered code. Would also like to avoid a lot of if-statements and switch statements for each characer, like "if quest1 done then say else say blah blah".
One solution would be to implement a small scripting language that takes care of decisions for the characters, and which can be loaded dynamically (the behavior of a character can then be loaded and replaced when a certain quest is completed).
Ideas, anyone?