Jump to content

Scripting improvement request


Recommended Posts

IMHO there is no dynamics to the missions for TOW other than what the designer can implement with predefined triggers. (i.e. Do it this way or fail the mission...) For a really dynamic mission that means a hell of a lot of triggers and pre-progamming for the mission designer. While I don't wish to minimalise the skills that these programmers do. For me it is seems way too much overhead!

I would like to see the programming of a dialog box popup that will ask the player for a command decision. Where they either confirm, deny or defer the action. (Ask question text, yes, no, cancel. aka windows msgbox command.) This would simplify the programming, allowing the setting of much needed variables, and ease the interactions with the player.

Properly used this would involve the player in more relevant command decisions (Simulated reporting to the upper HQ, while receiving combat reports from the rank and file,) that will evolve the result of the game, rather than a having a predefined and prescripted ending.

Throwing it back at you. This game is brilliant but has even much more potential... :)

Link to comment
Share on other sites

I thinks what you're proposing would mean quite a major recode. However if it's the single solution battles that seem to be the thing in stock mission then there is a way to add spice & a certain amount of unpredictability to missions that mean you have to tactically win the battle rather than satisfy strict victory conditions.

The way is to code multiple responses to a generated random number so that in a given situation different things can happen. I tried this in a very crude manner in my Bulldog campaign, it IMHO makes things much more interesting & unpredictable & thus replayable. Here's a crude example:-

Set @num = RND ( )

SetWorkArmy ( Army , 2 )

if ( @num <= 30 ) then

ReinforcementLand ( Group , "Group_Panthers" )

CreateRectByObject ( RECT , "Panthers Attack Rect" , 100 , ARMY , 1 , TANKS , 2 , NOT_EMPTY , OK_WEAPON , OK_ENGINE )

RunCommand ( GROUP , "Group_Panthers" , ATTACK , RECT , "Panthers Attack Rect" )

Delay ( 20000 )

halt

endif

if ( @num <= 60 ) then

ArtSupportChangeState ( 2 , ENABLE )

ArtSupportCall ( 2 , RECT , "final objective" )

Delay ( 50 )

CreateRectByObject ( RECT , "Mortar Rect" , 100 , ARMY , 1 , HUMAN , 2 , NO_PANIC )

Delay ( 5 )

MortarSupportChangeState ( 2 , ENABLE )

Delay ( 5 )

MortarSupportCall ( 2 , RECT , "Mortar Rect" )

halt

endif

if ( @num <= 90 ) then

ReinforcementLand ( Group , "Group_Infantry_stugs" )

Delay ( 20000 )

RunCommand ( GROUP , "Group_Infantry_stugs" , STORM , RECT , "final objective" )

Delay ( 5 )

ReinforcementLand ( Group , "Group_Infantry_SPG" )

Delay ( 5 )

ReinforcementLand ( Group , "Group_Flak" )

Delay ( 5 )

RunCommand ( GROUP , "Group_Flak" , STORM , RECT , "final objective" )

halt

endif

if ( @num > 90 ) then

AviaSupportChangeState ( 3 , BATTLEPLANE , ENABLE )

CreateRectByObject ( RECT , "Air Attack Rect" , 100 , ARMY , 1 , ALL , 2 , NOT_EMPTY )

Delay ( 5 )

AviaSupportCall ( 3 , BATTLEPLANE , RECT , "Air Attack Rect" )

ReinforcementLand ( Group , "Group_Infantry_stugs" )

Delay ( 5 )

RunCommand ( GROUP , "Group_Infantry_stugs" , STORM , RECT , "final objective" )

Delay ( 20000 )

ReinforcementLand ( Group , "Group_attack_tiger" )

Delay ( 5 )

CreateRectByObject ( RECT , "Tiger Attack Rect" , 100 , ARMY , 1 , TANKS , 2 , NOT_EMPTY , OK_WEAPON , OK_ENGINE )

Delay ( 5 )

RunCommand ( GROUP , "Group_attack_tiger" , ATTACK , RECT , "Tiger Attack Rect" )

endif

Something different can happen everytime this is called. I'm no programmer but something along these lines (With more elegant code) could be made to produce truly dynamic missions & can be as complex or simple as you want it to be....

Link to comment
Share on other sites

RND() is the most powerfull command in this game as you have rightly pointed out Gnasher. However it is still dictating to the player what you programme without the players input. I would like to see for example, if @num > 90, If the player chooses to accept the tiger reinforcements from HQ, the mission objective would change to eliminate all enemy from the battlefield rather than routing them.

Rather than having a whole table of predefined text scripts as needed at the moment, I hope that we can get to interact with the player on the fly with message boxes. Script code would then depend on a new variable determined by the player at that particular time of the game. I've been programming for many years and am suprised that it was not included. I hope that it won't be too much of a pain to include this function to the game. While RND() can create very dynamic games, player interaction I hope whould create even more immersion IMHO.

Either way I guess there is still a lot of code to write! :)

Link to comment
Share on other sites

You can try exactly this kind of things in some missions of the uchronic campaign (Dinant bridgehead for exemple).

You have an headquarter on the map. If you send an officer in it, you can have reinforcement.

If not, you will play without the reinforcement, but you will earn more exp.

By this kind of triggers, you can ask simple question to the player.

"If the player chooses to accept the tiger reinforcements from HQ" , in the case of the uchronic, it is not tiger, but french tanks :D

I am on the way to finish a small no linear campaign.

In each of the three first mission you can ask by the same way (sending an officer to the tank HQ or the paratroopers HQ) reinforcements (tanks or paratroopers or both). But as the first three missions are simultaneously, if you ask them for the first mission, it will not be availaible for the two others !

PS triggers for this are quite simple

Link to comment
Share on other sites

×
×
  • Create New...