Mariusz Bartosik

Graphics programming, demoscene and book reviews

OpenGL Initialization in Windows

OpenGL 4.x Initialization in Windows without a Framework

If you want to open an OpenGL window, most of tutorials and books will tell you to use GLFW, FreeGLUT or SDL framework. Just call glfwInit(), glfwCreateWindow() and you are done. However, if you need to write a size-limited executable or simply don’t want to create another dependency, you have to take care of this by yourself. This is how to do it “the hard way”.

How to choose an open source licence

How to Choose an Open Source Licence

If you decided to share your project’s source code, you still have to deliberately state what do you allow, and which rights you want to keep. While it is possible to write your own detailed licence, there’s probably no need to do it. The most common models have already been created. Let’s review some popular licence types.

Project directory

Directory Structure for a C++ Project

When you work on some bigger project, it is important to properly organize its directory structure. Most of the time, you have to prepare project directory structure yourself, as an IDE will create only a basic solution for you.

Demo engine building blocks

Anatomy of a Demo Framework

It’s time to look inside the main executable file, and plan what we want to put there. The architecture of a demo framework is a bit similar to a game engine one. In fact, there are demos created with tools like Unity 3D.

File structure of a demo

File Structure of a Demo

Before we begin to sketch the internal structure of our demo, let’s take a look on how to organise files in the final archive. You will also need to decide if you want to protect the data files (textures, the soundtrack and so on) or make them freely accessible to others. Let’s review some real life examples.

Visual Studio Community 2015 setup completed

Tools: Choose Your Weapon Wisely

I’ve been preparing to write about general architecture of our demo when I noticed, that some of the tools required to develop this project need to be updated on my mini PC. So, let’s set up the environment first.