🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Starting from scratch

Started by
7 comments, last by Gnollrunner 3 years, 6 months ago

Hey!

I want to start myself in the game development world, im at the half of my Computer Science degree so i do have skills at programming and designing efficency specially in C++, however i know little about the REAL concepts of game development, with this i mean, how is math used, how to simulate an enviroment using fixed point math and all that stuff that you dont find in today´s tutorial vids because they´re all about engines.

I have to mention that, asking for math and all those perhaps basic concepts i intend to use them, i want to develop the hard way without engines that does all these things for me, like old PSX devs that knew what to draw in the screen sending 3 pointers to a function which were intended to be a linear algebra vector. I want to develop games that way in the ugly fashion, but i dont know where to start :(

Can someone teach me or suggest a place where i can educate myself about these subjects?

None

Advertisement

🙂🙂🙂🙂🙂<←The tone posse, ready for action.

JavDev said:
i want to develop the hard way without engines

Me too. I use OpenGL and C++ for Desktop and Mobile using Qt. And I write WebGL versions of my apps in JavaScript.

JavDev said:
but i dont know where to start

If you chose OpenGL you can start here: https://learnopengl.com/​​​ You can chose Vulkan but but it does not work on many computers, for example, it does not work on my laptop. Or you can chose: DirectX (for Windows only) or Matal (for macOS only)

Study math for game developers using these books:

  • 2004 - 04 - Math and Physics for Game Programmers - Wendy Stahler - 504 pages: Amazon
  • 2011 - 02 - Graphics for Game Programming - JungHyun Han - 330 pages: Amazon
  • 2011 - 06 - Mathematics for 3D Game Programming and Computer Graphics - 3rd edition - Eric Lengyel - 624 pages: Amazon Code: http://mathfor3dgameprogramming.com/
  • 2011 - 11 - 3D Math Primer for Graphics and Game Development - 2nd edition - F. Dunn, I. Parberry - 846 pages: Amazon
  • 2013 - 12 - Mathematics for Computer Graphics - 4th edition - John Vince - 412 pages: Amazon
  • 2015 - 08 - Essential Mathematics for Games and Interactive Applications - 3rd edition - James M. Van Verth, Lars M. Bishop - 624 pages: Amazon Code: https://github.com/jvanverth/essentialmath

These books does not depend on graphics API. You can use them with OpenGL, Vulkan, DirectX and Metal.

Make something simple to practice. Only practice will help you to study. I make Solar System. My current work:

JavDev said:
I want to develop games that way in the ugly fashion, but i dont know where to start :(

Grab a video library like SDL2 or SFML and a C++ compiler, and make a simple (really simple (I mean really really utterly simple)) game. For example, Tetris.

I know it sounds silly to aim for something that simple, but the truth is, there is an insane amount of work between having a black window from SDL2 or SFML to having the game actually finished.

You'll find that 99% of the time, you're not coding a game, you're coding support code that does some part that you need for making the game.

This is what fleabay says with “stop, you have already lost”. Extremely simplified: If you want to make games first, you don't have time for dealing with everything under it. If you want to understand everything under it first, you don't have time to make games.

Either option is fine, but please be aware that the “I want both” option doesn't practically exist, there is simply too much in both worlds to handle. EDIT: Or said in other words, in either world there is enough to learn about it for your entire life.

Alberth said:
This is what fleabay says with “stop, you have already lost”.

I meant he shouldn't program a game without an engine if he thinks it is the ugly way to do it.

Anyway, I deleted my original comment since it could have been taken the wrong way.

🙂🙂🙂🙂🙂<←The tone posse, ready for action.

Alberth said:
Grab a video library like SDL2 or SFML and a C++ compiler, and make a simple (really simple (I mean really really utterly simple)) game. For example, Tetris.

I agree with you. The most important thing is making simple games like: Snake, Pong, Tetris and so on. It does not matter what you use for it: SFML, Unity or OpenGL. If you know how to draw a rectangle, erase a canvas and use a timer you can write: Snake, Pong, Tetris. If you know how to draw a texture you can make: Pac-Man, Super Mario and so on. Just practice, practice and practice with very simple games. Make Tic-Tac-Toe on one computer for two players and/or make a localhost version of this game using sockets.

Useful short articles for beginners:

Best bet is to use one of the low level interfaces: Direct X, OpenGL, Vulkan and such. I'm still stuck on DirectX 11, however a fair amount of people are going to Vulkan these days as it's the newest. Frank Luna has a line of books that go into Direct X in good detail however DX 11 has changed since his book on it, so if you go the Direct X rout I might consider going straight to DX 12. In any case I always try to isolate the low level graphics code so I can swap it out more easily if I decide to later.

The other thing is I would not set out to write an “engine” . If you write your game properly you will develop an engine of sorts anyway, but don't write a lot of code that you aren't going to need, just because someone says engines are supposed to support some feature. First step is to decide what kind of game you are going to write: 2D, 3D, a shooter, a puzzle game etc. Then start developing the components for it.

This topic is closed to new replies.

Advertisement