Matrix Games Forums

Forums  Register  Login  Photo Gallery  Member List  Search  Calendars  FAQ 

My Profile  Inbox  Address Book  My Subscription  My Forums  Log Out

RE: Sneak Peeks, Coming Attractions, Works-In-Progress

 
View related threads: (in this forum | in all forums)

Logged in as: Guest
Users viewing this topic: none
  Printable Version
All Forums >> [New Releases from Matrix Games] >> Campaign Series: Vietnam >> RE: Sneak Peeks, Coming Attractions, Works-In-Progress Page: <<   < prev  4 5 [6] 7 8   next >   >>
Login
Message << Older Topic   Newer Topic >>
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 4/24/2020 6:28:57 PM   
berto


Posts: 20708
Joined: 3/13/2002
From: metro Chicago, Illinois, USA
Status: offline

Another recent (private) Dev Forum post:

quote:

ORIGINAL: berto

Quoting from [...]:

quote:

ORIGINAL: berto

Based on these results, I am thinking that maybe the NVA/VC assault_attack_aggressiveness_effect value is rather too high at 150. 125 may be closer to right. Then again, that would mean a weaker NVA/VC showing in the fight for LZ X-Ray Part 1. With these and future playtest results of other scenarios, we'll figure out a best overall figure eventually.

I have what I think is an elegant, generalized solution to this issue.

Here is a new uber function, in user.lua:



function adjust_adaptive_ai (side, nation, parameter, adjustment)

local index = ai_index (parameter)
local v = "_" .. upper_case(parameter) .. "_" .. nation
local turn = current_turn()
local phase = current_side()

if turn == 1 then
_G[v] = adaptive_ai(side, nation, index)
else
local newval = _G[v] + adjustment
set_adaptive_ai (side, nation, index, newval)
end

if DEBUG then
log(APPLOG, LOG_DEBUG, "turn " .. turn .. ", side " .. side .. ", for nation " .. nation .. ", " .. parameter .. " " .. adaptive_ai(side, nation, index))
end

end



And here is a typical invocation (in this case, in the VN_651117_LZ_Albany.lua file):



function on_next_phase (turn, side) -- DO NOT REMOVE

...

-- every phase, adjust downward the NVA assault_attack_aggressiveness_effect bonus per their current loss rate
adjust_adaptive_ai (sideof(NORTH_VIETNAM_NATION), NORTH_VIETNAM_NATION, "assault_attack_aggressiveness_effect", - total_loss_rate(sideof(NORTH_VIETNAM_NATION)))

if DEBUG then -- where DEBUG is set in user.lua
csee_check(turn, side)
end

end



Or more succinctly:



adjust_adaptive_ai ("b", 21, "assault_attack_aggressiveness_effect", - total_loss_rate("b"))



Relative to its original starting value, adjust_adaptive_ai() adjusts the given AAI parameter up or down, depending on the final 'adjustment' value.

In the VN_651117_LZ_Albany.lua example, it says to adjust downward the original assault_attack_aggressiveness_effect value by the amount of the NVA side's total loss rate. For example, the initial nation #21 assault_attack_aggressiveness_effect is 150. When this function is called, if the NVA have suffered 10% total losses, their adjusted assault_attack_aggressiveness_effect value would be: 150 - 10 = 140. At 25% losses, it would be: 150 - 25 = 125. At 50% losses, it would be 150 - 50 = 100. (Which is nearing that effect value for the other nations.)

With DEBUG set to 'true' and with debug logging turned on, here are some sample results:



