Moon9 is a collection of game oriented C++ frameworks. Warning: wip, dev, undocumented, unstable, radiation hazard, defcon 3
- Microsoft Windows XP, 7
- None :D
- Microsoft Visual Studio 2012, 2013
- CMake
- 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
- To write
- To write
- moon9::debug
- moon9::hid *
- moon9::io
- moon9::math *
- moon9::memtracer
- moon9::os
- moon9::play
- moon9::render *
- moon9::spatial
- moon9::string
- moon9::test
- moon9::time
- 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
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.
The project is open sourced under the zlib/libpng license.
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.