1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. If you are going to register on XLNation, please make sure you do not use a proxy server.
    If you use a proxy server your registration will most likely get blocked due to spammers and hackers using proxy servers to hide their real IP address.

    If your using your home or work IP address and have not received your registration email, check your spam folder.
    PLEASE DO NOT ASK TO HAVE YOUR ACCOUNT DELETED IF YOU HAVE POSTED IN THE FORUM! If so we do not delete accounts due to the mess it can make on the forum.
    Dismiss Notice

Game Play Diary of work on increasing the maximum card size. Outrank size 10x10

Discussion in 'Game Play Support and Other' started by lexflame, Dec 7, 2017.

?
  1. Yes

    17 vote(s)
    68.0%
  2. No

    0 vote(s)
    0.0%
  3. You're insane

    1 vote(s)
    4.0%
  4. All have already tried

    1 vote(s)
    4.0%
  5. Respect

    8 vote(s)
    32.0%
Multiple votes are allowed.
  1. skullz613

    skullz613 Administrator
    Staff Member

    Joined:
    Aug 21, 2014
    Messages:
    2,195
    Likes Received:
    2,242
    Have you adjusted the globalconfig so all the graphics load at the start instead of them loading as you move and zoom around the map?
     
  2. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    Most likely, among the additions to your collection is the one who hangs up the game. I have 5 cores onboard, 12 gigabytes of RAM, NVIDIA GeForce GTX 960, 5 terabytes for gaming screws for HDD, for NTFS. However, I have not experienced. Some serious problems with games, even such as Far Cry New Down, Metro Exodus and Darck Souls 3. The vast majority of my cities occupy 85-95% of the total area of the map, and at the same time I have no such problems.
     
  3. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    Сhangelog & Development diary - September 2020

    The past year was interesting and rich in research in the direction of large maps.
    1. I disassembled the game launch file CitieXXL.exe and was able to find the data of interest to me, namely, I understood the approximate principle of operation of the ___ parameter.
    2. I did not find the disassembly settlement either in the libraries with the game or in the launch file for specifying the dimensions and their calculation
    3. Then I went to the internal resource of the game data.pak. And already having unpacked the game pack file date, I finally found an array that sets the default size in the form of a kind of XML data.


    Before edits
    ``
    <GAME>
    <SceneDimension>10615,10615,791</SceneDimension>

    <SerializableEntities>

    <XML>
    #Level
    <Entity>
    <Type>LEVEL</Type>
    </Entity>

    <Display>
    <Model>DefaultLandscape</Model>
    </Display>
    <Landscape>
    <Model>
    Data/Gfx/Landscape/DefaultLandscape.land
    </Model>
    <Material>
    Data/Gfx/Landscape/Materials/DefaultMaterial.xml
    </Material>
    </Landscape>
    </XML>

    </SerializableEntities>
    </GAME>
    ``
    After adding new dimensions
    ``
    <GAME>
    <SceneDimension>21230,21230,791</SceneDimension>

    <SerializableEntities>

    <XML>
    #Level
    <Entity>
    <Type>LEVEL</Type>
    </Entity>

    <Display>
    <Model>DefaultLandscape</Model>
    </Display>
    <Landscape>
    <Model>
    Data/Gfx/Landscape/DefaultLandscape.land
    </Model>
    <Material>
    Data/Gfx/Landscape/Materials/DefaultMaterial.xml
    </Material>
    </Landscape>
    </XML>

    </SerializableEntities>
    </GAME>
    ``



    4. I studied the mathematics of formation and resized, re-packed the pack file and measured the performance with the old and new sizes, resources were consumed more. But the map remained the same size. I parsed the RAM dump through the ninja reaper and found out that the final size still depends on the lvl and land file itself, which is created through the map editor. Now I am developing a way of soft resizing inside this data to cold. The approximate deadline for the completion of work is March 20, 2021, since I need to parse all the Lua game resources and then collect the working method.
     
  4. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    P.S. While analyzing the resources of the game, I found unused content. I think it was supposed to be a game mode on the planet Tatooine.
     
  5. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    photo_2020-09-03_17-27-40.jpg
     
  6. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    Yes, I tried this option. There are no problems, the main problem is still the same to remake the land and lvl files.
     
  7. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    At the moment I am working in this direction and it is not yet very clear whether logic and logistics are taken into account, or whether these are just clones of areas. Only the other day I disassembled the editor.
     
  8. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    Hello everyone!

    At the moment, on August 30, 2021. Today I have the following results of my searches:
    1. 2019-2020 in the LUA interface, I found only calls to the parameters of the map size.
    2. In 2020, I analyzed a number of LUA functions that work with landscape files.
    3. After parsing the cities_exe game launch file, I found a function that works with the map size and takes it from an external source.
    4. At the end of 2020, I found the configuration file "scenecreationsettings.cfg" which was packed into "data.pak" which inside contains data about the primary size of the "map" (to be precise, the size where the maps in which we build cities) at the first starting the city when the player has just created it.
    5. In the spring of 2021, I analyzed the principle of interaction between the configuration file and the function inside cities_exe.
    6. June-July 2021, I was able to parse with the help of a hex editor and a 64-bit x64dbg debugger, I was able to parse the format of storing the dimensions of the map; at first glance, the dimensions are stored in a format similar to the format for storing numbers in the Fortran programming language.
    7. August 2021 having studied the LUA language at the "B" level, in other words "Junior", I wrote for myself a small documentary for LUA, I still have an idea to try to learn better the process of working with landscape files in the LUA interface. Initially, I wanted to use Doxygen for these purposes, but it did not work for a number of reasons, the first of which is that in the unpacked lua format the scripts do not represent a single namespace below there will be a screenshot of what came out in the form of the LUA documentator for CitiesXXL.


    At the moment, our conclusions are as follows.

    1. The size of the map is stored directly in a file with the extension ".land"

    2. After it is installed in the game and launched, it is scaled to the size of the "game cube", ie. the cube is always the same size and the card is driven into it. Hence the conclusion that editing the "land" file may not carry the desired result.

    3. There is also some default map size, which is stored in "scenecreationsettings.cfg" nested in "data.pak". I think that this size in this file is a sorting box.

    4. When working with maps, the developers used the following environments: Earth Sculptor, World Machine, Geo Control and a certain DEM model (Digital Elevation Model, its size is 4096x4096 pixels) to import the terrain / map into the game engine. It is unclear whether there are any chances here but not a result, but at the moment I am "swarming" in this direction.

    5. It is not yet clear how and where the process of creating a "game cube" is hidden, but if I find it, I hope to answer for myself and for everyone the questions about the possibility of creating a large map.
     
    XOUSTE and skullz613 like this.
  9. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    Всем привет!

    На данный момент, на 30 августа 2021 года. На сегодня я имею следующие итоги моих поисков:
    1. 2019-2020 годах в интерфейсе LUA я нашел лишь вызовы параметров размера карты.
    2. 2020 году я разобрал ряд функций LUA которые работают с landscape-файлами
    3. После разбора файла запуска игры cities_exe я нашел функцию которая работает с размером карты и берет ее из внешнего источника.
    4. В конце 2020 года я нашел файл конфигурации "scenecreationsettings.cfg" который был запакован в "data.pak" который внутри содержит данные о первичном размере "карты"(если быть точным то размера куда карты в котором мы строим города) при первом запуске города когда игрок его только создал.
    5. Весной 2021 года я разобрал принцип взаимодействия конфигурационного файла и функции внутри cities_exe.
    6. Июнь-июль 2021 года я смог разбирать при помощи hex-редактора и 64-битного отладчика x64dbg я смог разобрать формат хранения размеров карты на первый взгляд размеры хранятся в формате похожего на формат хранения цифр в языке программирования Фортран.
    7. Август 2021 изучив язык LUA на уровне "B" иными словами "Junior" я написал для себя небольшой документатор для LUA, есть мысль все таки попробовать изучить лучше процесс работы с landscape-файлами в интерфейсе LUA. Изначально я хотел для этих целей использовать Doxygen, но он не подошёл по ряду причин, первая из которых что в распакованном формате lua скрипты не представляют из себя единого пространства имен ниже будет скриншот того что вышло в виде документатора LUA для CitiesXXL.


    На данный момент мои выводы таковы.

    1. Размер карты хранится непосредственно в файле c расширением ".land"

    2. После его установки в игру и запуска происходит его масштабирование под размер "игрового куба", т.е. куб всегда одного размера а карта в него загоняется. Отсюда вывод что правка файла "land" может не нести в себе нужный результат.

    3. Есть так же некий размер карты по-умолчанию, который хранится в "scenecreationsettings.cfg" вложенный в "data.pak". Я думаю что этот размер в этом файле это некая отбравочная рамка.

    4. При работе с картами разработчики использовали следующие среды: Earth Sculptor, World Machine, Geo Control и некую модель DEM(Digital Elevation Model ее размер 4096x4096 pixels) для импорта местности/карты во внутри игровой движок. Непонятно есть ли тут какие-то шансы не результат но пока в данный момент "рою" именно в этом направлении.

    5. Как и где сокрыт процесс создания "игрового куба" пока непонятно, но если я его найду, надуюсь ответить для себя и для всех на вопросов о возможности создания карты большого размера.
     
  10. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
  11. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    You were right. In the unpacked in-game resources, I was able to find the following input data for the maps. Specified as SceneDimension.
     

    Attached Files:

    XOUSTE and skullz613 like this.
  12. lexflame

    lexflame Skilled Worker

    Joined:
    Jul 21, 2016
    Messages:
    47
    Likes Received:
    35
    small documentary for - generating documentation from annotated PHP sources
     

Share This Page