Ideas for Automatic Document Generator utility

I've posted what I know about the game format in a new thread
here in the C&C section.

It's not very much, but it's a start. It'd be great if others could post what they find out, and we could compile it all together.

-Sirp.
 
Originally posted by ControlFreak
@zagnut


I've sort of given up developing something because work got busy. If I get time I think an easier approach would be a Toolbar that provided buttons that could automate some of the more common entries like "Trade with..." {Dropdown menu with all civs}. "Popped hut and got..." {Dropdown menu with settler, warrior...} A tech dropdown list could help enter things also. Basically have a macro to type the common words out into MS Word/Favorite text editor. This would let me write most of the timeline with my mouse rather than doing a lot of typing.


I agree 100%. A compare .sav program would be impractical IMO. I think just a simple program with buttons would be perfect.
Maybe Excel is the way to go with macros and buttons.

I'd like to see:
  • A text box where you enter the QSC number.
    • A textbox where you enter your nickname.
    • A section where all the civs have a box beside them and you X the civs that are in the game (This data is gleamed from the F10 button).
    • Buttons that when you click on them type out all the actions that could have been taken. Built city, mined, irrigated, traded with, a list of the civs in the game, etc.
    • Finally, a button that will enter a blank line, type the next year (with the turn number beside it) and then put the cursor one space to the right.

    After typing in nickname and game # the program would type this info out at the top of the data portion. After hitting the last button (where it types the next year) the buttons would float down so they'd be right above the current year. There would be an option to not lock it there if you wanted to scroll back and read what you wrote. It might also be cool to have an import .jpeg button or a button that would leave a placeholder for a pic.
 
I was looking at PowerBar yesterday and I would think that a turn logging version could be added/created wiith rather less effort than startng from scratch.

The version I looked at (3.2.1) has unit details (including location)
and I think it could write out the "moved x to y" sort of stuff fairly easily.

I think PB is written in VB so adding a text/rich text notes box and an "end of turn" button is a no-brainer.

What do you think?

I guess someone might like to approach SpiderZord with the idea.
 
TedJackson brought my attention to this thread. I have actually been contacted by GOTM admin about the problems PowerBar causes them with the GOTM process. I have worked with them to this end...but here is a chance to redeem the trouble I caused.

A different program based on the same methods PowerBar (a VB program) uses could be used to accomplish the ideas in this thread. A quote from earlier in the thread (sorry don't remember who said it):
"The only way around most of the points you've made would be to actually latch onto the Civ III process id and read input as it happens. That's most likely beyond the scope of what we can do."

This is what PowerBar does. It tracks the current year, has map data (including location of goody huts), tracks all units and their positions, tracks current technology researched, etc. by directly reading the process memory Civ III is using.

It would not be difficult to write the PowerTimeLine utility, and I'm willing to do it. :)

I have to run my sons to soccer - I'll check in later tonight. I think most of the requirements are in this thread (I agree that tracking all units movements would be a huge volume of unnecessary data - maybe a filter of important moves only...), but collectively assemble a wish list and I'll do my best.
 
That would be great SpiderZord, I wish I had the knowledge about the sav format so that I could be of some assistance.

Greetings
 
SpiderZord,

I'm glad you're interested in helping out :goodjob:

rather than suggesting things willy-nilly, I'll have a think about it and post some ideas later tonight or tomorrow.

regards

Ted Jackson
 
When I returned home tonight, I read through this thread again more carefully - it appears there are several willing & able programmers with good thoughts on exactly what is needed...

Perhaps I can best help by providing a dll that encapsulates the functions this document generator will need, such as:
getGameTurn
CalcGameYear
getCityCount
getUnitCount
getUnitPosition
etc.

and authoring the actual utility be left to capable hands already here. :)

Bottom line, I'll be glad to work with Moonsinger or anyone else in any way they see fit. Just let me know what you need...
 
The problem with just comparing 2 saves is that things might have happened that aren't apparent. For instance, if you build 5 warriors and 3 die in combat that leaves '2 new warriors' [unless you're an Enron accountant and then you have 25 new warriors :) ]. Wouldn't a program like this only state 2 new warriors built? It wouldn't know about cities, units, suicide galleys lost.
 
