Help support TMP


"Solo/Umpire tool for terrain 'suprises' and other events" Topic


8 Posts

All members in good standing are free to post here. Opinions expressed here are solely those of the posters, and have not been cleared with nor are they endorsed by The Miniatures Page.

In order to respect possible copyright issues, when quoting from a book or article, please quote no more than three paragraphs.

For more information, see the TMP FAQ.


Back to the 18th Century Discussion Message Board

Back to the Computer Moderated Rules Message Board

Back to the Solo Wargamers Message Board

Back to the Campaign Message Board

Back to the Napoleonic Discussion Message Board


Areas of Interest

General
18th Century
Napoleonic

Featured Hobby News Article


Featured Link


Featured Showcase Article

The Amazing Worlds of Grenadier

The fascinating history of one of the hobby's major manufacturers.


Current Poll


2,150 hits since 16 Aug 2012
©1994-2024 Bill Armintrout
Comments or corrections?

The Membership System will be closing for maintenance in 1 minutes. Please finish anything that will involve the membership system, including membership changes or posting of messages.

le Grande Quartier General Supporting Member of TMP16 Aug 2012 8:35 a.m. PST

I have a solo/non-moderated game tool on my computer I use to generate terrain 'suprises'when I play solo or unmoderated games (and many other types of duties when I am an umpire, such as adapting the Mythic Gamemaster Emulator subject/action charts to be more specific to the Napoleonic period in language and style and randomizing an action with a subject).
For example, I will define terrain areas on the table and have conditions for discovering the terrain such as scouting proceedure and first view or movment across an area rules. A typical result returned for Open Wooded terrain might read:

6w"x3d" broken hvy brush discovered 100 paces to the front of unit/scout-creates a 3" defile for roads.

Another example: Create 3 lists:
1) All Officers
2) Chance Events (illness, accident, jealous husband, etc)
3) Time out of commission (anything from one turn to x turns)
Check a return once a day per army on campaign. One officer a day per army will suffer some minor to major calamity-not unreasonable!

The app is the Knas Randomizer- it is a completly free application that once downloaded can be simply copied and pasted to a flash-drive and used without issues (or installation)on any computer.

From the website:

Randomizer is an application that generates randomized results from anthing or everything.
It can be sentences, words, letters, numbers, special characters or a combination of all these categories. Basically, it randomizes whatever you feed it and in the combination of your choice!

You define the categories you want and add lists of input data for each of these categories in simple textfiles. When you generate a random sequence, the application will randomly select XXX lines from YYY number of categories you selected and will display the result of the combination in one overview.

Features
•Define your own categories
•Combine categories in the random result
•Portable application – No registry settings & all program files in one single directory, making it suitable to run directly from a memory stick
Requirements
•Microsoft Windows OS: 2000 Server, 2000 Professional, XP, 2003 Server, 2008 Server, Vista, 7
•Microsoft .NET framework Version 2.0 or higher

Link:
link

I'm still having great fun finding uses for this, especially because of the ability to produce combinated results. Hope someone else will too.

GQG

Steve6416 Aug 2012 11:44 a.m. PST

Thats pretty cool – thanks for the post. I think you are stumbling upon a really interesting aspect of wargaming there. Keep rolling with it and see what comes up.

I am using a similar setup in my system, since I have been adding the campaign / big battles part to the computer system in the last few weeks.

On each table, the scenario defines a number of objectives / prominent features, which are entered into the computer as part of the scenario. These can be towns, prominent woods, bridges, etc, which are given a grid coordinate, and details of the type of surrounding terrain. Its a simple grid based on 1' wide squares on the tabletop.

I need this so that the computer has a way of working out distances between things, for the calculation of delays in communications. Also makes it easier for players to enter orders into the system, as they can use the names of terrain features as objectives. ie – "4 Division will advance towards Lubrekchtstadt and prepare a defence".

As a side effect of this objective registration, this effectively creates a grid system inside the computer, albeit a sparse array of grid squares.

So with all the other (empty/undefined) grid squares on the table, the computer generates a random terrain type – anything from flat marchfeld, rolling, rough, rocky, light woods, marsh, impassible. Mostly the first 2 .. with some of more horrid terrain being less likely to find, but still possible.

At the start of the game, the table is laid out with a flat / rolling scenic board, and only the registered objectives and their surrounding terrain placed on the table at that point. Everything else is 'undefined / unknown' at the start of the game.

Thing is, the players do not know exactly what any given area contains until they enter an area .. at which point the computer tells them what they find. (and how far they can move / how much disorder they take, etc)

