Giter Site home page Giter Site logo

Comments (7)

heinezen avatar heinezen commented on June 2, 2024

Where did you get nyan from? Did you build it from source or did you use the configure --download-nyan method?

Your nyan version needs to be 0.3.0 (latest version).

from openage.

Saxtr0 avatar Saxtr0 commented on June 2, 2024

Hello @heinezen ,
i tried with an AUR package, and also using "--download-nyan".
The error is the very same (also building OpenAge via AUR package).
I alway get "error: ‘Dict’ is not a member of ‘nyan’", maybe it is case sensitive? (the nyan member is named "dict", in the documentation).

Thank you for asking

EDIT:

$ ./configure --download-nyan
./configure is a convenience script:
it creates the build directory,  symlinks it,
and invokes cmake for an out-of-source build.

Nobody is stopping you from skipping ./configure and our Makefile,
and using CMake directly (e.g. when packaging, or using an IDE).
For your convenience, ./configure even prints the direct CMake invocation!

         build_type | Debug
       cxx_compiler | g++
          cxx_flags | 
   exe_linker_flags | 
     install_prefix | /usr/local
module_linker_flags | 
shared_linker_flags | 

config options:

          backtrace | if_available
gperftools-profiler | if_available
gperftools-tcmalloc | False
            inotify | if_available
            ncurses | if_available
             opengl | if_available
             vulkan | if_available

bindir:
/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/

invocation:
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS='' -DCMAKE_EXE_LINKER_FLAGS='' -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_MODULE_LINKER_FLAGS='' -DCMAKE_SHARED_LINKER_FLAGS='' -DDOWNLOAD_NYAN=YES -DCXX_OPTIMIZATION_LEVEL=auto -DCXX_SANITIZE_FATAL=False -DCXX_SANITIZE_MODE=none -DWANT_BACKTRACE=if_available -DWANT_GPERFTOOLS_PROFILER=if_available -DWANT_GPERFTOOLS_TCMALLOC=False -DWANT_INOTIFY=if_available -DWANT_NCURSES=if_available -DWANT_OPENGL=if_available -DWANT_VULKAN=if_available /tmp/openage

(now running cmake:)



 ___  ______ _______ _______ ___
