Giter Club home page Giter Club logo

halley's People

Contributors

0xflotus avatar amzeratul avatar aszlig avatar blitworks-jmoya avatar ckrakauer avatar code-disaster avatar coodeneko avatar grumpylion avatar gurka avatar joelotter avatar kariem2k avatar mbrukman avatar oserranoblit avatar reecechucklefish avatar stbachmann avatar sunhay avatar tcoxon avatar winniep avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

halley's Issues

cling based C++ as scripting language / hot code reload

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/2

execute 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

Cannot compile tools on Mac because of Metal

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

Linker Error with halley-cmd

Halley cmd gives this error here:

[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.

issues with linux support

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

  • 0_transform
  • 1_rendering
  • 2_audio

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.

Project does not compile on Linux + clang/gcc

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
       ^~~~~~~~~~~~~~~

Error in running Cmake

Hi,

Friend, I come across your engine, I found it this could be a nice code to learn 3D game. But i not familiar with the CMake, and got some error. What can I do?

error

Sprites are not animated in halley-test-entity

This is really hard to see with the default number of entities, but halley-test-entity example renders the whole spritesheet instead of an animation. Here is a screenshot with a single entity.

Screenshot_2019-08-18_12-47-44

  • Tested on current master
  • archlinux
  • GCC 9.1
  • CMake 3.15.1
  • boost 1.69.0
  • freetype 2.10.1
  • SDL2 2.0.10

Docker Container - YAML issue

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?

Compiler error with custom yaml-cpp path

[ 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.

Very little documentation

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?

SpriteSheet does not scale Texture coords correctly for non-multiples-of-2

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.)

Issue building halley-test target

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:

  • linux mint 19.1
  • SDL 2.0.8
  • Boost 1.69.0

Any help would be greatly appreciated! I'm quite daft.

Discord or Gitter

Olá, tudo bom? O projeto tem um discord/gitter para discussões?
Hey, does the project have a discord/gitter for discussions?

Compile issues on Windows involving /permissive

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.

Build terminates with error

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);

Setup halley with noVNC

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:
image

Here is a link to (a copy of) the exact environment I created the screenshot with: Open in Gitpod

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!

Emscripten port

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.

halley-editor UI issue?

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?

Importing Ubuntub.ttf

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

On Windows, non-XInput joysticks get relegated to 5th position, even when there are no other joysticks

On Windows, InputSDL::init always initializes 4 InputJoystickXInputs 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.

Memory corruption with families

If two systems have equivalent families, but specifying the components in a different order, memory corruption will occur.

Compiler error with Visual Studio 2017 due to trying to mix c++17 and yaml-cpp-0.5.3

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:

set(CMAKE_CXX_STANDARD 17)

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

Update the wiki's `CMakeLists.txt` template

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)

Better macOS support

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:

  • cannot build halley-metal due to lack of update.
  • halley-opengl works but the editor just goes black after 1s of opening it, though it works just fine for games as for now.
  • I have to provide my deps through vcpkg or building them myself because halley-deps has only windows binaries.
  • some error messages in halley-cmd when trying to convert hlsl shaders.

These are some problems I've seen so far, if I can I might make the changes myself and make a pr.

Hot reloading of resources

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

Cannot build in MacOS 10.15.7

My this is the cmake output when configuring

-- 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.

Example can't run lack of game.dat?

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?

Linker error while compiling halley-cmd project

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 ==========

Issue compiling

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();

compiler error on results_type

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

Runtime Errors on MacOS

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

UI library: add preview image of it

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 :)

Failed to build on MSYS2 MINGW64

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)
      |               ^~~~~~~~~~~~~~~~

Metal support

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

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.