Thursday, 4 February 2016

Procedural Programming - Introduction/The Principles of Procedural Programming.

Through this unit I have been tasked with creating my own Assault course, or gauntlet if you will, in Unreal Engine 4 using procedural programming methods provided through the blueprints within.
To be successful in this task I must first gain an understanding of the principles of procedural programming.

Procedural programming is a programming paradigm, a term used simply to describe the way in which a program or application is written. At its core, procedural programming has the aim of keeping the code as concisely written as possible, to aid this even further some coders physically write the intended code out using a more logical path of thought, giving themselves a plan to follow, this can help not only coders who have dealt with procedural programming for a long time, but especially people new to the system.

The programming paradigm is built around the structuring of a sequence of linear commands and as I will be using Unreal Engine 4’s blueprinting system through this project, I can take advantage of the implementation of the code into a very user friendly interface to make coding easier. Coupled with this I will be using and comparing my blueprints with Pseudo code, which entails the aforementioned writing out of the coding or blueprints, allowing me to become acquainted with programming through potentially plain English.

As I have already started coding in some capacity before beginning this blog, I feel understanding pseudo code will be somewhat simple for me to understand, in the sense that writing out any exact event with happenings consequential of that even to be triggered one after the other will make more sense than diving into coding and not entirely understanding what certain nodes, events or functions actually do.

Having used Unreal Development Kit prior to using Unreal 4 I have had some minimal experience in the animation of meshes via coding strings, and so some event instances and function strings thereafter I have encountered before.
In the implementation of pseudo code, I will be creating a numbered list of nodes which I will be using to simply generate an outcome, though the list may vary from event to event, for example;

To assign a mesh to swing on a pivot upon a trigger box being entered;
  • On Actor Begin Overlap
  • Play
    • Target – MatineeActor
  • Set Looping
  • Delay
  • Revert to play

To remotely trigger a simulation of physics in-engine;
  • On Actor Begin Overlap
  • Delay
  • Set Simulate Physics
    • Target – Mesh

Ultimately, pseudo code and procedural programming within blueprints feels like a much neater method to coding than anything I may have imagined before, having envisaged a coder sat in front of a screen of nothing but text. This will inevitably help me in making less mistakes as I go and allowing me to keep the coding as uniform as is necessary throughout, knowing where everything is placed through the coding and the user interface linking as one.

Whilst I am sure there are still 'screens of text' occurrences frequently in the games design industry, I feel more confident in my own abilities knowing that I have tackled some very basic features similar to this in the past, and knowing I’ll come out of this project having a lot more knowledge of coding.
I am sure there are flaws within my listings and this is one thing I am to learn to implement correctly through this unit, with this in place I hope to be able to effectively procedurally program a level myself, something which will benefit me greatly going forward if I were to independently create a game, or begin work within a small team in which extra coding work was necessary.


This blog will be updated with each session to keep tabs on my progress for my own future knowledge, and to serve as a point of reference as to how far I have progressed.