Over the Reich - Creation Thread

Events are available, post if you take them. I probably won't do more work tonight, but you never know.

Changelog:

The Airlift conducted flag is set for all cities with Jagdfliegerschule in the after production event.

The airlift already done by this city message should be changed accordingly.

uBoats now respawn only in the following cities:

local tierOneRespawnCities={
cityAliases.Brest,
cityAliases.LeHavre,
cityAliases.Bordeaux,
cityAliases.LaRochelle,
}

local tierTwoRespawnCities={
cityAliases.Hamburg,
cityAliases.Bremen,
cityAliases.Wilhelmshaven,
cityAliases.Lubeck,
cityAliases.Kiel,
cityAliases.Rostock,
}

A city is chosen at random from among the tier one cities with ports. If there are no such cities, a tier two city is chosen instead. The likelihood of respawning is the same probability=germanPorts/(germanPorts+alliedPorts).

The new submarine has the same home city as the destroyed one (with fewer cities to respawn in, I foresaw a problem where there was not enough support).


TRAINLIFT

trainlift is done by pressing 'u' when a ground unit is active.
Trainlifts must be done between cities with railyards, and which are connected by terrain that a train can pass.

specialNumbers.trainliftCityExclusionRadius = 5 -- Enemy can't "trainlift" using rails within this many squares of an enemy city
specialNumbers.trainliftBattleGroupExclusionRadius = 3 -- enemy trainlifts can't use rails within this many squares of a full strength battle group
specialNumbers.trainliftDepletedBattleGroupExclusionRadius = 2 -- enemy trainlifts can't use rails within this many squares of a depleted battle group
specialNumbers.trainliftFixedCost = 50 -- base cost in gold for any trainlift
specialNumbers.trainliftCostPerTile = 2 -- cost for each tile traversed by trainlift

local trainCanCrossTerrain = {
[0]=true,
[1]=true,
[4]=true,
[6]=true,
[8]=true,
[9]=true,
[12]=true,
[13]=true,
[14]=true,
}
All other enemy ground units block the rails within a radius of 1 if they are
standing on a train traversable tile (so that they block the rails even if the
square they are on can be avoided by cutting a corner)

Air (and sea) units don't block the tracks for a trainlift (this can be
altered if needed).

Railyard units block the rails below, on the off chance that a railyard is
more than 5 squares from a city and has been rebuilt by the enemy

Units and cities on a different landmass don't prevent trains from moving.

Some units can't be trainlifted. If the table has a string instead of true, a custom message is shown instead of a generic one

-- noTrainlift is indexed by unittype id. These units can't be transported using the
-- 'trainlift system. If the value is a string, that message is displayed for why the
-- unit can't be transported by train
-- If true, a generic message is shown.
-- Air and Sea units can never be trainlifted, the function just closes with no action
local noTrainlift = {}
noTrainlift[unitAliases.FlakTrain.id] = "Flak Trains cannot be transported by other locomotives. They must relocate under their own power."
noTrainlift[unitAliases.FreightTrain.id] = "This is already a train. We can't transport it using the military transport system."
noTrainlift[unitAliases.EarlyRadar.id] = true

On this topic, you may want to review the trainlift messages. It was hard to figure out exactly what to write, since there is no comparable word to airlift for trains.

I have removed "orderly retreat" (activated by backspace) from infantry units, now that there is trainlift.


Still Needed Tasks
Change the archive system
Build a better combat reporting system and implement a log maker (at least the parts necessary for OTR).

Maybe Needed Tasks
Port sabotage, Port bonus. Perhaps if you're not on your "home" landmass, you're train network must have access to a functioning military port in order to trainlift. This shouldn't be too hard. Or, we forbid using the trainlift entirely on the invasion continent (even easier).
Review the messages shown for city capture, now that Germans can do cross channel invasion also.
 

Attachments

Well done - I'm sitting in the airport and wont get in until late, but I'll check everything out tomorrow.
 
Did you send everything necessary? I think I might need "characterTable"

Keyboard shortcuts:
Ctrl-F1: Prints this help text
Ctrl-F2: Aborts running script
Ctrl-F5: Reruns last script
Up/Down: Scrolls input history


