Creativity in computing
No one likes buggy code, but what if not all bugs are bad? Kyle explores how being creative can be beneficial when coding.
Semantic bugs are errors in programming that do not produce error messages or stop the code from running. Instead, they perform in a way that deviates from your expectations, causing unexpected behaviours. As tedious as these can be to debug, maybe not all of them have to be fixed.
Being creative is a beneficial skill in programming, as not all problems have a common answer. Obviously, doing something that no one has done before is great, but the true power of creativity is from the problem solving and not the final product. Not only is it fun to try something new and fresh, you will most likely encounter problems, errors and even new coding techniques you’ve never used before; all of which makes you a better programmer even if your code becomes redundant or is not as cool as you thought it would be.
As my favourite game director Neil Druckmann said, and I’m paraphrasing here; “Take inspiration from other media, and not just from other video games.” If your only inspiration is video games, then you’ll always make something that’s very similar to everything else out there. This can be broadly taken in any aspect of Computer Science. Taking inspiration from other people’s code can help you gauge how you might want to approach your task and code your program but I feel it’s equally beneficial to break the boundaries, explore, and dare to dream. To see what you like the most from other areas and ask yourself “can I achieve this in code?”
The most unique and memorable experiences made in video games were inspired by television and film. These experiences are not replicas, in fact, it is most probably unobtainable to craft a similar experience in television (which is why, in my opinion, video game ‘film adaptations’ are rarely good). Combining the cinematic cuts and camera angles from film with the interaction and engagement you get from controlling a character gives you a more intimate relationship with that character and that world; as you are not just a passive observer but an active participant in the story. You can’t achieve that same level of intimacy in any other form of media, so look for things that you find unique in the real world and see if you can take the best aspects from them and pair it with some of the elements in your programs to hopefully enhance your work.
Back to the question I posed at the start. Can bugs actually be a good thing? During the development of ‘Rocket League’, which is a football game played by controlling cars, the developers, Psyonix, added a “boost” mechanic but ran into a strange bug where the boost could be activated mid-air; essentially allowing the player to fly in the air for as long as their boost lasted. Rather than fix the bug, they drew inspiration from it as it added complexity to the game, and rehashed the bug to be a fully functional feature within the game itself. The idea behind this is that creativity can be sparked during programming. If you allow yourself to be open and experimental with your code, you could stumble on new unique ideas, that are beneficial to your program, even if it wasn’t intended that way in the first place.
Creativity is always around us, and it’s something we can better learn to grasp and get the most out of. Staying curious and constantly asking “what if” questions is a great way to get the creative juices flowing. As Neil Druckmann alluded to, expand your horizons to let more aspects of life inspire and drive your creativity forward by not only opening your doors to new experiences, but being more flexible and open with your own code and the semantic errors that come along with it. Know that with any new ideas, new challenges will come up encouraging more ideas, as well as new innovative solutions that you might not have thought of beforehand. Being a better programmer comes from pushing yourself as well as pushing the technology we’re using. As coders we are always trying to make more innovative software, that better meets our needs or enhances our experiences, and that is achieved fundamentally through being creative.
So, break the boundaries, explore, and dare to dream.
Kyle studies BSc Computer Science in Malawi. To learn more about Kyle, listen to the World Class Podcast where we interview him.