Looking for a steer in the right direction... (C++/API/OpenGL programing)

Started by
8 comments, last by gearb0x 18 years, 3 months ago
Hey Ive not long completed a batchelor of IT which mainly covered software engineering and have been working as a programer for the last 6 months. The problem is, all experience i have is based on business/Web application development using "Managed" languages. Most of my experience has been based around java applications, J2EE, php and Relational database systems. As such OO programing, inheritance, etc are not new ideas to me Now i want to learn "proper" C/C++ programing, i have been isolated from the win32 api and memory management for too long :P Mainly just want to learn to expand my skills. As such i have a little idea for a 3D demo i want to make to jump in the deep end and learn as much about how the win32 api works, as well as memory mangement and using the REAL Open GL apis. As such i dont want a game framework where i can just go: Game myGame = new Game(); myGame.setTitle("Supar dancing monkeys"); (obviously over simplified to prove my point) I want to learn how to do it the REAL way, i can worry about using engines, etc if i ever get a job in game development and are pestered by looming deadlines :p I know that using free librarys etc are ultimatly going to make anything i do quicker, but with my current level experience, these sort of librarys are fairly simple to impliment (as opposed to win32/OpenGL api which is right over my head) Essentially im looking for GOOD books/resources that can help me understand the windows api and C's memory management. Ive looked at plenty of sample code for both and mainly the win32 api is RIGHT over my head (hell even hello world application doesnt make sence). Also after good resources on the OpenGL api. If anyone can help me in my quest for knowledge, please fell free to bless me with your wisdom. :D Phill
Advertisement
Just some thoughts:

I can't say I'm a veteran in the area but from my experience Win32 API has a significant role to play only in game initialization. If I were you I would pay more atention to Graphics, Sound and Input API's (most games don't use Win32 API in this areas).

A second thought is related to OpenGL. Like it or not with Windows Vista Microsoft gave a major blow to OpenGL. Most probably OpenGL will survive and migrate to other platforms but when it comes to Windows, DirectX will be the only way to go.
So if you intend to dive deep in GameDev I think you should think in perspective.


As a side note: I don't want to start a flame war with my remarks on OpenGL. These are just my opinions. Feel free to counter them with your own arguments.

[Edited by - Calin on January 19, 2006 8:16:24 AM]

My project`s facebook page is “DreamLand Page”

Using engines is a real way of making games. People will usually either use a premade engine or make their own.
Quote:Game myGame = new Game();
myGame.setTitle("Supar dancing monkeys");
What's wrong with this?
F-R-E-D F-R-E-D-B-U-R...G-E-R! - Yes!
Quote:Original post by Calin
Just some thoughts:

I can't say I'm a veteran in the area but from my experience Win32 API has a significant role to play only in game initialization. If I were you I would pay more atention to Graphics, Sound and Input API's (most games don't use Win32 API in this areas).

A second thought is related to OpenGL. Like it or not with Windows Vista Microsoft gave a major blow to OpenGL. Most probably OpenGL will survive and migrate to other platforms but when it comes to Windows, DirectX will be the only way to go.
So if you intend to dive deep in GameDev I think you should think in perspective.


As a side note: I don't want to start a flame war with my remarks on OpenGL. These are just my opinions. Feel free to counter them with your own arguments.


Get your facts right before you post something. Especially when it involves something as sensitive as OpenGL. Have you even read through the thread?
Games running in fullscreen will not at all be affected in anyway whether it's performance/visual. OpenGL drivers will be able to accelerate full screen applications without any problems. Unless your game is going to be running in windowed mode, you have absolutely nothing to worry about.

Now for windowed mode, you have 2 options
1) Run at fullspeed but your window border's/title bar will lose any fancy Aero effects exclusive to Vista. Other applications running in the background can continue to use the Aero effects. Not a big problem for most people.

2) Run at OpenGL emulation mode which will use DX underneath but will allow full Aero effects for your window, which in my opinion is the dumbest thing anyone could do if performance was a concern.


i fail to see how using winAPI is any more "real" than using a library to simply this, like SDL. it is likely that this is something you will code once.

as for memory management, try not to. use tools such as the STL and boost to take the pain out of memory management.

Quote:
and C's memory management

use c if you want memory management. in c++, any memory management you have to do can be wrapped in objects that make it transparent to outsiders.

have fun!
Regarding learning OpenGL/Win32, i feel it is perfectly alright if you are more interested in the technology over making an actual game at this point. Also you have prior programming experience so it shouldnt be too hard.

But for games, all there is to learn is making the initial window before everything goes into OpenGL. For this i suggest you check out Nehe. However Nehe only covers basic concepts and is aimed at teaching which at times compromises on performance/best practice. If you are serious about OpenGL, download the free Red Book from the Resources->Articles link on the top of this page. The book covers OpenGL 1.1 which is pretty ancient by now, but because OpenGL is source-code backwards compatible, most of the stuff in the book is applicable even today. If you have money to spare, you can order the updated Red book for OpenGL2.0 reference.
Welcome to the fold @gearb0x!

Nothing is more volatile a discussion than bringing up OpenGL or Direct3D (as you just found out).

But you might get something out of the book I just finished. It should already be available.

Take a look at the TOC and see if it's what you're after.

hth,

Quote:
Get your facts right before you post something. Especially when it involves something as sensitive as OpenGL. Have you even read through the thread?


To start with, it's very hard to tell what the facts are right now. The hole story is still under development.

Secondly, OpenGL page is not my primary information source for my statements on this issue.

I suggest you take a look at jollyjeffer's article on DirectX 10. I don't remember him mentioning OpenGL but his analisys on Vista - DirectX arhitecture reveals quite a bit. The Windows Vista - DirectX connection will be a lot tighter than it is now. This will draw some side effects. No Aero-glass GUI skin for OpenGL is the first official one, with time other issues might come up as well.

Quote:
Games running in fullscreen will not at all be affected in anyway whether it's performance/visual. OpenGL drivers will be able to accelerate full screen applications without any problems. Unless your game is going to be running in windowed mode, you have absolutely nothing to worry about.


I wouldn't be that sure on those OpenGL drivers. Most probably you will have them but my guess is that they will come up with some transitory/cover-up solution.

Edit: I'm not DirectX biased. These are just some conclusions I drew after a short analysis.

Some useful links:

http://www.gamedev.net/community/forums/topic.asp?topic_id=337097

http://www.gamedev.net/community/forums/topic.asp?topic_id=348338

http://www.gamedev.net/reference/programming/features/d3d10overview/

http://www.gamedev.net/community/forums/topic.asp?topic_id=338694

[Edited by - Calin on January 19, 2006 12:46:41 PM]

My project`s facebook page is “DreamLand Page”

woah, i didnt mean to start a flame war, but so be it :D

I am mainly interested in learning how to use the win32/openGL api so i can understand more about whats happening. Im not super interested in making a game at all, just learning the skills if i ever need too. (3D programing has allways interested me)

Like i said, if i had a deadline and i was aiming to make a game, theres no reason not to use all of the ready made librarys.

Essentially i want to make a Forklift demo/simulation using the raw apis, mainly to learn whats going on.

Thanks for the references, ill check em out

Phill


http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01

Wow! essentially what i was looking for, something that explains in detail whats happening, much thanks :D

All the other tutorials say. "First we make our open gl window" give you a heap of source that makes no sence, and then ur suposed to work the rest out. No worries if your experienced with the windows API, nightmare if your not

Thanks
Phill

This topic is closed to new replies.

Advertisement