When comparing BlitzMax vs ct.js, the Slant community recommends BlitzMax for most people. In the question“What are the best 2D game engines?” BlitzMax is ranked 52nd while ct.js is ranked 55th. The most important reason people chose BlitzMax is:
You can compile on Windows, Mac and Linux. Nothing to change. There are solutions to compile on the same machine for 2 targets.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Multi target
You can compile on Windows, Mac and Linux. Nothing to change. There are solutions to compile on the same machine for 2 targets.
Pro Modular
There are many modules to extend the features of the language: you can create PDF (via a Cairo module), or just download/upload files (via LibCurl), playing streaming sound (via BASS) and so on (databases, xml, xls...) User can create their own module (they could be written in plain BlitzMax)
Pro Easy syntax
Based on BASIC syntax. Supports OOP, collections (array, list and map)
Pro Stable language and source code
After many years the language it self is very stable. The packages contains the source code of ALL modules (excluding the source of the compiler).
Pro Easy to start, high productivity
BlitzMax is just ready after the installation. Open the IDE, write your code and just press F5 to see the results. You don't need to install other things to use the language. Of course if you want to change the language itself - or modules - you need to install MinGW or other libs, but guidelines are provided and easy to follow.
Pro Fast compiler
With comparison to the some of the other languages Blitzmax compiles source files fast enough.
Pro Compiles to native code
Good performance thanks to native code on each of the target platforms.
Pro Garbage collected language
The language is garbage collected in two modes: reference counting or using the Boehm-Demers-Weiser conservative garbage collector.
Pro GUI for apps
BlitzMax provides the MaxGUI modules that allow to build GUI desktop applications for Windows, Mac and Linux (FLTK or GTK via a module). You also could create your own 'gadgets'.
Pro Great community support
the forum is plenty of examples and solutions! Community is strong and still working, available for getting an hand
Pro BLIde
BLIde is an integrated development environment for Blitz Max, designed to work very close to the project file management performed by BlitzMax engine.
It’s inspired by the .NET IDE and some other great tools, It’s been designed for hobbyist and professional coders.
Pro Beginner-friendly
ct.js is bundled with examples, docs, and easy to follow tutorials. Documentation and tutorials are available in a side panel on every screen.
Pro Skeletal animations with DragonBones support
You can import skeletal sprites and animations from DragonBones, which is also free. Skeletal animations are added to objects through code; developers can listen to marked events in animation, and ct.js automatically associates sounds in a DragonBones project with the game's assets.
Pro Good code editor
The built-in code editor comes with error checking, type checks, code completions accompanied with docs, multiple cursors support, and other modern features.
Pro Open source (MIT)
This means that no one will ever put any features behind a paywall and that you can reliably use ct.js in any projects without worrying about licensing. And you can hack on ct.js!
The repo is at https://github.com/ct-js/ct-js
Pro Tileset support
ct.js supports tiles in rooms, including collision checks and some extra editor tools, like bulk migration to a new tile layer or shifting by an exact value.
Pro WebGL and WebGL2 support
Starting with v1.0.0-next-1, you can now write WebGL games. WebGL support is based on Pixi.js.
Pro Modular approach
ct.js has a "Core" library that provides basic drawing functions, room and asset management, and mouse interactions. Any other functions are added to projects as "catmods", or simply modules. These modules can be enabled or disabled in one click, and can inject their code in different game loop stages, e.g. after drawing all the objects, leaving a room, or when a new object is created.
Pro Applicable to most genres
ct.js aims to be a general game engine and provides tools in making games of any genre.
Pro Dialogue and visual novel system with support for Yarn
A module ct.yarn allows developers to import a YarnSpinner project to create branching, data-driven dialogues and visual novels. An example is also bundled with ct.js.
The dialogue tree is made in a separate app, though.
Pro Real-time particle system editor
v1.3 brings a particle system editor, which displays a preview sprite for proper attachment of emitter to visual elements, and allows combining more than one emitter with different particles into one effect. With these, even the creation of complex, multi-step effects becomes easy. The editor comes with dozens ready-made textures for faster prototyping.
Cons
Con Outdated and abandoned
The author neglected BlitzMax and works on Monkey2.
Con No mobile targets
Only desktop targets available: Windows, MacOS, Linux.
Con Tile editing is a chore
No live brushes with automatic corner drawing, no fills or rectangular/linear placement. All tiles should be placed by hand, with a "Shift" key to place multiple tiles at once. This will make you ragequit if you want to make sophisticated RPG scenes :D
Con Slower than native games
JavaScript and WebGL are fast, but they will always lose in performance if compared to native games, so it may be a bad choice for graphics-heavy games.
