Simplicity vs Complexity

Yesterday PC Gamer published an article entitled “No coding required: How new designers are using GameMaker to create indie smash hits”. The article discusses how several recent indie this were made in GameMaker, which allows either a drag-and-drop interface to specifying behaviour, or program code. Tom Francis, creator of Gunpoint, explains that the drag-and-drop interface allowed him to ease in to game making [transitioning from critic to creator]:

“The cool thing for me is I wasn’t confident enough to start coding, and so I was able to use these drag-and-drop actions to define how I wanted things to work on a very basic level.”

This idea of having a simpler layer than programming has occurred several times before in educational systems, such as flowchart-based programming systems (like the original Lego Mindstorms interface). The Unreal Engine Blueprint system mentioned in the article is another example. However, I think the most telling quote comes later on, again from Francis:

“Now I work entirely in code, and the drag-and-drop interface is, at best, a way of organizing code. But even for that I’m starting to think it might be better to just write it all in text.”

Computer science is often characterised as the fight against complexity. Structured programming is the best weapon for the fight; professional program-creation tools all use text-based structured programming, and even the most successful systems for younger ages (Scratch and co) use structured programming with a tweaked interface. The idea of easing in via another interface is interesting, and clearly worked for some GameMaker users. These simpler interfaces can work for simple programs, but as complexity increases, nothing has yet beaten structured programming.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s