   what should i use to make games?
  this is somewhat related to a post i made over in the dx and xna forum, but i want to ask here so i get some more beginner oriented answers.i'm looking to get back into game dev after taking a couple years off from it. back in the day, i used c++ and sdl, and the most complicated things i was able to make was a really simple tic tac toe game, and an engine for a myst type game (all it did was load a text file as a map, and a bunch of image files, and allow you to walk around and turn to look in different direction)i'm not sure what would be best to use now though. i really would like to make a 3d platformer type game, but 2d would be ok also. right now, the main options i'm considering are xna/c#, or a premade game engine like ogre or irrlicht. what are the advantages/disadvantages of those two options? i know with an engine i could get straight to writing actual game code, but is there any reason xna would be better to learn? or are there any better options out there?   
  It really depends on what platform you're aiming for, whether or not you want to work with 2D or 3D and what your general/overall skill level is.If you want cross-platform, ease of use and 2D, SDL is probably your best bet. There are other API's out there but SDL and C++ is a great match. You can also use OpenGL for the 2D to make things really fast under SDL as SDL makes it very easy to set up an OpenGL render context.If you want to create 3D games, there are several game SDK's out there (the only one I can attest to is Crystal Space) which require varying degrees of skill. Crystal Space is rather large and complex but it seems stable and quite capable.You can also use Ogre3D -- it's not a game engine rather than simply a rendering engine but it's very good at what it does.If you only want to develop for Windows/XBox, than DirectX/XNA may be what you're looking for. I don't know much about XNA but I understand that it makes game development on the XBox very easy.Either way I would recommend a C-derived language such as C++ or C# if you're going for a microsoft platform.Hope this helps. Good luck!   ;  Python + Panda3d is really powerful and easy to use. Panda3d comes with Python btw, so you only need to download and install Panda3d. Panda3d has a handful of really helpful members on IRC and in their forum too. It's great. Python is also very easy to learn relative to other languages, imo.   ;  If you previously learnt c++i'd stick with that.I've been quite impressed today with some of the darkgdk lib thats free.Quite impressive 3d stuff aswell, and its almost too easy to code. (from some source code i've seen)Also i would check ogre out, it does look good.i dont think its worth going into xna and c# unless you plan to go to make xbox games.even though it can make pc games, you might aswell not learn another language..   ;Quote:Original post by ryanp321i dont think its worth going into xna and c# unless you plan to go to make xbox games.even though it can make pc games, you might aswell not learn another language..I wholeheartedly disagree with that last statement. A decent programmer should know multiple languages - multiple paradigms even. It will broaden your vision and will make you a more efficient programmer overall. See languages as tools: a screwdriver isn't useful for nails (although you could (ab)use it as a hammer), and a hammer won't do good for screws. Different languages have different advantages and disadvantages. A new langauge can also teach you new approaches, which can be useful in a language that you've already learned before.At work I use C++ for the actual games - partially because of our target platforms - but C# for GUI-based tools and Python (sometimes Perl) for conversion scripts and other small tools. At home I use Python and haXe (Flash/standalone) for prototyping and tools. I still plan on getting more familiar with Lisp, mainly because the ideas behind it are so interesting.Anyway, I'd second tufflax: Python + Panda 3D is a good combination. I built a basic 3D adventure game with it in 3 months, without ever having used Python before (I did have experience with C++ and a little with Java though). For 2D, there's Pygame or Pyglet.   ;  Xna is not that bad. It's the most straight forward of all the options. You would have to learn some C# though, but it has some great results. Irrlicht is easy to set up, and has tutorials. I had more problems setting up ogre than any other engine, with the exception of Crystal Space. I think Captain p has a decent point, in the end, no matter what engine you use, it comes down to your abilities as a programmer. An engine is just a lot of code to save the programmer some time in the end anyway.   ;  Part of the problem is I have no idea how to do a lot of stuff that's necessary for games, esp. collision detection, climbing things, animation, physics, etc. And I feel like if I used a premade engine, rather than XNA, I wouldn't have to deal with much of that kind of thing. But idk, I'd feel almost like I was cutting corners, but the most important thing to me is that I actually complete a project.   ;Quote:Original post by d33tsPart of the problem is I have no idea how to do a lot of stuff that's necessary for games, esp. collision detection, climbing things, animation, physics, etc. And I feel like if I used a premade engine, rather than XNA, I wouldn't have to deal with much of that kind of thing. But idk, I'd feel almost like I was cutting corners, but the most important thing to me is that I actually complete a project.Don't see it as cutting corners: see it as a way to focus on the higher level aspects of game-development. It'll give you an idea of how things fit together, the things you need to keep in mind while you're working on lower-level things. For example, when you're writing collision detection code, it's very useful to know how it will be used.   ;  Collision detection is a moderately hairy problem, but it's not insoluble. Using a library to handle it for you will save you some time, though.Collision response is an entirely different matter, and is going to depend heavily on what kind of game you're making. Your collision detection algorithm can tell you how far in what direction your object needs to move to no longer be intersecting another object, but there's no guarantee that's how you actually want to react. Maybe you want to reflect off at an angle, or maybe you want the creature to flinch and then move through the object, or maybe it should just outright die. Those are the kinds of things you'll have to handle regardless of what libraries you use, unless you're going to, say, just use an engine that's specifically dedicated to making games of the type you want to make."Climbing things" and "physics" both fall under collision response, not collision detection. Animations -- there's probably an engine out there that handles animating things for you, but for 2D at least it's not very hard to make your own class that renders sequences of images, and it's good experience.Personally, I'm a big fan of Python with PyGame. If you want to see what code for that looks like, my current project is open-source (GPL v3), and it's a platforming game with jumping, animations, climbing, and crawling. :)   ;  Hmm. Seems like I have a lot of options. I'm would like to make a 3d platformer with various things like flying/gliding, climbing, etc. I think panda3d seems promising but I'd have to learn python. Although I still like the idea of XNA because then I could do xbox stuff, and it would force me to learn a bit more about how things work.And yeah, I guess I was talking more about collision response. But also physics in general, like having things fall, or bounce off each other when they hit. I think I can handle the basics of that, like giving things the correct acceleration and velocity (assuming I brush up on my physic) but I'd def have trouble with flying or switching to a climbing mode, balancing on wires, things like that.   