Over the Reich
D:\Test of Time\Scenario\OTR - update\text.lua:80: module 'characterTable' not found:
no field package.preload['characterTable']
no file 'D:\Test of Time\lua\characterTable.lua'
no file 'D:\Test of Time\lua\characterTable\init.lua'
no file 'D:\Test of Time\characterTable.lua'
no file 'D:\Test of Time\characterTable\init.lua'
no file 'D:\Test of Time\..\share\lua\5.3\characterTable.lua'
no file 'D:\Test of Time\..\share\lua\5.3\characterTable\init.lua'
no file '.\characterTable.lua'
no file '.\characterTable\init.lua'
no file 'D:\Test of Time\Scenario\OTR - update\characterTable.lua'
no file 'D:\Test of Time\characterTable.dll'
no file 'D:\Test of Time\..\lib\lua\5.3\characterTable.dll'
no file 'D:\Test of Time\loadall.dll'
no file '.\characterTable.dll'
stack traceback:
[C]: in function 'require'
D:\Test of Time\Scenario\OTR - update\text.lua:80: in main chunk
[C]: in function 'require'
D:\Test of Time\Scenario\OTR - update\events.lua:95: in main chunk
 
For combat reporting, I'm planning a system where the report is organized based on region. The table has the region name as the key, and as value it has function(tile)-->bool , which returns true if the combat tile (where the unit that was attacked sits) is in the region and false otherwise.

If the combat tile is not in any region, the nearest city, or other landmark is used to organize the report.

If you update the General Library, you can get a function gen.inPolygon, which will be useful in defining regions. There is also a PolygonScript available, which should further facilitate defining regions. Let me know if you need help.

