• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
Status
Not open for further replies.
In this interview they comment about making changes to the base system for an easier access to the base systems, so I suppose they're speaking about this, among many other things, and that they will not release anything until they got the big next patch.
http://www.gamasutra.com/view/news/...Colossal_Order_on_Cities_Skylines_modding.php

I'm sure is no brainer to modify these limits if you have the sources and only gonna do that, but probably they want to integrate them into the extended API in a consistent way, and with the tunnels / european buildings at sight I imagine they have a lot of work and is more efficient for support efficiency to make a big release rather than many small patches.

Why not just have a slider for road/rail/buildings/zones etc in options under a heading "Use at your own risk, may melt your computer" this way it lets people try for themselves rather than have a "hard" limit.
They cannot put a message like that in a user friendly game like this created for a broad array of players. The best way is no doubt via a simple mod you must download for it to work, once modders can get better access to limit values, same as 25-tiles mod.
 
this seems very odd to me for a game that appears to be put together so well overall. If I understand this correctly they used a constant value ie an actual number in their code instead of a variable and on top of that used the wrong data type to store it, so increasing the value is a huge pain in the you know what. These are things that are taught (to not do) in beginner level programming classes where I am from so its a bit weird to see this in such a seemingly well put together game.
 
As I understand a constant makes a lot of sense if you don't expect people to mess around with it, as it has name while you're working with the source code. Is when you decompile the final exec/dll when you only can see the number and only the const declaration is left. And the data type is fine, as it is you could go from 32k right now up to 65k, which is more than enough if you don't want to try 81-tiles maps.

They simply had no intention of letting these values to be modded, same case as 81-tiles mod (while 25-tiles was available same day or one day after launch), but with source code at hand should be a pretty straightforward and fast modification.
 
Well, I think CO wanted to set these limits for a reason. And they probably didn't intend to let us mess with them, that's why they used numbers and not variables. But I hope that by now they see we want to push these limits a little bit and maybe in the next few weeks we'll see some sort of update on this issue. I secretly hope they adress this in the big update.
If they can make it easier for modders, I'm sure someone will figure it out. We even had some progress without them wanting us to. Develpores probably make bets on how long it takes people to figure out how to mod something.. :D
 
@caracol @Shiggs @Doctor Machete
I'm sure they did use constants in 90% of the places, it's just that they get compiled away in the msil that we have to read back from.
It's more than that though its not just 32k to 65k type change, there is some other stuff (some other grid arrays, some of the 'update arrays' like updatedsegmentgrids that needs to go from 512 to 1024 because of some the fun bitshifting math they use in places (or at least bitshifting per how the compiler spit it out), though it's basically still mostly itemsize * 2, but not always, and for added confusion 65535 is used as by them as a special flag in some places as an empty\uninited value..sigh...I'm looking at you Render-Manager.

