Comments (7)
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.
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.
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.
@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.
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.
@heinezen , thank you for your patience and for your explanations.
engine exported and demo was run.
from openage.
nice, then i'll go ahead and close this. feel free to ask remaining questions :)
from openage.
Related Issues (20)
- Can't build with clang, error: "jthread is supported now, remove custom definition" HOT 4
- Asset conversion issue, AttributeError: 'NoneType' object has no attribute 'readable' HOT 6
- Adding PR/ISSUE Templates for this repo HOT 7
- Asset path type is incorrectly used HOT 5
- error: Couldn't find qml root folder HOT 15
- Test fail when building with GCC 13.2.1 HOT 10
- Error launching game, uncaught exception(s) HOT 25
- openage game: error: the following arguments are required: --modpacks HOT 4
- Running Error on Mac osx 13.4(Macbook M1 Pro ARM architecture) HOT 1
- FATAL: terminate has been called uncaught exception std::exception of type std::__1::system_error: thread::join failed: Invalid argument HOT 2
- Multiple cmake issues when trying to build HOT 4
- Submission to Steam HOT 2
- OpenGL error when launching on Wayland HOT 11
- CMake can't find toml11 on Linux Mint 21.2 HOT 4
- Errors after the new PR merged HOT 3
- Link on website https://openage.sft.mx/ to windows packages is a broken link HOT 2
- Windows Build: Python Command Requiring --modpacks Argument HOT 3
- Asset conversion stalls on media conversion HOT 11
- Fix Ubuntu Dependency installation script HOT 5
- Build failing, unable to find Python3 on Windows 10 HOT 20
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openage.