I'll probably be able to get a decent amount of work on combat reporting done Sunday, not sure about Saturday (will be evening, if anything). Most of this work won't need the events (since I'll be working from a new module), but post if you take them, since I'll need to modify the events to join everything together.
 
I took a stab at finding the gen.inPolygon function but could not find it.

I also took a closer look at the text for the military rail transport system and honestly I can't think of a better one. The United States apparently calls it the "Military Railway Service" but they aren't the main users of it in this scenario, and frankly I think yours sounds better anyway. I vote that we keep it.

I might be missing something but I think that until it's time to start defining regions, I am not in the events so I'll continue to plug away with the scenario literature and help files. I'm making good progress on the readme but as long as it is, when it's done it'll probably need a proof skim just to make sure I haven't missed anything.

For those who are following along - I think this is pretty exciting and useful for other projects:

We now have a situation where units can basically be "airlifted" by the rail network, but only between cities with train stations, and only if there is an actual rail track terrain type (plus a few others we chose) connecting the two. Doing so costs fuel (money) commensurate with the distance between the two stations. Enemy bombers can destroy a unit that represents a train station, which changes the terrain away from rail track, so it is possible to shut this down from the air. It can then be repaired by building a certain building which replenishes the unit, and changes the terrain.

Pretty friggin' cool if you ask me
:goodjob:
 
I took a stab at finding the gen.inPolygon function but could not find it.

I've attached the current General Library files.

I've also added a note in the General Library thread to download from GitHub by pressing the Green "Clone or Download" button. With that instruction, is it now easy to download it? If not, I may go back to attaching updates to thread posts.

I might be missing something but I think that until it's time to start defining regions, I am not in the events so I'll continue to plug away with the scenario literature and help files. I'm making good progress on the readme but as long as it is, when it's done it'll probably need a proof skim just to make sure I haven't missed anything.

Yes, I'll go over the readme at some point as well, to make sure that we don't miss any functionality. I'll still post when I have the events, but I don't think you have much to do in the events just now.
 

Attachments

I believe I'm done with the describe.txt and will continue working on the readme.

I don't think there is a reason we can't start the final playtest soon if the below is all that remains to be done. All of it seems to be stuff that could be added while playing without messing with any major compatibility issues. Two eyes on a playtest would make it easier to QA any text files I may have missed. Four eyes would be even better, and would let us know if two people who have not taken part in the design of this can play it and have fun *cough* *cough* @CurtSibling @techumseh @committed hero @tootall_2012 @Knighttime @Fairline @Tanelorn @anyonewhoisstillplaying this game. These multiplayer games are really hard to playtest by yourself so anyone who has been following along, this is pretty much wrapping for development and aside from some tweaks we'll probably make after your feedback, I think you'll be enjoying close to the finished product here.

I would like to try and polish this over the next week or so (probably playing 20-30 turns single player as well) but then possibly make it available for a download for anyone who is interested, and start up another match against you @Prof. Garfield, if you're game. Just let me know which side you'd like to play.

Still Needed Tasks
Change the archive system
Build a better combat reporting system and implement a log maker (at least the parts necessary for OTR).
Review the messages shown for city capture, now that Germans can do cross channel invasion also.

I take it the city capture is in one of the game text files so I'll poke around and take a look at it prior to Sunday.

Maybe Needed Tasks
Port sabotage, Port bonus. Perhaps if you're not on your "home" landmass, you're train network must have access to a functioning military port in order to trainlift. This shouldn't be too hard. Or, we forbid using the trainlift entirely on the invasion continent (even easier).

If it isn't too hard then I'd go with the former (require a military port) mostly because I could see that being very useful in other scenarios. But if it is going to cause too much trouble then the latter would work just fine. Neither should happen immediately so I don't know that it would matter if we just launched a playtest.
 
I take it the city capture is in one of the game text files so I'll poke around and take a look at it prior to Sunday.

I mean the text that shows after the dday invasion when the allies or Germans capture a city (i.e. the allies must control a port between Bordeaux and Hamburg, etc. or the Germans win).

I don't think there is a reason we can't start the final playtest soon if the below is all that remains to be done. All of it seems to be stuff that could be added while playing without messing with any major compatibility issues.

I think you are right. All that might happen is that archived messages are no longer available, or something similar. I'll make sure to get port sabotage done just to make sure.

I would like to try and polish this over the next week or so (probably playing 20-30 turns single player as well) but then possibly make it available for a download for anyone who is interested, and start up another match against you @Prof. Garfield, if you're game. Just let me know which side you'd like to play.

I think I'll be able to put in a good amount of work Wednesday and Thursday, but I won't have time at all Friday to Monday based on my current schedule.

and start up another match against you @Prof. Garfield, if you're game. Just let me know which side you'd like to play.

Sure, I'll play you again. I'd like to play Allies, since I actually know what most of their aircraft are supposed to do. Do you want to post the game play to Youtube? If so, we probably want to wait until I finish all the automatic logging stuff.
 
I mean the text that shows after the dday invasion when the allies or Germans capture a city (i.e. the allies must control a port between Bordeaux and Hamburg, etc. or the Germans win).

Can we just add an elseif to the code so the Germans get a different text message?

Sure, I'll play you again. I'd like to play Allies, since I actually know what most of their aircraft are supposed to do. Do you want to post the game play to Youtube? If so, we probably want to wait until I finish all the automatic logging stuff.

That sounds good. I'm glad you're willing to reprise your role as the Allies. You're the better player, so I think it is good that you play the protagonist so we get an idea of how easy (or not) the new changes have made it for them to invade. I'm slightly concerned about the payload implications, but have tweaked many of the points to account for that.

I'm still pretty new to the whole YouTube scene - are you proposing that we simply film ourselves each turn and then upload a video of that turn, walking players through our decisions (and new options) or how would this look?
 
I found a bug -

When pressing backspace with an 88mm flak battery, I get the message for "Consolidating Ground Forces: We can equip 0 88mm Flak Batteries with the contents of -1 freighters..."

This error does not occur when using backspace to fire all radar stations.

The munition is still created so I can work through it for my single player playtest but it's definitely something we need to fix.
 
One more quality of life suggestion - I know we don't want to add many events, but I think you're going to be glad you added this when you start to play.

Can we somehow make it so that bombers that start off a turn in a friendly airfield with "NONE" as their home base are re-homed to that airfield? Otherwise one has to manually change the home city for each aircraft repeatedly which is a chore a few turns in and will only be worse 50 turns in. I think so long as this happens after the start of the turn, we don't need to worry about them disbanding automatically (though the player will need to make sure they take care in where they land to not overwhelm the system, or they're going to need to fly to other airfields that turn or lose the aircraft the next one).

