|
Post by redvlastelin on Jan 20, 2013 13:09:50 GMT 1
Hi danzig, when will appear the first version of your mod?
|
|
|
Post by danzig70 on Jan 20, 2013 16:42:31 GMT 1
No estimated time of arrival, unfortunately.
|
|
|
Post by kellyshero on Jan 20, 2013 17:11:02 GMT 1
Some things are worth waiting for Good Luck with your work!!.....it looks stunning and has awesome potential!!
|
|
|
Post by danzig70 on Jan 25, 2013 19:13:39 GMT 1
Thanks Kelly! I have updated the Global Campaign website ( link) a bit with 2d and 3d map applications to provide an alternative to downloading and installing the WorldWind (.net) program. My hope is to have a place where people can download campaigns/maps/mission/units, etc, with the option of participating in a grand campaign. Basically, as you progress through a campaign, icons representing your units on the map would be updated. For example, on the 2d map I have created icons for German and French army groups. When you click on an icon it could have links to player info, player created pages, screenshots, mission stats, etc. I also hope to have a script generator which will identify units in a sector so missions will reflect reinforcements, off-map artillary support and location/condition of the player's core units. I also want to provide a place for people to upload movies or other content they've created or link to their own websites. I still have a lot of programming and scripting to learn but I will try and update the page with examples. Any help is of course welcome!
|
|
|
Post by danzig70 on Jun 15, 2013 2:01:15 GMT 1
Back at work making my France/Saarland maps. I am starting from scratch to try and streamline making them. Here is a screen shot. I am using trees to placemark where the roads should be placed since they don't show up in the minimap window until after you "create". I also use an image of a topo map from 1881 to get a feel of the historical layout of the city. A few other topo maps available from here are from the 1930s. Unfortunately, the topo maps do not line up with the terrain and satellite imagery exactly and was throwing me off when placing roads and buildings. There is a good site here with good photographs of buildings and city layout. Most are from 1960 and 1910. I really want to finish this French invasion of Saarland campaign so I can work on my favorite city.....Danzig
|
|
|
Post by danzig70 on Jun 19, 2013 2:01:21 GMT 1
Started playing with the chapter and map scripts. It has been along time since I've done that. The chapter script seems to be limited to three functions EnterChapter, MissionFinished and PlayerGainLevel, although you can add several conditions inside the first two functions which helps. To facilitate choosing which map to enter next by exiting the current in a given direction, I see two options: use pass a "next map" and "where to land reinforcements" global variable to the chapter script from the map script and use the win() function in the map to call the MissionFinished function in the chapter script or store the same variables in the EnterChapter function and skip the chapter screen altogether and have the player manually save the game after his units exit the map (DisplayTrace would prompt the user to do this). To use the save games would require the WorldWind or other mapping program to be installed so that it would only be necessary to click on an icon to launch the game. The web map that I have, while universally accessible with an internet connection, can't launch the game the same way. I may play around with the function LuaProcessMessage( nMessageCode, nFirst, nSecond ) and use the values in the LoadMission.lua file (in UI folder) but it likely won't work like I would want it to.
Regarding tracking unit health and ammo levels: I thought of creating different reinforcement groups with different script id's at each map entrance/exit with differing health values but, as has been pointed out, there isn't a way to get the health of a unit to know which script id to land. And even though there is a method to get the unit's ammo (GetNAmmo (iScriptID)), I don't know a way of setting the ammo level even through the map editor.
The result is there would be no escaping a map badly damaged and without ammo and have any kind of realism on the next map. Would anyone even be interested with these limitations? It is possible to leave out any base upgrades using the MissionFinished method which makes it a little better. Then you only get upgrades when you enter a depot map. Let me know what you think.
|
|
|
Post by Major Pain on Jun 19, 2013 3:46:20 GMT 1
Danzig
The issues you refer to have been discussed over the years, with no real solutions identified.
There is no known way to pass damage or ammo levels between maps. I won't say it is not impossible... since we have not explored every possibility within the LUA language and MAYA Script limits. What I can advise is there are many functions not documented in any of the guides that Calvin's, HitandRun, BKP or wespex or offered.
We do know that data can be passed between maps.
At the moment, there is no known way to assign landing reinforcements to a coordinates. This leaves us with the standard method within the script. There are two methods to accomplish the landing to specific areas.... using a single map with every possible landing location predefined with script units... or using multiple maps; each with only one or a couple of possible landing locations.
We can pass some data to these units, but health/damage does not seem to one of them. Ammo and health can be adjusted within the secondary map, but until we unlock the specific code, it would be a guess. This issue might be handled 'behind the scenes' with a ammo depot nearby upon landing. Obviously, if supply and repair vehicles are not passed, it becomes more unrealistic.
I worked on this over the years. Because my intention was to have the ability to pass specific units between maps, I found that assigning each unit it own Script ID was the only way to check if the unit survived the previous mission. Each Script unit's ID was stored in an array, along with it's status (alive or dead), health, ammo. We can read health and ammo, we just can't pass it as of the moment. When loading the second map, the array parameters passes as well. Each unit is LANDED once the array is read to determine if the unit is alive. This system works, but still needs a few adjustments.
Some History:
During the BK Headquarters days, several of the Moderators and leading model/map developers discussed an idea of a BK Add-on that went beyond anything ever seen. I think the idea still has merit, but due to lack of many of those talented people currently, the idea has been shelved. Perhaps there is enough talent in the community to resurrect the idea.
The primary focus was based on a Scenario that was comprised of a Theater, broken up into smaller more manageable battles, sections or maps. The idea goes back to the old Maze type games. If you exited the map to the north, you entered the map section in the theater to the north. Terrain objects might limit movement toward specific directions. The first rough draft of the idea was based on 25 maps, or a 5 x 5 grid. Obviously, the outer perimeter maps would include terrain blocks to prevent "out of bounds" movement.
Early testing proved many of the theories as to passing data. Examples of data handling and passing can be seen in both the Patton and Rommel Campaigns.
Another aspect had to be worked out. What if the player left MAP 10, went to MAP 11, but turned around and re-entered MAP 10 once more. We had to remember what had happened on MAP 10 previously. Early test proved that a saved map could be re-loaded. What had not been worked out was the re-location of the player units. If we saved the map with the units included, they would be aligned outwardly toward the border. So testing was underway which removed the player units, and reloaded them to the secondary landing location using a secondary map script. Since the objectives had triggered during the first visit, we had to check if any or what specific objectives had been met. This required a more complex script. This is exactly why arrays were required to handle the data issues.
The number of 'what if' situations we discussed did slow us down, along with testing and working out theories. One of the nightmare what ifs was the player that went from map to map in a circle motion returning numerous times to the same maps. That had to be handled in some fashion. During the initial testing, we were able to check the 'next-map' function fairly well with the loaded saved maps. But the issue was introducing a new script, with perhaps different objectives based on new parameters- the thinking was along the lines that if the player did not or could not accomplish the objectives.... the objectives would also have to change because the over-all mission had changed. Perhaps the element of surprise was now gone... which was the case on June 6th, 1944. So objectives would change depending on how much time had gone by and what progress had been made.
Despite the numerous issues worked out and identified, it became apparent very early into the project that scripts would be very complex and require many functions dedicated to the 'what if' situations upon map loading. The map loading issues were somewhat less severe since the maps were smaller and the number of units and objects was based upon the map size. We all know the time to move from map A to map B is much like watching grass grow in some scenarios, so we really wanted to place some focus in that area.
I have been reading and watching your post on your ideas over the last couple of years. We have discussed some of the things I described above. It very much appears you are very close to where we were in 2009. I applaud you for your hard work on this. Your idea would have taken the theory or idea one step further than we had planned to go... building the maps based on the actual topographic and geological features in real time. I was hoping you would find the breakthrough to allow this using your 'geo-host' program.
If you have an interest in building a team to pursue this as described above... let me know.
*****************************************
For community consumption.... It takes this kind of dedication Danzig has shown along with a dream to make things happen.
For years, this community has survived only due to the on-going commitment of the members to create models, objects and maps. We have not any official support from the developer or producers in a very long time.
I urge all of you to do what you can, share what you can and exchange ideas.
The BK game engine "Enigma" is still one of the all time best ever developed. The game by today's standards is only limited by the graphic capabilities and some hard-coded functions. Many of our leading creators and teams have proven that what you bought was not all there was. I am convinced we have only scratched the surface of the true capabilities in terms of scripting and modeling.
Those of you that have BKII can see the similarities along with the differences. The game engine is the same. So much of what BKII has, resides in BKI. We only have to unlock and explore...
So onward we go...
MP
|
|
|
Post by danzig70 on Jun 20, 2013 1:47:51 GMT 1
|
|
|
Post by Major Pain on Jun 20, 2013 4:05:48 GMT 1
Check Calvin's Gide but here goes...
GetObjectHPs(iScriptID_Static) · Returns the hit points of the static unit iScriptID_Static (buildings, etc…) · This function does not work with the mobile units
I have explored this many times... I think by using a different keyword... this could be possible for mobile units.
i have not exhausted trying things like
GetUnitHPs(iScriptID)
GetScriptUnitHPs(iScriptID)
The language does seem to have flexibility.
GetNAmmo(iScriptID) · Returns the ammunition levels (primary and secondary) of the unit iScriptID · ex : primary_ammo, secondary_ammo ) GetAmmo(iScriptID) ; · Note : As a rule, the primary ammo is the armor piercing and the secondary ammo is smoke
******
The reverse of 'Get' is of course 'Set'. Testing the opposite has not always been successful, but again, some other parameter may be required. My reason for pursuing this theory is based on the fact that all we are dealing with are values that are stored within a database. If you can read them, you should also be able to write to them.
Example of passing data in a campaign or chapter is as simple as when a unit is added to the depot. Scripts run a logical course checking for true or false conditions in the functions.
A function is nothing more than an 'argument' (IF - THEN STATEMENT)
IF [condition is true] - then do this, [condition is false] then do this...
A function can also be a statement that causes something to happen - DisplayTrace... is an example...
A function can also be used as a trigger to turn on other functions, or establish conditions that may then be weighed by other functions. The win/lose functions are an example of this.
Logic dictates that whatever you can do, you can also un-do. Since every aspect of BK is based on binary databases, x.dll files, and a modifiable object database, it stands to reason - logically - that 1.xml files and lua files must also follow the same pattern. In 90% of the case, they do. In the hard-coded aspects of the game, we have no control... but we can overwrite some of the loaded variables and hard-codes. This applies to how BK handles Air-Units. We cannot control them directly, but we can with a script. So we can indirectly influence them.
The lua language is a fairly straight forward language. There are many similarities to GW-BASIC (of 30 years ago) or even todays C, C+ and C++. Lua was designed as a sub-language for standardized routines for C+. Keywords can be assigned within the language, as they can in C+. We see this in the BK Lua files. So if you establish a 'Get' command, you should be able to establish a 'Set' command. You only have to define what it means.
I'll pull out my research notes on this subject and send them to you. They are stored on one of my back-up drives after my last system build.. so it may take a few days to located them.
|
|
|
Post by danzig70 on Jun 20, 2013 4:12:23 GMT 1
Thanks for the kind words, MP. I am interested in joining/creating a team to develop this or something similar. I didn't know you could get or set the health or set the ammo for a unit. Can you show the methods to do so? Your arrays would be great for that. As an aside, it doesn't look like you have to state the number of members in the array in the examples you had shown. Is that so? I'll look at your examples some more this week. Also if you have a link to the Patton and Rommel campaigns that would be great. I think I am going to keep the exit points limited to roads or small areas for the moment , like going around a dense forest. I think someone exiting and entering a circle of maps is just being mean I know that I will be repeating alot of testing already accomplished but it will help me understand the process better. I am going to just start with a French tank platoon and work my way up from there. As far as the terrain goes, it isn't really real time and still needs alot of manual work. I can create height maps for about 1296 maps in a 1 degree x 1 degree area fairly easily, for what it's worth I think I'll start with about 15 maps initially for the initial chapter with the objective of capturing Saarbrueken and Volklingen. Elevation is available for most of the globe and is easy to acquire which is nice. The worst parts are urban areas where buildings don't fit the standard BK directions. As I get more proficient at modeling I want to build a library of generic buildings that I can just rotate in 3ds max to fit specific maps. I think landmarks would be done as close as possible to give maps an individual feel to them.
|
|
|
Post by danzig70 on Jun 20, 2013 4:16:26 GMT 1
You answered too fast.... I'll play around with the commands.
|
|
|
Post by Major Pain on Jun 20, 2013 5:39:51 GMT 1
lol... I didn't want to keep you hangin' Maybe next time I'll just insert... "To see the conclusion of this episode, turn in next week, same time, same channel..."or, maybe not... Holy Bat-droppings Batman... MP
|
|
|
Post by danzig70 on Jun 21, 2013 14:29:44 GMT 1
I prefer the Wonderful White-winged weekend warrior, Chicken Man! Fixed the the back of the Eglise St Rémi so that it is rounded like it's supposed to be...wasn't as hard as I thought. Basic Texture: I think I'll add the windows and doors by hand after everything else is done. Here's my first render, just to figure out how it works. I guess I have to mess around with the size a bit. Next step is lighting and getting the correct perspective.
|
|
|
Post by danzig70 on Jul 1, 2013 16:19:04 GMT 1
|
|
|
Post by danzig70 on Jul 14, 2013 2:59:51 GMT 1
I finished the BKTopo plugin and am releasing it for testing if anyone is interested. There are only four 1x1 degree areas now but more will be added and I can add an area if anyone requests it. World World application (.net) Source Forge: linkMy custom files: linkNaval Unit Track - Control speed, heading. Has primary, secondary and tertiary weapon ranges.
|
|