Log in

View Full Version : Getting straight to actual game coding! Tools, libraries and engines.


Karukef
07-30-2003, 05:49 AM
After reading the post about 3d engine build vs buy, and looking at the featurelist of the torque engine impressed me a lot. The amount of work saved vs building your own engine is just staggering. It is of no use for me though, as my design focus is entirely on 2d game environments. It did however make me think. How can I minimize my work in creating 2d-oriented games?

So far, I have think I have been pretty decent at using as much as possible of other peoples work. I use graphics libraries, sound libraries, music libraries, whatever. But there are a lot of these libraries available, and they are often tied to eachother (GUI library A only works with GFX library B and so on). I realize it is impossible for me to try out all engines, and all libraries and combination of libraries and tools.

The question is, does anyone have recommendations and experience to share in how to do as little non-game specific work as possible?

Let me describe what I want to accomplish, and what I am currently using. The accomplish list is more of a dreamlist than what I actually expect any combination of engines or libraries to provide.


I want to have an easy to use and easy to customize GUI system in 2d, including buttons, fonts, tooltips whatever. Very important.
I want an easy to use bitmap system, possibly sprite and animation system if it is flexible enough.
I want to load png and jpg, or any superier format.
I want to play tracked music (.it) as well as .ogg (or superior) music
I want alpha-support and maybe lighting (preferrably with software compability)
I want a good resource management system, for loading and organizing both on disk and in memory.
I want EASY to understand\integrate scripting support. (LUA for example seemed too difficult for me to implement, and I did try)
I want to be able to load variables and data with the appriximate complexity of an excel sheet.
A good networking solution.
I want to use the very best of C++ general programming aids such as some of the nice libraries found in boost (shared pointer, lambda expressions etc)
I want all of the above to be beautifully OO, hopefully in C++ since it is the only OO language I know, and with friendly documentation (As in, understandable).
And what about all the stuff that might make game making easier that I haven't thought of? I want that too! ;)


I have to admit that I am actually using most of the things on the above list already. But none of it is object oriented. I am using Allegro with libraries for fonts, jpg, png, it and ogg, a network library and I already wrote a decent resource management system like what i described and the beginning of a gui. But I am spending so much time simply writing OO wrappers around libraries, using my very limited OO experience trying to create a good OO system. It is a lot of work and I will certainly create very mediocre classes and to be honest, a OO system that stinks of "inexperienced".

I want to know about every good free or affordable library, engine or similar that can be used in making games! (and to my interest, 2d ones)

I am sure it will not only help me, but a lot of people, in picking the absolute best starting point before beginning to code.

gilzu
07-30-2003, 06:59 AM
Originally posted by Karukef


I want to have an easy to use and easy to customize GUI system in 2d, including buttons, fonts, tooltips whatever. Very important.
I want an easy to use bitmap system, possibly sprite and animation system if it is flexible enough.
I want to load png and jpg, or any superier format.
I want to play tracked music (.it) as well as .ogg (or superior) music
I want alpha-support and maybe lighting (preferrably with software compability)
I want a good resource management system, for loading and organizing both on disk and in memory.
I want EASY to understand\integrate scripting support. (LUA for example seemed too difficult for me to implement, and I did try)
I want to be able to load variables and data with the appriximate complexity of an excel sheet.
A good networking solution.
I want to use the very best of C++ general programming aids such as some of the nice libraries found in boost (shared pointer, lambda expressions etc)
I want all of the above to be beautifully OO, hopefully in C++ since it is the only OO language I know, and with friendly documentation (As in, understandable).
And what about all the stuff that might make game making easier that I haven't thought of? I want that too! ;)



It sounds like you didnt do your homwork well.

check out DirectX (http://www.microsoft.com/directx) for FREE 2D/3D(directdraw/Direct3d), sound/music(directsoud/directmusic), networking (directplay)

The same with OpenGL (http://www.opengl.org), and SDL

all are very common&free solutions for what you mentioned here

-Gil

check out their specs,

JackNathan
07-30-2003, 07:11 AM
Sounds like what I'd like -- but couldn't find so I rolled my own. Here are some ideas for you.

CDX ( www.cdxlib.com) - I really liked this one and used it for a project or two. OOP graphics, sound, and input support. Unfortunately, the project is pretty stagnant. But it is also quite mature, there isn't much it still needs. Uses the artistic license so you don't have to worry about GPL/LGPL entanglements.

SDL and Allegro - I rejected these because I wanted an OOP interface.

Mulitimedia Fusion (www.clickteam.com) - Some people here have had good success this graphical game creation system.

Jamagic (www.clickteam.com) - This game system has nearly everything you want, but uses its own scripting language based on JavaScript. I've used this on a screen saver and a puzzle game prototype. The problem is a miserable IDE and debugger. Great for (very) small projects, rapidly declines as project gets bigger.

I didn't find what I was looking for so I coded my own library with just what I needed over the last couple weeks. But I also have been doing this for a long time so I had a good bit of code to scavange.

You mentioned Torque -- Perhaps your game could use 2d gameplay with a fixed-perspective 3d view. Though that means 3d art is also required.

Good luck!

Jack

Carrot
07-30-2003, 07:50 AM
Originally posted by gilzu
It sounds like you didnt do your homwork well.

check out DirectX (http://www.microsoft.com/directx) for FREE 2D/3D(directdraw/Direct3d), sound/music(directsoud/directmusic), networking (directplay)

The same with OpenGL (http://www.opengl.org), and SDL

all are very common&free solutions for what you mentioned here

-Gil

check out their specs,

I think Karukef was looking more for a high-level approach rather than a set of APIs though.

ggambett
07-30-2003, 09:22 AM
Heh, you just described my sprite engine :) Except for the lighting (?), Excel compatibility and networking code. I rolled my own, based on SDL and ZLIB.

Punchey
07-30-2003, 09:41 AM
Well, I can provide some input with regard to a sound soluiton. I'm sure there are free sound libs our there that are good, but the best one I've used is fmod (fmod.org). And it is VERY reasonably priced for the shareware developer ($100 per title or $250 for a multi-license).

This is good for both music AND sound effects. Go to the site and have a look at the list of supported formats. It's also supposedly the fastest high-level sound lib available, and is highly portable. Even easily supports many cool audio features such as 3D positional audio, EAX effects, doppler effects, etc.. It's very easy to use too.

tentons
07-30-2003, 11:19 PM
For audio you might look at OpenAL.. it's used in the Unreal engines, so it's definitely industrial strength and proven.

http://www.openal.org/home/