I foresee this being a huge time waster if we don't proactively fix it.
 
I have the events.

Can we just add an elseif to the code so the Germans get a different text message?

I don't remember exactly what all the messages were, but one was shown when I had the Germans capture London during the trainlift test, and it was not correct for that situation. It shouldn't be too hard to fix, we just have to go through the city capture events and check.

I'm still pretty new to the whole YouTube scene - are you proposing that we simply film ourselves each turn and then upload a video of that turn, walking players through our decisions (and new options) or how would this look?

Yes, basically that. Play the turn, maybe point out new features, explain a bit of your strategic thinking. Basically show off the game, and that the turns are not too long. Have regular uploads to maximize the "advertising" value.

I found a bug -

When pressing backspace with an 88mm flak battery, I get the message for "Consolidating Ground Forces: We can equip 0 88mm Flak Batteries with the contents of -1 freighters..."

I'll look into it.

One more quality of life suggestion - I know we don't want to add many events, but I think you're going to be glad you added this when you start to play.

Can we somehow make it so that bombers that start off a turn in a friendly airfield with "NONE" as their home base are re-homed to that airfield? Otherwise one has to manually change the home city for each aircraft repeatedly which is a chore a few turns in and will only be worse 50 turns in. I think so long as this happens after the start of the turn, we don't need to worry about them disbanding automatically (though the player will need to make sure they take care in where they land to not overwhelm the system, or they're going to need to fly to other airfields that turn or lose the aircraft the next one).

I foresee this being a huge time waster if we don't proactively fix it.

Sure, I'll make planes home automatically to an airfield, unless the airfield can't support any more units. In that case, I'll give the player a text notice.
 
Events are available.

changelog:

Fixed backspace re-group formation bug

Fixed harbour user table so that depleted battle groups have 6 movement points instead of 8

Unit types that have a payload attack which are activated in a city are automatically homed to that city if they have no home city and the city can support an extra unit. If the city is maxed out on support, a message is shown to the player.
 

Attachments

The events are available.

Changelog:

-Fixed error where 2nd turn text was appearing on turn three in place of third turn text
-Added clear instructions to 2nd turn text regarding rehoming (like Knighttime's "leader bonus" the rehome doesn't take effect if one manually activates the bomber - the game must cycle to that bomber).
-Increased German score for killing heavy bomber to .25 from .1

I don't remember exactly what all the messages were, but one was shown when I had the Germans capture London during the trainlift test, and it was not correct for that situation. It shouldn't be too hard to fix, we just have to go through the city capture events and check.