|  _)/ _____|_______|_______|_  |
| | ( (____  _____      _     | |    ___  ____  _____ ____  _____  ____ _____
| |  \____ \|  ___)    | |    | |   / _ \|  _ \| ___ |  _ \(____ |/ _  | ___ |
| |_ _____) ) |        | |   _| |  | |_| | |_| | ____| | | / ___ ( (_| | ____|
|___|______/|_|        |_|  (___|   \___/|  __/|_____)_| |_\_____|\___ |_____)
                                         |_|                     (_____|

Welcome to the SFT technologies computer-aided openage build system!

You have chosen, or been chosen, to attempt the daring task of building openage.
If you have installed all the dependencies that are conveniently listed in
[doc/building.md], this _might_ just work!

If it doesn't, consider reporting the issue, or ask for help:
  * GitHub: https://github.com/SFTtech/openage
  * Matrix: #sfttech:matrix.org

-- Set PROJECT_VERSION from git.
-- Could NOT find GCCBacktrace (missing: GCCBacktrace_LIBRARIES GCCBacktrace_INCLUDE_DIRS) 
-- optional dependency is unavailable: backtrace

cython module
        run                                                 [embedded interpreter] [noinstall]
        openage.cython_check
        openage.cabextract.lzxd
        openage.cabextract.cabchecksum                      [standalone]
        openage.convert.processor.export.terrain_merge
        openage.convert.processor.export.texture_merge
        openage.convert.service.export.interface.visgrep
        openage.convert.service.export.opus.opusenc
        openage.convert.service.export.png.binpack
        openage.convert.service.export.png.png_create
        openage.convert.value_object.read.media.sld
        openage.convert.value_object.read.media.slp
        openage.convert.value_object.read.media.smp
        openage.convert.value_object.read.media.smx
        openage.cppinterface.exctranslate
        openage.cppinterface.exctranslate_tests
        openage.cppinterface.pyobject
        openage.cppinterface.setup_checker
        openage.cvar.cvar
        openage.event.demo
        openage.game.main_cpp
        openage.log.log_cpp
        openage.main.main_cpp
        openage.main.tests
        openage.renderer.renderer_cpp
        openage.renderer.tests
        openage.testing.cpp_testing
        openage.testing.misc_cpp
        openage.util.filelike.cpp
        openage.util.fslike.cpp
        openage.versions.versions

enabled options:
        gperftools-profiler
        inotify
        ncurses
        opengl
        vulkan

disabled options:
        backtrace
        gperftools-tcmalloc

openage 0.4.1.1447

   version string | v0.4.1-1447-g28b4b5ac
         compiler | GNU 13.2.1
           python | 3.11.5
       build type | Debug
         cxxflags |  -fdiagnostics-color=auto  -Wall -Wextra -pedantic -Wsuggest-override
 build type flags | -g -Og
        build dir | /tmp/openage/.bin/g++-debug-Oauto-sanitize-none
   install prefix | /usr/local
py install prefix | /usr/local/lib/python3.11/site-packages

-- Configuring done (0.8s)
-- Generating done (0.1s)
-- Build files have been written to: /tmp/openage/.bin/g++-debug-Oauto-sanitize-none

This is the configure output

from openage.

Saxtr0 avatar Saxtr0 commented on June 2, 2024

I discovered what the issue is.
The nyan i had in AUR, was not right (lower than 0.3).
The --download-nyan do not works as expected
To build OpenAge i had to manually build nyan before openage.

Ok, i have now binaries and libraries, what i am missing are the converted contents, and here i think i will give up.

The convert script, do not work as expected:

[utente@titano openage]$ bin/run
INFO [py] launching openage v0.4.1-1447-g28b4b5ac
INFO [py] compiled by GNU 13.2.1
INFO [py] running in DEVMODE
  Do you want to convert assets? [Y/n]
> 
  Should we call wine to determine an AOE installation? [Y/n]
> n

Please select an Age of Empires installation directory.
Insert the index of one of the proposals, or any path:
(0) ~/.steam/steam/steamapps/common/Age2HD
> 0
converting from '/home/utente/.local/share/Steam/steamapps/common/Age2HD'
INFO [py] Looking for compatible games to convert...
INFO [py] Compatible game edition detected:
INFO [py]  * Age of Empires 2: HD Edition
INFO [py] converting metadata
INFO [py] [0] palette
INFO [py] [1] empires.dat
INFO [py] using cached wrapper: /tmp/HDEDITION_empires2_x1_p1.dat.pickle
INFO [py] Starting conversion...
INFO [py] Extracting Genie data...
INFO [py] Creating API-like objects...
INFO [py] Linking API-like objects...
INFO [py] Generating auxiliary objects...
INFO [py] Creating nyan objects...
INFO [py] Creating requests for media export...
INFO [py] Starting export...
INFO [py] Dumping info file...
INFO [py] Dumping data files...
INFO [py] Exporting media files...
INFO [py] -- Exporting graphics files...
INFO [py] -- Exporting terrain files...
INFO [py] -- Exporting sound files...
INFO [py] Dumping metadata files...
Traceback (most recent call last):
  File "run.py", line 20, in init run
    main()
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/__main__.py", line 171, in main
    return args.entrypoint(args, cli.error)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/game/main.py", line 81, in main
    used_asset_path = convert_assets(
                      ^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/main.py", line 115, in convert_assets
    for current_item in convert(args):
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/tool/driver.py", line 38, in convert
    yield from convert_metadata(args)
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/tool/driver.py", line 99, in convert_metadata
    ModpackExporter.export(modpack, args)
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/processor/export/modpack_exporter.py", line 65, in export
    DataExporter.export(modpack.get_metadata_files(), modpack_dir)
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/processor/export/data_exporter.py", line 35, in export
    output_content = data_file.dump()
                     ^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/entity_object/export/metadata_export.py", line 161, in dump
    texture_file.set_size(self.size[0], self.size[1])
                          ~~~~~~~~~^^^
TypeError: 'NoneType' object is not subscriptable
[utente@titano openage]$ bin/run
INFO [py] launching openage v0.4.1-1447-g28b4b5ac
INFO [py] compiled by GNU 13.2.1
INFO [py] running in DEVMODE
  Do you want to convert assets? [Y/n]
> Y
  Should we call wine to determine an AOE installation? [Y/n]
> n

Please select an Age of Empires installation directory.
Insert the index of one of the proposals, or any path:
(0) ~/.steam/steam/steamapps/common/Age2HD
> ~/.steam/steam/steamapps/common/AoE2DE
converting from '/home/utente/.local/share/Steam/steamapps/common/AoE2DE'
INFO [py] Looking for compatible games to convert...
INFO [py] Compatible game edition detected:
INFO [py]  * Age of Empires 2: Definitive Edition
INFO [py] converting metadata
INFO [py] [0] palette
INFO [py] [1] empires.dat
Traceback (most recent call last):
  File "run.py", line 20, in init run
    main()
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/__main__.py", line 171, in main
    return args.entrypoint(args, cli.error)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/game/main.py", line 81, in main
    used_asset_path = convert_assets(
                      ^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/main.py", line 115, in convert_assets
    for current_item in convert(args):
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/tool/driver.py", line 38, in convert
    yield from convert_metadata(args)
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/tool/driver.py", line 75, in convert_metadata
    gamespec = get_gamespec(args.srcdir, args.game_version, not args.flag("no_pickle_cache"))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/service/read/gamedata.py", line 47, in get_gamespec
    gamespec = load_gamespec(empiresdat_file,
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/service/read/gamedata.py", line 102, in load_gamespec
    _, gamespec = wrapper.read(file_data, 0, game_version, dynamic_load=dynamic_load)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 133, in read
    offset, gen_members = self._read_multisubtye(
                          ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 309, in _read_multisubtye
    offset, gen_members = new_data.read(raw, offset, game_version, new_data_class)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 133, in read
    offset, gen_members = self._read_multisubtye(
                          ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 309, in _read_multisubtye
    offset, gen_members = new_data.read(raw, offset, game_version, new_data_class)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 133, in read
    offset, gen_members = self._read_multisubtye(
                          ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 309, in _read_multisubtye
    offset, gen_members = new_data.read(raw, offset, game_version, new_data_class)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 140, in read
    offset, gen_members, stop_reading_members = self._read_primitive(
                                                ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 513, in _read_primitive
    lookup_result = var_type.entry_hook(result)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/convert/value_object/read/read_members.py", line 314, in entry_hook
    raise KeyError("failed to find %s%s in lookup dict %s!" %
KeyError: 'failed to find 18 = 0x12 in lookup dict effect_apply_type!'

Regards

EDIT:
Out of the box, not even The Conquerors is converted successfully

Please select an Age of Empires installation directory.
Insert the index of one of the proposals, or any path:
(0) $WINEPREFIX/drive_c/Program Files/Microsoft Games/Age of Empires II/
(1) ~/.steam/steam/steamapps/common/Age2HD
> 0
converting from '/home/utente/win32/drive_c/Program Files/Microsoft Games/Age of Empires II'
INFO [py] Looking for compatible games to convert...
INFO [py] Compatible game edition detected:
INFO [py]  * Age of Empires 2: The Conqueror's
INFO [py] converting metadata
INFO [py] [0] palette
INFO [py] [1] empires.dat
INFO [py] using cached wrapper: /tmp/AOC_empires2_x1_p1.dat.pickle
INFO [py] Starting conversion...
INFO [py] Extracting Genie data...
INFO [py] Creating API-like objects...
INFO [py] Linking API-like objects...
INFO [py] Generating auxiliary objects...
INFO [py] Creating nyan objects...
INFO [py] Creating requests for media export...
INFO [py] Starting export...
INFO [py] Dumping info file...
INFO [py] Dumping data files...
INFO [py] Exporting media files...
INFO [py] -- Exporting graphics files...
INFO [py] -- Exporting terrain files...
INFO [py] -- Exporting sound files...
INFO [py] Dumping metadata files...
INFO [py] [2] player color palette
INFO [py] [3] terminal color palette
INFO [py] [4] game specification files
INFO [py] asset conversion complete; asset version: 7
INFO loading configuration files...
INFO [py] loading config file [Union(Directory(/tmp/openage/cfg).root @ (b'cfg',), Directory(/tmp/openage/assets).root @ (b'assets',))]:cfg/keybinds.oac...
INFO launching engine with root directoryPath(Union(Directory(/tmp/openage/cfg).root @ (b'cfg',), Directory(/tmp/openage/assets).root @ (b'assets',)):)
INFO loading configuration files...
INFO [py] loading config file [Union(Directory(/tmp/openage/cfg).root @ (b'cfg',), Directory(/tmp/openage/assets).root @ (b'assets',))]:cfg/keybinds.oac...
INFO Found modpack: aoe2_base
INFO Found modpack: hd_base
INFO Created game simulation
Traceback (most recent call last):
  File "run.py", line 20, in init run
    main()
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/__main__.py", line 171, in main
    return args.entrypoint(args, cli.error)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/openage/.bin/g++-debug-Oauto-sanitize-none/openage/game/main.py", line 104, in main
    return run_game(args, root)
           ^^^^^^^^^^^^^^^^^^^^
  File "openage/game/main_cpp.pyx", line 37, in openage.game.main_cpp.run_game
    result = run_game_cpp(args_cpp)
  File "", line 0, in 
  File "", line 0, in openage::run_game(openage::main_arguments const&)+0xab
  File "", line 0, in openage::engine::Engine::Engine(openage::engine::Engine::mode, openage::util::Path const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x1de
  File "", line 0, in openage::gamestate::GameSimulation::set_modpacks(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0xb0
  File "", line 0, in openage::assets::ModManager::activate_modpacks(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x2f
  File "", line 0, in openage::assets::ModManager::set_load_order(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0xdb
  File "", line 0, in openage::error::Error::Error(openage::log::message const&, bool, bool)+0xba
  File "libopenage/assets/mod_manager.cpp", line 41, in void openage::assets::ModManager::set_load_order(const std::vector<std::__cxx11::basic_string<char> >&)
    throw Error{MSG(err) << "Requested modpack '" << modpack_id << "' not available."};
openage.cppinterface.exctranslate.CPPException: Requested modpack 'engine' not available.

from openage.

heinezen avatar heinezen commented on June 2, 2024

@ScaMar openage will prefer the nyan system package over the --download-nyan option if it's installed. I guess we should introduce a version check so the problem becomes more noticeable in the future.

from openage.

heinezen avatar heinezen commented on June 2, 2024

And looks like The Conqueror's did convert successfully, but you are missing the engine modpack (which contains the engine's internal API bindings). You have to export this modpack manually using

python -m openage convert-export-api /absolute/path/to/a/folder

and copy the resulting engine folder into the project's assets/converted folder (next to aoe2_base). Sorry that it's so complicated at the moment, but it's going to get fixed in #1529 soon.

from openage.

Saxtr0 avatar Saxtr0 commented on June 2, 2024

@heinezen , thank you for your patience and for your explanations.
engine exported and demo was run.

from openage.

TheJJ avatar TheJJ commented on June 2, 2024

nice, then i'll go ahead and close this. feel free to ask remaining questions :)

from openage.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.