rober@Rob10rto /cygdrive/r/Temp/Logs
$ egrep "losses" /cygdrive/r/Temp/Logs/lua.log; egrep "assault_attack_aggressiveness_effect" /cygdrive/r/Temp/Logs/engine.log
2020-04-24 12:01:28 vnengine.exe: [INFO ID 10] at turn 1, side a, total loss rate A 0, total loss rate B 0, total loss rate A 0, total loss rate B 0, total losses A 0, total losses B 0, total losses A:B nil
2020-04-24 12:02:48 vnengine.exe: [INFO ID 10] at turn 1, side b, total loss rate A 0, total loss rate B 0, total loss rate A 0, total loss rate B 0, total losses A 0, total losses B 0, total losses A:B nil
2020-04-24 12:04:41 vnengine.exe: [INFO ID 10] at turn 2, side a, total loss rate A 0, total loss rate B 0, total loss rate A 0, total loss rate B 0, total losses A 0, total losses B 0, total losses A:B nil
2020-04-24 12:06:20 vnengine.exe: [INFO ID 10] at turn 2, side b, total loss rate A 0, total loss rate B 1, total loss rate A 0, total loss rate B 1, total losses A 0, total losses B 1, total losses A:B 0.0:1.0
2020-04-24 12:08:32 vnengine.exe: [INFO ID 10] at turn 3, side a, total loss rate A 0, total loss rate B 1, total loss rate A 0, total loss rate B 1, total losses A 0, total losses B 1, total losses A:B 0.0:1.0
2020-04-24 12:10:01 vnengine.exe: [INFO ID 10] at turn 3, side b, total loss rate A 0, total loss rate B 1, total loss rate A 0, total loss rate B 1, total losses A 0, total losses B 1, total losses A:B 0.0:1.0
2020-04-24 12:12:16 vnengine.exe: [INFO ID 10] at turn 4, side a, total loss rate A 0, total loss rate B 1, total loss rate A 0, total loss rate B 1, total losses A 0, total losses B 1, total losses A:B 0.0:1.0
2020-04-24 12:13:45 vnengine.exe: [INFO ID 10] at turn 4, side b, total loss rate A 0, total loss rate B 4, total loss rate A 0, total loss rate B 4, total losses A 0, total losses B 6, total losses A:B 0.0:1.0
2020-04-24 12:16:20 vnengine.exe: [INFO ID 10] at turn 5, side a, total loss rate A 0, total loss rate B 6, total loss rate A 0, total loss rate B 6, total losses A 0, total losses B 9, total losses A:B 0.0:1.0
2020-04-24 12:17:14 vnengine.exe: [INFO ID 10] at turn 5, side b, total loss rate A 0, total loss rate B 6, total loss rate A 0, total loss rate B 6, total losses A 0, total losses B 9, total losses A:B 0.0:1.0
2020-04-24 12:19:50 vnengine.exe: [INFO ID 10] at turn 6, side a, total loss rate A 1, total loss rate B 7, total loss rate A 1, total loss rate B 7, total losses A 1, total losses B 10, total losses A:B 0.1:1.0
2020-04-24 12:21:56 vnengine.exe: [INFO ID 10] at turn 6, side b, total loss rate A 1, total loss rate B 7, total loss rate A 1, total loss rate B 7, total losses A 1, total losses B 11, total losses A:B 0.1:1.0
2020-04-24 12:24:38 vnengine.exe: [INFO ID 10] at turn 7, side a, total loss rate A 2, total loss rate B 9, total loss rate A 2, total loss rate B 9, total losses A 4, total losses B 14, total losses A:B 0.3:1.0
2020-04-24 12:26:55 vnengine.exe: [INFO ID 10] at turn 7, side b, total loss rate A 2, total loss rate B 11, total loss rate A 2, total loss rate B 11, total losses A 4, total losses B 16, total losses A:B 0.3:1.0
2020-04-24 12:29:14 vnengine.exe: [INFO ID 10] at turn 8, side a, total loss rate A 4, total loss rate B 12, total loss rate A 4, total loss rate B 12, total losses A 7, total losses B 18, total losses A:B 0.4:1.0
2020-04-24 12:31:11 vnengine.exe: [INFO ID 10] at turn 8, side b, total loss rate A 4, total loss rate B 23, total loss rate A 4, total loss rate B 23, total losses A 7, total losses B 34, total losses A:B 0.2:1.0
2020-04-24 12:32:44 vnengine.exe: [INFO ID 10] at turn 9, side a, total loss rate A 8, total loss rate B 24, total loss rate A 8, total loss rate B 24, total losses A 13, total losses B 36, total losses A:B 0.4:1.0
2020-04-24 12:34:31 vnengine.exe: [INFO ID 10] at turn 9, side b, total loss rate A 8, total loss rate B 27, total loss rate A 8, total loss rate B 27, total losses A 13, total losses B 40, total losses A:B 0.3:1.0
2020-04-24 12:36:02 vnengine.exe: [INFO ID 10] at turn 10, side a, total loss rate A 9, total loss rate B 29, total loss rate A 9, total loss rate B 29, total losses A 14, total losses B 43, total losses A:B 0.3:1.0
2020-04-24 12:37:21 vnengine.exe: [INFO ID 10] at turn 10, side b, total loss rate A 9, total loss rate B 33, total loss rate A 9, total loss rate B 33, total losses A 14, total losses B 49, total losses A:B 0.3:1.0
2020-04-24 12:38:56 vnengine.exe: [INFO ID 10] at turn 11, side a, total loss rate A 10, total loss rate B 36, total loss rate A 10, total loss rate B 36, total losses A 17, total losses B 53, total losses A:B 0.3:1.0
2020-04-24 12:41:41 vnengine.exe: [INFO ID 10] at turn 11, side b, total loss rate A 10, total loss rate B 39, total loss rate A 10, total loss rate B 39, total losses A 17, total losses B 58, total losses A:B 0.3:1.0
2020-04-24 12:44:45 vnengine.exe: [INFO ID 10] at turn 12, side a, total loss rate A 10, total loss rate B 42, total loss rate A 10, total loss rate B 42, total losses A 17, total losses B 62, total losses A:B 0.3:1.0
2020-04-24 12:01:27 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 1, side b, for nation 21, assault_attack_aggressiveness_effect 150
2020-04-24 12:02:48 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 1, side b, for nation 21, assault_attack_aggressiveness_effect 150
2020-04-24 12:04:41 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 2, side b, for nation 21, assault_attack_aggressiveness_effect 150
2020-04-24 12:06:20 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 2, side b, for nation 21, assault_attack_aggressiveness_effect 149
2020-04-24 12:08:31 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 3, side b, for nation 21, assault_attack_aggressiveness_effect 149
2020-04-24 12:10:01 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 3, side b, for nation 21, assault_attack_aggressiveness_effect 149
2020-04-24 12:12:16 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 4, side b, for nation 21, assault_attack_aggressiveness_effect 149
2020-04-24 12:13:45 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 4, side b, for nation 21, assault_attack_aggressiveness_effect 146
2020-04-24 12:16:20 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 5, side b, for nation 21, assault_attack_aggressiveness_effect 144
2020-04-24 12:17:13 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 5, side b, for nation 21, assault_attack_aggressiveness_effect 144
2020-04-24 12:19:50 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 6, side b, for nation 21, assault_attack_aggressiveness_effect 143
2020-04-24 12:21:56 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 6, side b, for nation 21, assault_attack_aggressiveness_effect 143
2020-04-24 12:24:38 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 7, side b, for nation 21, assault_attack_aggressiveness_effect 141
2020-04-24 12:26:55 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 7, side b, for nation 21, assault_attack_aggressiveness_effect 139
2020-04-24 12:29:13 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 8, side b, for nation 21, assault_attack_aggressiveness_effect 138
2020-04-24 12:31:11 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 8, side b, for nation 21, assault_attack_aggressiveness_effect 127
2020-04-24 12:32:44 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 9, side b, for nation 21, assault_attack_aggressiveness_effect 126
2020-04-24 12:34:31 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 9, side b, for nation 21, assault_attack_aggressiveness_effect 123
2020-04-24 12:36:02 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 10, side b, for nation 21, assault_attack_aggressiveness_effect 121
2020-04-24 12:37:21 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 10, side b, for nation 21, assault_attack_aggressiveness_effect 117
2020-04-24 12:38:55 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 11, side b, for nation 21, assault_attack_aggressiveness_effect 114
2020-04-24 12:41:41 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 11, side b, for nation 21, assault_attack_aggressiveness_effect 111
2020-04-24 12:44:45 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 12, side b, for nation 21, assault_attack_aggressiveness_effect 108



At Turn 12, Side A phase, the NVA have suffered 42% losses at that point. Due to flagging zeal from the high losses, their aggressiveness bonus is thus reduced to 150 - 42 = 108.

Yes, the NVA aggressiveness bonus begins rather high. But as the scenario wears on, as the losses mount, they become less and less aggressive. With high enough (suicidal) losses, they would be so demoralized that their aggressiveness effect might even drop below their opponent's.

Note that we could cut the drop rate in half by the following:



-- every phase, adjust downward the NVA assault_attack_aggressiveness_effect bonus per their current loss rate
adjust_adaptive_ai (sideof(NORTH_VIETNAM_NATION), NORTH_VIETNAM_NATION, "assault_attack_aggressiveness_effect", - total_loss_rate(sideof(NORTH_VIETNAM_NATION)) / 2)



That is, for example, if their losses were 50%, the downward adjustment would be only half that, 25, setting their adjusted aggressiveness effect to 125.

This aggressiveness adjustment can be applied to other nations, of course. But I don't think it is so necessary as in the NVA case.

