SFML vs Construct 2
When comparing SFML vs Construct 2, the Slant community recommends Construct 2 for most people. In the question“What are the best 2D game engines?” Construct 2 is ranked 13th while SFML is ranked 35th. The most important reason people chose Construct 2 is:
Construct 2 is fast to pick up, get into, and belt out some pretty impressive games in a relatively small amount of time. Seems to be built for people who don't have a lot of programming skills, but want to make great games.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Very efficient and usable
Pro Zlib/PNG license
In short, SFML is free for any use (commercial or personal, proprietary or open-source). You can use SFML in your project without any restriction. You can even omit to mention that you use SFML -- although it would be appreciated.
Pro Can be combined with OpenGL
If you hate something about the way SFML handles graphics, you can just combine it with OpenGL. It's completely smooth and works as expected, without any additional dependencies.
Pro Active community and wiki
You can ask questions on their own personal forum which is full of users, and their wiki is constantly being maintained. They even have an IRC.
Pro Works on every platform
SFML 2.2 brought forth Android & iOS functionality, and SFML games work on Linux, Mac and Windows out of the box, since SFML is written with OpenGL.
Pro Great documentation
SFML is very well documented, even with short examples of use for many functions and modules. Furthermore, there are books like 'SFML essentials' and 'SFML for game development' which teach you how to use this library to its fullest.
Pro Good for OpenGL
If you are thinking about using OpenGL, look no further, you can open a window, and handle events in less than 15 lines, and it provides input, time, and even networking, plus alot more. It has become my favorite c++ library :D
Pro Great library
SFML is a collection of modular, well designed libraries you can implement an engine or game on top of. The API provides tons of good documentation and is very straightforward to use. You can get a game up and running with SFML quite quickly and with minimal effort.
Pro Clean code
An SFML project's code-base is usually clean and easy to read. All public SFML classes are under the namespace "sf" so it is easy to tell which code is yours and which belongs to SFML (of course you can stop this by typing using namespace sf;
).
Pro Available in many languages
There's support for many languages besides C++, current supported languages are: C, .NET, Crystal, D, Euphoria, Go, Java, Julia, Nim, OCaml, Pascal, Python, Ruby and Rust, and this list is constantly growing.
Pro Beginner-friendly
SFML is extremely beginner friendly and even provides pre-built libraries for your IDE of choice on Windows. Besides the fact that it's extremely well documented, they also have a set of tutorials that walk you through every module.
Pro Modern C++11 implementation
SFML is one of the few good C++ frameworks out there to actually make full use of the language. It's extremely well optimized and it plays well with anything you throw at it.
Pro Quick to pick up
Construct 2 is fast to pick up, get into, and belt out some pretty impressive games in a relatively small amount of time. Seems to be built for people who don't have a lot of programming skills, but want to make great games.
Pro Simplicity - it is made for everybody to use and love
Construct 2 is a tool for not just programmers, but artists as well. You can create a game with only visual coding, which is easy to learn and doesn't require any previous programming knowledge. You can focus on making your game better instead of just coding. It has some limitations of course, but it's definitely worth it.
Pro Little programming knowledge needed
Using Construct 2 requires very little programming knowledge because it's all drag'n'drop, intuitive, visual and event-driven instead of code-only.
Pro Built-in physics system
Thanks to the great power of Erin Catto's Box2D, Construct 2 is able to make physics games which are similar to Cut the Rope and Angry Birds.
Pro Cordova support
You can use Cordova plugins from the community
Pro In-depth event system
Construct 2's event system allows for deep, detailed control over all aspects of your game. You aren't limited to just a few options. Rather, Scirra has thought of nearly everything in advance with access to any desired parameter of any object all paired with simple and intuitive ways to interact with them.
Your events can be organized with event sheets (that can be included in other sheets), event groups, sub-events, loops, and functions that make the coding portion of your game as efficient as possible. You don't need any programming knowledge, but if you do have some, you'll feel right at home with the freedom C2 offers.
Pro Supportive community
Construct 2 has a supportive community. Their forums have tens of thousands of topics with ten times more posts. The core maintainers are very helpful and friendly and often reply to questions or issues that may be discussed in the forums.
Pro Easy to create particles and animations
With spriter file implementation and internal animation editor Construct 2 provides an easy way of creating particles and animations.
Pro Free (feature limited) version available
A free version of Construct 2 is available. It's not time restricted in any way, but is feature limited.
Pro Active plugin ecosystem
Construct 2 has an active plugin ecosystem providing behaviors and features that smooth the workflow for certain game types.
Pro Export control for all major platforms
All platform exporters are part of the subscription. There are no additional fees and new exporters are added quickly and maintained well. Currently, 15 platforms are supported, including HMTL 5, iOS, Android, Windows, Chrome Store, PhoneGap and Scirra.
Pro Built in behaviors make development workflows very efficient
Behaviors add pre-packaged functionality to object types.
Pro Very fast preview
In Construct 2 you can preview your games instantly at any time. There’s no need to wait for compiling or other time consuming processes.
Pro Available on Steam
You can also download Construct 2 on Steam.
Pro One-off cost
It's a one off cost for Construct 2 and all updates to the Construct 2 editor are free for life.
Pro Supports camera, microphone, speech recognition and synthesis
Can use cameras in PCs and on mobiles. You can use the synthesis that can recognize your speech or you can write something and it can talk for you.
Pro Interface similar to that of MS office
This engine provides an intuitive workflow for people that are used to the Windows environment.
Pro Runs great on mobile
Performs well on most devices and browsers.
Pro Rapid development
After using a few quick tutorials you can quickly catch on to the event system this program uses and quickly be able to build any type of 2D game you want. You can download a few sprites from google and put together a working level of Mega Man with character movement / animation / enemies / collision detection / scoring / Tile map and AI within about 2 hours.
The built in behaviors are incredible. It's amazing how Construct can simplify the most redundant tasks in game development.
Pro Allow server-less multiplayer game creation
Construct 2 uses WebRTC technology to support it's multiplayer functionality. The nature of the technology allows peer-to-peer connection which does not require game developer to create server side architecture to allow communication between games.
Pro Supportive devs
The developers are always available to help.
Pro Built-in animation/image editor
Basic sprites and tiles of 2D games can be made with engine's built-in tools.
Pro Built-in pathfinding
Has built-in solutions for pathfinding.
Pro Built-in tilemap object
The tilemap object allows tile-based games to be designed more easily. The object's tilemap can also be edited in the layout view using the tilemap bar.
Cons
Con Relatively slow
Compared to SDL2, GLFW, it is slow.
Con No GUI editor or IDE
Does not include any IDE or media editor. It's purely source code.
Con May take longer to learn and understand
Con Messy sprite management
Sprites retain all of the operations applied to them, whether that be a new position or a rotation. This makes sprite management somewhat annoying.
Con Not specifically a 2D game engine
It isn't really an engine, more of a collection of modular, well designed libraries you can implement an engine or game on top of.
Con Poor mobile performance
Construct 2 is focused on Javascript. Javascript isn't as fast as native code, which results in poor performance on mobile.
Con Free version is severely limited
Although a free version of the engine is available, it lacks features that are essential to creating a high quality product.
Con The editor is Windows only
Although Construct 2 is able to export projects to Windows, OS X and Linux, the program itself currently only runs on Windows.
Con HTML5 is very dependent on browser performance
Theoretically all browsers should run HTML5 pretty much the same way, but thats not always the case.
Something that worked fine on Chrome, for instance, might malfunction on Firefox (or vice versa). And there's nothing the devs of Construct 2 can really do about it, but to hope next Firefox update might fix it. Internet Explorer is not even recommended.
Add to that the fact that exporting to mobile or desktops rely on these sort of stripped down versions of web browsers (Node webkit, Crosswalk, Ejecta) that you pack with your game, and you can have a real headache if you're trying to make your game work properly through multiple platforms.
Con Does not export to native mobile code
Construct 2 builds to HTML 5 only, which can cause performance issues on mobile devices depending on the HTML5 engine that the OS is using since that will be the biggest bottleneck. Even though it's not really the engine's fault, it still is at a disadvantage compared to native game engines.
Con Discontinued as of July 2021, in favor of Construct 3
Construct 2 licenses cannot be bought anymore since July 2020, and support has ended on July 1st 2021 with the release of the final r280 version (see here). Existing customers can still use the game engine, but it will no longer be updated.
Con Clickteam Fusion Clone
This is a copy of the Clickteam softwares
Con Dependency on 3rd parties for all exports
Unless you are creating a game strictly for browser/HTML5 usage, exporting to desktop or mobile is risky, as Scirra have no control over your final export quality. Since desktop uses NodeWebkit and mobile is Crosswalk, Phonegap or CocoonJS there is no guarantee that your final export performance and quality will be up to scratch for pro level 2d games. These 3rd party "browser wrappers" are very prone to breaking and introducing lag and bugs that can't be controlled from Scirra's side.
Con HTML5 Only is extremely limiting
If the software could export natively to mobile devices and PC/Mac/Linux it would be extremely powerful. The developer's choice of sticking to only HTML5 has created a bottleneck for anyone wanting to develop with this software.
Con Tilemap object could be better
C2 requires that there's a tilemap objects for each tilemap layer meaning each tilemap object has to be updated when modifying any layer. This could be simplified by adding layer support for tilemap objects.
Con Buggy
Experience regular crashes and inexplicable project file corruption.
Con Unreliable access to online resources
Unreliable access to online resources such as online tutorials and forums, plus extremely outdated offline manual.