Steps to becoming a game developer from scratch

I tried asking this question of StackOverflow, but they had some rule where I had to ask some specific question or yadayada or whatever, don't have time for their bullcrap. Anyways here is my question:

What are the steps to becoming a game developer, starting from 0? I already know C++ (learned it all by myself from a website dedicated to learning all about C++) and have been doing practice questions on my own. I also know C# just in case, and as of now, I am learning OpenGL (to become familiar with graphics programming) from a book. So, I am basically doing two things. Doing C++ and C# practice questions (basically to enhance programming skills, unrelated to game development), and learning OpenGL? Is this the right path. I don't want to use a game engine like Unreal Engine or Unity (though I have been experimenting with Unity and Blender a little) because I don't have a game in mind and I want to learn the basics and work my way to the top while gaining experience. So, in your opinion, is this the right way to begin game development? Another question, is there any other graphics API like OpenGL that I can write using C# or which is written using C# (not DirectX since from what I've seen, its usually written in C++, or I may be wrong)
closed account (z05DSL3A)
Let me start by saying I have no game development experience and no real interest in it.

If I was to find myself in your shoes, wanting to start from scratch and build it all out myself, I would start with a book like Game Engine Architecture, Third Edition by Jason Gregory. Just the fact that it is 1240 pages should give you a idea of the Herculean task ahead of you.
closed account (E0p9LyTq)
Is this the right path?

What you are doing is ONE of many possible paths. Each path dependent on factors such as OS, type of graphics you are looking to work with. 3D/2D for instance.

Using OpenGL locks you into one branch of game development, OpenGL doesn't tap into an OS sound/music capabilities if present. DirectX does graphics, sound and music.

OpenGL and DirectX can be used with C#, the interfaces can be retrieved in either language.

HUGE question you have left unasked: "Do you want to create your game engine from scratch, or use a preexisting one?"

You can create graphical games for Windows without using either OpenGL or DirectX. The GDI and multi-media system at the core of Windows can create 2D games.

An older book that teaches the basics of programming Windows GDI games, creating a decent yet simple game engine (Amazon):

Beginning Game Programming
https://www.amazon.com/gp/product/0672326590/
closed account (E0p9LyTq)
@Grey Wolf, that game engine book you suggest is pricey on Amazon, even as a kindle book. US$83.82 print, US$51.11 kindle.

Good things are worth the price.

Thanks for mentioning it, added it to my "buy" list.
Totally right, people don't have to use C or C++ to interact with OpenGL, it's just the APIs are usually written in a language like that as a "lowest common denominator". There's of course bindings for C#, though personally I'm not too familiar with this.

I'll say this: Designing a game and designing a game "engine" are two different things.

A lot more goes into a game than just programming. Dialogue, art, story, character design, maps, combat/puzzles/rpg balance, actually making it fun, etc. Don't get me wrong, I love learning OpenGL and being able to control the fine details. If graphics is your passion, learn every bit of it. But there's plenty to learn about game design that doesn't involve learning about individual OpenGL calls.

If you want to start with some simple 2D graphics, audio, and other multimedia options for games, you can check out a library called SFML, which is written in C++ but has C# bindings.
https://www.sfml-dev.org/
It abstracts a lot of the low-level calls away to let you focus on actually loading sprites, textures, mouse/keyboard input, etc.

There's some article I've read on "lessons learned" about indy game development. I could try to find them later.
Instead of OpenGL or DirectX11, could you do gaming graphics with the graphics class of C#? I haven't tried out the graphics class or GUI for C# yet, but am wondering if I could use that to implement graphics while programming, say, a simple non-complex game
closed account (z05DSL3A)
The C# Graphics class (System.Drawing Namespace) encapsulates a GDI+ drawing surface. It is not a particularly performant graphics system but should be able to handle some basic game graphics.
closed account (E0p9LyTq)
Instead of OpenGL or DirectX11, could you do gaming graphics with the graphics class of C#?

The book I mentioned earlier shows how to create simple games using C++ and Windows GDI.

GDI+ was created to OOP encapsulate the C procedural calls of GDI, while adding features not easy to do with GDI.
https://stackoverflow.com/questions/4551224/what-is-the-difference-between-gdi-and-gdi

A MS quick tutorial on how to get started using GDI+ in a Windows Forms application.
https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/getting-started-with-graphics-programming

I don't use C# so I can't say if the tutorial is useful or not.
Last edited on
Topic archived. No new replies allowed.