Moving Around

Moving Around

In the last post, I set up the window and the camera. Now it’s time to add some movement to the plane.

First, let’s remember an aircraft always move forward (if it’s not falling) and it can change its direction by changing its orientation, what we know as “pitch”, “yaw”, and “roll”.

But for demonstration purposes, I’ll move an object in 3D instead of the camera.

Model Transformation

Let’s start with placing model on our surface. The first vector is its position, the scalar is its scale, and the last one is its color (if not textured).

Its Just a Window

Its Just a Window

This post is diving directory into “raylib” usage. Feel free to skip it if you are not interested in the technical details of the implementation.

Without further ado, let’s start with the basics.

Creating a window in a specific size and title is as simple as calling the InitWindow function with the desired width, height, and title. The main loop of the program is a simple while loop that checks if the window should close, and if not, it begins drawing, clears the background, draws some text, and ends drawing.

Tech Stack

Tech Stack

When I started this project, I didn’t have a clear idea of the tech stack I would be using. I just knew I wanted to dive into low-level graphics programming and leverage my past experience with C++.

During my research, I discovered raylib, a simple and easy-to-use graphics library. It simplifies the starting point tremendously and saves me from having to build a rendering engine from scratch.

I explored options like Rust, Go, and Zig, but since raylib is written in C, I ultimately chose C++ to take advantage of its native C compatibility.

Getting Started

Getting Started

Welcome to the development, or more precisely, the remake, of the classic 1989 F-15 II flight simulator by MicroProse.

The purpose of this blog is to document the project’s journey, explain the decisions made along the way, and share the lessons I learn.

I kicked off the project by selecting a technology stack and researching modern OpenGL workflows. For the core language, I chose to return to C++, a language I was once familiar with and am excited to dive back into.