moon9
moon9 copied to clipboard
a game framework. warning: wip, dev, unstable, radiation hazard, defcon 3
Moon9
Moon9 is a collection of game oriented C++ frameworks. Warning: wip, dev, undocumented, unstable, radiation hazard, defcon 3
Supported Desktop Platforms
- Microsoft Windows XP, 7
Supported Mobile Platforms
- None :D
Supported compilers
- Microsoft Visual Studio 2012, 2013
Supported build systems
- CMake
Building instructions
- git clone https://github.com/r-lyeh/moon9
- cd moon9/.build
- cmake .. -G "Visual Studio 11" && root.sln && rem Most users want this
- cmake .. -G "NMake Makefiles" && nmake && rem My personal choice
- Also add -DCMAKE_BUILD_TYPE=Debug or -DCMAKE_BUILD_TYPE=Release flags as needed
Features
- To write
Roadmap for 'next' branch
- To write
Frameworks included
- moon9::debug
- moon9::hid *
- moon9::io
- moon9::math *
- moon9::memtracer
- moon9::os
- moon9::play
- moon9::render *
- moon9::spatial
- moon9::string
- moon9::test
- moon9::time
Libraries included
- moon9::alert, a popup alert dialog
- moon9::any, an opaque container library
- moon9::app, a few handy functions for any app
- moon9::arc4, ARC4 encryptor/decryptor
- moon9::base91, custom base91 encoder/decoder (XML friendly)
- moon9::binary, a data/size pair.
- moon9::bistring, a key/value pair.
- moon9::browse, an URL browser
- moon9::callback, a callback library
- moon9::callstack, shows/retrieves a (saved) call stack
- moon9::chdir, safe directory changer
- moon9::clipboard, a clipboard getter/setter
- moon9::component, a simple component library for modern game object composition pattern
- moon9::compress, compress memory blocks quickly. LZ4 library required.
- moon9::confirm, a yes/no confirm dialog
- moon9::demangle, a library to demangle mangled C++ symbols
- moon9::dialog, a file pickup dialog
- moon9::directives, compiler/os directives header
- moon9::dll, a dynamic library loader/caller
- moon9::dollar, simple string interpolation and string casting macros
- moon9::dt, measure time diff in seconds
- moon9::endian, a few handy functions to handle endianness
- moon9::environment, an environment getter/setter
- moon9::error, human readable os errors
- moon9::event, a simple event library
- moon9::factory, a lightweight abstract factory
- moon9::file, handy file class(es).
- moon9::format, C-formatted C++ standard string
- moon9::font, render truetype fonts
- moon9::font::system, locate system fonts
- moon9::fsm, a safe finite state machine implementation
- moon9::hash, uniform hash class; provides interface for CRC32, GCRC, RS, JS, PJW, ELF, BKDR, SBDM, DJB, DJB2, BP, FNV, AP, BJ1, MH2, SHA1
- moon9::headers, platform specific OS headers
- moon9::http, HTTP interface.
- moon9::id, compile-time string to id (size_t) conversion
- moon9::is_debug, handy is_debug boolean flag
- moon9::is_release, handy is_release boolean flag
- moon9::keycodes, portable keyboard codes
- moon9::markov, procedural strings generator based on a few examples
- moon9::module, a lightweight game module state manager
- moon9::multinmap, a simple any-key/value multimap
- moon9::mutex, an improved mutex class
- moon9::nmap, a simple any-key/value map
- moon9::netstring, a netstring serializer.
- moon9::obj, an dynamic/agnostic/serializable object class for POD data
- moon9::pak, a package archiver. Miniz library required.
- moon9::pod, a few safe zero-init pod types
- moon9::prompt, a string prompt dialog
- moon9::roman, integer to roman library
- moon9::signal, signal/wait coroutines made easy
- moon9::sleep, sleep a thread for given seconds
- moon9::stream, attach/detach loggers to ostreams. Also create ostreams.
- moon9::string, extended C++ standard string
- moon9::tcp, TCP based client/server.
- moon9::tree,
- moon9::trie, string autocompletion
- moon9::types, abstract and portable HID types
- moon9::types, hopefully portable types
- moon9::udp, UDP based client/server. ENet library required.
- moon9::unicode, vector of unicode codepoints
- moon9::wink, sleep a thread for shortest time
Bug Reporting and Feature Requests
If you find a bug in a Sample, or have an enhancement request, simply file an Issue and send a message (via github messages) to the Committers to the project to let them know that you have filed an Issue.
License
The project is open sourced under the zlib/libpng license.
Disclaimer
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.