The adjust_adaptive_ai() function is generalized. We can use it to adjust other AAI parameters by supplying the appropriately named input parameter. We can adjust upward or downward by indicating '-' or '+' (the implied default). We can also adjust by something other than total_loss_rate(). As usual, there is lots of flexibility here.

Adjusting AAI parameter values dynamically in the course of a scenario -- quite a powerful technique this is.

One other thing. Note this (the highlighted):



function adjust_adaptive_ai (side, nation, parameter, adjustment)

local index = ai_index (parameter)
local v = "_" .. upper_case(parameter) .. "_" .. nation
local turn = current_turn()
local phase = current_side()

if turn == 1 then
_G[v] = adaptive_ai(side, nation, index)
else
local newval = _G[v] + adjustment
set_adaptive_ai (side, nation, index, newval)
end

if DEBUG then
log(APPLOG, LOG_DEBUG, "turn " .. turn .. ", side " .. side .. ", for nation " .. nation .. ", " .. parameter .. " " .. adaptive_ai(side, nation, index))
end

end



For this to be generalized, we need a general way to, on the fly, create a suitable variable name per the parameter and the nation. The above code does that.

From the value dump in engine.log (which happens when DEBUG is set to 'true' in user.lua), we might see this:



...
2020-04-24 12:44:45 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) turn 12, side a: _ASSAULT_ATTACK_AGGRESSIVENESS_EFFECT_21: 150
2020-04-24 12:44:56 vnengine.exe: [DEBUG ID 10] (lua.cpp, line 413, l_log()) in get_luav(), index 281, val _ASSAULT_ATTACK_AGGRESSIVENESS_EFFECT_21:150
...



_ASSAULT_ATTACK_AGGRESSIVENESS_EFFECT_21 is a Lua auto-created variable name set (at Turn 1) to remember the initial assault_attack_aggressiveness_effect value for nation #21. We don't have to manage that variable ourselves; the adjust_adaptive_ai() does that for us automatically.

This _G[] global namespace feature is one of the really cool features of Lua. Loving it!


_____________________________

Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/tt.asp?forumid=1515
Panzer Campaigns, Panzer Battles, Civil War Battles Lead Coder https://wargameds.com

(in reply to Jason Petho)
Post #: 151
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 4/26/2020 6:56:05 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Campaign Series Vietnam: ALPHA Graphics: SCENARIO DESIGN
New scenario:

The Premonition - Battle of Hill 881N and 861

January 20th, 1968
[Hill 861, Quang Tri Province, South Vietnam]: [SIDE A][HIS][CSL]: On the afternoon of January 18th, reconnaissance team was ambushed on Hill 881 North, to the northwest of Khe Sanh Combat Base. The 3rd Platoon, Company I/3rd/26th Marines was sent to help them but as the platoon reached the trapped reconnaissance team only to discover that whatever NVA had been there were gone. They evacuated the wounded before making their way back to Hill 881 South. Later, Company I/3rd/26th Marines was notified that a radio and classified radio code sheets had been left behind by the reconnaissance team. A heavily reinforced 1st platoon from I Company was dispatched to recover the equipment. As the unit advanced along a finger of Hill 861 North, it came under heavy fire and as casualties mounted, was forced to withdraw back to Hill 861 South. After two days of enemy contact, Company I's commander, having a premonition that something was about to happen, requested to conduct a reconnaissance-in-force to Hill 881 North with his entire company. Split in two columns, the company advanced towards Hill 881 North under the cover of the common morning fog. As the columns approached Hill 881 North, the fog began to lift and the dug in PAVN machine guns began to let loose on to what was to become an all-day affair. Little did Company I/3rd/26th Marines know what the rest of the day was about the bring. [ALL][CSEE, Variable Objectives][1.00]




Attachment (1)

_____________________________


(in reply to berto)
Post #: 152
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/1/2020 10:12:22 PM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Campaign Series Vietnam: Mapping

I have been working on the DMZ map this past week and finished the area necessary for "A Week in..." scenario that will deal with the highlights of the fighting at Khe Sanh. Here's what I have come up with.




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 153
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/1/2020 10:46:08 PM   
budd


Posts: 2972
Joined: 7/4/2009
From: Tacoma
Status: offline
I just really like the map. Any chance of posting a map terrain legend? What's the terrain under the green square?

_____________________________

Enjoy when you can, and endure when you must. ~Johann Wolfgang von Goethe

"Be Yourself; Everyone else is already taken" ~Oscar Wilde

*I'm in the Wargamer middle ground*
I don't buy all the wargames I want, I just buy more than I need.

(in reply to Jason Petho)
Post #: 154
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/2/2020 4:03:33 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
It's a hex with light village type buildings. A couple/few huts.

This will change in the scenario editor, of course.

_____________________________


(in reply to budd)
Post #: 155
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/2/2020 4:06:10 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Here's a quick 3D shot.




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 156
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/2/2020 10:27:38 PM   
benpark

 

Posts: 3884
Joined: 8/12/2002
Status: offline
I really like the new building/terrain details for the base.

If you could, possibly think about leaving a few extra graphic slots in the upcoming games for additional structures.

_____________________________

"Fear is a darkroom where the devil develops his negatives" Gary Busey

(in reply to Jason Petho)
Post #: 157
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/2/2020 10:51:56 PM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
You'll see that the a lot of the buildings have been added to, for additional content.

Of course, as with always, things are modable.

_____________________________


(in reply to benpark)
Post #: 158
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/23/2020 9:32:36 PM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Campaign Series Vietnam: Scenario Scripting

While it appears that it is quiet with the game development, that is not the case! We are heavily into scripting the Vietnam scenarios and testing them at the moment.

I am new to scripting, so there is much to learn to get right to make the scenario play as I intended it and include a few twists to keep things interesting, because I am evil like that.

Here is a screenshot of me scripting the French into position. Of course, the Viet Minh will be attacking this location heavily, but one thing at a time. It is exciting to see things working!




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 159
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 5/25/2020 3:37:08 PM   
berto


Posts: 20708
Joined: 3/13/2002
From: metro Chicago, Illinois, USA
Status: offline

Here, more or less, is the latest roster of CSEE (Campaign Series Event Engine) functions:

quote:

LUA_FUNCTIONS_REFERENCE


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

TRIGGERS

