Introduction. What is it all about

GameDev, 3D, cross-platform, C++, Android, Windows, OpenGL ES 3.2.


This blog turned out to practically step-by-step instruction (tutorial) how to write cross-platform 3D app (game) from scratch.

To write own game is my old dream. Now I know how to do it right.

Have a few ideas in mind what it could be, haven't decided yet. Maybe something like this?:

Or even better?

Anyway, whatever it finally would be, a big part of the path will be COMMON for ANY project. And I am inviting You to join me in this route. The idea and purpose of these notes – to build practically usable Base for a Real Commercial Project from scratch.

Ready? Then let’s go! But where? Let’s pick direction first.


Platform: Android, iPhone, PC, Mac, Xbox, what else? Instead of choosing one I wanted to try cross-platform. For beginning I'm planning to focus on PC/Windows and Android. If such cross-platform (mobile + desktop) will work, then all other platforms - by analogy.


Graphics engine/API: I afraid to bound myself by concepts, frameworks, models and restrictions of existing game engines. Besides, I'd prefer to avoid overloading the Project by extra Megatons layers. Therefore, I won’t consider for myself high-level options, such as Unity, Unreal, GameMaker, Godot and so on. Though, on another hand, if You are planning to release another Doom-alike zombie-shooter, then mentioned options, maybe is a good choice. But in my case, since I want my game to be different from others, I will need low-level access to 3D. Plus it must be cross-platform-compatible. The choice seems huge: DirectX, OpenGL, Vulkan, Metal, did I miss anything? However, practically none of them is truly cross-platform-compatible EXCEPT OpenGL ES, which can run practically on ANY platform, including PC, Android, Mac and iPhone. We will use low-level API, OpenGL ES 3.2.


Programming language: C++, Java, C#, Objective-C, Kotlin, Python, Rust, Swift, the list goes on... But again, our cross-platform requirement leaves us with a single classic option – C++.


IDE:

For Windows we will use Microsoft Visual Studio Community edition, which is free.

For Android - Google Android Studio, which is free as well.


The challenge with this combo (C++ and OpenGL ES) is that it is not native to any platform. Each platform will require some efforts to make this combo work. However, it’s still better than, let’s say, to sacrifice mobile for the sake of DirectX, or Apple for the sake of Java. Not excluded that we'll have some other reasons for such sacrifices, but not technological.

Now, when we know where we are going, LET'S START! Let's see how far YOU can go 🙂


Leave a Reply

Your email address will not be published. Required fields are marked *