As for why the Uint16's or uShorts that's obvious, save memory(though not necessarily processing cycles on modern hardware), when dealing with a boatload of arrays in this game it does add up, secondly there are a loooot of loops where they process the whole array many time in a very short period of time, doing this 32k times, not problematic, doing it 64k, eh not that bad, doing it more then that...all over the place... hmm I don't know. So 25 Titles\65k grid with 65k limits for these items I'm screwing with should be supportable on systems north of the bare-minimum specs, as for 81 Titles and like them (C\O) going back and reworking all these 16bit arrays to 32bit... forget it, I doubt that even in a big-update, not only is that a boatload more work (it's one thing to up present counts and adjust it current int type maxes, it's a whole other to go back everywhere and change things to ints and array32's), but even the latest and greatest computer may start having issues going beyond 128k item levels if it's done for everything and with their current architecture. Maybe in CitiesSkylines 2.0.


Btw as for progress.
I have them increased (and working atm far as I can tell) for roads, zoneblocks, buildings, paths,(I could do trees but not bothering yet), path-finding, and electricity (why electricity... it's complicated but most systems that hold references or access zone\roadnode,roadsegment\block etc need to be similarly tweaked). I'm focused at present on the roads (nodes\segement\lanes\)\Ped.paths part as my testmap setup is best setup atm for that.

I've modified the the load\deserialize routines to be able to read in existing (v206) saves and adapt accordingly so far for the above items. I'm guessing soon as I touch pumbling\sewage something will pop up needing fixing in that area.

currently working on: The rendering updating\colormap and colorlevel calls updating is what I'm presently working on (presently for road items), there is some massive array that holds the info for this stuff in different parts (ie 0-32k used to be buildings 32k-65k used to be segments and 65-98k used to be nodes), that need adjusting to 0-65;65-131,131-196 etc. I've bumped the values up, as well as the associated RenderInsist calls to use the new wider ranges but at present my roads (though working) have blue\pink spots on them and custom-road prefabs stopped working (or at least the ability to place new ones), that first problem I think I know whats wrong, the second about the road prefabs not working....I don't know yet wtf that's about, probably something easy, almost everything has been....once I actually trace things down to the root problem.

next up: well every time I think I'm close I find an new array bounds error in something I didn't think needed changing so I probably still have some things to work though that I don't know about yet. Baby steps.

After that:
When I think have something semi-stable I'll post a version for maybe DocM to try (without the ability to save yet enabled) or some other brave souls. Then Probably go back through set all my logging flags to 0 or just remove the bloaded debugging code I added and go back though the various serialize functions and make sure saving will work and bump the file format version number to 207 (my load code for v207 already exits). (hey so it would be cool CO if you're reading this to use 208+ as your s.version number! lol yeah I'm not counting on it)... I also have to probably go back and tweak it for the map editior as it is now I only have it for sure able to load an existing v206 map created with the original 1.07c dll.
As soon as that's done C\O will probably put out the next update ...undoing everything. lol But that's ok I'm just playing around with this till then - I will not be trying again after the next update, re-doing all this again via assembly editing\reflexIL ain't gonna happen.


I wish I could do all this as an actual mod but some of the stuff I'm touching isn't touchable that way (and I don't think really could be), not even via injection\redirection as I'm touching private class level items, like the lane deserialize routine touches class level items, even if I inject my own routine I can't touch certain class level private items that it touches from inside there, not without jacking up certain attributes for them in the assembly anyway.
It's fun looking through some this stuff though you can see in the serialize and deserialze function at what version # certain features were added so it's sort of a chronicle or timeline for the development of the game, with that in mind I can tell you the limits for some of this stuff were bumped from 16k to 32k along the way, some of it much later in development.


My present screen as I write this:
~35k road segments (~32,050 on map load then added); show you my current colormap\render issue.
sLEkSTJ

http://imgur.com/sLEkSTJ

edit: Solved that road color issue and the prefabs (was related), on to traffic info map(colors) not updating for new segments and then on to electric and water.
 
Last edited:
  • 1
Reactions:
@Doctor Machete

So here is a SuperSized version that enables 64k (tech 65k but I limit you to 64k).
for various items like roads (and related 'node\segment\lane' based type objects), buildings, zoneblocks, and ped.paths. A few others had to be adjusted alone the way, water\electic\pathfinding, I did not touch the limits on districts, trees,transportlines, or anything else I didn't have to accomplish those first 4.

See the included readme for more of the particulars but that said note:

In this copy the "save" ability is not yet there, you can load an existing map that was saved with the 1.07c original but you can't save it in mine and reload it later, yet. This version is just to see if anyone out there can load up presently limited maps, blow past them a bit and make sure everything still seems to function and work ok. I don't want to move on and finish off the save stuff (minor) and the mapeditor stuff till I've nailed everything. I've tested the crap out of roads and ped.paths, water, electric,trains\subs\ships\etc, I've tested buildings and zoneblocks... but not a ton, ie things work but are all the new buildings getting counted for taxes after 32k limit... probably they should but things like that I need people to try and pay attention to something that might appear to work but actually doesn't in some minor way. Does the right audio effect play on buildings >32 thousand, if it's burning?

(dll and readme v804alpha)
http://www2.zippyshare.com/v/BtbfuTMA/file.html

If you want to play around with my test rig map I uploaded it along with with a couple assets that are used in it, I'm assuming you know where to place such to use it.
http://www2.zippyshare.com/v/iH5eSa59/file.html

If you have maps saved in 1.07c (internal format version 206), that are right at a certain limit, especially buildings or zones, and they're relatively clean (don't require a mod to play, or 100's of extra assets) upload them and point me toward them, I could use some more maps to test with.

If your just curious about the performance difference I detail it more in the readme file, but the very short version is @65-70k residents, outside of adding a baseline overhead of ~250mb more of ram usage there is only a few % point difference cpu wise on a 8core 3ghz i7-950, and gpu is basically unaffected. I'd like to see what the difference looks like with cities in the 100-500k range.

If you run into some error, I'll need your outputlog.txt and some description of what you did when or relatively just before it happened.
That said I think I worked though all the blow up in your face errors (ref not equal obj; array out of bounds etc), anything that's left will probably be something subtly not working quite right due to some math somewhere that assumes 32k limit still -- again I think I got all of them that matter, but lets see before moving on.
 
Last edited:
  • 1
  • 1
Reactions:
@KnightHawkTFC

I tired the Dll.. when the game starts it gives the message: Unauterized... The safe gets stuck on loading on my pc. Have tried a few times, the stuck on loading had me waiting about 60 mins before aborting. My city loads normaly in under 3 mins or so. City with about 450k citizens, maxed on all objects
 
It seems to work (got over 33k buildings) and is not any slower than before (secs per day) nor any difference I could notice in %cpu utilization, but not tested extensively.

Also got this Error when exiting to the menu, with four mods only (CSL Stats Panel to be able to see number of buildings, Frame Limiter 30, Disable Clouds and Unlimited money), and no Log File was created but got to copy this from the error msg.

***
Details:
No details

System.NullReferenceException: Object reference not set to an instance of an object at PathFind.GetLaneDirection (Position pathPos, .Direction& direction, .LaneType& type) [0x00000] in <filename unknown>:0 at PathFind.PathFindImplementation (UInt32 unit, .PathUnit& data) [0x00000] in <filename unknown>:0 at PathFind.PathFindThread () [0x00000] in <filename unknown>:0

***

The only thing I did before was zoning some areas and building a lot of curved roads for testing. I Couldn’t replicate it, but in another occasion after I did the same zoning & roads it gave no error going to the the menu but got stuck loading the same game.


For further testing I think I'm gonna wait until big next patch (it shouldn’t be much time left), having so many changes needed to make it work, compatibility issues with mods I use now and even if CO don’t set higher limits and a custom patch is still needed, they probably will do many modifications to the base code, maybe even give access to the 65k agent limit. It almost sure will be a better platform to patch the limits if CO don't do that.


Here is my map with limit on buildings and roads if it can be useful for you, no external mods/assets required:

http://www5.zippyshare.com/v/jbiJx4gL/file.html
 
@KnightHawkTFC

I tired the Dll.. when the game starts it gives the message: Unauterized... The safe gets stuck on loading on my pc. Have tried a few times, the stuck on loading had me waiting about 60 mins before aborting. My city loads normaly in under 3 mins or so. City with about 450k citizens, maxed on all objects
Darn sorry to hear it didn't work at all. odd, unauthorized message hmm, you wouldn't happen to have the log from that or be able to upload the map that you tried it with would you?
What's the safe?


It seems to work (got over 33k buildings) and is not any slower than before (secs per day) nor any difference I could notice in %cpu utilization, but not tested extensively.

Also got this Error when exiting to the menu, with four mods only (CSL Stats Panel to be able to see number of buildings, Frame Limiter 30, Disable Clouds and Unlimited money), and no Log File was created but got to copy this from the error msg.

***
Details:
No details

System.NullReferenceException: Object reference not set to an instance of an object at PathFind.GetLaneDirection (Position pathPos, .Direction& direction, .LaneType& type) [0x00000] in <filename unknown>:0 at PathFind.PathFindImplementation (UInt32 unit, .PathUnit& data) [0x00000] in <filename unknown>:0 at PathFind.PathFindThread () [0x00000] in <filename unknown>:0

***

The only thing I did before was zoning some areas and building a lot of curved roads for testing. I Couldn’t replicate it, but in another occasion after I did the same zoning & roads it gave no error going to the the menu but got stuck loading the same game.


For further testing I think I'm gonna wait until big next patch (it shouldn’t be much time left), having so many changes needed to make it work, compatibility issues with mods I use now and even if CO don’t set higher limits and a custom patch is still needed, they probably will do many modifications to the base code, maybe even give access to the 65k agent limit. It almost sure will be a better platform to patch the limits if CO don't do that.


Here is my map with limit on buildings and roads if it can be useful for you, no external mods/assets required:

http://www5.zippyshare.com/v/jbiJx4gL/file.html

Cool thanks for testing Doc (if nothing else it's sanity check) and I'll try out your map I can always just use another to test with, yeah I don't think CSL Stats would be causing that (I run it too sometimes). As for the log it's a not special one it would be the standard outputlog.txt that's in Cities_Skylines\Cities_Data (at least on windows) but no matter, what you posted is helpful enough, though the log might be useful if a file fails to load. I tend to agree about waiting, but now some people got me curious about vehicle limits in another thread and I might toy around with that along with hunting down this pathfind one.


BTW are either of you on a mac or linux
 
Cool thanks for testing Doc (if nothing else it's sanity check) and I'll try out your map I can always just use another to test with, yeah I don't think CSL Stats would be causing that (I run it too sometimes). As for the log it's a not special one it would be the standard outputlog.txt that's in Cities_Skylines\Cities_Data (at least on windows) but no matter, what you posted is helpful enough, though the log might be useful if a file fails to load. I tend to agree about waiting, but now some people got me curious about vehicle limits in another thread and I might toy around with that along with hunting down this pathfind one.

BTW are either of you on a mac or linux
I too didn’t think CSL Stats would be the origin of the error, just stated the mods used for exact reference, mostly for you to know what mods are not used, as some others are clearly incompatible with the fix (Traffic Manager comes to mind). As I said before If I didn’t include outputlog.txt with the save is because it was not created (only error window was shown), as it seems the case sometimes with some mod compatibility errors not related to this modification, and in whose cases error folder is also not generated or is empty.

In regard of OS I’m running win7 if worth something. BTW, I don't know about linux/mac, but in my case the error folders are located in ...\Cities_Skylines, not ...\Cities_Skylines\Cities_Data
 

Hi KnightHawkTFC!

thanks for sharing this! sadly this doesnt help me...
I have startet do build a city.. build some dams and alot of simple streets some trainstation and railways and while placing streets (all curved) I run into the "Cannot create any more objects of this type" (http://steamcommunity.com/sharedfiles/filedetails/?id=457729839) issue
so I started to ask google for help and it point me to you:)
sadly with your dll my game cant load the old savegame
I think your stuff was made bevor the last update some time ago? maybe this is the problem?

where do I find the outputlog.txt file?

if you want to test for your own... just try to build one more curved road :)
http://steamcommunity.com/sharedfiles/filedetails/?id=457728374

Regards
ASD
 
I think your stuff was made bevor the last update some time ago? maybe this is the problem?
100% correct as noted in that posts above it was only designed for v1.07b of the game (ie the version before the current version 1.1.0b).
Please do not even try using it with 1.1.0b, there is no way in hell it will work. :)

I have not made a version for 1.1.0b, I may... I may not.
I'd much rather see CO make the changes themselves, supposedly per a PDX comment this popular requested change (here and redit and elsewhere) has been brought to C/O's attention, but I've seen no indication if it's actually on the list of stuff they plan on working on any time soon, it would be highly helpful to know (either way) what the status is before I bother investing any more of my time into re-making these changes. My question with regard to this in the last AMA was not responded too.
 
Last edited:
A little bit gutted to run into this error after investing well over hundred hours into building my city, and then finding there are no help anywhere for a workaround. But big thanks to KnightHawkTFC for your efforts, even though it ended fruitless.

CO, please adress this issue as soon as possible, or you will kill your game...ok maybe not for the leisure gamer sticking to 9 tiles, but for us who love the game.

I will keep an eye on this thread in hope for some positive response from CO, but from what I've read on other threads there are little hope for any fix soon (vacation etc).

...and I'm not very good at picking up a "broken" game after having moved on to other games...well, time will tell.

EDIT: after seeing the topic of the thread, I should point out that I experience the message for all buildings, not just roads

/Kronoz out
 
Last edited:
  • 4
  • 1
Reactions:
@KnightHawkTFC:

thanks for all your feedback. Do you think there is a way CO can make it moddable? Or at least easier for you and anyone who wants to push these limits.
I really don't expect them to do much in the next few weeks, but as for 1.10b I'd say they increased road limits and sewage/water pipes limits as well. At least now I'm just hitting the building limit and not yet any other.
 
@KnightHawkTFC:

thanks for all your feedback. Do you think there is a way CO can make it moddable? Or at least easier for you and anyone who wants to push these limits.
I really don't expect them to do much in the next few weeks, but as for 1.10b I'd say they increased road limits and sewage/water pipes limits as well. At least now I'm just hitting the building limit and not yet any other.

There is no easy way for them to make this easily modable without fundamentally reworking their architecture and that's not gonna happen, not in CSL1.x anyway.

One thing that would save a good amount of effort would be if all the checks and loops actually didn't use a constant but global shared vars, however this comes with the side effect of potentially hundreds of thousands (if not a million or so one you jack the numbers up) of more reference lookups per frame cycle instead of the constant value being there via simple insertion at compile time. I don't know what that perf impact truly would be, but it's not 0.0%, my prior testing just changed the constant values in hundreds of places, not turning them to reference vars, a extra nano second to lookup the var value x 1million can add up. There are probably some other things I could think of but that's the most time consuming one that comes to mind as it would probably eliminate having to actually duplicate a whole host of classes and code and redirection just to change a static number, as the number of routines that need minor logic or other changes is relatively small, at least compared to number of places where all that's needed is flipping one static number to another.

Anyway if they could do that and they found the perf effects were say less then 2 or 3% then I would encourage them to do it, otherwise I can understand why they might not find it worth it for the masses.

As for 1.1.1b\c (or even since 1.0.0) there have been no changes by CO with regard to the limits, though from looking at the save\load version checking code it does seem midway though development they went from 16k numbers for some things to 32k for some things.
 
Hi, does anyone know if this problem has been addressed or resolved yet? As 4 years have elapsed and still no reply from CO and still no mods.
The only reason for not replying would be that the limits were set intentionally to make the game redundant at a certain point and validate the release of a CSL2... which i for one would never buy after this ordeal.
Good riddance to CO.
 
Hi, does anyone know if this problem has been addressed or resolved yet? As 4 years have elapsed and still no reply from CO and still no mods.
The only reason for not replying would be that the limits were set intentionally to make the game redundant at a certain point and validate the release of a CSL2... which i for one would never buy after this ordeal.
Good riddance to CO.
Some game limits were raised in a patch after this thread was started, I don't recall offhand which patch or if the number of roads was part of that.

The game, like all others, must have limits for design and performance reasons.

I'd ask you not to make unfounded accusations of unethical behaviour against our valued developer CO.
 
Status
Not open for further replies.