on_air_attack (hc, pid, name, side, nation, points, strength)
on_arty_attack (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader)
on_build_barrier (hc, trackid, pid, name, side, nation, oid, orgname)
on_build_light_bridge (hc, dir, trackid, pid, name, side, nation, oid, orgname)
on_build_vehicle_bridge (hc, dir, trackid, pid, name, side, nation, oid, orgname)
on_clear_hex (hc)
on_clear_lz (hc, trackid, pid, name, side, nation, oid, orgname)
on_damage (hc, trackid, pid, name, side, nation, oid, orgname)
on_entrench_hex (hc, trackid, pid, name, side, nation, oid, orgname)
on_hex_assault (hc, side)
on_hex_attack (hc, side, nation, attype)
on_ied_attack (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader)
on_improve_hex (hc, trackid, pid, name, side, nation, oid, orgname)
on_lay_mine_field (hc, trackid, pid, name, side, nation, oid, orgname)
on_mine_attack (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader)
on_next_phase (turn, side)
on_next_turn (turn)
on_objective_capture (hc, values, side)
on_resume ()
on_set_ied (hc, trackid, pid, name, side, nation, oid, orgname)
on_shutdown ()
on_startup ()
on_unit_arty_fire (hc, trackid, pid, name, side, nation, oid, orgname, strength)
on_unit_attack (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader, attype)
on_unit_fire (hc, trackid, pid, name, side, nation, oid, orgname, strength)
on_unit_kill (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader)
on_unit_move (hc_from, hc_to, trackid)
on_unit_reduce (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader, loss)
on_unit_reinforce (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader)
on_unit_release (trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader)
on_unit_remove (hc, trackid, pid, name, side, nation, oid, orgname, points, strength, HQ, Leader)

AI

ai (side) [internal system function, undocumented]
is_ai (side)
is_human (side)

ai_sides ()
human_sides ()
both_sides ()

ai_index (parm)
ai_parameter (index)
adaptive_ai (side, nation, index)
inc_adaptive_ai (side, nation, index, increment)
max_ai_index ()
set_adaptive_ai (side, nation, index, value)

COUNTERS

counter_airlevel (trackid)
counter_assault (trackid)
counter_ctrackid (trackid)
counter_defend (trackid)
counter_exists (trackid)
counter_flags (trackid)
counter_hex (trackid)
counter_hq (trackid)
counter_leader (trackid)
counter_losses (trackid)
counter_morale (trackid)
counter_more_flags (trackid)
counter_name (trackid)
counter_nation (trackid)
counter_oid (trackid)
counter_orgname (trackid)
counter_pid (trackid)
counter_points (trackid)
counter_side (trackid)
counter_strackid (trackid)
counter_strength (trackid)
counter_turns_until_refuel (trackid)
counter_type (trackid)
counter_x (trackid)
counter_y (trackid)

counter_unit_carry_flags (trackid)
counter_unit_fire_flags (trackid)
counter_unit_more_flags (trackid)
counter_unit_move_flags (trackid)
counter_unit_other_flags (trackid)

counter_is_airborne (trackid)
counter_is_air_transport (trackid)
counter_is_civilian (trackid)
counter_is_hq (trackid)
counter_is_indirect_fire (trackid)
counter_is_leader (trackid)
counter_is_supply (trackid)
counter_is_transport (trackid)
counter_is_underground (trackid)

is_disrupted (trackids)
is_carried (trackids)
is_unloaded (trackids)
is_loaded (trackids)
is_concealed (trackids)
is_outofammo (trackids)
is_diggingin (trackids)
is_fatigued (trackids)
is_buybullet (trackids)
is_buywheel (trackids)
is_fixed (trackids)
is_lowonammo (trackids)
is_isolated (trackids)
is_buyrecon (trackids)
is_reduced (trackids)
is_lowonfuel (trackids)
is_outoffuel (trackids)
is_refueled (trackids)
is_attacked (trackids)
is_captured (trackids)

is_not_disrupted (trackids)
is_not_carried (trackids)
is_not_unloaded (trackids)
is_not_loaded (trackids)
is_not_concealed (trackids)
is_not_outofammo (trackids)
is_not_diggingin (trackids)
is_not_fatigued (trackids)
is_not_buybullet (trackids)
is_not_buywheel (trackids)
is_not_fixed (trackids)
is_not_lowonammo (trackids)
is_not_isolated (trackids)
is_not_buyrecon (trackids)
is_not_reduced (trackids)
is_not_lowonfuel (trackids)
is_not_outoffuel (trackids)
is_not_refueled (trackids)
is_not_attacked (trackids)
is_not_captured (trackids)

counter_on_map (trackid, verified_only)

counters_all (side, onmap_only)
counters_aorg (trackids, onmap_only)
counters_sorg (strackids, onmap_only)

hexes_aorg (trackids, onmap_only)

counters_highest_strength (trackids, verified_only)
counters_strongest (trackids, verified_only)

counters_lowest_strength (trackids, verified_only)
counters_weakest (trackids, verified_only)

counters_highest_morale (trackids, verified_only)
counters_lowest_morale (trackids, verified_only)

counters_highest_assault (trackids, verified_only)
counters_lowest_assault (trackids, verified_only)

counters_highest_defend (trackids, verified_only)
counters_lowest_defend (trackids, verified_only)

counters_highest_points (trackids, verified_only)
counters_lowest_points (trackids, verified_only)

counters_airborne (trackids)
counters_waterborne (trackids)
counters_land (trackids)

map_trackid (hc, number)
map_trackid_count (hc)
map_trackids (hc)
max_counters ()
max_turns_until_refuel (nation)

GENERAL

first_side ()
current_side ()
other_side (side)

sideof (nation)

current_turn ()
next_turn ()
previous_turn ()
final_turn ()

current_visibility ()

night (turn)
fow (side)
is_fow (side)
set_fow (side, switch)
is_night ()

HEXES

has_barrier (hc)
has_big_wrecks (hc)
has_block (hc)
has_bunker (hc)
has_cave (hc)
has_damage (hc, dir)
has_ied (hc)
has_ied1 (hc)
has_ied2 (hc)
has_ied3 (hc)
has_improved_position (hc)
has_landing_zone (hc)
has_light_bridge (hc)
has_minefield (hc)
has_minefield1 (hc)
has_minefield2 (hc)
has_minefield3 (hc)
has_obstacle (hc)
has_pillbox (hc)
has_pontoon_bridge (hc)
has_rubble (hc)
has_smoke (hc)
has_trench (hc)
has_tunnel (hc)
has_vehicle_bridge (hc)
has_wrecks (hc)
has_spotted (hc)

hexes_minefield (hcs, side)
hexes_ied (hcs, side)
hexes_block (hcs, side)
hexes_tunnel (hcs, side)
hexes_cave (hcs, side)

hexes_bunker (hcs, side)
hexes_improved_position (hcs, side)
hexes_pillbox (hcs, side)
hexes_trench (hcs, side)
hexes_fortification (hcs)

