Scientific Research in Game Engine Architecture?
By Kaitlin Logie, 17th November 2016.
What is a Game Engine?
A game engine is a software framework that is designed for the development of video games. Developers use game engines to develop video games for computers, consoles and mobile devices. Typically game engines provide access to the use of a rendering engine (for 2D or 3D graphics) and a physics engines (to mimic real life physical collisions and gravity). Game engines also provide audio, scripting, networking and animation support! These tools are provided normally in an integrated development environment (IDE) that acts as a graphic user interface, allowing the programmer to interact with “game objects” directly. A game engine is essentially a suite of visualisation tools which in my opinion can be extremely useful for research as well as being the core of game development.
(image by Erika Tschinkel)
How can this apply to my research though?
Not only are game engines a strong, robust architecture of reusable components, they are also an excellent tool for developing simulations and for further potential applications in Virtual Reality! Most game engines provide platform abstraction, allowing your simulation to be portable across many different devices!
(image by Through the other-side)
- Game engines work on a frame by frame basis, which essentially gives you a movie that you can interact with!
- Applications in research are ever growing. Not only are you able to visualise data graphically in this way, you can actively manipulate it in real time, if you have scripted for it.
- Scripting is an easy skill to pick up, there are many scripts available online for many different kinds of behaviours (bouncing, twisting, controller application, voice recognition, etc.) available open source and online.
- Game engines essentially allow research in REAL TIME. Leading to faster break throughs and cheaper source of simulation tools!
- Used alongside 3D modellers such as blender to render detailed frames, the visualisation of data can be extremely detailed and legitimised.
- For example, rendering the intensity of a variable (e.g. Temperature) over a map of the world graphically (e.g. colour, pattern, etc.), then being able to interact with it in real time, in ways that are completely unique to your personal scripts and applications.
(image by Andre Mariano)
What previous knowledge do i need to obtain before diving into the world of Game Engines?
Now, this is not a tool to be used from scratch. There are many different issues you may face when trying to use a game engine to visualise your research data. But for every issue you have, there will be 100 more people with the same issue, and collaboration online is your best friend when dealing with these issues.
- File format. The format of your data and how you pass that into the game engine framework is extremely important and can be quite tricky depending on size. There are many tools online to help you overcome this.
- How many frames do you need to render (if you are using a 3D model)? Will your computer be able to handle the workload?
- What format do you want to “build” your software to? Mac? Windows? Android?
- Scripting will benefit from a basic knowledge of how to go about solving problems with programming, even if it’s just basic Python or something similar. Google is your best friend when it comes to scripting! However it is not a hard skill to pick up with little back ground in programming.
- Size of your final “game”. This can be excessive, and the user needs to be prepared for this.
(image by Nathanael Coyne)
Despite these potential obstacles you may have, I personally believe that game engines are an extremely powerful research tool! Used correctly, they can be an amazing form of visualisation and can lead to virtual reality development.
Where do I access a Game Engine?
There are many available online, 2 of the most famous being Unity 3D and Unreal Engine. Download them to your computer and away you go! Both engines have an extensive manual and “learn to” tutorials on their websites! If you would like assistance with any projects potentially requiring/wanting game engine implementation come along to our Hacky Hour. We can help you one on one and assist you installation, scripting and overall dynamics!