“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.
- GitHub.com/CapsCollective/raylib-cpp-starter – SamR added C++ IoStream logging to the VS Code Terminal window
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.
- Raylib C++ Project Template – Repo without the engine.
- rBitrage C++ Project Template – Repo with the engine.
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 โ 01 โ Overview
- C++ Gaming โ 02 โ Raylib Project Template
- C++ Gaming โ 03 โ The rBitrage Game Engine
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.