hexes_landing_zone (hcs)
hexes_wrecks (hcs)

hexes_terrain (hcs, terrain)

empty_transports_count (hc)
has_empty_air_transport (hc)
has_empty_transport (hc)
has_transport (hc)
max_transport_strength (hc)

is_sidea_aware (hc)
is_sidea_exclude (hc)
is_sideb_aware (hc)
is_sideb_exclude (hc)

is_airfield_hex (hc)
is_beach_hex (hc)
is_building_hex (hc)
is_cactus_hex (hc)
is_canal_hex (hc)
is_canal_shallow_hex (hc)
is_city_hex (hc)
is_clear_hex (hc)
is_colored_dirt_hex (hc)
is_dense_jungle_hex (hc)
is_dry_paddy_hex (hc)
is_forest_hex (hc)
is_grain_field_hex (hc)
is_hammada_hex (hc)
is_impass_hex (hc)
is_industrial_hex (hc)
is_installation_hex (hc)
is_light_jungle_hex (hc)
is_major_canal_hex (hc)
is_major_canal_shallow_hex (hc)
is_major_river_hex (hc)
is_major_river_shallow_hex (hc)
is_marsh_hex (hc)
is_meadow_hex (hc)
is_orchard_hex (hc)
is_palm_tree_hex (hc)
is_produce_field_hex (hc)
is_river_hex (hc)
is_river_shallow_hex (hc)
is_rough_hex (hc)
is_scrub_hex (hc)
is_shallow_hex (hc)
is_soft_sand_hex (hc)
is_suburb_hex (hc)
is_swamp_hex (hc)
is_tall_grass_hex (hc)
is_thicket_hex (hc)
is_village_hex (hc)
is_vineyard_hex (hc)
is_wadi_hex (hc)
is_water_hex (hc)
is_wet_paddy_hex (hc)

MAP

on_map (hc)

map_center (x, y)
map_height ()
map_sector (x, y)
map_up ()
map_width ()

map_up_half (x, y)
map_low_half (x, y)
map_left_half (x, y)
map_right_half (x, y)
map_up_left_quadrant (x, y)
map_up_right_quadrant (x, y)
map_low_right_quadrant (x, y)
map_low_left_quadrant (x, y)
map_nw_quadrant (x, y)
map_ne_quadrant (x, y)
map_se_quadrant (x, y)
map_sw_quadrant (x, y)
map_north_half (x, y)
map_south_half (x, y)
map_east_half (x, y)
map_west_half (x, y)

hexcoor (x, y)
x (hc)
y (hc)

map_side (hc)

occupied (hcs, side)
not_occupied (hcs, side)

owned (objectives, side)
not_owned (objectives, side)

hexes_all ()
hex_box (hc_upleft, hc_lowright)
hexes_within (hc, extent)
hex_adjacent (hc, dir)
hex_random (hc, extent)

hexes_nearest (hc, hcs)
hexes_farthest (hc, hcs)

range (from, to)

MESSAGING

_message (title, text)
message (title, text, reveal, phase)
message_once (title, text, reveal, phase)
_note (title, text)
note (title, text, reveal, phase)
note_once (title, text, reveal, phase)
_report (title, text)
report (title, text, reveal, phase)
report_once (title, text, reveal, phase)
log (logfile, loglevel, text)

show_briefing (side)

DEBUGGING

aistop (text)
exestop (text)

trace (event, line)
traceon ()
traceoff ()

LISTS

identical (list1, list2)
equivalent (list1, list2)

join (lists, unique_only)

member (element, list)
members (elements, list)
subset (list1, list2)

member_count (list)

union (list1, list2)
intersection (list1, list2)
difference (list1, list2)

remove (list, elements)

sort (list)
reverse (list)

duplicates (list)
singles (list)
uniques (list)

head (list)
tail (list)

MISC

upper_case (text)
lower_case (text)

ordinal (number)

dieroll (x)
random ()
random_index (l, u)
random_pick (list)

even (x)
odd (x)

round (x)

dir_from (origin, point)
hexdir_from (origin, point)

has_flag (flags, flag)

is_move_tracking ()
move_tracking ()
set_move_tracking ()
unset_move_tracking ()

is_qa_testing ()
qa_testing ()
set_qa_testing ()
unset_qa_testing ()

OBJECTIVES

objective_owner (hc)
objective_points ()
objective_values (hc)

set_objective (hc, values, side)
set_objective_values (hc, values)

REINFORCEMENTS

reinforcement_flags (id)
reinforcement_hex (id)
reinforcement_prob (id)
reinforcement_scatter (id)
reinforcement_turn (id)
reinforcement_x (id)
reinforcement_y (id)

set_reinforcement (id, hc, turn, prob, flags, scatter)
set_reinforcement_flags (id, flags)
set_reinforcement_hex (id, hc)
set_reinforcement_prob (id, prob)
set_reinforcement_scatter (id, scatter)
set_reinforcement_turn (id, turn)
set_reinforcement_x (id, x)
set_reinforcement_y (id, y)

inc_reinforcement_prob (id, increment)

arrived (id)

RELEASES

release_prob (id)
release_turn (id)
released (id)

set_release (id, turn, prob)
set_release_prob (id, prob)
set_release_turn (id, turn)

inc_release_prob (id, increment)

SCENARIO

options ()
set_options (value)
set_option (value)
unset_option (value)

event_points (side)
set_event_points (side, value)
inc_event_points (side, increment)

total_points ()

total_strength (side, onmap_only, verified_only, exclude_killed)
strength (trackids, verified_only)

total_losses (side)
losses (trackids, verified_only)

total_loss_rate (side, onmap_only, verified_only, exclude_killed)
loss_rate (trackids, onmap_only, verified_only, exclude_killed)

total_loss_points (side)

average_morale (side)
morale_shift (nation)
set_morale_shift (nation, value)
inc_morale_shift (nation, increment)

advantage ()
aggressiveness (side)
air_support (side)
ammo_level (side)
arty_ammo_level (side)

set_advantage (value)
set_aggressiveness (side, value)
set_air_support (side, value)
set_ammo_level (side, value)
set_arty_ammo_level (side, value)

inc_advantage (increment)
inc_aggressiveness (side, increment)
inc_air_support (side, increment)
inc_ammo_level (side, increment)
inc_arty_ammo_level (side, increment)

major_defeat ()
major_victory ()
minor_defeat ()
minor_victory ()

set_major_defeat (value)
set_major_victory (value)
set_minor_defeat (value)
set_minor_victory (value)

