3d

I just want to start a 3d game, nothing strange? But I don't know from where to start. I a point from where to start.
uh... i think you might start from learning unity ??
maybe, just maybe though
I already did with it, I want a chalange, to make a game from nothing
Since you are already seen Unity, maybe Unreal Engine or CryEngine could be a good way to continue learning.
But if you wanna to make games from nothing maybe OpenGl+SDL libraries could do the trick.
Can you tell me libraries names?
So can you please help me find what I need? My working station is code blocks, and I can't find libraries or how to install them... so I feel like I serch in circle. So can somebody help me with a link?
You'll need to choose a graphics SDK, like:
OpenGL - works for most devices
DirectX - works on Windows

Then you'll need to learn some Math, so that you can work with:
Vector
Matrix

Most of the time OpenGL is out of the box. You don't have to install the library.
To install DirectX SDK, you'll need Visual Studio (not so sure), and you can find the DirectX SDK from Microsoft's download site (download.microsoft.com)
My suggestion:
Start by learning the relevant math. Linear algebra is critical, and if you're interested in adding physics to your games than elementary calculus will be useful too. The math isn't hard, but you really should have a passing familiarity with it in order to help you structure your program properly without a "game engine" to do it for you.

There are mathematics books specifically for 3D computer graphics, but I don't really buy into those. I would recommend learning each topic separately, if you need it. I can recommend textbooks if you need suggestions. Briefly, Gilbert Strang's Introduction to Linear Algebra is excellent. Spivak's Calculus is similarly good.

If you are already comfortable with the required mathematics, than you should get a textbook for OpenGL. OpenGL is an API that lets you draw vector graphics in 3D, usually using hardware acceleration. OpenGL itself is a relatively complex state machine, and a OpenGL program will spend much of its time manipulating that state machine.

I recommend OpenGL because it is open (i.e., not entirely bound to a vendor's whim), widely portable, and comparable to proprietary graphics APIs like DirectX. It's also old enough that there is widespread support for it, lots of example code, and good resources for learning to use it.

Libraries:
libGL/libglew + glm + potentially libsdl2 may be useful.

libGL is at least the OpenGL API; libglew (the "OpenGL Extension Wrangler") handles "extensions" to OpenGL.
GLM is a optimized mathematics library (the name means "OpenGL Mathematics") which is a useful utility, and SDL2 (the "Simple Direct-media Library") provides a portable interface to the keyboard, mouse, initialization, sound, and your windowing system.

You can do an internet search for any of those libraries and find out how where to get them without much trouble. How specifically to install them depends on what system you're using.

Edit:
If you decide to learn to use OpenGL, you should make sure you learn to use the programmable pipeline. This is an important characteristic of "modern" OpenGL. Which version specifically is up to you, but the OpenGL 3.0 core profile is a sane default choice.
Last edited on
I might advise against SDL. It can be counter-intuitive, and is a c-based API. Use GLFW or SFML as a window/context manager. They're much more up-to-date. SFML is written in C++, so integrating it into an OO-framework is not difficult at all.

If you want to use an existing engine: I highly recommend Unreal Engine: https://www.unrealengine.com/

If you want to learn OpenGL from the ground up, check out https://learnopengl.com/
It might seem silly to go to a tutorial site, but it's actually a fantastic site, and everything is very clearly explained.
If you're on Windows, you WILL need GLEW (Windows out of the box comes with support for some OpenGL version like 1.x). You'll need a window manager, like GLFW. I personally prefer SFML for window managers.
http://www.sfml-dev.org/
They're much more up-to-date

What's specifically out of date regarding SDL2?

SDL does quite a bit more than GLFW, but GLFW is definitely a viable alternative. I'm not familiar at all with SFML, so I can't speak for it.
Last edited on
I mean more up-to-date as in GLFW can support OpenGL, OpenGL ES, and Vulkan (assuming one is daring enough to venture into such a realm). Both SDL and GLFW are both actively updated, so maybe "more up-to-date" was a poor choice of words.

SFML abstracts away 2D rendering to make that easy, and you can stick 3D rendering code in-between SFML calls. It supports multi-threaded rendering out of the box (well, after one context activation method call).

It always seemed to me like SDL would benefit a more seasoned OpenGL developer more, but I'm used to SFML, which abstracts away platform-dependent stuff like crazy. I've written very little platform-dependent code using SFML. From the 2D API from SDL2 that I've seen so far, SFML seems a bit easier to use (or maybe less jumbled).
I found that codeblocks have opengl. But all it have is this
1
2
3
 #include <GL/gl.h>
#include <GL/glext.h>
#include <GL/glu.h> 

so where I can download GLFW? I understand it works . I feel this site is what I want http://www.glfw.org/download.html but what to download?
NVM, I solved it all, now I try to learn GLFW, I dont thinked working with this after 1 day and half of research is so satisfing
Topic archived. No new replies allowed.