liavt / mace Goto Github PK
View Code? Open in Web Editor NEWMACE is A C++ Engine
Home Page: https://liavt.github.io/MACE/html/index.html
License: MIT License
MACE is A C++ Engine
Home Page: https://liavt.github.io/MACE/html/index.html
License: MIT License
In order for automated unit testing, we need a Makefile to build on Unix.
When initially running the cmake project to generate build files, external libraries aren't downloaded if they are not found. This should be fixed to allow for the engine to be used with ease by other people.
Macs not working. I think its because it is not compiling w/ C++11. Is there a way to tell the compiler to use C++11 in cmake?
Doesn't work on anything other than Windows!
Here are the Linux errors (with GCC:)
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:17:8: error: expected nested-name-specifier before ‘Byte’
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:17:8: error: ‘Byte’ has not been declared
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:17:13: error: expected ‘;’ before ‘=’ token
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:17:13: error: expected unqualified-id before ‘=’ token
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:22:8: error: expected nested-name-specifier before ‘Size’
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:22:8: error: ‘Size’ has not been declared
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:22:13: error: expected ‘;’ before ‘=’ token
/home/travis/build/liavt/MACE/include/MC-System/Constants.h:22:13: error: expected unqualified-id before ‘=’ token
In file included from /home/travis/build/liavt/MACE/MC-System/System.cpp:1:0:
/home/travis/build/liavt/MACE/include/MC-System/System.h:49:11: error: ‘string’ in namespace ‘std’ does not name a type
/home/travis/build/liavt/MACE/include/MC-System/System.h:55:15: error: variable ‘mc::System mc::final’ has initializer but incomplete type
/home/travis/build/liavt/MACE/include/MC-System/System.h:56:2: error: expected primary-expression before ‘public’
/home/travis/build/liavt/MACE/include/MC-System/System.h:56:2: error: expected ‘}’ before ‘public’
/home/travis/build/liavt/MACE/include/MC-System/System.h:56:2: error: expected ‘,’ or ‘;’ before ‘public’
/home/travis/build/liavt/MACE/include/MC-System/System.h:80:33: error: variable or field ‘removeModule’ declared void
/home/travis/build/liavt/MACE/include/MC-System/System.h:80:28: error: ‘string’ is not a member of ‘std’
/home/travis/build/liavt/MACE/include/MC-System/System.h:96:28: error: ‘string’ is not a member of ‘std’
/home/travis/build/liavt/MACE/include/MC-System/System.h:103:42: error: ‘mc::Module* mc::getModule(unsigned int)’ redeclared as different kind of symbol
/home/travis/build/liavt/MACE/include/MC-System/System.h:96:18: error: previous declaration of ‘mc::Module* mc::getModule’
/home/travis/build/liavt/MACE/include/MC-System/System.h:109:28: error: ‘string’ is not a member of ‘std’
/home/travis/build/liavt/MACE/include/MC-System/System.h:120:48: error: ‘bool mc::moduleExists(const mc::Module*)’ redeclared as different kind of symbol
/home/travis/build/liavt/MACE/include/MC-System/System.h:109:15: error: previous declaration of ‘bool mc::moduleExists’
/home/travis/build/liavt/MACE/include/MC-System/System.h:125:10: error: ‘Size’ does not name a type
/home/travis/build/liavt/MACE/include/MC-System/System.h:142:36: error: ‘unsigned int mc::indexOf’ redeclared as different kind of symbol
/home/travis/build/liavt/MACE/include/MC-System/System.h:136:23: error: previous declaration of ‘unsigned int mc::indexOf(const mc::Module&)’
/home/travis/build/liavt/MACE/include/MC-System/System.h:142:31: error: ‘string’ is not a member of ‘std’
/home/travis/build/liavt/MACE/include/MC-System/System.h:152:33: error: variable or field ‘assertModule’ declared void
/home/travis/build/liavt/MACE/include/MC-System/System.h:152:28: error: ‘string’ is not a member of ‘std’
/home/travis/build/liavt/MACE/include/MC-System/System.h:152:47: error: ‘string’ is not a member of ‘std’
/home/travis/build/liavt/MACE/include/MC-System/System.h:158:33: error: variable or field ‘assertModule’ declared void
/home/travis/build/liavt/MACE/include/MC-System/System.h:158:28: error: ‘string’ is not a member of ‘std’
/home/travis/build/liavt/MACE/include/MC-System/System.h:181:2: error: expected unqualified-id before ‘private’
/home/travis/build/liavt/MACE/include/MC-System/System.h:193:1: error: expected declaration before ‘}’ token
make[2]: *** [MC-System/CMakeFiles/MC-System.dir/System.cpp.o] Error 1
make[2]: Leaving directory `/home/travis/build/liavt/MACE/build'
make[1]: *** [MC-System/CMakeFiles/MC-System.dir/all] Error 2
make[1]: Leaving directory `/home/travis/build/liavt/MACE/build'
make: *** [all] Error 2
And here are the OSX errors (I also presume with GCC:)
/Users/shahar/Git/MACE/include/MC-System/Constants.h:17:15: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using Byte = uint8_t;
^
/Users/shahar/Git/MACE/include/MC-System/Constants.h:22:15: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using Size = unsigned int;
^
In file included from /Users/shahar/Git/MACE/MC-System/System.cpp:1:
/Users/shahar/Git/MACE/include/MC-System/System.h:55:15: warning: 'final' keyword is a C++11 extension [-Wc++11-extensions]
class System final {
^
In file included from /Users/shahar/Git/MACE/MC-System/System.cpp:3:
/Users/shahar/Git/MACE/include/MC-System/Exceptions.h:19:45: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
explicit AssertionError(const std::string c = "No message was given") : runtime_error(c) {};
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
In file included from /Users/shahar/Git/MACE/MC-System/System.cpp:3:
/Users/shahar/Git/MACE/include/MC-System/Exceptions.h:34:52: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
explicit ObjectNotFoundInArray(const std::string c = "No message was given") : runtime_error(c) {};
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
In file included from /Users/shahar/Git/MACE/MC-System/System.cpp:3:
/Users/shahar/Git/MACE/include/MC-System/Exceptions.h:49:47: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
explicit IndexOutOfBounds(const std::string c = "No message was given") : runtime_error(c) {};
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:16:18: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
removeModule(m.getName());
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:18:40: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
void System::removeModule(std::string module)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:21:20: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
if (modules[i]->getName()==module) {
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:30:8: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (i<0 || i>numberOfModules())throw IndexOutOfBounds("Input is not a valid index!");
~^~
/Users/shahar/Git/MACE/MC-System/System.cpp:33:41: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
Module * System::getModule(std::string keyword)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:36:20: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
if (modules[i]->getName() == keyword) {
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:44:8: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (i<0 || i>numberOfModules())throw IndexOutOfBounds("Input is not a valid index!");
~^~
/Users/shahar/Git/MACE/MC-System/System.cpp:47:40: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
bool System::moduleExists(std::string module)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:50:20: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
if (modules[i]->getName() == module) {
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:58:31: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
return moduleExists(module->getName());
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:64:40: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
void System::assertModule(std::string module, std::string errorMessage)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:64:60: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
void System::assertModule(std::string module, std::string errorMessage)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:70:40: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
void System::assertModule(std::string module)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:76:20: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
return indexOf(m.getName());
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:79:43: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
unsigned int System::indexOf(std::string name) {
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
/Users/shahar/Git/MACE/MC-System/System.cpp:81:20: error: implicit instantiation of undefined template 'std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
if (modules[i]->getName() ==name) {
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:193:33: note: template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_string;
^
5 warnings and 17 errors generated.
make[2]: *** [MC-System/CMakeFiles/MC-System.dir/System.cpp.o] Error 1
make[1]: *** [MC-System/CMakeFiles/MC-System.dir/all] Error 2
make: *** [all] Error 2
So literally the same issue! I personally believe its not building with C++11, because all of the errors come from features only found in C++11.
Also view the Travis.ci build at https://travis-ci.org/liavt/MACE
It's very difficult to understand how to use the engine if there aren't any example games in the repo. even just a simple pong game would help a lot in trying to understand how to use it.
Add Audio support.
I think I can do this if I understood the structure of the engine. If you created some template classes to put te audio code I could write the OpenAL code. What do you think?
I have been teaching myself vulkan for a while now, and I think that I would be able to implement a vulkan back-end to the engine. Should I try to do it, or is OpenGL good enough? (I do not think that there will be a significant performance increase, it will just be cool to have)
The glfwPollEvents function must be called from the main thread. (Windows should also only be created on the main thread). Since the WIndowModule class uses a thread callback to do the per frame rendering, this function is called from a secondary thread. On Windows and Linux this is not an issue, but on OSX calling this function for another thread leads to an invalid pointer. For a full list of the threading limitations with glfw functions, go to the glfw website: http://www.glfw.org/docs/latest/group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344
Add the GLUI library as a dependency for MACE and use it to render UI.
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.