set_victory (majordefeat, minordefeat, minorvictory, majorvictory)

smoke_ammo (side)
star_shells (side)

set_smoke_ammo (side, value)
set_star_shells (side, value)

inc_smoke_ammo (side, increment)
inc_star_shells (side, increment)

SIDES

is_bocage_side (hc, dir)
is_cliff_side (hc, dir)
is_crest_side (hc, dir)
is_ditch_side (hc, dir)
is_dune_side (hc, dir)
is_embank_side (hc, dir)
is_escarpment_side (hc, dir)
is_ford_side (hc, dir)
is_gully_side (hc, dir)
is_heavy_bridge_side (hc, dir)
is_hedge_side (hc, dir)
is_high_side (hc, dir)
is_light_bridge_side (hc, dir)
is_medium_bridge_side (hc, dir)
is_minor_river_side (hc, dir)
is_path_side (hc, dir)
is_rail_side (hc, dir)
is_reef_side (hc, dir)
is_road_side (hc, dir)
is_stone_side (hc, dir)
is_stream_side (hc, dir)
is_unpaved_side (hc, dir)

UNITS

in_box (trackids, hc_upleft, hc_lowright, verified_only)
within (trackids, hc, extent, verified_only)
in_area (trackids, hcs, verified_only)

not_in_box (trackids, hc_upleft, hc_lowright, verified_only)
not_within (trackids, hc, extent, verified_only)
beyond (trackids, hc, extent, verified_only)
not_in_area (trackids, hcs, verified_only)

units_in_hex (hc)
units_in_hex_count (hc)

units_in_box (hc_upleft, hc_lowright, side, verified_only)
units_in_box_count (hc_upleft, hc_lowright, side, verified_only)

units_within (hc, extent, side, verified_only)
units_within_count (hc, extent, side, verified_only)

units_in_area (hcs, side, verified_only)
units_in_area_count (hcs, side, verified_only)

units_adjacent (hc, side, verified_only)

above (trackids, row, verified_only)
below (trackids, row, verified_only)
left_of (trackids, col, verified_only)
right_of (trackids, col, verified_only)

units_above (row, side, verified_only)
units_below (row, side, verified_only)
units_left_of (col, side, verified_only)
units_right_of (col, side, verified_only)

units_above_count (row, side, verified_only)
units_below_count (row, side, verified_only)
units_left_of_count (col, side, verified_only)
units_right_of_count (col, side, verified_only)

units_extent (trackids, verified_only)
units_nearest (hc, side, verified_only)

units_with_order (trackids, _aiorder)
units_with_orders (trackids, _aiorders)

SCRIPTED AI

at (trackids, hc)
defend_weak (trackids, hc, dir, radius, actprob)
defend_normal (trackids, hc, dir, radius, actprob)
defend_strong (trackids, hc, dir, radius, actprob)
defend_fanatical (trackids, hc, dir, radius, actprob)
move_norush (trackids, hc, dir, radius, actprob)
move_rush (trackids, hc, dir, radius, actprob)
move_recon (trackids, hc, dir, radius, actprob)
move_roam (trackids, hc, dir, radius, actprob)
attack_weak (trackids, hc, dir, radius, actprob)
attack_strong (trackids, hc, dir, radius, actprob)
attack_normal (trackids, hc, dir, radius, actprob)
attack_fanatical (trackids, hc, dir, radius, actprob)
attack_banzai (trackids, hc, dir, radius, actprob)
load (trackids, hc, actprob)
unload (trackids, hc, actprob)
disembark (trackids, hc, dir, actprob)
embark (trackids, hc, dir, actprob)
take_off (trackids, hc, actprob)
land (trackids, hc, actprob)
ascend (trackids, hc, actprob)
ascend_ground (trackids, hc, actprob)
ascend_noe (trackids, hc, actprob)
ascend_low (trackids, hc, actprob)
ascend_high (trackids, hc, actprob)
descend (trackids, hc, actprob)
descend_low (trackids, hc, actprob)
descend_noe (trackids, hc, actprob)
descend_ground (trackids, hc, actprob)
descend_underground (trackids, hc, actprob)
ascend_move (trackids, hc, radius, actprob)
move_descend (trackids, hc, radius, actprob)
exit (trackids, hc, actprob)
dig_in (trackids, hc, actprob)
reconnoiter (trackids, hc, actprob)
build_light_bridge (trackids, hc, dir, actprob)
build_vehicle_bridge (trackids, hc, dir, actprob)
lay_minefield (trackids, hc, actprob)
set_ied (trackids, hc, actprob)
build_barrier (trackids, hc, actprob)
build_block (trackids, hc, actprob)
damage (trackids, hc, dir, actprob)
clear_lz (trackids, hc, actprob)
fire_direct (trackids, hc, dir, radius, actprob)
fire_indirect (trackids, hc, dir, radius, actprob)
fire_special (trackids, hc, dir, radius, actprob)
air_strike (hc, actprob)
assault (trackids, hc, dir, radius, actprob)
withdraw (trackids, hcs, dir, radius, dftype)

hold (trackids, hc, actprob)
halt (trackids, hc, actprob)
unleash (trackids, hc, actprob)

move_way_point (trackids, hcs, dir, radius, actprob)
attack_way_point (trackids, hcs, dir, radius, actprob, attype)
defend_way_point (trackids, hcs, dir, radius, actprob, dftype)

landing (trackids, hc_from, hc_to)
taking_off (trackids, hc_from, hc_to)

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

USER.LUA (all subject to change)

adjust_adaptive_ai (side, nation, parameter, adjustment)
air_mission_fire (trackids, basept, targetpt, proximity, _range, airlevel)
air_mission_gunship_sortie (trackids, entrypt, targetpt, proximity, _range, airlevel)
air_mission_spot (trackids, basept, targetpt, proximity, airlevel)
air_transport_carriers (trackids, loadpt, unloadpt, roundtrip, airlevel)
air_transport_evacuate (trackids, entrypt, loadpt, roundtrip, airlevel)
air_transport_passengers (trackids, loadpt, unloadpt, assemblypt, airlevel)
air_transport_reinforce (trackids, entrypt, unloadpt, roundtrip, airlevel)
attack_nearest (trackids, dir, radius, attype, ground_only, unverified)
attack_nearest_to_hex (trackids, hc, dir, radius, attype, ground_only)
attack_nearest_way_point (trackids, hcs, dir, radius, actprob, attype, ground_only, unverified)
attack_supply (trackids, extent)
column_move (trackids, hc, dir, radius)
company_kill_check (trackid, coys, sides, eps, nations, mshifts)
company_reduce_check (trackid, coys, sides, eps, nations, mshifts, rate)
csee_check (turn, side)
fire_direct_nearest (trackids, ground_only)
fire_indirect_area (trackids, hc, radius, verified_only)
land_transport_carriers (trackids, loadpt, unloadpt, roundtrip)
land_transport_passengers (trackids, loadpt, unloadpt, assemblypt)
losses_dump (turn, side)
luaval_dump (all)
move_air_transport (ptrackids, ctrackids, loadpt, unloadpt, assemblypt, roundtrip, airlevel)
move_land_transport (ptrackids, ctrackids, loadpt, unloadpt, assemblypt, roundtrip)
move_water_transport (ptrackids, ctrackids, embarkpt, loadpt, disembarkpt, unloadpt, assemblypt, roundtrip)
victory_dump (turn, side)
water_transport_carriers (trackids, loadpt, unloadpt, roundtrip)
water_transport_passengers (trackids, embarkpt, loadpt, disembarkpt, unloadpt, assemblypt)

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------


