programming languages

hmmm well i’m just wondering how fps are created now days. do they use a language to program the games straight from, or do they program a game engine and build the game off that? also, what do they use to program the game engine? c++? open gl? whats the difference between the two?

also, would i be able to program the thing to import my textured models from blender? sorry if these are really noobish questions.

as far as i know most fps’s these days are built on basically an engine, which most of em havent changed for quite a while, but all of those are mostly c++/direct x, and all the new engines are probably the same, I’m sure there are exceptions. open gl is just an extension for programmers to code to, so they dont have to write graphics calls themselves, which is nice… really nice, the same goes for directx or mesa too, c++ is the actual language used, though java, and c games are out there, along with micro$ofts c# and J++ or whatever they are calling their bastard languages nowadays.

though… if i were making a game, i would either use blender, java or flash.
my suggestion to you, just use blenders internals, its a lot easier than learning c++/opengl/directx and programming an engine, or even using say the quake3 engine(which is really good, and open source).

OpenGL isn’t a program language it’s an Open Graphics Libary that can be accessed through, say, a C++ written program. OpenGL allows you to talk to the hardware, in the same way that DirectX does. Most games are written in C++. Most PC games use DirectX to talk to the hardware. OpenGL has it’s advantages becaue it is cross-platform. Even the official PS2 dev kit uses an OpenGL-ish syntax.

As far as how games are made, the engine is done first, along with the level editing tools, and the scripting in the level defines the gameplay, cinematics, win conditions, etc.

For the project I’m working on right now, we have to import files from Blender into our own modeling file format. Fortunatly Blender can export the files as Wavefront .OBJ files, which are very easy to understand. In the future we’ll have to make a python script that will export the armature and animation stuff for later when we start making games that will require fully rigged characters.

thanks for explaining
:smiley:

hmmmmm looks like ive reasearch to do…tutorials and stuff.

It is my understanding that you use C++ to create a game engine and then use Opengl or Direct3D to program certain aspect into the game like wind or other 3D aspects like grass movements and hair growth.

also C++ isn’t the only language for games. their is C , C sharp.
VB for a nice side scroller.
Java can be used for a nice flash type game or flash,
Scripting languages like python can be turned into a game code like blender does.

or if your really ambitious you can use assebmly code

or if your insane you can use machince code

100100110110100111011101101000010001111101001 ok i finally got an “a” to appear on the screen now for the 3D model.

typical game scenario (good games):

programming language for time intensive engine core: c++
graphic library: opengl (hence not a prog lang but a lib) or directx (windoze only)
programming language for game logic, ai: scripting languages like python, lua etc.

The first thing you’re going to want to do is visit http://www.gamedev.net, read the articles, browse through the beginner’s forum, and so forth.

