Sirlion wrote:I'm speechless by the amount of sarcasm in this forum. Are all of you defending the devs so hard? Do they need your help? I dont think so. We are grown men, I assume, and doing all this doesnt affect me or my opinion of the game, if you are trying to upset me, you chose the wrong person and you're just looking pitiful in my eyes. Thanks seathom, I probably should have posted in the technical problems section. If somebody wants to move the thread is more than welcome. And by the way I dont find having to help the dev fixing events and scripts on the forum pages something that can be considered as "normal". If it is normal to you, then I wonder what kind of games have you played up until now. But I'd digress.
veji1 wrote:I agree with you to some extent. to me there are 2 issues :
1/ CTDs. There are close to an infinity of individual configurations and ways one can use his computer. unbeknownst to a user any type of program running in the background, installed long ago or else could screw things up. Sadly CTDs are a complicated issue in that case and I trust the Devs when they say that they really think they have reached a stable game during beta. Personnally I have an ASUS laptop with Windows 8 and I haven't had CTDs, except for those induced by some post release modifications (first beta patch, Vicberg's tricks, etc...). So Without resorting to sarcasm like others, maybe it's very difficult to spot and understand why it would crash on your machine and to some extent the devs are limited in what they can do, in the end it isn't their job to monitor and understand everyone's individual config and computer use right ?
2/ the bugs and non working events and forgotting fundamental issues (like forts bombing the crap of all passing fleet, or troops starving to death because once you signed peace with the country you had invaded they found themselves devoid of supplies, etc.) are much more problematic to me and to be honest this is where I am a bit miffed at the devs and the betas because these are basic issues that should have been sorted out in the beta process. having the Presburg peace not working whereas it happens in the first semester of a 10 years game just isn't right, and having betas gloating like colonel Marbot about their word conquest and just telling you "mah I didn't care for the Pressburg event, I just didn't use it" just suprises me because the beta's job is to emulate game use and try to weed out problems. In that sense some humility from those involved would have been welcomed.
Nonetheless the game has potential, a great feel, and I am happy I bought it. This however does not mean that some criticism isn't warranted.
Sirlion wrote:I'm speechless by the amount of sarcasm in this forum. Are all of you defending the devs so hard? Do they need your help? I dont think so. We are grown men, I assume, and doing all this doesnt affect me or my opinion of the game, if you are trying to upset me, you chose the wrong person and you're just looking pitiful in my eyes. Thanks seathom, I probably should have posted in the technical problems section. If somebody wants to move the thread is more than welcome. And by the way I dont find having to help the dev fixing events and scripts on the forum pages something that can be considered as "normal". If it is normal to you, then I wonder what kind of games have you played up until now. But I'd digress.
EDIT: There's 3700 events in total. I've experimented with bringing in by year only those events that are relevant. So events trigger in 1809 aren't needed in 1805. 2100 is the total in 1805.
vicberg wrote:I haven't found many commands that would reduce volume of code. If there is, it's not documented on Wiki.
For example, if the engine would pass Faction and Factional Modifier into a script and the script could pass faction and factional modifier into another script (through generic input/outputs), you could reduce the # factional modifier events by 99%, down to 4 TOTAL. The 4 scripts receive the faction/modifier, build the images/tooltips/messages (either via a new command or via simple concatenation within the script assuming a standard naming convention for all factional modifier messages/images), turns on the option, processes the option by adding it to the faction and increments the counter. Simple loop in engine to check and call factional modifier events for each major power (or minor), simple event coding, reduces the code base MASSIVELY and makes it much much easier to test. AGEOD is doing it the exceedingly hard and labor intensive way, which is not very smart for a small company.
Not sure about a database. I've seen multiple excel files at work with CSV Splitter. That's not a database. It's being called a database but the only thing I've seen resembling a database is the host file which comes from the game data files via the engine, which themselves come from excel via CSV Splitter.
Here's the problem with the data as is. I want to create a GENERIC annexation event. I place a RGD Card on a region. Now I need to figure out the region that the card was played and the owner of that region, but the engine doesn't pass the region into the RGD Script. So I go to host file and pull that out. But I can't change ownership based on currently ownership/loyalty as that may not reflect "true" owner. So I need to go back to the original campaign setup script that sets initial loyalty to determine who the true owner is and create that relationship between "true" owner and region. Then I need to find the areas associated with region to determine the "country" so I can adjust loyalty and control across the area. This approach is needed for liberation as well as annexations. With no true database involved here, I have to use the independent data files (which themselves have some issues I've run across) that are very loosely linked together.
Long and short of it. If you are going to create a game with 5,000-10,000 independent files, you are going to have massive errors. Same holds true in business as much as in gaming or any other technical industry. A true database would manage ALL. Regions/units/factions sharing similar data would be consolidated to reduce data (called data normalization...database design 101). Simple parameter passing would greatly reduce events.
Ace wrote:Some great post overhere, and I agree with lot of them. As for the comments for beta testing, I can take some flack. I really didn't had the time to do lot of testing. Apart of some battleplaner addons and game look suggestions I did very little on this release, that's why I pointed elsewhere the game has potential but needs polishing.
What would you suggest to the developers?
vicberg wrote:All architectures go through an evolution and this one will need to do the same. This architecture was developed for the Civil War, with only 2 factions and works quite well with 2 factions. When you expand that beyond 2, the limitations become apparent.
There's simple changes and longer terms changes
Simpler
- Enable the scripts to accept and receive input parms from the engine or other scripts. This can be done by key/value pair (engine passes the following string into event....faction="FRA', option='FMGrandBattery') or more structured (param1 will be faction, param2 will be option, param3 will be open for anything). This requires commands available to scripts to enable setting, receiving and parsing these parameters.
- Provide Concatenation with scripts, so the script receives param2 (FMGrandBattery) and is able to do ImageID;Event-Img_Opt_+param2+.png, which becomes ImageID;Evvent-Img_Opt_FMGrandbattery.png and that image is displayed to the appropriate faction based on param1 (Param1 = FRA, for example).
- Engine should bring in only relevant options for the year. Future options with MinDate > current year should be ignored
- The ability to fire a new event if current event doesn't pass conditions. So if event 1 fails, fire event 2.
- Looping ability within script. Loop through regions in an area. Areas in a country. Minor Factions, Major factions. etc.
- IF conditions added to scripts. This would greatly reduce number of scripts. Without an IF statement, it requires up to 7 events to check something (one for each power). With an IF condition, requires 1 script.
In other words, basic programming ability. Loops, conditionals (if/and/or), parameter passing.
More Complex
- Putting a true database in place, either relational or newer NoSQL database (using hash tables) based on key value pairs. Both would work and the NoSQL would mean lesser changes since the game files are mostly key value pairs.
- Creating tighter data relationships. Right now a region corresponds to an area. A "country" may have multiple areas, but isn't truly defined as a country. Within the area alias script someone put in theater_austria will all of the regions that includes. Not a true "country" concept.
I'd create a new data relationship for country-> areas-> regions INDEPENDENT of the Faction Controlling it, since they change:
Country -> Areas (defines original or "true" faction owner, For example, Country Hannover has a true owner of Hannover Faction)
Areas -> Regions
Country->Other Country Distance (neighbor, 2 away, 3 away, etc...would be used for a dynamic process to change neighboring relationships in the event of annex or satellite)
Faction -> Units
Faction -> Country (current owner)
Faction -> Satellite Country (France has made Bavaria a Satellite and Bavaria Factions owners the country Bavaria, which has 3 areas in it)
Faction -> Annexed Country (France has annexed Bavaria, Bavaria factions is removed, and France owns the Country Bavaria, with it's 2 or 3 areas)
Faction -> Region (current owner and since AUS may be at war with Bavaria at the time France annexes Bavaria and should retain control of any Bavarian regions it owns)
Currently, the above data relationships aren't tightly defined. It's mostly loyalty and military control which the diplomatic engine is trying to address and overcome limitations. This is a holdover from the Civil War game architecture in which with 2 factions, all you care about is military control and loyalty. Much more complex with 7 powers, multiple countries, etc...With the above relationships, virtually anything is possible.
vicberg wrote:I'm willing to help with the above. If the eventually want to go a database route (either relational or NoSQL), I could help with DB design and write a program that takes the excel scripts and loads into database. This would highlight and enforce quality data prior to deployment.
I would also be willing to help with scripting changes or engine changes.
My python programs are already reformatting their scripts and generating new ones. I could easily condense their scripts and create generic scripts (assuming parameter passing) without having to redo all the work. A conversion program, so to speak.
veji1 wrote:very interesting read, thanks Vicberg. Just out of curiosity, assuming one has the technical expediency to do it, in terms of man/hour how much work do you think the simpler changes would be ? 40 ? 60 ? 100 ? 150 ?
Thanks again man, I hope you stick around and help us make the game better so that it can be as good as it can !
veji1 wrote:Well I hope you and them can talk about this and hash out some formula to make it work (assuming you are legit serious and won't disappear in the middle of a mammoth task because life makes that happen ! ).
vicberg wrote:The key thing is that I'm willing to help. I have a day job that requires travel on a weekly basis (at times, sometimes I work remote from home). I wouldn't expect and don't need payment for this, but I could offer direction,, create programs to help with this.
vicberg wrote:It's hard to tell if they are going to continue to try to fit a square peg into a round hole. If they do, they will continue to alienate and eventually, they'll build a new game and no one will come.
If I were them, I'd stabilize WON, fixing script issues as they arise, and then work on a new engine. Convert their enormously detailed data into a new data format (assuming a true database) and then re-release all these games (WON, PON, TYW, EAW) under this new engine and as version 2 (or Gold) of these games. I believe their market base will be more than happy for it and shell out more money. AGEOD can get some income and provide a better framework for these types of games.
Just my opinion.
veji1 wrote:I would think too and to some extent this is what I expected from WON aka NCP2. When there was debate as too what the game should be I was one of the few advocating for focusing on operational warfare and not overdevelopping the diplomacy, production and other aspect of an all encompassing game that the engine would struggle to deal with.
Ageod's engine was made for a wargame with 2 sides, dealing with recruiting, campaigning etc. Make games like this and despite its age and limitations this very clever engine and AI do a good job with just a tiny bit of help. But if you want to make it bigger then as you demonstrated, you have to change tack.
vicberg wrote:If I were them, I'd stabilize WON, fixing script issues as they arise, and then work on a new engine. Convert their enormously detailed data into a new data format (assuming a true database) and then re-release all these games (WON, PON, TYW, EAW) under this new engine and as version 2 (or Gold) of these games. I believe their market base will be more than happy for it and shell out more money. AGEOD can get some income and provide a better framework for these types of games.
Just my opinion.
Users browsing this forum: No registered users and 13 guests