That's over 560 different functions. So many tools to work with!

_____________________________

Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/tt.asp?forumid=1515
Panzer Campaigns, Panzer Battles, Civil War Battles Lead Coder https://wargameds.com

(in reply to Jason Petho)
Post #: 160
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/2/2020 6:06:04 PM   
benpark

 

Posts: 3884
Joined: 8/12/2002
Status: offline
Amazing. Those graphics look fantastic as well.

_____________________________

"Fear is a darkroom where the devil develops his negatives" Gary Busey

(in reply to berto)
Post #: 161
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/2/2020 6:55:51 PM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
I agree! Chris has been doing some amazing work! They are getting better and better!

_____________________________


(in reply to benpark)
Post #: 162
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/3/2020 2:37:20 PM   
76mm


Posts: 4688
Joined: 5/2/2004
From: Washington, DC
Status: offline
quote:

ORIGINAL: berto
Here, more or less, is the latest roster of CSEE (Campaign Series Event Engine) functions:

These look great, but I sure that they the functions will be adequately documented, so that they are in fact usable...

(in reply to berto)
Post #: 163
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/3/2020 3:52:42 PM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
There will be a reference guide included.

_____________________________


(in reply to 76mm)
Post #: 164
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/12/2020 3:44:43 PM   
benpark

 

Posts: 3884
Joined: 8/12/2002
Status: offline
Berto- I don't want to distract you from your interesting pursuits- but would you mind illustrating briefly (in game) the results of one of the new functions based upon the code above in game play terms?

An example might be:

quote:

move_recon (trackids, hc, dir, radius, actprob)


I'm mainly trying to get a grasp on AI use if these are conditional checks for some state, or if they act more as independent directives- or probably a combination(?).

Thanks!

_____________________________

"Fear is a darkroom where the devil develops his negatives" Gary Busey

(in reply to Jason Petho)
Post #: 165
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/13/2020 2:43:34 PM   
berto


Posts: 20708
Joined: 3/13/2002
From: metro Chicago, Illinois, USA
Status: offline

Here is an example, from the scenario VN_700708_FSB_Ripcord.

