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 […]
Category: Cross-platform 3D
Chapter 14. Publishing to Android Play Store
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. Release build. If you have working release build already, then just skip this step. Otherwise I assume, that everything you’ve […]
Chapter 13. Publishing to Windows Store
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 say that Microsoft’s instructions I have used were “wrong” or “inaccurate”, but sometimes they were SO complicated, not sequential and confusing […]
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 […]
Game idea(s)
Wanted to call this chapter “Game Concept” or “Game Scenario”, but that would be too premature. There is no clear concept or script in my head yet. Although the visual concept and general direction are more or less settled down. When thinking about a future game, it’s important to decide not only what you WANT […]
Chapter 9. GLTF/GLB format
We now have a graphics engine capable of generating and displaying 3D models. However, it uses its own model format (XML files). Of course, it would be great to use other (standard) 3D formats as well, that can be downloaded from the Internet. After some research I settled on GLTF/GLB (GL Transfer Format, GLB is […]
Chapter 8. Graphics Engine
Tags: Graphics Engine Architecture, Procedural Modeling, Renderer vs Modeler, C++, OpenGL ES 3.2, Low-Level Graphics, 3D Demos Well, it’s a big topic. I’d even say HUGE. Here we’ll need to decide how to build and render our scene/models, where we’ll get our 3D models from, how we’ll load, unpack and control them, which and how […]
Chapter 7. External files, Android assets
Tags: Android NDK, Asset Manager, JNI, File I/O, Gradle, APK Timestamp, Cross-Platform Consistency The idea is the same as in previous chapter – to place the data files within the reach of the executable. However, in Android’s case we are dealing NOT with the “executable”, but with APK. Besides, we have to deliver data files […]







