Members - Reputation: 110
Posted 30 June 2012 - 10:16 PM
I'm super new to programming, and I'm still trying to wrap my head around frameworks vs engines. I'm working on a 2d game that is a mix of both action and some light platforming, as well as some strong, traditional adventure game influences. The three Framework/engines that I have narrowed my search to are Unity, XNA, and Gamemaker 8. I want to be able to build this game comfortably, while also having the tools I need to do what I want. In addition to that, I also want to have the skills that I learn while making the project be useful to me in the future, when I tackle bigger and more complex game designs. If you were in my shoes, which of these three would you choose to use?
Members - Reputation: 625
Posted 30 June 2012 - 11:05 PM
If you're looking to score a job in the future, XNA is probably gonna do you best justice. In fact, XNA is not really the core concern here, it's more about the actual programming. Of course, if you're inherently interested in programming, then this is a path you might want to take. Consider though, that it'll take some time before you are capable of building a 2D sidescroller.
If you want to make your game without having to go all the way to the metal, Game Maker will probably be best for you. It's pretty straight forward, and I'm thinking you might be able to finish the game without writing a single line of code, but don't take my word for it.
Now, a lot of people don't draw a clear line between design and development, so if you had design in mind, you might want to choose one of the engines.
I have never used Unity so I can't say all too much about it. You might want to compare it to Game Maker and see if it suits your needs better.
That's the thought process I would go through if I were to make a decision about something like that.
Edited by boogyman19946, 30 June 2012 - 11:07 PM.
My personal links
- Khan Academy - For all your math needs
- Java API Documentation - For all your Java info needs
- C++ Standard Library Reference - For some of your C++ needs ^.^
Members - Reputation: 1054
Posted 01 July 2012 - 04:00 AM
Game Maker (lowest)
XNA is incredibly code heavy, theres no click and drag or anything you have to write all of your code. However XNA isn't actually a game engine, its a framework so it only actually does the rendering, 2d pixel collisions, some limited 3d I think, input and sound. You have to tie it all together yourself. This does give the developer a HUGE amount of flexibility, ANY game genre can be made in it. Uses any language that runs on the .net framework although its intended for use with C#.
Game maker is click and drag. There is a programming interface but its a pro feature ($25), game maker isn't incredibly powerful but its easy. With some trickery, a bit of kludging and some knowledge of how game maker works any 2d game will eventually work. The pro version uses Game Maker Language, I don't know much about it.
I've not used game maker or unity but have used XNA. Really if you want to make this journey you have to know how to program, as both unity and XNA can use it and its a popular language elsewhere I would use C#.
Members - Reputation: 627
Posted 01 July 2012 - 04:56 AM
If you want to learn the basics of 2D game coding, try Pygame http://www.pygame.org/news.html ( free )
If you actually know how game coding works, use XNA .... or just go for it, building your game from scratch with C++.
Edited by Shippou, 01 July 2012 - 04:58 AM.
Members - Reputation: 110
Posted 01 July 2012 - 05:09 AM
As far as the flexability that xna provides, what will that allow me to do that unity wouldn't? And also, since unity is primarially designed for 3d games, will I run into any major problems when attempting to make a 2d game?
Members - Reputation: 307
Posted 01 July 2012 - 11:37 AM
I started with Python console programs, then moved on to Python+PyGame. I think this is a great way to learn programming fundamentals. Try to start slowly and make sure you really understand how things work before moving on to more complex systems. If nothing else, write a text-based guessing game and Pong before you try a big game.
When you do start coding your sidescroller, I recommend using Unity. It's even easier to write a Unity game than a PyGame game, and many complicated tasks are already abstracted away for you. A 2D game in Unity shouldn't be a problem, but you may have to do some work to get it functioning as expected.
As to the flexiblity of XNA: the average game is not even going to notice the flexibility difference between Unity and XNA. You'll be able to use more external libraries from XNA and do more filesystem stuff; that's about it for most games. Unity is more crossplatform (PC/Mac/Linux/iOS/Android/Consoles -- latter three if you pay).
Good luck with your project!
Members - Reputation: 1054
Posted 01 July 2012 - 03:31 PM
For the average single player game not a huge amount. But lets take an mmo game, unity usually provides its own networking code that isnt suited to mmo's. XNA you can bolt on any .net compatible networking library you want.
As far as the flexability that xna provides, what will that allow me to do that unity wouldn't?
Where XNA is a framework not a dedicated language it can be used outside of games development, I for instance am using its gamepad input libraries to convert gamepad input to a windows keypress in a console application. This just lets me control my PC to a basic level with my xbox controller.
Unity uses the physx physics engine, XNA doesnt have one of its own but if you need one you get a choice, so whereas unity limits you to just 1 XNA will let you use whichever one you want and if you want to you can combine multiple into one project.
These are things that for now, you don't have to worry about. I think unity isn't a bad option for you.
Members - Reputation: 580
Posted 01 July 2012 - 04:16 PM
But lets take an mmo game, unity usually provides its own networking code that isnt suited to mmo's. XNA you can bolt on any .net compatible networking library you want.
I'd just like to point out you don't have to use Unity's built in networking. Things like SmartFoxServer, or PhotonServer work great.
And also, since unity is primarially designed for 3d games, will I run into any major problems when attempting to make a 2d game?
Well Unity is a 3d engine, so 2d games will be more difficult to implement. Not impossible by any means.