So far, so close...

I always think about one problem in Civilization.
I have no idea about how make that… :mad:
So, what do you think about it?
Your intention is very interesting !!!
However, by taking account of the various debates in progress on the various upgrading capabilities of the play, it becomes impossible of all to read (especially if one is not naturally Anglophone!), and very difficult to answer individually and correctly all Thread which interests us (with the translation, that ends up taking much time!)!
Also, so that its ideas are considered and benefit the greatest number of Threads, it is not always known if it is to better intervene on of Thread in progress, or if it is necessary to launch the new ones… with the inherent risk of dispersion.
I thus temporarily will place a long text of general order in CIVILIZATION TAVERN… in double, on the one hand in “A Big Vision for Civilization 4" and on the other hand in “Civ V Ideas & Suggestions Summary".

((Note: PLEASE excuse the probably uncomfortable English generated by my translation system / French Original text available on request))
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
My text names “Game-Design applied to Civilization 4 +/ Dissertations N°1”
It contains the following chapters and paragraphs:
- INITIAL POTENTIAL : - Civilizations and Geography /- Initial Poverty /- Resources
- FEMALE ABSENCE
- RIGHT-OF-TRANSIT
- COMMANDS
- LOGISTICS : - Abstract or Figurative representation /- Evolution of Logistics
- OPERATING SPEEDS & RANGES - VISIBILITY & GROUNDS
- DETECTION & REACTION
- ZONES OF TACTICAL INFLUENCE
I hope that you will find in this text of the suggestions in relation to your reflexion and which interest you !
 
First of all, I really want to applaud The_J's efforts for implementing this Mod. The unrestricted movement range is one of the key features of Civ4 that give its (otherwise brilliant) gameplay such an unrealistic feel. Thanks for tackling the issue! :goodjob:

Now I would love to implement this idea in my own mod, which will use huge maps by default. Unfortunately, because of the performance issues in the Python solution, I cannot use this ModComp. Have there been any efforts at coding this idea into the SDK?

If not, which solution could be practicable? From the discussions I understand that the "promotion-tagging" combined with the "health-losing" approach could work out better in terms of performance. Would this be the most promising avenue to pick up the project again? It would seem to make offensive military campaigns much more difficult to conduct, however. :(

Would be great to see whether there are more people out there that are really waiting for a Mod like this! And perhaps the idea has already been implemented in a similar fashion that I am simply not aware of... If so, thanks for pointing this out to me! Or perhaps is it easier to implement in Civ5? Since this would be a crucial component of the Mod that I am planning, I would consider changing platforms for this reason only.
 
...is that one possible solution would be to draw upon one of the numerous Mods that restrict unit movement to certain route types. The idea is to:
1. define certain "invisible" route types for each "range graduation" available
2. add or remove those improvements automatically each time that cultural borders expand or contract, for each tile within the borders and any tile outside that is within a given range
3. now Zebra 9's or Jeckel's or Shkype's Mods could be applied to restrict unit movement to certain route types

As regards the "Units getting trapped"-problem, a function could be written that checks for units at "impossible" locations and moves them automatically to the closest possible tile, which only needs to run each time cultural borders expand or contract.

Potential problems with this solution:
1. can these "extra routes" be defined NOT to affect the player's plotgroup (which connects resources etc.)?
2. can routes from different CIVs be on the same tile?
3. will it really use less computing power than the present mod?

These are just some quick thoughts I wanted to throw in, in case anyone will be looking at this thread again... Please feel free to share your thoughts! ;)
 
2 easy lines of code :).

This looks really interesting. Great idea!

I do have a couple suggestions for improving the performance of the big nested loop in the Python code. Not sure how much they will help, but I don't think they can hurt:

Code:
               for iXLoop in range(iPlotX - radius, iPlotX + radius+1, 2):
                        for iYLoop in range(iPlotY - radius, iPlotY + radius+1, 2):
                                pPlot = CyMap().plot(iXLoop, iYLoop)
                                if ((pPlot.isOwned()==True)and pPlot.isRevealed(iTeam,False)):
                                        [B]iTeam = player.getTeam()
                                        myTeam = gc.getTeam(iTeam)[/B]
                                        iPlotOwner = pPlot.getOwner()
                                        OtherPlayer = gc.getPlayer(iPlotOwner)
                                        iOtherPlayerTeam = OtherPlayer.getTeam()
                                        
                                        if (iPlotOwner==ePlayer):                            
                                                return False                                        
                                        if ((myTeam.isOpenBorders(iOtherPlayerTeam)==True)and([B]myTeam.isHasTech(gc.getInfoTypeForString("TECH_PAPER"))==True[/B])):                            
                                                return False

It strikes me that none of the code in bold depends on the current plot, so there's no reason to evaluate it with each loop iteration. I'd suggest hoisting those outside. In fact, I see several places in the callback where you're setting iTeam and myTeam, and I don't think those should change at all.

Anyway, keep up the good work!
 
Back
Top Bottom