Please enlighten a noob

Started by
20 comments, last by Xai 17 years, 11 months ago
Can I add Irrlicht and Lightfeather to the list of engines worth looking at? Both free, both quite similar, both very easy to get going with if you know C++.

Advertisement
Not that I have that much experience in python or writing 3D games for that matter, but isn't it possible to use python instead of C++? There are so many bindings to all kinds of libraries and as I understand it your can write python extensions in C++ if that may be neccesary for performance.
Would that be an option people will consider: using a library / engine with python directly, pyOgre for example, avoiding or minimizing C++ altogether?
I mentioned pyGame earlier, though I did forget pyOgre. I think that there's one for Irrlicht as well but I'm not sure.

I found a short list of Pythonable engines, though there are many more (Search was too specific) here.
____________________________________Spazuh- Because I've had too much coffee
I personally use C++ for most my game oriented work and C# for most of my tool oriented work, but I see no reason why you cannot create real games in C++, C#, Python, or even ruby. I listed them in the order of their execution speed (in general), so if you use ruby to do the same thing, your final program will usually be slower than the same thing in Python (altough ruby 1.8.4 closes the game to more like 150% instead of 300%), if you program in python your game will likely be 15%-100% slower than if written (well) in a langauge like C++ (depeneding on the quality of your wrappers and how much you use them ... for instance since from python you call strait into C wrappers, you can get about 95% performance on the API stuff - its just the game logic that will be somewhat slower).

I recommend you continue to improve you python skills if you like it. As well as adding C++ or perhaps C# to your skill set. Its always good to have flexible skills, so you are able to transition and take advantage of whatever becomes available.
Thanks for your help and tips everyone. I have Visual studio 05 express now. Now I dont know where to start - first I have to choose one of those things right? Opengl, directx, crystalspace, ogre3d - what are they? I know basically what they do, but what are they? APIs, wrappers, code, etc. Where do I start, and what are my options? thanks
Can someone please help me out a little?
don't worry so much about knowing how to classify everything, you'll go crazy.

Some of those things are APIs (DirectX, OpenGL), some are Engines (Torque, Ogre - maybe), some people debate which term applies to what ...

An API (Application Programming Interface) simply means the set of functions (and classes if the system is OO) you can use to access some set of functionality, for instance OpenGL is a a set of 3D graphics functions, DirectX is a set of COM interfaces and objects related to more-direct (compared to the old school windows API) hardware access.

A Framework is usually a slightly higher level library or set of libraries than an API. When you speak of a framework you are usually describing the way in which you are supposed to use a library as well as the library itself.

An Engine simply means a higher level framework that pretty much runs itself - you usually add data, configuration and code at hook points. But this term can also just be used to mean a framework for building a certain type of thing.

I'm not sure exactly what OGRE can and can't do, put it is primarily a 3D object management system (I believe) - so it is either a framework or an engine, or both.

And you don't have to learn just one thing.

On the VERY LOW level side, you can sue either Direct3D or OpenGL for 3D graphics. There are no other real choices. But if you use a higher level API / Framework / Engine - you may not even have to know either at all (but I guarantee that all 3D programs you use on windows are accessesing 1 or the other of those at the lowest level).

On the middle-level to high-level area there are literaly hundreds of choices -

At the LOW-MID you have things like GLUT, SDL, Allegro ... providing simple libraries around basic features you might use in a program.

Or much-higher you have things like Torque, Ogre, etc ... providing whole frameworks, ready to do things like load models, define maps, code AI, etc. Each with its strengths and weaknesses.

I would pick at least 2 different things to experiment with in parralel, so if one doesn't real mesh with you, you can keep going with the other. For instance learn OpenGL for 3D basics, and something higher level to get real fun stuff done.

Heres what I did:
1. Install VC++ 2005 express
To make win32 applications with VC++ 2005 express you also need to upgrade to SP2 and install Microsoft Platform SDK
2. Install DirectX SDK and/or OpenGL SDK.
SDK means Software development kit.
At this point you have what you need to start writing state of the art games. (Using either DirectX, OpenGL or both. Depending on which you installed)

However, since the DirectX SDK is pretty low level stuff and complex to use from scratch, people has made so called third party libraries (3D Engines) that encapsulates this into "easy to use" classes. A good example of this is Ogre3d.
Note that Ogre is based on DirectX/OpenGL, and need at least on of those SDK's to be installed on your system.
These are libraries. Libraries can be given in the form of
dynamic or static libraries, which you can use by adding them to your project.
See one of the thousands of tutorials for findig out how to do that in detail.

These libraries can be called APIs, although one typically refers to APIs when it comes to low-level-abstraction code, like in DirectX or OpenGL, for instance.
So, you can regard them as APIs, but what you regard them as is simply
chitty-chat, as under the hood all you will have to know is how to use them.

If you ask for advice on what to use, all you'll get is everyone advertising their
flavour of choice - which will in fact tell you nothing.
Look at the more-used libraries like ogre, axiom, irrlicht or SDL, see what they
can do for you, take some time to find out what features you need, then take
again some time to play with these libs and follow the tutorials introducing
them to
you - after a while you will fill comfortable in choosing what you nedd.

Remember, everything there is out there calling itself game engine, graphics
engine, multimedia framework or whatever, advertising itself heavily is simply
a library, a tool you will use - like you know, the tool alone has never made a
product, so don't spend too much time on worrying what you need -
you want to make games, not become a 'software tools consultant for
entertainment software libraries and utilities'.

Using your brain doesn't hurt at all.
Ill second that.
Its quite common to see libraries based on other libraries based on yet another library...
DirectX is an example of a library that is not based on others (simply speaking)
and is therfore consided low-level
Ogre and SDL is examples of libraries that depend/include other libraries like DirectX/OpenGL. This makes them very powerful and still easy to use, and is often refered to as engines...
As lucem and Xai said, this is not important. You might as well call them all libraries.

This topic is closed to new replies.

Advertisement