If you’re trying to build your own FPS, don’t. Start with something like Pong, Breakout, Tetris, or Pac-Man. You’d be amazed at the amount of work that goes into “simple” games like those to polish them (title screens, demo mode, high scores, settings, level editors, etc…). Try downloading Pygame (http://www.pygame.org) and make a few small games with that first. They’ve got tutorials in the documentation section that are invaluable.

On the other hand, if you just want to mod an existing FPS, that’s a bit easier, but still pretty complex. Just google for “modding <game_name_here>” and you should be able to find some helpful information. I remember back in college modding Quake 2 so that the grenade launcher would behave like a shotgun (multiple low-gravity projectiles that only used one grenade when firing 6, with a nice random spread pattern). It only took me a few days to dig through the code and figure out what I needed to do, and it’s probably much easier nowadays, so if you don’t want to write your own games, give modding a shot.

Also, if you don’t like Python, and Java’s more your speed, Three Rings (makers of Puzzle Pirates) released their Java game kit under the GPL a few weeks back. You can find it at (http://www.threerings.com/code/narya/)

Right now I’m figuring out how game engines work. Not how the are used or can be used, but how they are set up, build and work in technical parts. I downloaded some pdf books from the internet, telling you how to learn c++, in some days or weeks (basics) and OpenGL since it’s cross-platform and really good in combination with blender to implant a new feature (I think)

These books tell you the language of c++ and OpenGL, but the advancedness, you can only get that my practising, reading sources and have an idea and think you can accomplish that with c++ and OpenGL.

These 2 languages are really beautyfull, hard to learn but if you know them, omg you can do soo much awesome stuff. I saw sources of people having a 3d realtime demoscene with c++ and OpenGL on GameDev, well that rocked. The thing that keeps me motivated is, that I believe that when I learn it for some years, practise and whatever, I’m maybe able to code an game engine. But don’t think that it’s really easy, othersides it’s really hard.

If you feel something to code a game engine, well maybe we can contact each other and start learning together. I’m still searching for a little team to learn c++ and OpenGL together for a couple of months/years. I’ve got enought resources to get you started, I just started a few weeks ago, so it won’t be that hard to jump in and join. :slight_smile:
But I can tell you, you need a motivation wanting to learn it. Having experience in php or python, well it’s handy but not needed. People say you have to know at least 1 programming language, well it’s handy, but with enought effort and willing, you can start right away from beginner, but it takes longer. :-?

i’m working on a highly modifiable game engine myself at the moment and judging from what i’ve done so far i would recommand the way DoggettCK mentioned. thus start first with modding an existing game. something like half-life2 or half-life would be a good start for the simple reason that it uses c++ to make the mods, not like for example unreal-tournament which uses UCC (i think it’s called like this), a scripting language.

what you do there in a mod is learning the important things on a game: gameplay, game ai, user interface and other interaction between different things like player<->enemy and alike. once you have understood this principle you can head for the game engine itself. the reason is that game engines are at first highly optimized and this makes it tricky to do them. you can slam a simple game engine together with something like python or even c++ but getting it to run especially with higher eye candy and thus optimized takes some time.

we’ve got a saying amongst programmers: first do it, then do it right, then do it fast. thus in this case it would mean: first learn c++, then mod an engine, then do your own engine. :wink:

good luck and happy learning.

C++ or OpenGL?

HAHAHAHAHAHAHAHAHAHA…

lol. that’s just what I thought.

hehehe

OpenGL is not a programming language. OpenGL is an API for accessing your video card’s drawing capabilities. C++ is a programming language. People most often use C++/C to write OpenGL code.

If you want to learn OpenGL and C++ head over to http://nehe.gamedev.net/

However, rendering to the screen (which is what OpenGL does) is not really what a game engine is. A game engine usually models physics and collisions between objects.

Here is a list of gameengine’s i found http://cg.cs.tu-berlin.de/~ki/engines.html

Actually, that depends on the engine. Engines such as Irrlicht or Ogre3D(both open-source) focus primarily on abstracting the native 3D APIs(mainly OpenGL and DirectX) so that the same code can be compiled on multiple platforms.

Actually, that depends on the engine. Engines such as Irrlicht or Ogre3D(both open-source) focus primarily on abstracting the native 3D APIs(mainly OpenGL and DirectX) so that the same code can be compiled on multiple platforms.[/quote]
do they really abstract that much that they run directx? or is it more of a hack? i thought those two are opengl only imao.

I know that Irrlicht can use DirectX 8, 9, OpenGL, or its own software renderer(sloooow). Not sure about Ogre though.

You know you can edit your poll options now that you know better. :wink:

Would you consider it abuse of my power to do that myself?

I downloaded some books that looked for me really usefull. Here a link to the directory containing some freeware legal pdf books on c++ and OpenGL.

c++ = http://212.123.169.51/files/books/cpp
OpenGL = http://212.123.169.51/files/books/opengl

Besides those books, it’s need to visit some websites first ebfore starting on the pdf books.
For C++ I recommend to visit: http://www.cprogramming.com and do the C++ tutorial containing a huge amount of the basics of c++, a need to understand it and told like you’re a beginner at the language, a really nice tutorial.
For OpenGL it’s recommend to visit the official opengl website for some documentations: http://www.opengl.org/ , then read there the famous Red Book pdf or html version at: http://www.opengl.org/documentation/red_book_1.0/

When you’ve done that, the learnin c++ in 21 days is a good addition for extending your basics and a view on how to code c++, each books contains an another way of coding it, the style and such. So it’s worth a try to read several c++ beginners books to get a width knowledge on different coding styles.

I’ve also got a bunch of websites containing some pdf books or info where to get them. I was too lazy to test if all the links still works, but I think they do because I started learning c++ just a few weeks ago and in that time I made a nice little link archive:

free books at:
http://www.dhruvaraj.com/Langs/cppbooks.htm
http://www.click-now.net/ebooks03.htm
http://www.click-now.net/ebooks.htm
http://www.the-soft.net/board/viewtopic.php?t=263
http://maththinking.com/boat/computerbooks.html
http://www.freeprogrammingresources.com/cppbooks.html
http://www.programmersheaven.com/zone3/mh24.htm
http://www.gdse.com/modules.php?name=Web_Links&l_op=viewlink&cid=5

OpenGL:
http://www.gamedev.net/reference/list.asp?categoryid=31
http://www.zeuscmd.com/
http://nehe.gamedev.net/

game engine programming:
http://www.bookpool.com/sm/1592003516 (book, have to buy or something)

collection website of links:
http://www.3dlinks.com/links.cfm?categoryid=3&subcategoryid=24 (link lib)

If someone has home more links, post them then I can set up a little c++, opengl link resource page. :stuck_out_tongue:

Would you consider it abuse of my power to do that myself?[/quote]

I don’t know. If you had a daughter and she drew a picture of you naked (kids do crazy stuff like that) but she drew you with a vagina and breasts would you feel like it was an abuse of your influence to correct her?

hey, thanks, JD-Multi! I never knew that the Red Book was available online for free 8)