This is really a reply to the 'Sticking with civ2' thread but since it makes sense not to clutter that up with tangential discussion, I thought I'd start a new thread. And since it will mainly be of interest to the 'hard core' Civ modding coummunity, this seems to be the right forum.
I tried to check out the Starcraft 'scripting system' (or whatever you want to call it) that Mike mentioned the other night. I didn't get much info on it - I guess it's in some manual that I couldn't find - but what I did find (in a FAQ) wasn't all that impressive:
Compared to SLIC, the scripting language provided by the CTP team, this is pretty basic and - to my mind - uninteresting. Note also the comment about the trigger system being a stepping stone to bigger and better things. What's the point of implementing something that's yesterday's news?
I got the impression that Mike was working from the 'Keep It Simple, Stupid' principle in order to make it as easy as possible for players to get into modding. Surely such worries are unnecessary. The sort of people who play Civ games, never mind the subset of them who want to MOD the games, are hardly likely to be in that segment of the population that has difficulty counting past 10.
OK, I know that SLIC was difficult for beginners: there was no basic introductory documentation provided. But it's really quite straightforward once you get into it, and loads of fun.
In any case, I doubt that they'll be able to rush out an 'events editor', it'll probably have to come with an expansion pack. So what I'd like to see is them discussing with us exactly what we want when it comes to events and scripting.
1. An effective scripting language. Events are essential to a good scenario. No AI, regardless of how good it is, can replicate historical events properly. Events at the quality level of Fantastic Worlds are the minimum, with an increased heap size to at least 100kb in order to deal with up to 16 tribes. We encourage you to go farther and incorporate some of the features found in Test of Time, especially multiple triggers and events that can be turned on and off.
Perhaps "scripting language" can be misunderstood. We do not necessarily need an exact mirror of Civ2, but rather tools (whether visual or macro based) that can perform the same kind of triggers and events, hopefully vastly improved.
I remember Mike Breitkreutz said that he'd be more interested in a visual campaign editor a la the one found in Starcraft (which I do not know much about). Anyway, the flexibility of the tools has first priority. If such a "visual" tool can be more powerful than the old-fashioned events system found in Civ2, I'd definitely be open for it. The important thing is the flexibility of the triggers and actions.
I remember Mike Breitkreutz said that he'd be more interested in a visual campaign editor a la the one found in Starcraft (which I do not know much about). Anyway, the flexibility of the tools has first priority. If such a "visual" tool can be more powerful than the old-fashioned events system found in Civ2, I'd definitely be open for it. The important thing is the flexibility of the triggers and actions.
I tried to check out the Starcraft 'scripting system' (or whatever you want to call it) that Mike mentioned the other night. I didn't get much info on it - I guess it's in some manual that I couldn't find - but what I did find (in a FAQ) wasn't all that impressive:
Is there any way to make triggers with programming language constructs like "if-then-else" or "do-while" loops?
The trigger system is designed primarily for accessibility and does not support higher-level programmer constructs directly. By using switches and keeping in mind that triggers are executed in order, it is possible to do an if-then-else. A do-while is more difficult, but can be done if time is not critical (a single trigger will not fire more than once every 2 game seconds) and the expected number of iterations is small.
What about variables and constants?
There is no support for the allocation of variables or constants in StarEdit. In selecting features to implement in the trigger system, we prioritized those features needed to complete StarCraft's retail campaigns and custom maps.
Will future Blizzard Entertainment titles use the trigger system?
No. As with every feature in every game, we view the trigger system as a stepping-stone to bigger and better things. While the trigger system served its purpose, our plan is to provide better and more powerful ways for people to customize our games in the future.
Can I enter triggers in a text file and import them?
No. Using StarEdit's trigger dialog is the only way to create triggers.
...
The way to make a trigger only fire once in a situation like this is to make the condition and action use the current player rather than a specific player.
Example 2 (Working example)
Players: 1,2,3,4
Condition: Current Player brings 1 civilian to location foo
Action: Create 3 Zerglings for Current Player
This would allow players 1,2,3,4 to bring a civilian to the location to create three zerglings. It will only fire once for any given player since if one player brings a civilian to the location, the condition will still be false for the other three players. If the problem is just in creating units for several players at once, use the current player tag rather than a specific player tag. Try using create 3 zerglings for current player rather than create 3 zerglings for player 1.
The trigger system is designed primarily for accessibility and does not support higher-level programmer constructs directly. By using switches and keeping in mind that triggers are executed in order, it is possible to do an if-then-else. A do-while is more difficult, but can be done if time is not critical (a single trigger will not fire more than once every 2 game seconds) and the expected number of iterations is small.
What about variables and constants?
There is no support for the allocation of variables or constants in StarEdit. In selecting features to implement in the trigger system, we prioritized those features needed to complete StarCraft's retail campaigns and custom maps.
Will future Blizzard Entertainment titles use the trigger system?
No. As with every feature in every game, we view the trigger system as a stepping-stone to bigger and better things. While the trigger system served its purpose, our plan is to provide better and more powerful ways for people to customize our games in the future.
Can I enter triggers in a text file and import them?
No. Using StarEdit's trigger dialog is the only way to create triggers.
...
The way to make a trigger only fire once in a situation like this is to make the condition and action use the current player rather than a specific player.
Example 2 (Working example)
Players: 1,2,3,4
Condition: Current Player brings 1 civilian to location foo
Action: Create 3 Zerglings for Current Player
This would allow players 1,2,3,4 to bring a civilian to the location to create three zerglings. It will only fire once for any given player since if one player brings a civilian to the location, the condition will still be false for the other three players. If the problem is just in creating units for several players at once, use the current player tag rather than a specific player tag. Try using create 3 zerglings for current player rather than create 3 zerglings for player 1.
I got the impression that Mike was working from the 'Keep It Simple, Stupid' principle in order to make it as easy as possible for players to get into modding. Surely such worries are unnecessary. The sort of people who play Civ games, never mind the subset of them who want to MOD the games, are hardly likely to be in that segment of the population that has difficulty counting past 10.
OK, I know that SLIC was difficult for beginners: there was no basic introductory documentation provided. But it's really quite straightforward once you get into it, and loads of fun.
In any case, I doubt that they'll be able to rush out an 'events editor', it'll probably have to come with an expansion pack. So what I'd like to see is them discussing with us exactly what we want when it comes to events and scripting.
Comment