amzeratul / halley Goto Github PK
View Code? Open in Web Editor NEWA lightweight game engine written in modern C++
Home Page: https://discord.gg/T7qQqQJ
License: Apache License 2.0
A lightweight game engine written in modern C++
Home Page: https://discord.gg/T7qQqQJ
License: Apache License 2.0
[ 83%] Building CXX object src/tools/tools/CMakeFiles/halley-tools.dir/src/assets/asset_importer.cpp.o
In file included from /home/simon/code/halley/src/tools/tools/src/assets/asset_importer.cpp:8:0:
/home/simon/code/halley/src/tools/tools/src/assets/importers/material_importer.h:3:32: fatal error: yaml-cpp/node/node.h: No such file or directory
#include <yaml-cpp/node/node.h>
^
compilation terminated.
Looking at https://github.com/amzeratul/halley/blob/master/src/tools/tools/CMakeLists.txt it looks like ${YAMLCPP_INCLUDE_DIR}
is in the wrong place, in add_library
instead of in include_directories
.
Note that this already compiles, but fails to run - I never even get a console print. Halley currently depends on some threads, so this will need to be fixed, as well.
OS : Linux ubuntu 18.10
Compiled using : Cmake, clang
Boost version: 1.65.1
Errors:
/home/user/Desktop/GIT/temp/halley/src/plugins/asio/src/asio_tcp_connection.cpp: In constructor ‘Halley::AsioTCPConnection::AsioTCPConnection(boost::asio::io_service&, Halley::String, int)’:
/home/user/Desktop/GIT/temp/halley/src/plugins/asio/src/asio_tcp_connection.cpp:20:133: error: ‘boost::asio::ip::resolver<boost::asio::ip::tcp, boost::asio::ip::resolver_service<boost::asio::ip::tcp> >::results_type’ has not been declared
resolver->async_resolve(host.cppStr(), toString(port).cppStr(), [=] (const boost::system::error_code& ec, asio::ip::tcp::resolver::results_type result)
^~~~~~~~~~~~
/home/user/Desktop/GIT/temp/halley/src/plugins/asio/src/asio_tcp_connection.cpp: In lambda function:
/home/user/Desktop/GIT/temp/halley/src/plugins/asio/src/asio_tcp_connection.cpp:25:18: error: ‘begin’ was not declared in this scope
for (auto& r: result) {
/home/user/Desktop/GIT/temp/halley/src/plugins/asio/src/asio_tcp_connection.cpp:200:4: required from here
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:134:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator iter = buffer_sequence.begin();
^~~~
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:135:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator end = buffer_sequence.end();
^~~
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:134:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator iter = buffer_sequence.begin();
^~~~
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:135:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator end = buffer_sequence.end();
^~~
/home/user/Desktop/GIT/temp/halley/src/plugins/asio/src/asio_tcp_connection.cpp:200:4: required from here
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:107:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator iter = buffer_sequence.begin();
^~~~
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:108:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator end = buffer_sequence.end();
^~~
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:107:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator iter = buffer_sequence.begin();
^~~~
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:108:38: error: no type named ‘const_iterator’ in ‘class boost::asio::mutable_buffer’
typename Buffers::const_iterator end = buffer_sequence.end();
https://github.com/amzeratul/halley-samples
as linked in the readme gives 404 - I don't see an obvious correct alternative?
At around the 20k entity mark, MappedPool crashes.
This is not a real issue, but more a request for help, I guess. I'm trying to setup halley in a somewhat constrained environment: inside a docker container, with noVNC for displaying.
Specifically I'm using https://gitpod.io, which makes it super easy to tinker on projects like halley (Disclaimer: I'm working for the company behind Gitpod).
With the help of the patches from lye (#37) and gurka (#44) I was able to successfully build and run ./bin/halley-editor tests/entity
:
Here is a link to (a copy of) the exact environment I created the screenshot with:
Is that the expected output of the test? If yes: Are there any other test "games" I can test the setup with and start playing around with?
Thanks!
As Boost is a monolith, it's sometimes considered bloat.
Hi @amzeratul & contributors,
I'd like to look into building a MVP for Metal support (eventually leading to iOS) in Halley. I think this would help me learn the engine's ins and outs better, and also would future proof the engine on Mac and iOS if Apple ultimately decides to pull the OpenGL rug out.
Unfortunately, Metal does not have a C/C++ API - the only options are Objective-C or Swift. This would add an additional language to your codebase, something I imagine you're hesitant to get behind for reasons that are very understandable.
I'd be interested to know your thoughts on what the optimal layout for this kind of thing looks like. I imagine I'd take something similar to the approach of (sadly not really maintained) mtlpp, which provides Objective-C-free headers, meaning compilation will still work on platforms without Metal support, even if linking doesn't.
Really liking the look of this engine so far, and congrats on the successful launch of Wargroove.
Cheers
Joel
This engine looks really promising, just surprised there's so little documentation. Is it just stored here for you to use, or do you plan on writing that out?
I'm trying to build a Dockerfile, so far I have:
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y g++ gcc \
cmake clang-3.9 \
wget \
libfreetype6 \
libyaml-cpp-dev \
libsdl2-dev \
software-properties-common \
freetype2-demos \
libfreetype6-dev
# above installs cmake 3.10.2, gcc 7.3.0
# Boost
RUN wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz && \
tar -xzvf boost_1_66_0.tar.gz && \
cd cd boost_1_66_0 && \
./bootstrap.sh && \
./b2 install
# boost header files in /usr/local/include/boost
# compiled libraries in /usr/local/lib
RUN mkdir -p /code
ADD . /code
WORKDIR /code
RUN cd src && \
cmake -DCMAKE_INCLUDE_PATH=/usr/local/lib -DHALLEY_PATH=../halley -DBUILD_HALLEY_TOOLS=1 -DBUILD_HALLEY_TESTS=0 -DCMAKE_LIBRARY_PATH=/usr/local/lib -DBOOST_ROOT=/usr/local/include/boost .. && \
make
Make gets somewhat far, but I error out on
[ 83%] Built target halley-asio
[ 83%] Building CXX object src/tools/tools/CMakeFiles/halley-tools.dir/src/assets/importers/config_importer.cpp.o
/code/src/tools/tools/src/assets/importers/config_importer.cpp: In static member function 'static Halley::ConfigNode Halley::ConfigImporter::parseYAMLNode(const YAML::Node&)':
/code/src/tools/tools/src/assets/importers/config_importer.cpp:50:34: error: 'const class YAML::Node' has no member named 'Mark'
result.setOriginalPosition(node.Mark().line, node.Mark().column);
^~~~
/code/src/tools/tools/src/assets/importers/config_importer.cpp:50:52: error: 'const class YAML::Node' has no member named 'Mark'
result.setOriginalPosition(node.Mark().line, node.Mark().column);
^~~~
src/tools/tools/CMakeFiles/halley-tools.dir/build.make:350: recipe for target 'src/tools/tools/CMakeFiles/halley-tools.dir/src/assets/importers/config_importer.cpp.o' failed
make[2]: *** [src/tools/tools/CMakeFiles/halley-tools.dir/src/assets/importers/config_importer.cpp.o] Error 1
CMakeFiles/Makefile2:769: recipe for target 'src/tools/tools/CMakeFiles/halley-tools.dir/all' failed
make[1]: *** [src/tools/tools/CMakeFiles/halley-tools.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
root@5b23cdcb9144:/code/src#
I tried different installations of yaml and decided it would be easiest to ask for your help! Have you seen this before?
OS: Arch Linux
Compiling with: cmake/gcc
/home/**/Desktop/Sources/halley/src/tests/entity/src/test_stage.cpp: In member function ‘virtual void TestStage::init()’:
/home/**/Desktop/Sources/halley/src/tests/entity/src/test_stage.cpp:8:43: error: ‘createSystem’ was not declared in this scope
8 | world = createWorld("sample_test_world", createSystem);
I don't think you can submit GitHub wiki changes so I guess that's the best alternative.
The CMakeLists.txt template provided in the wiki ends with:
halleyProject(project_name "${SOURCES}" "${HEADERS}" "" ${CMAKE_CURRENT_SOURCE_DIR}/bin)
This actually results in building with the following error:
[build] [1/1 0% :: 0.000] Re-running CMake...
[build] CMake Error at CMakeLists.txt:25 (halleyProject):
[build] halleyProject Function invoked with incorrect arguments for function named:
[build] halleyProject
[build]
[build]
[build] -- Configuring incomplete, errors occurred!
[build] See also "/Users/douglaslassance/Desktop/WIP/halleygame/build/CMakeFiles/CMakeOutput.log".
[build] See also "/Users/douglaslassance/Desktop/WIP/halleygame/build/CMakeFiles/CMakeError.log".
[build] ninja: error: rebuilding 'build.ninja': subcommand failed
[build] FAILED: build.ninja
The template should feature the missing argument as such:
halleyProject(project_name "${SOURCES}" "${HEADERS}" "" "" ${CMAKE_CURRENT_SOURCE_DIR}/bin)
Failing to load assets causes an infinite number of tasks to queue up in the editor, and no actual error is displayed.
src/contrib/libvorbis/lib/barkmel.c
contains an int main
entry that should be removed.
I believe stepsNeeded should be calculated from curTime - targetTime
, not targetTime - curTime
?
And store data on .meta so it can be used to correctly render them later.
All button presses are only registered for the variable timeline. Allow two different buffers, so it works on both.
[build] LINK : fatal error LNK1104: Could not open file 'yaml-cppd.lib'
It is supposed that yamlcpp is now embedded in halley but when i build it gives this.
When trying to build all targets in Visual Studio 2017 using yaml-cpp 0.5.3 an compiler error occurs in an yaml-cpp header that uses std::auto_ptr
. std::auto_ptr
is deprecated and was removed in c++17, and for some reason c++17 is used in the Visual Studio build:
halley/cmake/HalleyProject.cmake
Line 69 in 7d57310
Not sure why c++17 is used here and c++14 used for other platforms.
Header with std::auto_ptr
: https://github.com/jbeder/yaml-cpp/blob/yaml-cpp-0.5.3/include/yaml-cpp/parser.h#L43
I'm having the following linker errors when trying to compile the halley-cmd project:
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>halley-tools_d.lib(asset_pack_inspector.obj) : error LNK2019: unresolved external symbol "public: class Halley::Deserializer & __cdecl Halley::Deserializer::operator>>(class gsl::span<enum gsl::byte,-1> &)" (??5Deserializer@Halley@@QEAAAEAV01@AEAV?$span@W4byte@gsl@@$0?0@gsl@@@z) referenced in function "public: void __cdecl Halley::AssetPackInspector::parse(class std::vector<unsigned char,class std::allocator > const &)" (?parse@AssetPackInspector@Halley@@QEAAXAEBV?$vector@EV?$allocator@E@std@@@std@@@z)
1>halley-tools_d.lib(asset_pack_inspector.obj) : error LNK2019: unresolved external symbol "public: static unsigned __int64 __cdecl Halley::Hash::hash(class gsl::span<enum gsl::byte const ,-1>)" (?hash@Hash@Halley@@SA_KV?$span@$$CBW4byte@gsl@@$0?0@gsl@@@z) referenced in function "private: void __cdecl Halley::AssetPackInspector::parseTypedDB(class Halley::Deserializer &,class std::vector<unsigned char,class std::allocator > const &)" (?parseTypedDB@AssetPackInspector@Halley@@AEAAXAEAVDeserializer@2@AEBV?$vector@EV?$allocator@E@std@@@std@@@z)
1>halley-tools_d.lib(asset_pack_inspector.obj) : error LNK2019: unresolved external symbol "public: void __cdecl Halley::Hash::Hasher::feedBytes(class gsl::span<enum gsl::byte const ,-1>)" (?feedBytes@Hasher@Hash@Halley@@QEAAXV?$span@$$CBW4byte@gsl@@$0?0@gsl@@@z) referenced in function "private: void __cdecl Halley::AssetPackInspector::computeHash(void)" (?computeHash@AssetPackInspector@Halley@@AEAAXXZ)
1>halley-tools_d.lib(message_schema.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(custom_type_schema.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(animation_importer.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(config_importer.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(codegen.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(check_assets_task.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(component_schema.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(system_schema.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > YAML::detail::node_data::empty_scalar" (?empty_scalar@node_data@detail@YAML@@2v?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@A)
1>halley-tools_d.lib(spritesheet_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(bitmap_font_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(shader_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(font_generator.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(material_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(config_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(audio_event_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(sprite_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(import_assets_database.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(font_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(image_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(animation_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Serializer::Serializer(class gsl::span<enum gsl::byte,-1>)" (??0Serializer@Halley@@qeaa@V?$span@W4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(image_importer.obj) : error LNK2019: unresolved external symbol "public: __cdecl Halley::Deserializer::Deserializer(class gsl::span<enum gsl::byte const ,-1>)" (??0Deserializer@Halley@@qeaa@V?$span@$$CBW4byte@gsl@@$0?0@gsl@@@z) referenced in function "public: virtual void __cdecl Halley::ImageImporter::import(class Halley::ImportingAsset const &,class Halley::IAssetCollector &)" (?import@ImageImporter@Halley@@UEAAXAEBVImportingAsset@2@AEAVIAssetCollector@2@@z)
1>halley-tools_d.lib(image_importer.obj) : error LNK2019: unresolved external symbol "public: __cdecl Halley::Image::Image(class gsl::span<enum gsl::byte const ,-1>,enum Halley::Image::Format)" (??0Image@Halley@@qeaa@V?$span@$$CBW4byte@gsl@@$0?0@gsl@@W4Format@01@@z) referenced in function "public: virtual void __cdecl Halley::ImageImporter::import(class Halley::ImportingAsset const &,class Halley::IAssetCollector &)" (?import@ImageImporter@Halley@@UEAAXAEBVImportingAsset@2@AEAVIAssetCollector@2@@z)
1>halley-tools_d.lib(sprite_importer.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Image::Image(class gsl::span<enum gsl::byte const ,-1>,enum Halley::Image::Format)" (??0Image@Halley@@qeaa@V?$span@$$CBW4byte@gsl@@$0?0@gsl@@W4Format@01@@z)
1>halley-tools_d.lib(aseprite_reader.obj) : error LNK2001: unresolved external symbol "public: __cdecl Halley::Image::Image(class gsl::span<enum gsl::byte const ,-1>,enum Halley::Image::Format)" (??0Image@Halley@@qeaa@V?$span@$$CBW4byte@gsl@@$0?0@gsl@@W4Format@01@@z)
1>halley-tools_d.lib(spritesheet_importer.obj) : error LNK2019: unresolved external symbol "public: void __cdecl Halley::SpriteSheet::loadJson(class gsl::span<enum gsl::byte const ,-1>)" (?loadJson@SpriteSheet@Halley@@QEAAXV?$span@$$CBW4byte@gsl@@$0?0@gsl@@@z) referenced in function "public: virtual void __cdecl Halley::SpriteSheetImporter::import(class Halley::ImportingAsset const &,class Halley::IAssetCollector &)" (?import@SpriteSheetImporter@Halley@@UEAAXAEBVImportingAsset@2@AEAVIAssetCollector@2@@z)
1>halley-tools_d.lib(aseprite_reader.obj) : error LNK2001: unresolved external symbol "public: void __cdecl Halley::SpriteSheet::loadJson(class gsl::span<enum gsl::byte const ,-1>)" (?loadJson@SpriteSheet@Halley@@QEAAXV?$span@$$CBW4byte@gsl@@$0?0@gsl@@@z)
1>halley-tools_d.lib(bitmap_font_importer.obj) : error LNK2019: unresolved external symbol "public: static class Halley::Vector2D<int,class Halley::Angle > __cdecl Halley::Image::getImageSize(class gsl::span<enum gsl::byte const ,-1>)" (?getImageSize@Image@Halley@@sa?AV?$Vector2D@HV?$Angle@M@Halley@@@2@V?$span@$$CBW4byte@gsl@@$0?0@gsl@@@z) referenced in function "public: virtual void __cdecl Halley::BitmapFontImporter::import(class Halley::ImportingAsset const &,class Halley::IAssetCollector &)" (?import@BitmapFontImporter@Halley@@UEAAXAEBVImportingAsset@2@AEAVIAssetCollector@2@@z)
1>halley-tools_d.lib(aseprite_file.obj) : error LNK2019: unresolved external symbol "public: static class std::vector<unsigned char,class std::allocator > __cdecl Halley::Compression::decompressRaw(class gsl::span<enum gsl::byte const ,-1>,unsigned __int64,unsigned __int64)" (?decompressRaw@Compression@Halley@@sa?AV?$vector@EV?$allocator@E@std@@@std@@v?$span@$$CBW4byte@gsl@@$0?0@gsl@@_K1@Z) referenced in function "private: void __cdecl Halley::AsepriteFile::addCelChunk(class gsl::span<enum gsl::byte const ,-1>)" (?addCelChunk@AsepriteFile@Halley@@AEAAXV?$span@$$CBW4byte@gsl@@$0?0@gsl@@@z)
1>D:\Engines\halley\bin\halley-cmd.exe : fatal error LNK1120: 10 unresolved externals
1>Done building project "halley-cmd.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 7 up-to-date, 0 skipped ==========
It runs and renders, but no entities are being spawned.
while working with the engine with my SO we encountered a couple issues while setting up our linux development environment compared to our windows.
in the halleyproject cmake, finding X11 doesn't work with find_library
, only find_package
(at least for us on arch)
after compiling, the shared_gen components would always contain different componentID's because of linux sorting files differently in directories, meaning instead of using the order you put in shared_gen_src of
it would generate them out of order however adding
std::sort(files.begin(), files.end(), [](CodegenSourceInfo a, CodegenSourceInfo b) -> bool {
return a.filename.cppStr() < b.filename.cppStr();
});
in ECSData::loadSources (src/tools/tools/src/ecs/ecs_data.cpp) seemed to work in fixing this issue for us
aside from that joystick support doesn't appear to work on linux however that for us isn't really an issue at the moment.
the reason for this ticket is just in case you weren't aware and have the changes that worked for us in case you'd like to use these in the main repo.
-- The C compiler identification is AppleClang 12.0.0.12000032
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found SDL2: /usr/local/include/SDL2 (found version "2.0.14")
-- Found Boost: /usr/local/lib/cmake/Boost-1.76.0/BoostConfig.cmake (found version "1.76.0")
-- Found OpenGL: /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/OpenGL.framework
CMake Error at halley/cmake/LibFindMacros.cmake:263 (message):
REQUIRED PACKAGE NOT FOUND
We could not find development headers for ShaderConductor. Do you have the
necessary dev package installed? This package is REQUIRED and you need to
install it or adjust CMake configuration in order to continue building
simple-game.
Relevant CMake configuration variables:
ShaderConductor_INCLUDE_DIR=<not found>
ShaderConductor_LIBRARY=<not found>
You may use CMake GUI, cmake -D or ccmake to modify the values. Delete
CMakeCache.txt to discard all values and force full re-detection if
necessary.
Call Stack (most recent call first):
halley/cmake/FindShaderConductor.cmake:25 (libfind_process)
halley/src/CMakeLists.txt:6 (find_package)
-- Configuring incomplete, errors occurred!
See also "/Users/macuser/repos/halley-game/build/CMakeFiles/CMakeOutput.log".
Sorry, I'm new at this, I've no idea what to do.
I'm useing Window 7,VS2017,successfully compile halley-template example.
But while run the app,It says
Unhandled exception : Unable to load resource .../halley-template/assets/game.dat
I checked folder there is no game.dat file there,so what should I do to run a success example?
Been going through the code and noticed if you run halley-editor without a path it does void EditorRootStage::createLoadProjectUI()
The editor runs fine but I'm not seeing any of the ui thats in the config file and the console outputs
Starting main loop.
Input buttons binding not found: "list".
N6Halley8Vector4DIfEE not found in UI style: button.labelBorder
Am I doing something wrong?
Hello,
Does it happen while the game running, or by hot reloading it is meant that the editor process them again when they change?
Thanks
Building on ubuntu, compiling asio_tcp_connection.cpp fails because results_type is not known:
[ 77%] Building CXX object src/plugins/asio/CMakeFiles/halley-asio.dir/src/asio_tcp_connection.cpp.o
/home/bram/src/halley/src/plugins/asio/src/asio_tcp_connection.cpp: In constructor ‘Halley::AsioTCPConnection::AsioTCPConnection(boost::asio::io_service&, Halley::String, int)’:
/home/bram/src/halley/src/plugins/asio/src/asio_tcp_connection.cpp:20:133: error: ‘boost::asio::ip::resolver<boost::asio::ip::tcp, boost::asio::ip::resolver_service<boost::asio::ip::tcp> >::results_type’ has not been declared
resolver->async_resolve(host.cppStr(), toString(port).cppStr(), [=] (const boost::system::error_code& ec, asio::ip::tcp::resolver::results_type result)
^~~~~~~~~~~~
/home/bram/src/halley/src/plugins/asio/src/asio_tcp_connection.cpp: In lambda function:
/home/bram/src/halley/src/plugins/asio/src/asio_tcp_connection.cpp:25:18: error: ‘begin’ was not declared in this scope
for (auto& r: result) {
^~~~~~
Ubuntu 18.04.2 LTS
yaml-cpp 0.5.2
libboost-dev 1.65.1.0
Given the following metadata in spritesheet/something.json:
"meta": {
"image": "something.png",
"format": "RGBA8888",
"size": {"w":192,"h":192},
"scale": "1"
}
...the Texture coords for each frame are generated incorrectly as "width/size.w", "height/size.h".
This is because, somewhere in the conversion process, "something.png" is re-generated (into assets_unpacked) as a 256x256 texture file. This causes the Texture coords to be incorrect. They should be calculated as "width/256", "height/256".
Changing the meta to lie about the size of the input image fixes this:
"size": {"w":256,"h":256},
...however, it should be possible to take the expanded size into account when converting the SpriteSheet (i.e., round up to a multiple of 2). If I can figure out where this is done in the code I'll file a pull request.
(Note: I'm aware that I should be generating power-of-2 size images in the first place, but I still think the tool should do the right thing with images it's changing the size of.)
Hey, I've stumbled over your project, and a few screenshots are always a nice introduction, but I found none for this project xD.
You have a UI library, so maybe it would make sense to add a screenshot of parts of that to your Readme?
Just to attract people.
Thanks, and it's just a suggestion :)
Hey I did cmake then make to compile Halley but with the make command I have Importing ubuntub.ttf
and it takes a very long time. I'm using Arch Linux
OS: Arch Linux, Kernel 4.20
Compiler: clang-7, gcc 8.2.1
Problem: The project cannot be compiled due to instantiations of abstract classes
How to reproduce: The only thing I did was to call cmake
and run make
, no modification or anything
Details: Many, many compiler errors like these: (over 60)
/usr/include/c++/8.2.1/bits/unique_ptr.h:831:30: error: invalid new-expression of abstract class type ‘TextMsg’
{ return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
/home/kitty/git/halley/src/tests/network/src/test_stage.cpp:39:7: error: ‘void TextMsg::deserializeFrom(gsl::span<const gsl::byte>)’ marked ‘override’, but does not override
void deserializeFrom(gsl::span<const gsl::byte> src) override
^~~~~~~~~~~~~~~
If a syntax error prevents the entity definition YAML from being compiled, generated code will be erased. Instead, nothing should happen.
cling based C++ as scripting language / hot code reload
Why? Able to run C++ script in runtime or compile it for max speed ( as in example https://github.com/derofim/cling-cmake )
HOT code reload
possible approaches:store app state
fix cling undo for files
https://root-forum.cern.ch/t/loading-unloading-class-as-interpreted-macro-in-cling-multiple-times/32976/2execute cling code to change callbacks & variables
nested cling::Interpreter with multiple cling::MetaProcessor
IDK how to do it, but you can create child cling::Interpreter
OS: Windows 7
Compiler: VS 2019 (16.3.10)
CMake: 3.15, version included with MSVC
Boost: 1.70
SDL: 2.0.10
Freetype: 2.10.0
I don't think I have the Win10 SDK installed.
I get a bunch of errors like the following when compiling:
C:\Program Files (x86)\Windows Kits\8.1\Include\um\combaseapi.h(229,21): error C2760: syntax error: unexpected token 'identifier', expected 'type specifier' (compiling source file H:\src\halley\src\engine\utils\src\support\StackWalker\StackWalker.cpp) [H:\src\halley\build\src\engine\utils\halley-utils.vcxproj]
C:\Program Files (x86)\Windows Kits\8.1\Include\um\wbemdisp.h(1088,62): error C2440: 'default argument': cannot convert from 'const wchar_t [1]' to 'BSTR' (compiling source file H:\src\halley\src\engine\utils\src\os\os.cpp) [H:\src\halley\build\src\engine\utils\halley-utils.vcxproj]
This looks to be a Windows bug when /permissive- is passed to the compiler: microsoft/krabsetw#42
The BSTR stuff mostly leads me to StackOverflow answers where people don't seem to be able to spot that the compiler is complaining about a default argument; it looks like a similar issue though.
I get the following error when trying to build halley through cmake with the following input:
cmake -DBOOST_ROOT=/home/anthony/bin/boost_1_69_0/boost -DCMAKE_INCLUDE_PATH=/usr/local/include -DCMAKE_LIBRARY_PATH=/usr/local/lib ..
which gives:
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found SDL2: /usr/include/SDL2 (found version "2.0.8")
-- Boost version: 1.69.0
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- Found YAMLCPP: /usr/local/include
-- Boost version: 1.69.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.8.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/anthony/Documents/halley/build
But when i try to make with sudo make
i get the error listed in the error.txt file
error.txt at 93%. The build target that causes failure is the halley-test-target. Setting this target to 0 allows for a sucessful build
Running:
Any help would be greatly appreciated! I'm quite daft.
OS: macOS Mojave 10.14.5
Running cmake yields the error
CMake Error at halley/src/tools/editor/CMakeLists.txt:58 (add_dependencies):
The dependency target "halley-metal" of target "halley-editor" does not
exist.
Metal has been disabled:
https://github.com/amzeratul/halley/blob/master/cmake/HalleyProject.cmake#L146
But it is assumed to be on for Mac systems:
https://github.com/amzeratul/halley/blob/master/src/tools/editor/CMakeLists.txt#L44
https://github.com/amzeratul/halley/blob/master/src/tools/editor/CMakeLists.txt#L54
Guarding by the USE_METAL variable won't work, since the code for Mac requires the Metal libraries to link to:
https://github.com/amzeratul/halley/blob/master/src/tools/editor/src/halley_editor.cpp#L37
The error message for texture image missing is unclear.
On Windows, InputSDL::init
always initializes 4 InputJoystickXInput
s before any other joystick devices, regardless of how many xinput devices are actually connected. Non-xinput devices always have an index >= 4.
For games built on Halley, this means the first controller may appear as the fifth controller. It also means that some games (such as Wargroove) that expect a maximum of 4 controllers will ignore all non-xinput devices.
If two systems have equivalent families, but specifying the components in a different order, memory corruption will occur.
FAILED: src/engine/core/CMakeFiles/halley-engine.dir/src/input/input_joystick_xinput.cpp.obj
C:\msys64\mingw64\bin\c++.exe -DBOOST_ALL_NO_LIB -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE -DDEV_BUILD -DDONT_INCLUDE_HALLEY_HPP -DWITH_ASIO -DWITH_DX11 -DWITH_HTTPLIB -DWITH_MEDIA_FOUNDATION -DWITH_OPENGL -DWITH_SDL2 -IC:/msys64/home/Administrator/halley/src/contrib -IC:/msys64/home/Administrator/halley/src/engine/core/include -IC:/msys64/home/Administrator/halley/src/engine/core/include/halley/core -IC:/msys64/home/Administrator/halley/src/engine/core/../../../shared_gen/cpp -IC:/msys64/home/Administrator/halley/src/engine/core/../../contrib/libogg/include -IC:/msys64/home/Administrator/halley/src/engine/core/../../contrib/libogg/lib -IC:/msys64/home/Administrator/halley/src/engine/core/../../contrib/libvorbis/include -IC:/msys64/home/Administrator/halley/src/engine/core/../../contrib/libvorbis/lib -IC:/msys64/home/Administrator/halley/src/engine/core/../../contrib/yaml-cpp/include -IC:/msys64/home/Administrator/halley/src/engine/core/../../contrib/lua/src -fPIC -std=gnu++17 -Winvalid-pch -include C:/msys64/home/Administrator/halley/build/src/engine/core/CMakeFiles/halley-engine.dir/cmake_pch.hxx -MD -MT src/engine/core/CMakeFiles/halley-engine.dir/src/input/input_joystick_xinput.cpp.obj -MF src\engine\core\CMakeFiles\halley-engine.dir\src\input\input_joystick_xinput.cpp.obj.d -o src/engine/core/CMakeFiles/halley-engine.dir/src/input/input_joystick_xinput.cpp.obj -c C:/msys64/home/Administrator/halley/src/engine/core/src/input/input_joystick_xinput.cpp
C:/msys64/home/Administrator/halley/src/engine/core/src/input/input_joystick_xinput.cpp: In member function 'virtual void Halley::InputJoystickXInput::update(Halley::Time)':
C:/msys64/home/Administrator/halley/src/engine/core/src/input/input_joystick_xinput.cpp:184:40: error: call of overloaded 'XInputGetStateEx(int&, XINPUT_STATE*)' is ambiguous
184 | DWORD result = XInputGetStateEx(index, &state);
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from C:/msys64/home/Administrator/halley/src/engine/core/src/input/input_joystick_xinput.cpp:31:
C:/msys64/mingw64/include/Xinput.h:243:14: note: candidate: 'DWORD XInputGetStateEx(DWORD, XINPUT_STATE*)'
243 | DWORD WINAPI XInputGetStateEx(DWORD, XINPUT_STATE*);
| ^~~~~~~~~~~~~~~~
C:/msys64/home/Administrator/halley/src/engine/core/src/input/input_joystick_xinput.cpp:91:15: note: candidate: 'DWORD {anonymous}::XInputGetStateEx(DWORD, XINPUT_STATE*)'
91 | DWORD XInputGetStateEx(DWORD index, XINPUT_STATE* state)
| ^~~~~~~~~~~~~~~~
I'm using Halley with clang 17 in a macOS Big Sur box. With little changes in Cmake files, the build succeeds. Here are some of the problems:
These are some problems I've seen so far, if I can I might make the changes myself and make a pr.
Olá, tudo bom? O projeto tem um discord/gitter para discussões?
Hey, does the project have a discord/gitter for discussions?
I built a barebones halley project with metal and i get this when debugging:
2021-08-05 05:01:40.728215-0500 halleyGame[4068:1865771] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x1011181f0> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2021-08-05 05:01:40.775186-0500 halleyGame[4068:1865771] HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine
2021-08-05 05:01:40.775899-0500 halleyGame[4068:1865771] HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine
2021-08-05 05:01:41.164656-0500 halleyGame[4068:1865797] flock failed to lock maps file: errno = 35
2021-08-05 05:01:41.166527-0500 halleyGame[4068:1865797] flock failed to lock maps file: errno = 35
This is with the latest commit up to now
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.