Rival Fortress
This week I started working on collision detection for Rival Fortress. Since I’ll be rolling my custom collision detection/physics solution I had to do a lot of groundwork that you don’t have to do if you pick up an off-the-shelf middleware like Nvidia Physx or Havok. The upside is that...
NOTE: If you are a game developer with access to two or more monitor and an extra PC or laptop, this post may interest you. Cross-platform game development is a wide topic. This post is not about the technical aspects of it. It is about doing your best to offer...
Rival Fortress
Vulkan was announced this week. It’s looks promising and I can’t wait to start hacking on it to see what’s under the hood. Unfortunately Apple has no intention of supporting Vulkan on OSX, as Metal is the API they are pushing, so I’ll have to choose either Windows or Linux....
Rival Fortress
The engine for Rival Fortress is coming along nicely, and in a few weeks I’ll probably start working on game code. This past week I integrated LuaJIT in the engine. LuaJIT is a just in time interpreter for the Lua language that is lightweight and very fast. Integrating LuaJIT I’m...
Rival Fortress
This past week I’ve been working on a useful engine feature for Rival Fortress: the Reflection Preprocessor. Reflection is usually defined as the ability of a program to examine itself at runtime. Many programming languages, such as C# and Java, offer built in semantics that make reflection easy. C++ offers...
Rival Fortress
If you’ve ever worked with OpenGL you know that extension loading is always a bit of a pain. You can either do it manually, by loading the correct library for your platform and getting function pointers for the OpenGL functions you need, or you can use one of the many...
Rival Fortress
This week has been cross platform week for Rival Fortress. I’ve been trying to set up a toolchain that can allow me to easily compile the game on Windows, Linux and Mac, from a single build machine. Since my main development platform is OSX, the first thing I tried was...
Rival Fortress
This week I finally tackled font rendering for Rival Fortress’s game engine. After a few iterations I decided to use pre-cooked bitmap fonts for the debug overlays and True-Type runtime rasterization for the game proper. For both paths I’m using Sean Barret’s excellent stb_truetype library, along with stb_rect_pack to pack...
Rival Fortress
Last week I talked about the asset preprocessing pipeline that I’m working on for Rival Fortress: essentially all game and engine assets are preprocessed and packed into a single giant file that is optimized for faster loading during runtime. This week, while tackling font rendering, I’ve refined the asset packer...
Rival Fortress
Taking a page from the awesome Handmade Hero I decided to pre-process game assets in a format more suitable for game consumption. You can take a look at how Casey approaches it starting from Day 150 of his series. Rival Fortress is a 3D game, so it uses a variety...
Rival Fortress
Rival Fortress will use a custom 3D game engine that I’m building from scratch in C++ and a bit of Assembly. Currently the only dependencies for the game are SDL, and the truetype library from Sean Berret. The engine is still in active development, but so far the most fun...
Last time I talked about how to integrate NASM in a CMake/Clang build, but if you are developing on a Mac you may want to use Xcode to debug your assembly code. Xcode needs a bit of massaging in order to support NASM within a C/C++ project. Getting the latest...
Trying to integrate NASM with CMake for the build system of Rival Fortress has been tricky. The documentation on the official wiki is not up to date, and in fact, states that NASM is not supported by CMake 2.6 and below, but fortunately after a little bit of digging through...