Actually, PowerBar doesn't ever read save game info - all the information is read directly from memory. CivIII maintains an indexed unit array in memory, so every game unit has an index number associated with it. By comparing the index from one turn to the next, you would be able to deduce from your example:
a) 5 new warriors (because 5 new indexes)
b) 3 lost warriors (because 3 indexes last turn now empty)
It requires tracking by comparing arrays, but quite a bit of information can be determined. I was working on a method to track (a running total by unit type) military losses by civilization at the request of one of my users. The reason a unit was lost (disbanded or military loss) would require more work.
 
@SpiderZord

I think you may be the experienced on this thread has been waiting for!

To start off a list of things that should be recorded I'll quote my previous post that indicates Crackers requirements in the QSC pages.

Originally posted by ControlFreak

Things required by timeline:
  1. When you locate a goody hut report its location, when you open it, and what you get out of the hut.
  2. When you meet another civilization, describe the encounter and what you learn about your rival.
  3. When you engage in >any trade event, describe the exchange whether it succeeds or fails.
  4. If you establish embassy/conduct diplomacy describe the events, the costs, and anything you learn.
  5. Describe any adjustments you make to research or luxury spending rates.
  6. Describe any technology research decisions.

Up until now, we've been thinking about how to glean this info from autosaves. With the code and knowledge you are willing to lend, I think we must rethink at least the 6 items interms of the memory resident information.

In your thinking, does the memory resident stuff only include unit activity or does it also include slider settings, diplomatic knowledge of civs, technology decisions etc?

If it is only based on units, then the PowerTimeLine (TM) would be able to handle the interesting worker actions and exploration directions included in may players timelines. It would also handle settler movements. When settlers disappear the assumption is that is the founding of a town.

If the memory resident info doesn't contain knowledge of the other things, we'll still to look at save games for those things. And there will definitely need to be Moonsingers notepad area so that players thought could be recorded. It would be handy to have all of those things in one place.

I've never downloaded your PowerBar and I'm not even really sure what it does, so forgive me if my comments seem like they're out in left field.
 
ControlFreak and others interested,

Perhaps the best course would be for you to download & run PowerBar to give you an idea of what information can be made available to the ADG utility. Here is a link:

PowerBar Utility

Don't use it on a GOTM game you intend to submit! GOTM Admin and I have worked that problem out... ;)

The zip file includes a readme.txt which details many of the capabilities.

Notes on the 6 required items:
1)GoodyHuts - PB reads the tile array in from memory and stores relavent info (terrain type, civ owner index & improvements index). The improvements index can be used to determine the location of all goodyhuts and tag them (store them in an array w/their x,y map locations). The new ADG utility could monitor those looking for a change (on a event timer) and when it detects the goodhut's dissappearance, it could check to see if it was one of your units (check for their location at same x,y). The ADG could then initiate a pop-up that asks what you found (in a pull-down list or radio button option list) to record the bonus.

2,3,4) PB doesn't do much with diplomacy (yet), but I'm thinking those could be located in memory as well. PB does know when civs are at war with each other (the road index changes the movement cost for using enemy's roads).

5) I haven't tracked down the spending 'slider' values for research or entertainment (PB cheats by toggling the 'finished researching X technology flag or city producing unit/building flag to finish those items the next turn), but those values have to be sitting in the 'civ variables' in memory.

6) PB currently reads the 'currently researching' tech index for each tribe and provides it in an info screen, so tracking that is no problem.
 
I want to emphasize what spiderzord is saying here about the POWER BAR,


Using the POWERBAR in any way on a GOTM game that you have not already submitted is cheating. Absolutely cheating!!


Players who are detected using the powerbar on GOTM games will be permanently impacted by that bad decision with a zero tolerance approach.

Rcognize that the powerbar is the "Training Wheels" of the Civ3 world and if you feel you need to use that program in a real game, then there may not be much value to having you participate in any competitive game venues like the GOTM.

If it were me, making the decisions about my game. I would never open the power bar within 10,000 miles of any GOTM game until after I had submitted the game for scoring.
 
My playing time constraint permit only one game, GOTM.

Therefore, I will not download Powerbar. I would like to see a list of things it can do. Is the read me file available for download without the powerbar? That way I can more intelligently continue to discuss how to create the PowerTimeLine (TM).
 