I looked through the city capture piece. It looks like the weird message is the one that triggers when the Germans start pushing the Allies back into the sea. I think if we can only have the current message occur if state.DDayInvasion=true then that would likely solve it in most realistic scenarios (I think it would be pretty unlikely that the Germans would invade England AND the Allies would invade France, which is the only way it wouldn't make sense). I did not attempt to change this.

If you update the General Library, you can get a function gen.inPolygon, which will be useful in defining regions. There is also a PolygonScript available, which should further facilitate defining regions. Let me know if you need help.

"If you update the General Library..." Where am I supposed to put this? It's currently in a folder in the scenario called "General Library-master" - am I supposed to move the contents of that folder into the actual scenario file, or the main lua folder in ToTPP?

Also, to update this - am I grabbing coordinates and putting them in here?:


Code:
local polygonTable={
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
}

Also a weird thing I've noticed in the playtest is that a pollution marker appears at 197,85 but it isn't on my development save. No idea what is causing this and I'm not too worried about it but I point it out here in case later it proves to be the culprit of some unknown future issue.
 

Attachments

Last edited:
I've had less time to work on this yesterday and today than I thought I would. If I get the chance to do some work today, I'll work more on the combat reporting feature, but I won't try to integrate it into the events. I'll be working very long hours Friday to Monday, so I don't want to risk breaking anything in the events. If you need some information or a fix, let me know. The worst that will happen is that I'll say it has to wait.

"If you update the General Library..." Where am I supposed to put this? It's currently in a folder in the scenario called "General Library-master" - am I supposed to move the contents of that folder into the actual scenario file, or the main lua folder in ToTPP?

My latest events provided an even more recent copy of generalLibrary.lua, so that is updated. Move PolygonScript.lua to the OTR folder, then delete the folder "General Library-master". Then use the Load Script function to run PolygonScript, which will provide instructions on making and checking polygons, and print table constructors for polygons to the console. Note that the inPolygon function does not check the map, so that must be done with other code.

Here is how I plan to use regions:

-- Every battle is assigned a region for organizational purposes.
-- The region is determined by means of a "Geography Table"
--
-- A geographyTable is a table indexed by strings, with the
-- following possible values
-- geographyTable["My Region Name"] = function(tile)-->boolean
-- The tile is considered in My Region Name if the function
-- returns true, and not in the region if the function returns false
-- geographyTable["My First Landmark Name"] = tile object
-- geographyTable["My Second Landmark Name"] = {integer,integer,integer}
-- geographyTable["My Third Landmark Name"] = {integer,integer,table of integers}
-- geogrpahyTable["My Fourth Landmark Name"] = {integer,integer}
-- If the tile is not in any region, then it is placed in a 'region' "near"
-- a landmark. A landmark described as a tile or as an integer triple
-- is only a landmark on a single map
-- A landmark described by a pair of integers is good for all maps
-- A landmark of the form {integer,integer,table of integers} is a
-- landmark for all the map numbers in table of integers


I looked through the city capture piece. It looks like the weird message is the one that triggers when the Germans start pushing the Allies back into the sea. I think if we can only have the current message occur if state.DDayInvasion=true then that would likely solve it in most realistic scenarios (I think it would be pretty unlikely that the Germans would invade England AND the Allies would invade France, which is the only way it wouldn't make sense). I did not attempt to change this.

I'll make the change when I get the chance.

Also a weird thing I've noticed in the playtest is that a pollution marker appears at 197,85 but it isn't on my development save. No idea what is causing this and I'm not too worried about it but I point it out here in case later it proves to be the culprit of some unknown future issue.

OK, I'll track this down at some point.
 
I'm pretty sure I have the text files sorted now. Here is the readme. The only part I wasn't sure of was the port mechanism as I'm not sure where we will land on that (if the Allies will get 3 bonus units or not, for example).

-Also - I took a quick look at the polygons -

so basically I will press k to define my corners, then press backspace and ask it to fill the polygon, and then press backspace and ask it to print the coordinates, and then report back here to you with the coordinates?

Edit - from a quality of life standpoint for the first turn, do you think I should bother with making each civ start (as I would envision) "ideally" (so having things set up with the right entertainers, "right" production, etc.) or do you think that this would be a waste of time as players would just tweak it anyway? Right now I have things set up somewhat plausibly but probably not ideally.

The first turn is a monster so I thought there might be a way to make it better is all.
 

Attachments

Last edited:
so basically I will press k to define my corners, then press backspace and ask it to fill the polygon, and then press backspace and ask it to print the coordinates, and then report back here to you with the coordinates?

Yes, we can do it that way. Also, let me know what the maps are. I.e. do you want low and high altitude day to be one region, and night for the same coordinates to be another, low high and night to be one region, or low high and night to be three separate regions.

I might also be able to give you an example of what to do yourself, tomorrow.

Edit - from a quality of life standpoint for the first turn, do you think I should bother with making each civ start (as I would envision) "ideally" (so having things set up with the right entertainers, "right" production, etc.) or do you think that this would be a waste of time as players would just tweak it anyway? Right now I have things set up somewhat plausibly but probably not ideally.

The first turn is a monster so I thought there might be a way to make it better is all.

I think you should make it good enough so that players can jump right in and test out aircraft and figure other things out without first having to fix dozens of cities. I wouldn't worry about making it perfect, just good enough so that someone playing for the first time doesn't suffer a major disadvantage because they waited a few turns before taking a close look at city production.

Maybe set up cities with partially completed items, so a handful of things finish each turn, and then the player can take a look at that city and decide new production or change worker allocation, etc.
 
Back
Top Bottom