When comparing Angel2D vs ct.js, the Slant community recommends ct.js for most people. In the question“What are the best 2D game engines?” ct.js is ranked 55th while Angel2D is ranked 90th. The most important reason people chose ct.js is:
ct.js is bundled with examples, docs, and easy to follow tutorials. Documentation and tutorials are available in a side panel on every screen.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Great for prototyping
The framework is focused on prototyping. It has plenty of features to speed up development. It has a console with a lua interpreter, tuning variables and function calls. GWEN is well supported. Provides a simple interface for Box2D. A simple messaging system with which entities can subscribe to to receive messsages among other things.
Pro Permissive licence and easy to extend
Angel2D is built with the idea that you the game developer should have control over the framework and be able to add features if you like. So the code is BSD-licenced and very easy to extend for anyone that has completed a basic C++ course or equivalent.
Pro Great performance
While Angel2D isn't the best performing framework out there it's certainly no slog when compared to competition. Simply by the virtue of being native it puts itself ahead of engines like Gamemaker and frameworks like Love2D.
Pro Simple interface to lua scripting
If you're not comfortable with a basic subset of C++ it is not recommended to use this framework. But the Lua scripting platform is very nice for generating actors.
Pro Very helpful and simple project set up for newcomers
Often with game engines they throw you into unfamiliar territory and let you explore for yourself. While this wouldn't be a big issue with Angel2D due to it being a very simple framework it kickstarts your game prototyping.
Pro Focused on providing convenient features
Angel was created with game jams in mind, so it's focused on providing as many convenient features as possible, but in a quickly understandable way.
Pro Cross platform
Angel can create games for Windows, the Mac, most flavors of Linux, and iOS. It uses the native build systems on each platform (Visual Studio, Xcode, Make), so you can be up and running as soon as possible.
Pro Low-level code is easily accessible
Low-level code that Angel wraps is always just an easy click away, ready to be overridden or improved.
Pro Very light wrapping on all of the libraries
A very important point that's often underestimated. This framework is designed to be removed. It's not there to provide a complete engine for you which you will have trouble moving away from. The basic interface to Box2D is very spartan. You're given the simplest of Box2D shapes, not even polygonal fixtures. This limitation (seems to be) there so that the integration with the engine is very low. You never create a physics actor with anything more complicated than an enum describing if it's supposed to be a sphere shape or box shape.
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 No asset pipeline
Unlike XNA/Monogame, Gamemaker or many other similar platforms, Angel2D doesn't have an asset pipeline. The extents of the asset importing is manually loading individual files in code or naming them according to a convention to load a set of them.
Con No longer supported
Hasn't been updated in 2 years.
Con Incomplete documentation
The entire framework is technically documented at http://docs.angel2d.com/ but certain functionality isn't described in there but rather it's just a list of functions. They all have descriptive names and it should be common to run into a feature which isn't given example to in the "Introgame"-project example.
Con Abandoned by developers
Sadly this project has been abandoned by the developer. The main github doesn't see any pull requests fulfilled anymore. There's a debugline draw fix on the github that's rather simple to fix. It is recommended you pull that fork rather than the master branch. Though the simplicity of the framework still makes it a good choice for prototyping.
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.