Once a player scouts out an area and discovers what it contains, that information is still hidden from the other player(s). That could be quite an advantage, depending on what they find. Makes unprepared attacks into unknown terrain relatively risky affairs, especially when the defender has had an opportunity to setup the defence around the area. Nasty ! I like.

It is possible also to tell the computer that one side or the other has prior knowledge of all the terrain types, as this is also quite feasible.

Another extension I am playing with is having morphable terrain. For example – If it rains for several turns, some perfectly reasonable grids might start turning to mud, whereas other grids may be just fine. Players wont know unless they are in those grids, or move into those grids.

After a period of bad weather, you wont exactly know where the good lines of approach are to an enemy position, but the enemy occupying that area will have a good idea where the mud is. Interesting.

Using a terrain-grid approach for all orders also tends to put the players in the mindset of dealing with map-based objectives and lines of approach with all communications .. just like a real commander. Battle orders generally relate to geographical directives, relative positions of friendly forces, and strict timetables … they are not focused at all on enemy formations.

I think its quite rare to see orders that use enemy formations as the object of the order. ie – "Attack the French in the woods", "Shoot at the Moscow Musketeer regiment" . etc. You get that sort of feel of engagement with skirmish level actions, but I dont think its all that appropriate for larger operations, especially not in the horse and musket era.

A good mapping / grid system is a great tool for bringing the operational feel of battle to the tabletop – I reckon

PS: Thanks for the encouragement on building the campaign system, your prompts and shared ideas have gone a long way to helping. Its starting to look really really good .. looking foward to getting it out there.

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

Re the Knas Randomizer software, for those who dont do Windows.

Not a big problem. If you are on a Mac or other Unix based system, you can produce a similar thing with a small and simple shell script if you like. The built in $RANDOM shell variable is your friend ;)

Here is a trivial example of a shell script that grabs a random line from a text file, that may contain a list of terrain types, weather changes, or events .. whatever you like.

-------------------------------------
#!/bin/bash
len=`wc -l $1 USD | cut -d' ' -f 1`
line=`expr $RANDOM % $len + 1`
cat $1 USD | sed -n "$line"p
-------------------------------------

4 lines of code does the trick !

If you put that in file, call it 'randomizer', or whatever you like, then you can use it from the command line against any text file that contains lists of things you want to randomize.

ie:
$ randomizer my_list_of_commander_calamities
.. will pick out a random calamity and print it to the screen.

Explanation of the script :
$1 USD is the first argument passed in – the filename to randomize.
wc -l = word count command, -l gives the number of lines in the file.
cut -d' ' -f1 = get the 1st word from the result of the wc -l command.
$len at this stage contains the count of lines in the text file.
expr – executes an expression. $RANDOM is a built in shell variable to generate a random number, and '% $len' converts it into the range 1 – number-of-lines. At this stage, the variable $line contains a random line number in the range of the number of lines in the given file.

Finally, the command "sed -n "$line"p gets the Nth line of data from the textfile, and prints it to the screen.


… easier to write than explain :)

Like any shell script, this script can be used in a bigger script to do more complex things if you wish. Not too hard.

If you want a more complete example, just ask and I will knock something up to post here if anyone is interested.

Steve6416 Aug 2012 11:51 a.m. PST

Lol @ TMP's auto-currency converter thing, and the handling of inline shell scripts.

In the code above, All those silly $1 USD things should read $<the number 1>

It is meant to read "Dollar One", not "The price of One Dollar US" … lol.

Steve6416 Aug 2012 11:54 a.m. PST

2nd attempt – quoting the variables seems to work to get around the TMP converter obstacle, and yet the modified version remains syntactically correct !! Nice hack !

#!/bin/bash
len=`wc -l "$1" | cut -d' ' -f 1`
line=`expr $RANDOM % $len + 1`
cat "$1" | sed -n "$line"p

Pelle N19 Aug 2012 12:02 p.m. PST

LOL @Steve. My first reaction to reading this thread was "Randomizer sounds useful, but I'm not on Windows; guess I will have to write my own, and that sounds like a fun thing to do just for the exercise". Was halfway through coding it in my head (in python) before reading your post with the bash-script. :)

But I think Randomizer has a few more features that could be nice to have, and also it would be easy to come up with a few more tricks to add later, so I might go ahead and clone it in python anyway.

EDIT: LOL again. Turns out I already had a tool like that installed: shuf (part of coreutils).

Steve6419 Aug 2012 7:24 p.m. PST

Python rocks ;)

Good stuff !

Have you tried playing with node.js yet ? Got some really interesting code under development in node that I think you might like. Its a weird environment though.

le Grande Quartier General Supporting Member of TMP20 Aug 2012 4:37 a.m. PST

Gee I wish I knew what you are talking about! ;)

Sorry - only verified members can post on the forums.