Whilst a lot of people find programming to be a stimulating activity, for others, traditional programming can be very intimidating; needing to remember what seems like arcane symbology, and seemingly endless streams of specific keywords into an editor can be very off-putting. As many of us know, this actually gets easier with practice and soon becomes a less daunting task, but fortunately for those who struggle, there are other options available.
Many modern game engines offer different types of visual interface with which you can set up an environment and characters, and input the logic required to turn those pieces into a functioning game. In this article, I aim to give a brief overview of some of the currently available options for creating games without traditional programming. This list will not be exhaustive, but instead, aim to cover a few of the more popular and capable options, and I will leave it as an exercise for the reader to further research those options and choose what may be most suitable for their own goals.
Features and prices listed are current at the time of writing in October 2018. Many of the options presented offer free trials, which I would encourage you to try out before spending your hard earned money -- in the case that no trial is available I would suggest checking out some written and video tutorials of the software to see if it looks like something you could understand and work with, as well as some games made with the software to see if it may be able to create the types of games you have in mind.
The first option I'm going to introduce is a simpler one suitable for introducing programming to younger would-be developers and is more limited in its capabilities, so if you're interested in more complex options please don't be put off and keep scrolling to the following items. Below the list of options you'll find a few thoughts on visual systems.
Scratch is a freely available programming environment created by the Lifelong Kindergarten Group at MIT Media Lab, and allows you to create games, interactive stories, and animations. There is also an active online community of people sharing their creations and giving positive feedback. Programming in Scratch is done by snapping building blocks together to input your logic, and although it's usable by people of all ages and abilities it's specially designed for younger learners ages 8 to 16. Scratch works right in the web browser via the Flash plugin, so there are also no large downloads. If you prefer working offline, there is also a downloadable version available.
Honestly, you're not going to create a smash hit video game with Scratch, but it's the perfect introduction for a child with an interest and may be a valuable starting point for people who find other systems intimidating. Working with the visual system in scratch will encourage logical, structured thinking that can be applied to more complex systems or even to traditional programming at a later stage, and although it's fairly basic children will be excited to see and play with their own creations. You can view (and play with!) some projects created with Scratch in the Explore section of their community. Note that while you can share and play your creations with the Scratch community, but won't be able to deploy to other platforms such as mobile, consoles, etc.
Game Maker is a popular option amongst hobbyist and indie developers and is able to create games for a wide variety of platforms including mobile and many of the consoles. The engine has only rudimentary 3d capabilities and is not intended for making 3d games, but is very capable when it comes to 2d. A number of very successful games including Hyper Light Drifter, Hotline Miami, Risk of Rain, Nuclear Throne and more have been created with Game Maker. Check out the Game Maker Showcase for examples of what the engine is capable of.
Developers can use a simplified programming language called GML (Game Maker Language), or with a visual "drag and drop" system, and almost anything that can be done with GML can also be done with drag and drop -- albeit sometimes it might be a bit more clunky. As a popular engine, you'll find plenty of tutorials (including lengthy series of officially provided video tutorials), sample projects, and people willing to help with learning and creating your projects.
You can get started with an unlimited free trial, and publish to additional platforms with a yearly subscription starting from US$39/year for Windows, up to US$1500/year for all available platforms.
Construct is a browser-based game engine that allows you to create games with a visual editor - in fact, in this case, programming is not even an option. Games are created by applying and configuring "behaviours", and by using a visual "event sheet" that runs commands in order, and you are able to create most types of 2d game. Because the editor runs in a browser you can create your game from any platform with a suitable browser, including mobile -- although you'll find it awkward to work with on a smaller screen. A downloadable version is also available, and many functions of the editor are able to work offline.
Note that Construct is strictly a HTML5 engine, so exports for other platforms are provided via wrappers -- essentially packing your game up with a cut-down web browser to create an executable for the platform in question. Their is an active community using the software, and plenty of tutorials and examples available to help you get started. A free trial is available with some limitations, with full features available via subscription starting at US$99/year for a personal license or US$149/year for a business license (which you'll probably want if you're planning to monetize).
Stencyl is another visual editor aimed at creating 2d games, and able to publish to a range of platforms. Stencyl's editor uses logic blocks similar to those available in Scratch, but also allows more advanced users to write some code if they wish to do so. You can view some games created with Stencyl is the showcase. Stencyl seems to have a slightly less active community than some other options, but there is some help available, and plenty of tutorials. Some of the tutorials seem to be for previous versions of the software.
Unity + PlayMaker
Unity is an incredibly popular and very capable engine that can be used to create great games. By itself, Unity doesn't provide visual scripting capabilities (programming is done with the C# programming language), but a third party add-on called PlayMaker comes to the rescue by adding a visual system and allowing developers to create games without writing code. PlayMaker will currently set you back US$45.50 (or cheaper with a Unity Plus or Pro subscription).
PlayMaker games are created with a flow-based system that involves toggling settings on nodes, which you connect in different orders to achieve the desired behaviour. You will find PlayMaker more limiting than programming Unity with C#, but the experience you gain with the visual system may encourage you to try to C# and give you some fundamental logical thinking skills to build upon.
Unreal is another popular engine used by professional developers. In this case, a visual system is built into the engine in the form of Blueprints, intended to allow non-coding designers to work with the engine and create interactive content. You can get started using Unreal with no upfront cost, and pay just 5% of your game's earnings once you surpass a certain threshold. Like many of the other options, there is an active community using Unreal, and plenty of tutorial content available, although most users do the majority of their Unreal development via C++ programming, with Blueprints used by non-coding team members.
Are There Limitations?
Honestly, yes. Just as those using an engine might find themselves more limited than those developing their game "from scratch", you will often find that visual systems are more limited than traditional development. Some things may be difficult or more time-consuming to implement in a visual editor, or if the creator hasn't exposed some data or a function you need your idea may be impossible.
However, many find these options to be more approachable, and some very impressive and successful games have been created using them. Just be sure to do your due diligence about any limitations you might face before spending money hoping to create your dream game.
The above are just a few of the popular options that can allow you to create games without traditional programming, but there are other options available if you're willing to do some further research. Some others you might wish to look in to include GameSalad, RPG Maker, Unity + uScript Professional, Buildbox (,I found this editor to be especially limiting), and more.
Why Do I Keep Calling It "Traditional Programming"?
You may have noticed I keep saying "traditional programming" rather than just "programming". Some people don't consider visual systems like those provided by the engines above to be programming, but I would disagree. Wikipedia describes programming as:
...the process of designing and building an executable computer program for accomplishing a specific computing task.
and goes on to say:
Programming involves tasks such as analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms in a chosen programming language (commonly referred to as coding).
The purpose of programming is to find a sequence of instructions that will automate the performance of a task for solving a given problem.
I would argue that you are still doing the same task with a visual system, just via a different input method where you join blocks (or whatever the system in question provides) rather than typing special keywords. Although some people find this type of visual programming less intimidating and easier to understand, you'll find that you're developing the same skills of logical thinking, planning out solutions, and finding (hopefully elegant) solutions. After some time with visual systems, you may find the concepts used in traditional programming more familiar and approachable.
There are numerous options available to create games without traditional programming, and with the right selection you can likely find something capable of the type of games you wish to create. Remember to research your options carefully, and don't be bothered by those who try to tell you it isn't "real game development". I hope the above list helps to get you started with finding a suitable option for your project.