CRM64Pro GDK

CRM64Pro

Overview

CRM64Pro is a free cross-platform game development kit built on top of SDL3 and distributed under the zlib license, specifically designed to facilitate the creation of 2D games of various genres: Real time strategy, arcade, platform, shoot’em up, etc.

It is the successor to the CRM32Pro SDK and has been rebuilt from the ground up using all the knowledge and expertise gained from years of development. It is also known as the C64 library.

Development began in April 2013. The first public release was available in July 2016 and new versions have been released since then. It used SDL2 until July 2023, when it was migrated to the latest version of SDL3. It is still under development, but the pre-release version available is fairly stable, bug free and ready for production level development.

Full documentation is available, using the Doxygen tool, describing all the modules, interfaces and some basic usage examples. There are also some good finished applications (EditorC64) and games (Pac-Man Evolution) with full source code and documentation. If you still have any doubts or problems, you can contact us or use the forum where we provide support for all C64 users.

CRM64Pro CRM64Pro - EditorC64 CRM64Pro - Setup tool

Details

  • General:
    General
    • Developed in C++17 with optimized code paths using SSE/AVX where available.
    • High level API with all necessary functions to create 2D games.
    • Designed and structured in a clean and efficient way.
    • Available as a standard dynamic library and static versions useful for debugging purposes. The ABI is kept stable, so you can replace old versions with new ones to get bug fixes or increased performance.
    • The dynamic library can be used by other programming languages such as Java, Visual Basic, Delphi, etc.
    • A powerful resource manager (EditorC64) is included to facilitate the creation and modification of images, tiles, sprites, fonts, buttons, sounds, XML files, etc.
      Using this editor a standalone developer can create a game with standard resources and then, an graphic artist and/or musician can add the final resources themselves.
  • Main modules:
    Main
    • Powerful logging system.
    • Performance measure system (profiles and microbenchmarks).
    • Proprietary data package format (CDC) with optional security enhancements for all resources: graphics, sounds, fonts, etc.
    • Methods to prevent binary modification of executables files.
    • Full timing control with independent rates: rendering and logic.
    • Improved pseudo-random number generator (WELL512 and MWC).
    • Hashing algorithms based on xxHash (much more powerful than standard CRC32).
    • XML parser for reading, writing or editing external XML or embedded on the data package format.
    • Customized configuration system to create your own configuration software in a few steps or use the default layout allowing end users to change graphics and audio settings.
  • Graphics modules:
    Graphics
    • Very powerful tile engine (MSTE) that allows you to create almost any kind of 2D game.
      It supports import/export of TMX map files used with the amazing Tiled Map Editor.
    • Simple and efficient graphical user interface (GUI) supporting multilayers (panels) with text boxes, input boxes, normal buttons, checkboxes, radio buttons, progress bars and sliders.
    • Tile system supporting standard surface attributes such as alpha modulation, alpha per-pixel, color key and tilemaps.
    • Full sprite system supporting standard surface attributes plus animation with states.
    • [In development]: Support for Spine2D sprites.
    • Automatic smooth sprites movement using interpolation (“tweening“).
    • Image formats supported natively: BMP and PNG.
    • Scaled and rotated surfaces with optional anti-aliasing filter.
    • Customizable, simple and fast font system allowing any type of font to be used.
    • 7 image filters: noise, blur, negative, grey, black/white, wiggle and pixelate.
    • Graphic primitives: draw dots, lines, rectangles, etc
    • Supports different renderers backend:
      • Software.
      • OpenGL.
      • Direct3D 9.
      • Direct3D 11.
      • Direct3D 12.
      • X11.
  • Sound and music modules:
    Audio
    • Audio system with mono, stereo and surround support.
    • Special effects: panning,
    • Independent sound and music channels.
    • Supported audio formats:
      • Raw streams: WAV and VOC.
      • Compressed streams: FLAC, Ogg and MP3.
      • Modules: 669, abc, amf, ams, dbm, dmf, dsm, far, gdm, it, mdl, med, mid, mod, mt2, mtm, okt, pat, psm, ptm, st3m, stm, ult and xm,
  • Network module:
    Network
    • TCP/IP based with a server/client architecture.
    • Server can run as a standalone process or shared with a client and your code.
    • Server has two operating modes: non-authoritative mode (sent data is not processed by the server) or authoritative mode (sent data is processed by the server and it is accepted or denied).
    • Up to 16 clients with optional password login.
    • Secure transmission layer to prevent disclosure of information and any modification or hacking.
    • Stable and with full logging capabilities for debugging purposes.

Operating systems and compilers supported

  • Linux:
    Linux
    • Any x86 64bit Linux distribution based on kernel 2.6.x or later.
    • Uses the X11 libraries.
    • OpenGL 2.1 or later is recommended.
    • Uses the ALSA and PulseAudio audio drivers.
    • GNU C/C++ 11.x or later compiler.
  • macOS:
    MacOS X
    • macOS 11.7 or later.
    • Uses OpenGL 4.1 or later is recommended.
    • Uses the CoreAudio audio driver.
    • Clang++ 13.x or later compiler.
  • Windows:
    Windows
    • Any x86 64bit Windows version from 7 to 11.
    • DirectX 9.0 or later versions recommended.
    • OpenGL 2.1 or later versions are recommended.
    • Visual Studio 2022 or later versions.

Third-party libraries

CRM64Pro is built on top of SDL and other great open-source libraries. Some of these libraries have been slightly modified so the full source code with these updates is also included in the download section.

Download

Last version: v0.11.0 (24-Feb-2024)
ChangeLog | Roadmap | zlib license

Binaries
x86 64bits binaries for supported operating systems and compilers.
Documentation
Documentation and reference guide with detailed information.
Source code
Source code, projects and make files for VS2022+ and GNU C/C++ and third-party libraries.
Previous releases
Get access to all releases repository.