views:

777

answers:

17

Hi, this is my first post here. I am 22 years old from Spain and I have finished university where I studied I.T. A group of friends and I want to develop a game which will consist of a 3D world in which simple 3D shapes interact with each other where "real" like physics is involved. I have no experience in the programming of video games, and I am willing to learn so I want to ask:

Which programming language and/or libraries would you use for a game which consists of 3D shapes interacting with each other and "real" like physics?

Thanks in advance.

p.s: I know this question has multiple answers but I want to get the idea of what are the most common technologies currently used.

A: 

I've developed a couple of platform games in Java for Windows using the book "Developing Games in Java" by David Brackeen. It does cover 3D stuff but I haven't got that far yet.

paxdiablo
A: 

I suggest looking into Microsoft's XNA framework. This will cover the 'game' aspects of it. As for physics, I suggest looking at the Bullet engine, although there are many to choose from.

Cody Brocious
Yeah, C# and XNA is a good combo. Good productivity, easy to learn. XNA doesn't include physics (yet (and I don't know if there will be)). Look for a separate physics library for .NET to include physics aswell.
Statement
+7  A: 

Take a look at Bullet :

Bullet 3D Game Multiphysics Library provides state of the art collision detection, soft body and rigid body dynamics.

  • Used by many game companies in AAA titles on Playstation 3, XBox 360, Nintendo Wii and PC
  • Modular extendible C++ design with hot-swap of most components
  • Optimized back-ends with multi-threaded support for Playstation 3 Cell SPU and other platforms
  • Discrete and continuous collision detection (CCD)
  • Swept collision queries
  • Ray casting with custom collision filtering
  • Generic convex support (using GJK), capsule, cylinder, cone, sphere, box and non-convex triangle meshes.
  • Rigid body dynamics including constraint solvers, generic constraints, ragdolls, hinge, ball-socket
  • Support for constraint limits and motors
  • Soft body support including cloth, rope and deformable
  • Bullet is integrated into Blender 3D and provides a Maya Plugin
  • Supports import and export into COLLADA 1.4 Physics format
  • Support for dynamic deformation of non-convex triangle meshes, by refitting the acceleration structures

The Library is free for commercial use and open source under the ZLib License.

Paul Dixon
Very good answer.
Jonathan C Dickinson
+2  A: 

I'd recommend you start by using Flash. It's a good environment for creating simple games, but has good 3D and physics engines available (eg Papervision3D and Fisix) for when you wish to get more fancy.

David Arno
A: 

C/C++ for performace and Lua for scripting.

An Introduction to Lua http://www.gamedev.net/reference/programming/features/lua/

OnesimusUnbound
+5  A: 

You should look into the SDL library (http://www.libsdl.org) as it supports multiple platforms and has bindings for a variety of programming languages. It also supports OpenGL.

Good luck!

Subtwo
That would be helpful.
Jonathan C Dickinson
+1  A: 

XNA Game Studio written with C#. It's easier (subjective) to learn than C++ and DirectX/OpenGL. http://creators.xna.com/

There is another thread about it here. Will link when I find it.

JTA
A: 

Blitz is pretty good at getting something up and running quickly.

http://www.blitzbasic.com/

Blitz3D has support for 3d cards and what not. http://shareit1.element5.com/product.html?productid=147747

it is also powerful enough for "real" games to be powered by it

eg http://www.zee-3.com/nakedwar/index.php

Aidan
A: 

SDL is the de-facto starting point for games, well on some platforms anyway. It'll get you up and running very quickly (and it works on linux).

Once there you can search sourceforge for a few: eg, PLIB, Ogre, CrystalSpace. They're all good though I don't know how they've progressed over the last couple of years.

gbjbaanb
A: 

Take a look at AGEIA PhysX

akalenuk
A: 

If you want to run pure real time 3D with good physics i would suggest C++ with for example OpenGL.

I would sugest you to look under http://nehe.gamedev.net/ for tutorials about OpenGL. You can also find an example of a collision detection system at http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=30

If you actualy don't good real time stuff, you probably can sky the C++ and go into a "simpler" coding language.

fmsf
A: 

There are a lot of engines available to you. You need to start researching which one is going to fit your games design.

Most commercial games are written in C++ with a splattering of other languages to bind it altogether. Other languages offer different characteristics such as Java's portability right to mobile phones.

Phil Hannent
+1  A: 

Just for your information, there is a very interresting OpenSource BSD licensed project called OpenSim which consists in recreating server side SecondLife infrastructure in both C# and Mono.

It seems to correspond with what your friend and you wants to do. Although still in Alpha stage, it is pretty stable and definitely worth a try.

controlbreak
I'm messing with OpenSim at the moment for an AI assignment. It's worth noting that it can have issues with recursive scripts or scripts that run a long time. There are ini settings to get around these issues, but in addition it would definitely not be my choice if I were looking for speed or stability (in this case it is prescribed for an assignment so there's no choice).If you do go for OpenSim, make sure you run some simple tests to make sure the environment handles the operations you need it to, (e.g. it's much easier to debug a stack overflow when you cause it on purpose).
Dr. Monkey
A: 

If you have absolutely no experience at programming and would like to achieve really fast visual results, than you should check out languages such as DarkBasic or Blitz3D.

That said, those languages have fairly strong limites and if you are considering learning to program as well, you probably will want to head towards Java or C#'s different user-created APIs such as JOpenGl, Jogre, XNA, SDL.Net or Irrlicht.Net. They will allow you to learn the basics of object programming while creating your game.

Here are different links :

DarkBasic Home

Blitz3d

Java :

JopenGL

JOGRE

C# :

XNA

SDL.net

Irrlicht.net

m_oLogin
A: 

Something simple and powerful (at least according my taste :) ) is Apocalyx.

Completely open source, lots of demo, lots of tutorials, can directly work with many common formats (e.g. MD2, Cal3D or BSP) to allow you to use advanced tools to create your world.

Written in C++, scriptable in Lua (has a dedicated editor for scripting).

Remo.D
A: 

In C++ I have used SDL and GLFW; in Python I have used PyGame and Pyglet.

As far as languages are concerned, if you use C++ then I would definitely recommend looking into using something like Squirrel, Lua or Python for scripting, though writing the entire game in something like Python would also be good (and should performance start becoming an issue later, you can write just the modules that are causing problems in C++ - after profiling of course).

Dan
A: 

If you familiar with Delphi try GlScene.

Edin