MirthKit's Features
From MirthKit
[edit] Feature List
[edit] Transparent HTTP Download of Source and Assets
In every place you could provide a filepath in MirthKit's API, you can instead provide a URL. The file at that URL will be downloaded with no assistance. This feature is smart too; it will only download the same URL once, unless there is a newer version.
What this means is that your entire game can be hosted online and referenced to. If you ever update your game, the update will happen transparently and automatically on every machine that plays it. Users won't even have a pop-up dialog to update the game.
[edit] Games Automatically Work on Windows, Mac, and Linux
Because with MirthKit a game's code is distributed in source format and isn't compiled to machine code, you only need to develop one version of your game and it will work the exact same on every platform supported by MirthKit.
[edit] Built-in Commercial Publishing Including Credit Card Processing
If you plan to sell your game, you won't need to worry about how it is sold. Your game will appear on the MirthKit Arcade, which is the arcade/game-list application included in the normal distribution of MirthKit.
[edit] Language Similar to Java/C/C++
MirthKit's Language, Squirrel, is very similar in syntax to Java, C, and C++. Developers accustomed to those languages will find few caveats in switching to Squirrel. Additionally, developers familiar with Python, Lua, Actionscript, Ruby, and PHP will find that after noticing the differences in syntax, Squirrel's capabilities are extremely similar.
[edit] 2D Hardware-Accelerated Graphics
The graphics in MirthKit make use of a computer's dedicated graphics card via OpenGL. The result of this is lighting fast graphics including full alpha blending and special blending modes. MirthKit's API automates much of the normally complex functionality of graphics cards. There is no setup to start drawing, and most features only require a single function call.
[edit] PNG, JPEG, TIFF, and BMP Loading
Many image formats can be loaded using a sophisticated caching system. You never need to keep track of whether an image is already loaded, and you simply refer to an image using its filename or URL.
[edit] TTF Font Drawing
TTF is the most common standard for fonts. This means you can use your favorite font directly, with no special conversions. Internal font rendering is handled efficiently and edges are anti-aliased.
[edit] Music and Sound
2D Positional sound allows for extremely easy-to-use stereo output. Additionally, music compressed in OGG format can be played with a single function call, enhancing a game's experience.
[edit] Keyboard and Mouse Input
Keyboard and mouse input are handled in immediate mode, meaning that a developer queries an overall state of the keyboard and mouse, as opposed to having to keep track of notifications of changes as they happen. This means programming input responses requires dramatically less code.
The key input is also handled through a built-in binding system. As an example, its easy to set it so that whenever a player presses the 'T' key, MirthKit's API tells the game that the player pressed the 'T' key. Though a minor simplification, the built-in binding gives developers one less thing to worry about.
[edit] UDP Networking
Networking is left unwrapped so that developers can customize a system to the extremely different needs of multiplayer games. MMOs are even possible using MirthKit.
[edit] Persistent Local Storage
MirthKit provides a very simple and secure way to store and retrieve data on the local hard drive of a user. The system wraps a flat-file SQLite database, which efficiently handles paging, fragmentation, and batch-processing. In general, using SQLite means you don't need to worry as much about using the hard drive efficiently -- it worries about that for you.
[edit] Compression
Compression can create interesting new possibilities for sharing data in networking. MirthKit provides string to string compression via zlib and base64 encoding.
[edit] Encryption
Effectively using encryption can present interesting new multiplayer game design possibilities and can prevent cheating. MirthKit provides AES symmetric encryption, RSA asymmetric encryption, and SHA2 cryptographic hashing all with base64 encoded string output.
[edit] Ultra-simple GUI System
The minimalistic GUI system that is built into MirthKit makes it possible to write user interfaces with very little code. The system is stateless and uses no events, so UIs can be defined in a single inline block of code.
