I’ve been trying to get into game programming for awhile, but just never had the time. This is my most recent attempt, and I think I might actually get something going this time. Unfortunately, I’m new to this and looking for some help.
First Time Game Developer
On XNA, I can just say: Don't even waste your time. It isn't even supported in Visual Studio 2012 and it is announced that all support from DirectX and XNA Gaming Studio will be cut by 2014.
In my opinion, you seem to be in a good position to try an existing game development system such as Unity 3D or Torque 3D. You have enough programming experience that getting back into the groove will happen soon. I recommend for you in your position to choose an attractive game engine and use the language or languages which are native to it.
The C# is an excellent general purpose language. It can't do everything, but is broad in capability. Unity 3D uses some C#. There are ways to compile to or from C# in some game engines, as is true in some cases with other languages.
Here is a list:
http://en.wikipedia.org/wiki/List_of_game_engines
You can use a 3D engine to make 2D games - very important to remember that. If the 2D game is going to be very simple than a game engine made for 2D might be better. Look at PyGame, GameMaker, Blender, ... many others. Choose one and begin to get familiar with the engine, meanwhile sharpening your knowledge of the language with later online tutorials and books in the language.
Being a newbie game developer myself, I can suggest you learn Sample DirectMedia Layer (SDL for short) to get a grasp of whats going on in a game. www.sdltutorials.com seems to explain the concepts clear enough but his coding style just doesn't fit me.
On XNA, I can just say: Don't even waste your time. It isn't even supported in Visual Studio 2012 and it is announced that all support from DirectX and XNA Gaming Studio will be cut by 2014.
Thanks for the help. I ready about SDL and being a good place to start. Someone suggested taking a look at these tutorials: http://www.lazyfoo.net/SDL_tutorials
I'll definitely look into XNA. I believe that's what they use for xbox games so not sure what they'll replace it with. Maybe an updated version of XNA. Surprised to see it not supported with VS 2012.
I'll definitely look at the 3D engines. I've heard a lot about Unity being good. I think the newest one they've ported for Android. I'm really looking to do 2D games right now. Want to make an RPG. I'll look into using Unity for it, but if it's too much, a 2D engine might be best.
Anyone recommended any 2D engines that they've used that worked well? I want to use something that will give me some assistance, but give me a lot of control. I thought I heard that engines like GameMaker are limited on what you can do, where something else that just provides some useful functions, but opens up control to the programmer to do more customization and flexibility. No idea if that's a true statement, still learning.
I have taught middle school students to use Game Maker and I own a copy of both Game Maker HTML5 and Game Maker Studio. Game Maker is not nearly as limited as you might think. The GML language can do a lot and it can handle creating a wide variety of games.
From this link: http://forums.tigsource.com/index.php?topic=17062.0 you can see that there are a number of commercial games made with Game Maker as well.
I have also used Multimedia Fusion (1&2, And The Games Factory, KNP, and Jamagic) from Clickteam as well. Multimedia Fusion can also make a wide variety of games.
I have briefly used Construct and it is similar to Multimedia Fusion. Construct 2 can make HTML5 games.
I used Torque2D a long time ago but I have no idea as to its current state.
I was looking at Unity with one of the available 2D libraries but I ran out of time to experiment with it.
PyGame is pretty good, I like XNA, and SFML is a good c++ option.
Try a number of things and see which you like best. Pick a technology you like, stick with it, and don't give up!
How do these game engines work exactly? Is it a separate application to create a game with, or are they a set of APIs that you include in your program using Visual Studio for example? I'm sure the answer is certain engines do one and certain engines do the other. What about Game Maker and Unity? Are they applications or APIs to include in development applications.
My plan is to go through the SDL tutorials to break off all the rust and then start looking at what game engine I want to use. I definitely want to focus on 2D games like overhead RPGs and side scrollers. Probably won't venture into 3D at all since I don't have the dedicated time to invest. I'd much rather make very polished 2D games. I know it's probably not the best place to start, but my end goal is to make a really nice RPG so that's the style I'm aiming for.
The game engine is the software and applications layer between your game coding and the runtime environment (such as Common Language Runtime or Java Runtime Environment) and/or machine/assembly language. In the case of industry or corporation APIs such as OpenGL, DirectX, Java APIs and so forth, these APIs are also a layer between your game coding and the machine/assembly level, but leave much of the tool making and other application work up to you as far as games are concerned. Consider these APIs to be more general application programming and open ended than a game engine which is made for programming a game. By the way, game engines depending on design can be an interface between a language which you use in the game engine such as C++, C#, C, or Java and APIs like OpenGL or DirectX within a framework such as Java Framework, .NET Framework, or Mono (an implementation of .NET actually). Simply remember that a game engine is the development environment layered or sandwiched between your game coding and lower level coding which you probably will never handle directly. The game engine is really a set of interfaces (at the core of it) between your coding and assembly/machine coding, but can sometimes be used with another intermediate layer such as OpenGL.
Thanks a lot for your advice. A game engine will definitely help, just depends on which one works best. I'll be sure to do a lot of research into which engine is good for me. I'm thinking I'll end up either doing C++ or C# and I'd like an engine that focuses on 2D since that's the types of games I want to make. I know a lot of 3D engines can make 2D games, but I assume it's easier to use an engine that specializes in 2D games if that's my focus.