> C++ Games


“Innovation is the outcome of a habit, not a random act.”
-Sukant Ratnakar


With this key area of my portfolio, I bring Best Practices and Optimization techniques.

C++

There are crucial aspects to consider when making games: performance, control, and ease of use. Great tooling allows developers to focus more on creativity and innovation.

C++ remains a classic and popular choice for game development, excelling in those key areas.

๐ŸงOpen Source

I am an open source contributor in this subject area.

rBitrage

The rBitrage (aka “Arbitrage” aka “Bit Rage”) game engine is built with Raylib and C++ .

It’s easy to learn, easy to use, and hard to misuse.

I created this engine as the ideal starting point for new 2D/3D game projects.

rBitrage Concept Hierarchy

Main.cpp
  โ””โ”€Game
      โ”œโ”€โ”€ Screen
      โ”œโ”€โ”€ World
      โ””โ”€โ”€ Systems (With lifecycle)
            โ”œโ”€โ”€ ... Many including ...
            โ”œโ”€โ”€ AssetLoaderSystem
            โ”œโ”€โ”€ CameraSystem
            โ””โ”€โ”€ SceneSystem
                  โ””โ”€โ”€ Scene
                       โ””โ”€โ”€ Actor (With lifecycle) ex. Sprite2D, Model3D
                             โ”œโ”€โ”€ Asset
                             โ”œโ”€โ”€ Bounds
                             โ””โ”€โ”€ Transform

rBitrage Code Snippet

This demonstrates a “Hello World” using rBitrage with a ball that moves around the screen.

//
//
#include "rBitrage.h"
using namespace RMC::rBitrage;

int Main() 
{
    // Game
    Game2D game = Game2D();
    game.Initialize();

    // Assets
    AssetLoaderSystem* loaderSystem = game.GetSystem<AssetLoaderSystem>();
    loaderSystem->AddAsset<Image>("Ball01", "src/assets/images/Ball01.png");
    loaderSystem->LoadAllAssets();

    // Actors
    Ball2D sphere2D = Ball2D(game, "Ball01"); 
    sphere2D.SetPosition(game.world.center);
    sphere2D.SetVelocity({300, 200, 0});
    game.AddActor(&sphere2D); 

    //Game Loop
    while (!game.GetSystem<ApplicationSystem>()->RaylibWindowShouldClose())
    {
        // Input with mappings
        if (game.GetSystem<InputSystem>()->IsActionPressed("action"))
        {
            sphere2D.SetPosition(game.world.center);
        }

        // Simulate actors
        game.UpdateFrame();

        // Draw graphics
        game.RenderFrame();
    }

    game.GetSystem<ApplicationSystem>()->RaylibCloseWindow();
    return 0;
}
//
//

rBitrage is Built on Raylib

NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no gui tools or editors… just coding in pure spartan-programmers way. Are you ready to enjoy coding?


C++ Articles


C++ GAMING

Benefits

  • High Performance โ€“ C++ provides direct access to hardware and system resources, allowing for optimized and efficient code, which is essential for performance-critical applications like games
  • Control Over Memory Management โ€“ C++ gives developers granular control over memory allocation and management, enabling optimized resource usage and reducing memory overhead in large-scale games
  • Rich Library Support โ€“ C++ boasts a vast collection of libraries and frameworks, offering robust tools for game development, including advanced graphics, physics, and input handling

Game Engines

Here are some popular options that are publically available or proprietary.

  • Raylib โ€“ Raylib is a simple and easy-to-use library to enjoy video game programming.
  • rBitrage โ€“ (aka “Arbitrage” aka “Bit Rage”). Easy to learn, easy to use, and hard to misuse
  • Godot โ€“ Open-source engine supporting both 2D and 3D game development
  • Cocos2d-x โ€“ Open-source engine primarily for 2D mobile games
  • Unreal Engine โ€“ Powerful game engine widely used in AAA and indie game development
  • CryEngine โ€“ Advanced engine known for its realistic visuals and physics capabilities
  • Frostbite (Proprietary) โ€“ Engine developed by EA DICE, famous for Battlefield and FIFA series
  • RAGE (Proprietary) โ€“ Rockstarโ€™s engine, for Grand Theft Auto and Red Dead Redemption
  • Anvil (Proprietary) โ€“ Ubisoftโ€™s engine used for Assassinโ€™s Creed and other titles
  • IW Engine (Proprietary) โ€“ Engine developed by Infinity Ward for the Call of Duty series
  • RE Engine (Proprietary) โ€“ Capcomโ€™s engine used for Resident Evil and Devil May Cry games

C++ Presentation


Whatโ€™s Next?

This area of my expertise is particularly exciting!

I love to learn & to make an impact with my teams and projects.

Contact me regarding new opportunities that align with my skills and experience.