Install requiste libraries and create a window

Overview

This will probably be the most frustrating part of of any of the tutorials. Setting up libraries never goes smoothly in my experience. However instead of trying to list all the possible ways things could go wrong I’m just going to take the easy route and rely on you to solve your own problems. There should be enough documentation on the web to figure out most any issue that might arrise.

I am developing this engine on Ubuntu so some of the specifics will be flavored for linux. However it should not be that hard to get this working on windows as well. Perhaps in the future I’ll create a seperate page for that scenario.

I make use of the following libraries to aid in engine development:

  • GLFW - API for creating windows, reciving input events
  • GLEW - Handles hooking up OpenGL function pointers
  • Eigen - General purpose linear algebra library
  • Doxygen - Automated documentation generator

Some of you may be wondering why I am using Eigen instead of glm. glm is tailored specifically towards the graphics community, so you think it’d be a perfect fit. However I’ve personally found its limitations to be annoying. For example it does not support matricies of arbitrary dimesnions. Eigen is a much more powerful library and I think it is worth the tradoff in having to implement some of the functionality that comes built into glm ourselves.

Code

If you’ve managed to setup all the libraries correctly you should be able to clone this branch and see an empty window. There is an included makefile so simply run ‘make’ at the root level to compile and run ./sim.o to execute the resulting binary.

What’s ahead

Over the next few articles we will lay down the basis for our Engine. Unfortunately a lot goes into rendering even one triangle so you won’t see much by way of visual progress until Hello Sphere. But if you stick with me you’ll learn some cool stuff I promise