Tags: GameDev, 3D Engine, Cross-Platform, C++, OpenGL ES 3.2, Low-Level Programming, Software Foundation This blog has evolved into a practical, step-by-step guide on writing a cross-platform 3D app (game) from scratch. Writing own game is my old dream. Now, I finally know how to do it right. Have a few ideas in mind what it […]
Fear of AI
Tags: AI Ethics, Human Agency, Philosophy of Tech, Gemini, The Future of Humanity, Creative Stewardship While contemporary anxieties—like “Terminator” scenarios or displacement of the workforce—are understandable and often justified, they overlook the essence of the subject. AI is not an alien force, it is a linguistic model synthesized from our entire cultural and technical ancestry. […]
C++ as a new Sanskrit
Tags: C++, Philosophy of Code, Engineering vs. Trade, Software Architecture, The Art of Programming While C++ developers still exist (as endangered Red List species), the Global Market’s ever-growing hunger for faster and cheaper solutions is actually killing this frighteningly thinning layer of unique Real Engineers. We are seeing a shift from Craftsmen to easily-replaceable Technicians […]
Chapter 15. C++ code optimization
Tags: C++, Compiler Optimization, Debugging, Cross-platform, Windows & Android, Project Management I hasten to disappoint you: this chapter isn’t about “how to”, but quite opposite: “how to NOT“. Judging by the fact that you are reading this, I dare to assume you are a C++ developer, which means your code is ALREADY optimized well enough […]
Why In the beginning was the Word?
The Architecture Logic of Biblical Creation: programmer’s POV Tags: System Design, Linguistics, Philosophy, Ancient History, C++, OOP In short: What if Biblical Creation wasn’t about “making” stuff ? Disclaimer: This is NOT a religious discussion. I’m not trying to question the Bible. I’m trying to question my own perception of it through a “reverse engineering” […]
Chapter 14. Publishing to Android Play Store
Tags: Android Play Store, Google Play Console, D-U-N-S Number, Android Studio, AAB, App Signing, Release Build, Game Publishing, Cross-Platform, C++ An important step that is missing from all instructions: Before everything else: let’s make sure, that app is releasable. At first I didn’t do it myself, which I later regret more than once. Step 0. […]
Why not Unity or Unreal?
Tags: Game Engines, Custom 3D Engine, Software Architecture, Unity and Unreal, Independent Development, Low-level Programming Some people ask why I choose not to use Unity or Unreal, considering them obvious, almost the only possible choice. Will try to explain in details: From the beginning I was looking for what could differ me from what is […]
Chapter 13. Publishing to Windows Store
Tags: Windows Store, Microsoft Partner Center, MSIX, MSIX Packaging Tool, App Certification, Visual Studio, Windows Development, App Deployment, Game Publishing, C++ Finally, our project has reached a point where it can be shown as a standalone demo, in Microsoft Store for example. I didn’t expect it to be easy, and it sure wasn’t. I can’t […]
Chapter 12. Sound and smoke
Contrary to my expectations, these 2 topics were not that complicated. So I decided that one article on them would be enough. Here’s how it looks and sounds like: Sound Essentially, the topic came down to finding a suitable audio library/API. I’ve checked a few, including OpenSL, OpenAL, irrKlang, SFML, FMOD, PortAudio, SDL2, etc. Many […]
Chapter 11. Interactivity
Now we’ll try to implement game objects’ reaction on our own manual input (mouse for instance). The main part is how to determine which game object the mouse is pointing at. We’ll use the same approach as in previous chapter. Unlike in collision detection we’ll calculate object’s sizes/position not in world X-Z plane, but in […]
Chapter 10. Collision detection
Collision detection is the heartbeat of game logic. Essentially, any game is just a set of rules defining how objects behave when they interact. Think of a shell and a tank: when they meet, the shell is destroyed, the tank explodes, and the game state changes. But how do we mathematically determine if two objects […]









