0
\$\begingroup\$

This question already has an answer here:

I think this is not appropriate, but as the given video in the link, the youtuber name Bisqwit creates his own 3d engine from scratch in C and SDL2. How much is this advantageous is real 3d game development and following his idea can a first practice project? (rather than just starting with OpenGL)?

https://www.youtube.com/watch?v=HQYsFshbkYw

\$\endgroup\$

marked as duplicate by Philipp, Alexandre Vaillancourt, Community Jul 20 '16 at 12:27

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 2
    \$\begingroup\$ His software 3D engine seems to be made for practice. It's too slow (because it lacks hardware acceleration) for any decent graphics. You should take SDL+OpenGL. \$\endgroup\$ – HolyBlackCat Jul 20 '16 at 11:22
1
\$\begingroup\$

Your question needs re-phrasing. SDL and OPENGL are two different technologies so to speak. Also, this question will lead to opinions instead of facts

Wikipedia says: Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a low level hardware abstraction layer to computer multimedia hardware components.

Open Graphics Library (OPENGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics.

You do not just start with OPENGL and create a game. The workflow for creating a game using OpenGl is as follows: 1- Create a window on your platform of choice. For Windows this will be with, in my case SDL, SFML or GLFW. These are also available on Mac, Linux, IOS and Android with the exception of GLFW. GLFW does not support mobile platforms last i checked. 2- Create an OPENGL context that you can render to. This step depends on your Language choice. In C++ you get these out of the box for SDL, SFML and GLFW. In C# you need another tool like The Tao framework. 3- Call OpenGL functions and render vertices. These steps are only three but doing all this and learning the tools will take you months even if you are a seasoned developer.

So, you can use SDL for Window creation, handling input, object loading and networking(I left out some). You will need the features that SDl provides to even draw a triangle on screen. You can use GLFW, SFML,GLUT or other similar tools out there but you have to start here. You can make do without these tools but creating a window in C++ on windows in my case is not an easy task.

Checking the SDL home page tells me that Half Life 2 was made with SDL. I also read somewhere that World of Warcraft most likely uses SDL. (Here similar qeustion about game engines). That question and specifically the second answer should address a lot of follow up questions that you will have.

Looking at how you asked your question I would have to make the assumption that you have never made a game at all. Your question is aimed at the lowest level of game development, graphics programming. I would suggest you go with a 2D framework first and make Breakout, Tetris, Snake clones. A non exhaustive list is SFML, SDL2, Monogame, XNA. Making something this simple will teach you a lot.

If your target is 3D graphics then go for Unreal, Unity, Torque, NeoAxis, JMonkeyEngine, Panda3D, Irrlicht. Stay away from Ogre unless you really know what you are doing. All the frameworks and engines I listed have bindings/wrappers for multiple languages.

TLDR: You will need SDL, SFML, GLFW or GLUT and other similar(Google them) frameworks to create a window first. Then setup an OPENGL context before you can draw vertices.

\$\endgroup\$