Originally posted by ControlFreak
My playing time constraint permit only one game, GOTM.

Therefore, I will not download Powerbar. I would like to see a list of things it can do. Is the read me file available for download without the powerbar? That way I can more intelligently continue to discuss how to create the PowerTimeLine (TM).

ControlFreak, I have attached the readme.txt.

My "Training Wheels" program is a utility & has a valid use by mod makers testing their scenarios & mods in a timely manner and individuals enjoying the comfort of 'training wheels'. I have spent a great deal of time now fixing the problems occurring in the competitive venues and that is my intention here. If I can provide any help to create a tool that aids in documenting and streamlining the process by which GOTM staff has to validate games, then I am bound to do it.
 

Attachments

@SpiderZord

Thanks for the readme.

I'll post some comments tomorrow.

TTFN
 
Originally posted by SpiderZord
When I returned home tonight, I read through this thread again more carefully - it appears there are several willing & able programmers with good thoughts on exactly what is needed...

Perhaps I can best help by providing a dll that encapsulates the functions this document generator will need, such as:
getGameTurn
CalcGameYear
getCityCount
getUnitCount
getUnitPosition
etc.

and authoring the actual utility be left to capable hands already here. :)

Bottom line, I'll be glad to work with Moonsinger or anyone else in any way they see fit. Just let me know what you need...

Wonderful!:) Although I haven't heard of the POWERBAR until now (sorry for my ignorance since I don't usually go to the utility forum). I will take a look at your POWERBAR tonight to get a feel of what it can do. From what I heard so far, anyone who can tap into civ3 runtime memory is a much better programmer than me.:worshp: I'm really not worthy in your presence.:worshp:

If you like, please take over this whole project. Since I don't really have a lot of time to work on this, I'm afraid I'm just going to slow you guys down.:cry: I will try to support and to help you in any way I can.
 
Anyone who has run powerbar@

Do you have to click something to initiate a check or does it constantly monitor and record any changes. That is to say, if I'm playing Civ, is powerbar watching the units move one at a time or do I have to tell it when to look?

I think for the purposes here, it would be better if it were constantly watching and recording. Any time a unit movement happens PowerTimeLine (TM) should get current year, indicate which unit and indicate change in coordinates as a delta (e.g. swordsman at X,Y moves NE.) Of course it would be even nicer to describe which swordsman interms of some geographical reference like swordsman NEAR ROME instead of X,Y but that is for version 3 or 4 maybe.

When the tech changes record that with the year.
When slider values change (if this is available) record that with the year.
When a goody hut pops, record year and note any new unit in that area. If its a tech, it should note the addition to our knowledge. If its a map, who knows how to know that versus it being empty. If its gold, it should note the amount our treasury increased by.
Is there a way to indicate when a goody hut is DISCOVERED? I would think yes because of the fog of war index.

What are the thoughts on trade? Is there a way to capture new active trades? How about tech for tech trades? Maybe it will be enough for version 1.0 to monitor our civs known technologies and just record the year a tech was acquired through any means.

This list of recordings would be post-processed by a player, either every turn or whenever he/she remembers to update. There would be selection for filtering out some unit movements. There would be a edit box where comments could be entered. This should have the option of including the current game year, a user defined game year, or no year when it is written to the log. The log should be exportable into a text file that could be further edited if desired (like to add a little character or story).

Man there is so much to do here.

EDIT for readability
 
Originally posted by SpiderZord
A different program based on the same methods PowerBar (a VB program) uses could be used to accomplish the ideas in this thread. A quote from earlier in the thread (sorry don't remember who said it):
"The only way around most of the points you've made would be to actually latch onto the Civ III process id and read input as it happens. That's most likely beyond the scope of what we can do."

I'm the one who said that.. good to see 'we' now includes someone with that ability. :)

Would you be able to latch onto CivIII's keyboard and mouse input to record and playback an actual game replay?
 
Well, this all seems to be going along quite nicely :)

I should have my PC back and available mid-april, so if I can be any help, let me know. :)

I have some vb classes for handling splitting of the game file - if the Civ 3 memory stack is in the same format as the save file (which I suspect...) then these may be useful for extracting information :). Just a case of passing the relevent bytes to the class object.
 
Back
Top Bottom