Help: Starting from scratch into 2D and then 3D (Which c++ libraries?)
Members - Reputation: 100
Posted 11 February 2012 - 07:42 PM
I'm looking to start developing games as a hobbyist, and plan on using c++ to do so. My plan is to learn by making 2d game and later a 3D one, lets say by creating a simple 2D game, and then replacing the graphics (much later) with 3D ones. I'm having trouble deciding whether I should just go straight and learn Directx (which seems over complicated for a 2d game), or to take an intermediate step with something like SDL.
At the end of the learning process I don't think I will be using SDL, so will it be more efficient to go with Directx first?
Members - Reputation: 508
Posted 17 February 2012 - 05:57 AM
Members - Reputation: 170
Posted 17 February 2012 - 07:31 AM
Members - Reputation: 284
Posted 17 February 2012 - 11:47 AM
Current Project: TechnoFlux read all about it on my
Members - Reputation: 134
Posted 17 February 2012 - 01:35 PM
Then I learned some DarkBasic to help me quickly iterate some games ideas and processes, but I wouldn't advise using DB, it's awful.
Eventually, I moved to SDL but quickly learned one thing... SDL is SLOW!!! The only way to get things rendering fast using SDL is to learn to combine SDL and OpenGL and since I was trying to make everything cross-platform I was loading everything in via SDL and converting it over to an OpenGL-ready format. This was just convoluted as hell, so I dropped SDL all-together.
Currently I use OpenGL with GLUT. This allows me to create 2d and 3d games quite easily. These do, however, not provide everything on their own but it's enough to get your project started and the game logic prototype done. Then you can start adding other libraries such as physics, sound and networking libraries as well as libraries to load in different types of media.
If you're interested in doing cross-platform non-commercial games then I can't recommend Java enough. A lot of people say, "Well it's not what games developers use" but that just isn't true. While most AAA games are written in C++ that is not to say that Java can't do any game you'd like to create as well as C++ can! Also, Java is, in my experience, a LOT easier to learn.
And you can avoid having to send your game with redistributable packages as apparently there are already 3 billion devices with Java installed.
Then, of course, there's the fact that Java can run on almost any modern computing device invented and can even be embedded into a web-page.
Members - Reputation: 1459
Posted 18 February 2012 - 08:56 PM
Currently a self-employed indie game dev
Members - Reputation: 712
Posted 21 February 2012 - 11:09 AM
So you could use SDL 2D to start with, then switch over to SDL + DirectX. Although if you plan to modify the same game to switch from 2D to 3D, it may be easier to start off with SDL + DirectX. (I upgraded a game this way - switching to 3D can be pretty much done to start with just by changing the view transformations, then worry about things like 3D models later; replacing SDL's graphics commands with DirectX would require a significant rewrite just to get things working.)
https://freecode.com/projects/conquests - Conquests, Open Source Civ-like Game for Windows/Linux