A scenario opening screenshot (with FOW toggled OFF for purposes of this example; in ordinary game play, one side would not see the other side's units; also, ordinarily the hex coordinates would be toggled OFF):



A snippet of code from the file VN_700708_FSB_Ripcord.lua:



The "NVA Sappers" are the _NVA_DAI_DOI_DAC_CONG_878 company at the green circle. In another section of the battle plan code (not shown), they are directed to attack either Objective 6, else Objective 7.

If the NVA Sappers are directed to attack Objective 6, then if the current turn is before Turn 4, the _C3_D1_R803_NVA_DAI_DOI_BO_BINH_70_795 company, circled in turquoise, is ordered to move_rush() to hex 8,8; if Turn 4 or later, from there attack_strong() Objective 5 (from a Down direction, with attack "radius" of 1 hex). If subsequently they have taken (they "own") Objective 5, they are then to attack_normal() Objective 6 (restricted from a DownLeft direction), while leaving behind at their weakest platoon to defend_strong() Objective 5.

Else if the NVA Sappers are attacking Objective 7, if before Turn 4, the _C3_D1_R803_NVA_DAI_DOI_BO_BINH_70_795 are to move_rush() to hex 5,8. At Turn 4 or later, if Objective 2 is by then still US "owned", the NVA company is to attack_strong() that objective; else if Objective 2 is now NVA owned, if Objective 3 is still US owned, the NVA company is to attrack_strong() Objective 3. And so on for Objectives 5 & 6.

attack_strong(), attack_normal(), defend_strong(), etc. -- these are all LAI (Legacy AI) routines hard coded in the game engine. The Lua code you see above is SAI (Scripted AI) in the CSEE (Campaign Series Event Engine). The SAI works hand-in-hand with the LAI to direct the flow of movements, attacks, and whatever other orders are scripted, or inferred (by the LAI) in the current situation.

That is just one small part of a much larger VN_700708_FSB_Ripcord.lua file. And just one limited example of a much larger universe of CSEE/SAI capabilities. But this should give you a better example of what we are up to.

_____________________________

Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/tt.asp?forumid=1515
Panzer Campaigns, Panzer Battles, Civil War Battles Lead Coder https://wargameds.com

(in reply to benpark)
Post #: 166
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/13/2020 2:51:58 PM   
berto


Posts: 20708
Joined: 3/13/2002
From: metro Chicago, Illinois, USA
Status: offline
quote:

ORIGINAL: Jason Petho

There will be a reference guide included.

For example:



The functions reference is still a work-in-progress. It will be fleshed out with more examples eventually.

There will also be an expanded How-To doc explaining how the bits & pieces of the CSEE/SAI all come together.

_____________________________

Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/tt.asp?forumid=1515
Panzer Campaigns, Panzer Battles, Civil War Battles Lead Coder https://wargameds.com

(in reply to Jason Petho)
Post #: 167
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/14/2020 12:09:22 PM   
berto


Posts: 20708
Joined: 3/13/2002
From: metro Chicago, Illinois, USA
Status: offline

Combining the CSEE "core" functions, it is possible also to fashion so-called "uber" functions. Here is a standard, ready-to-use uber function, attack_nearest_to_hex(), for attacking any enemy unit(s) nearest to a specified hex:



An example use of this function would be:



In the example: Two VC companies are ordered to attack (capture) a downed US pilot, if he still exists (is on map). Otherwise, attack some Objectives, if they are ARVN (Army of the Republic of Vietnam) owned. Else attack any enemy (other side) units nearest to the specified hexes.

The scenario scripter/modder can make use of the "core" functions, also the standard "uber" functions, and/or roll his own. He/she will have to write custom CSEE/SAI Lua code for each individual scenario, of course.

The CSEE/SAI are so rich with possibilities!

_____________________________

Campaign Series Legion https://cslegion.com/
Campaign Series Lead Coder https://www.matrixgames.com/forums/tt.asp?forumid=1515
Panzer Campaigns, Panzer Battles, Civil War Battles Lead Coder https://wargameds.com

(in reply to berto)
Post #: 168
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 6/15/2020 4:51:11 PM   
benpark

 

Posts: 3884
Joined: 8/12/2002
Status: offline
Thanks! That's a lot of possibilities!

_____________________________

"Fear is a darkroom where the devil develops his negatives" Gary Busey

(in reply to berto)
Post #: 169
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/6/2020 2:00:50 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Campaign Series Vietnam: Order of Battles

It's been awhile since the last post. Sorry about that!

But, that doesn't mean the work has stopped! This is what ~400 hours of French order of battle improvements mean. This all started when I was going to build some Street without joy scenarios and realized I was missing some organizations. Well, that opened Pandora's Box and this is the result.

These will also be included in the Middle East UPDATE after Vietnam is released and they are also ready for Cold War.

Everything from the platoon to the army oob file was heavily modified.






Attachment (1)

_____________________________


(in reply to benpark)
Post #: 170
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/6/2020 2:02:04 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Massive changes to Regiment sized units, all historical spanning from 1948-1985 including subunit and structure changes.




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 171
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/6/2020 2:03:19 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Massive changes to Brigade sized units, all historical spanning from 1948-1985 including subunit and structure changes. As the image states, the campaign organizations are fictional due to limitations of the campaign generator.




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 172
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/6/2020 2:04:03 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Massive changes to Division sized units, all historical spanning from 1948-1985 including subunit and structure changes.




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 173
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/6/2020 2:04:39 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
More changes...




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 174
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/8/2020 5:05:03 AM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Campaign Series Vietnam: Scenario Design.

Any guesses what scenario this map will be the basis for?




Attachment (1)

_____________________________


(in reply to Jason Petho)
Post #: 175
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/8/2020 2:02:08 PM   
Big Ivan


Posts: 1963
Joined: 6/9/2008
From: Mansfield, Ohio USA
Status: offline
That jump map is up near the DMZ. Khe Sanh is to the west-northwest maybe just off the map. Hue is down to the southeast off map. The only good sized city in the center left of the jump map would be Quang Tri and the military base there. There were a number of actions/battles around that area. I'm going to say Quang Tri!

_____________________________

Blitz call sign Big Ivan.

(in reply to Jason Petho)
Post #: 176
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/11/2020 9:48:54 PM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
Campaign Series Vietnam: ALPHA Graphics: SCENARIO DESIGN
New scenario:

Street Without Joy - Operation Camargue
July 28, 1953


[Vin Tranh, Annam, Indochina]: [SIDE A][HIS][CSL]: Annam was the central coastal region of Indochina and snaking along the coast was Colonial Route 1, which was the primary logistical route between Tonkin in the north and Chochin-china in the south. Communications and convoys along these lines suffered from regular attacks by Viet Minh irregulars that had used a series of fortified villages dispersed along the sand dunes and salt marshes between Quang Tri and Hue. The ambushes were so frequent than the soldiers would christen this stretch of road between Quang Tri and Hue as “la ruie sans joie”, the Street Without Joy”. The French had attempted to clear the area in 1952 during Operation Sauterelle but met with little success. With the winding down of the Korean War in the summer of 1953, the French were able to collect sufficient forces to try again. Under the guise of Operation Camargue, named after the sandy marshland west of Marseille in France, the forces gathered would result in one of the largest operations that the French conducted during the war. The French and Vietnamese forces were divided into four Groupement (task forces), consisting of 30 battalions, two armoured regiments and battalions of artillery. Two of the Groupement would land by the sea, using the amphibious M-29 crabe and LVT4 alligators supported by landing craft, the other two Groupement would attack from Route 1 with the intention of surrounding the area before tightening the bouclage to reign in the Viet Minh. There were also two paratroop battalions held in reserve. It was a race against clock to secure the bouclage before nightfall, otherwise the Viet Minh 95 Regiment, and most importantly, the unassuming black-clad Communist cadre, could slip through into the hills to the west of Colonial Route 1. [ALL][CSEE, Variable Objectives][1.00]






Attachment (1)

_____________________________


(in reply to Big Ivan)
Post #: 177
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/13/2020 3:59:05 PM   
Andrea G


Posts: 325
Joined: 10/9/2017
From: Genoa, Italy
Status: offline
Every rabbit you guys take off from your hat is juicier than the previous

_____________________________


(in reply to Jason Petho)
Post #: 178
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/13/2020 6:46:25 PM   
WillyPete

 

Posts: 5
Joined: 5/21/2001
Status: offline
I'm really impressed with all the attention to detail. My only complaint at this point is with the unit graphics. The maps are stunning, but are hurt by units that look like blurry blobs on the screen. Clean, good-looking units would make all the difference. Is there anything that can be done?

(in reply to Jason Petho)
Post #: 179
RE: Sneak Peeks, Coming Attractions, Works-In-Progress - 7/13/2020 8:31:24 PM   
Jason Petho


Posts: 15009
Joined: 6/22/2004
From: Terrace, BC, Canada
Status: offline
quote:

lean, good-looking units would make all the difference. Is there anything that can be done?


Eventually we will be upgrading the graphics to be PNG. We decided to focus on the SAI and LAI first, as that is far more important than the graphics, to us anyway.

As the current graphics are BMP's, there are limitations to their design. Of course, many of the units look far better on screen than in the screenshots.

Also keep in mind there are thousands of graphics that will need to be rebuilt once we move to PNG. That will take a lot of time to do it right.

< Message edited by Jason Petho -- 7/13/2020 8:35:20 PM >


_____________________________


(in reply to WillyPete)
Post #: 180
Page:   <<   < prev  4 5 [6] 7 8   next >   >>
All Forums >> [New Releases from Matrix Games] >> Campaign Series: Vietnam >> RE: Sneak Peeks, Coming Attractions, Works-In-Progress Page: <<   < prev  4 5 [6] 7 8   next >   >>
Jump to:





New Messages No New Messages
Hot Topic w/ New Messages Hot Topic w/o New Messages
Locked w/ New Messages Locked w/o New Messages
 Post New Thread
 Reply to Message
 Post New Poll
 Submit Vote
 Delete My Own Post
 Delete My Own Thread
 Rate Posts


Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI

0.703