zaphire / monocle-engine Goto Github PK
View Code? Open in Web Editor NEWOpen source game engine for lush 2D. Inspired by Aquaria, FlashPunk and Unity.
Home Page: http://monoclepowered.org
Open source game engine for lush 2D. Inspired by Aquaria, FlashPunk and Unity.
Home Page: http://monoclepowered.org
_ _ | | (_) ____ ___ ____ ___ ____| | ____ ____ ____ ____ _ ____ ____ | \ / _ \| _ \ / _ \ / ___) |/ _ ) / _ ) _ \ / _ | | _ \ / _ ) | | | | |_| | | | | |_| ( (___| ( (/ / ( (/ /| | | ( ( | | | | | ( (/ / |_|_|_|\___/|_| |_|\___/ \____)_|\____) \____)_| |_|\_|| |_|_| |_|\____) (_____| MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. == Branches == "development" - the latest code "master" - the last 'stable' code i.e. If you want to check out the latest, grab "development." == Building == To build Monocle, use one of the included project files. If there is no project file for your platform, generate one automatically using Premake4. See: http://industriousone.com/premake Run: premake4.exe --help to see all options. Windows: Generate Windows project files with Premake4. To do this, you must download premake4.exe. Place it in your root Monocle-Engine directory. Then run it with commands through the Windows commandline. (cmd.exe) e.g. To generate project files for vs2010, including tests run: premake4.exe --testapp=all vs2010 in the Monocle-Engine root directory. The project files will show up in Build/gen-vs2010-All and Build/gen-vs2010-Monocle To run tests on Windows, make sure the project's working directory is set to: $(SolutionDir)..\..\..\Build\bin\ Mac OSX: You can use the XCode project file included. Make sure you're using XCode version 4 and that you have the shared Scheme selected. Linux: Generate makefiles with Premake4. They will show up in Build/gen-* Tests: Change premake4 commandline to build a project file with tests included. == Test Controls == Updated test controls coming soon...
It seems the domain expired.
monoclepowered.org
The Xcode project is broken. It references lua files that don't exist in the repository.
Monocle-Engine/Code/Colliders/CircleCollider.cpp:47: error: ‘fabs’ was not declared in this scope
Some #include is missing probably.
Can we compromise with something like this? It puts a requirement on the user to compile with a define though, which may not be an option.
I'm wondering if mantaining the low level platform specific input handling is a good idea or just a big source of problems. I totally appreciate the control that comes from this kind of independence but at the same time i'm worried about the fact that code is not heavily tested.
I'm asking if you think that some external, well tested lib can do the trick. OIS[0] seems to be a good candidate for this dirty job:
I could try to integrate this solution in Monocle Linux platform to explore the possibility, but i'd like to know your point of view first.
Emanuele
[0] Objec Oriented Input System: http://sourceforge.net/projects/wgois/
See title; things otherwise seem pretty OK on the 64-bit front. I don't know if 64-bit is a priority for you, but it surprised me when I saw the bug: the textures just have white backgrounds where there should be alpha.
I'm using nvidia's linux driver which reports my monitors as having a color depth of 24, which means the new default of 32 in the Game class can't find a compatible display from glXChooseVisual. Does a default of 24 break the Windows init, and if not, can the default be set to 24?
I've been trying to implement Monocle on the Mac and I've had a series of issues, which I decided to put in an issue, rather than pull requests, as I'm not sure how some of these would be addressed. Let me know your thoughts.
Mac OS X:
0) Be sure to use the git development branch, not the master.
premake4 --cc=gcc --os=macosx --platform=PLATFORM [BUILD_ACTION]
PLATFORM is x32, x64, universal, universal32, universal64, ps3 (experimental), xbox360 (experimental)
Also, to generate test applications (recommended for beginners/getting started with Monocle), append --testapp=all to the install
These are the available BUILD_ACTIONs:
clean Remove all binaries and generated files
xcode3 Generate Apple Xcode 3 project files
xcode4 Generate Apple Xcode 4 project files
For example, on OSX, an example install would be
premake4 --cc=gcc --os=macosx --platform=x64 --testapp=all xcode4 ```
(if you have a 32-bit Mac, then use --platform=x32)
The files will appear in Build/gen-xcode4-all
To get the content into the location where the samples expect it, you have a couple of steps;
With Xcode 4.3.2 and 4.3.3, there is a incompatibility in Premake that sets the SDK incorrectly. If you get hundreds of errors starting with " is not found", then change the SDK from "Current Mac OS" to "Latest Mac OS X …" (Select Monocle project, then MonocleCore Target, then Build Settings, then change Base SDK value.) Alternatively, you can use a temporarily forked version that fixes this issue at https://github.com/erwincoumans/premake-dev-iphone-xcode4/downloads
There is also an issue where Premake is loading the libraries from the production /Library/Frameworks//OpenAL.framework/OpenAL instead of the developer SDKs. This can be a problem if you have changed your frameworks (e.g. installed certain graphics software). The symptom is crashing on OpenAL calls. To fix, just add the appropriate framework to your project (either inside Xcode or your /Developer folder).
If you get an error msg about base_ios.tcc, then you're running into a compatibility issue between C98, 03 and 11. The monocle source assume 03, but Xcode only provides 98 and 11. Reference:
http://stackoverflow.com/questions/7964360/using-stdshared-ptr-with-clang-and-libstdc.
The easiest workaround is to disable the ability to log to a file, leaving the console. Find the line
Debug::DebugOutStream Debug::outStream = Debug::DebugOutStream();
and change to:
Debug::DebugOutStream Debug::outStream;
(this occurred during commit 1ac9806)
There is a typo in OpenGLTextureAsset.cpp, which is specific to the mac version. Look for the line:
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA8, width, height, format->glPixFormat, GL_UNSIGNED_BYTE, data);
and change fmt.glPixFormat
to format->glPixFormat
This occurred during pull request 110, commit 31baa48
There is an incompatibility error in Debug.cpp, where logOut.open
is being called with filename, which is a std::string
, but open expects a char *
. I confess that I'm unclear how this would compile on any platform. I fixed my copy with
char *cfilename = strdup(filename.c_str());
logOut.open(filename);
but I'm not clear if that will work on other platforms
There are many other warnings from the compiler:
Once you get it running, Monocle is one heck of a great engine, but right now the install process is a bit rough. I'm happy to submit the obvious ones above as pull requests, but I wanted to see if you had any thoughts first.
Destructors of derived classes won't be called if deleted from an Entity*.
Patch is at https://gist.github.com/982009, but it's only a word long. There are probably other candidates for this change, too.
I expected KEY_QUOTE to be the ' character on the keyboard, but that is incorrect in my case. The linux platform implementation binds XK_quotedbl to that key, but the value that works for ' is XK_apostrophe.
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.