I realize that Unity is a game engine and XNA is just a framework, but it seems like either platform could potentially work for this purpose.
Which platform has more support in the regard of built-in or community built code/open source projects related to RTS games?
I know that there is going to be a lot of scripting/programming involved either way but if I didn't have to worry about making my own fast and efficient collision detection, pathfinding algorithms, client/server networking (the more nitty gritty stuff), it would greatly speed up development and allow me to concentrate more on the gameplay and design.
If you really don't want to be messing with the nitty-gritty as you just said, use an engine.
Even though a lot of stuff is high-level in XNA compared to many other frameworks, you still are ultimately responsible for the code your game is running - down to the smallest nitty-gritty detail.
This really goes for any genre by the way.
However, people can write engines using XNA that attempt to take care of the nitty-gritty for you, just as something like Unity would.
In the way of Unity, since it's already an engine you can't really write one in it - but people still write helpful scripts that you can make use of. Doing a bit of poking around on UnityAnswers, there are plenty written with RTS's in mind: It'd be your job to integrate the ones you need within your Unity game.
So honestly it comes down to which option provides more/better resources for your purposes; hope I've gotten you started at least.
Unity is pretty much geared toward games that require a lot of "simulation" elements (physics, collision detection, independent entities). If you don't want to worry about all that stuff, Unity would be your best bet.
Related
I have never developed a game before and actually never developed anything for iPhone.
What should be my Plan of Action if I want to build a game for iPhone/iOS? I need to know what are the steps I should be aware of to learn first, since I am a complete newbie to the entire universe of Game Dev and also for iOS programming.
I also want to know about how to gaming folks get inspired to write a game? Is there a good book that can give insight on game development from an inception point? How are ideas of games started and built?
Please give good examples of the resources I can use at each action step. For example, good resources to read up on Objective-C.
Learn Objective C and the IPhone environment.
Most game developers start because they already have an idea for the game they want to develop. Game development is tedious, because the code has to work and the game has to be fun. It's hard to get the fun part right without a lot of trial and error.
Since you're just getting started, you can pick a simple game that's been done many times. Consider that your practice game, while you're waiting for inspiration for the game you want to develop.
Since the IPhone isn't where I develop my games, I'll leave this question for others to answer.
To get your feet wet you should first start off by learning Objective-C. A Great book, probably the best book out there is Programming in Objective-C by Steven Kochan, preferably the latest edition out.(They keep releasing updates.)
Then I would go to the to the Apple Developer Center and read most if not all of these documents found here. There are also tutorials released by Apple that are very helpful..."Your first iOS Application", "Your second iOS application", etc.
https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/WhereToGo.html
That should get your familiar with Objective-C and Xcode. Next you should look into all the iOS Game Engines out there, programming your own would be counterintuitive at this stage of learning. Torque, Unity 3d, Game Salad, Cocos2d w/ chipmunk would be good to look into. Pick one and learn, learn, LEARN.
Another note is, your probably going to need to know how to work your way around 3d modeling software and or graphics software for sprites, characters, buildings etc. (That is probably going to be your largest learning curve.)
The important thing is to pace yourself and not try to build your vision straight from the get go. Go through tutorials, build small basic games until you're comfortable. Then you can start tackling your million dollar game idea.
Take it from a guy who has been been trying to learn iOS Development for the past 3 years, I have tried countless books and tutorials that just didn't cut it... Those two resources I gave are the best out there in my opinion. Hope all goes well, the best and most rewarding feeling is when are able to finally say "I Get it!".
Learning objective c is a good option, but it's not the only option.
If you are not a strong programmer, or if your focus is on being a good game designer rather than a good programmer (they are not mutually inclusive), than you might look into various middleware that can let you learn the basics of programming, without the challenge of learning objective-c simultaneously.
There is a misconception that becoming a good objective-c programmer will make you a good game designer. What makes you a good game designer is making A LOT of games. So the faster you can get into making games, the better.
Some good options that I use with my students:
Game Salad - Great for rapid prototyping, very easy to get into. Can be a frustrating if you want to do really complex stuff
Stencyl - More robust than game salad, allows "drag and drop" coding, or actual code. Also more complicated than Game Salad and not quite as intuitive.
Corona - A true code based platform, working with the Lua language. Definitely more complex than the prior two, but probably easier to get into than objective-c and cocos.
There are always going to be frustrations and limitations with these programs, but the trade off is speed.
When it comes to getting started in game design, I recommend your first game be something very simple, preferably start with a known concept (in other words, clone something - its a good way to learn the basics). Once you have the hang of basic development and the different parts of game design, start to work on your own concepts, but keep it simple at first.
Publishing a game on iOS is a whole other ball of wax, but the first step is making some games. Good luck, and drop a line if you need help. #happybadgers / happybadgers.com
I have been looking around and the best engine I can find is this: http://unigine.com/
The problem is a full licence starts around £18,000 which i just cant afford in the real world.
So ...
I'm looking to do something unique in my project that involves dynamic terrain that can be moved in realtime whilst the user is in game and "stood" on it, other than that it's pretty much the same as any other WOW clone out there.
I'm also looking for something that (if i decide later to consider this a serious career option) would be taken serious by the industry as a real skill set to have.
Any ideas?
-- EDIT --
I am already an experienced developer but I build line of business applications for pushing data around between companies and departments so I don't need guides / tutorials as such.
I have also done a bit of XNA myself (tried building my own engine) but decided to use a prebult engine to reduce my project lifecycle.
Vanquish is what we are currently working on, but QuickStartEngine has a lot features including terrain.
I've heard good things about SunBurn see: http://www.synapsegaming.com/products/sunburn/engine/
The pricing starts at $150,- which seems very affordable
I dabbled in some game programming a few years back. I got up to using Windows Xp, C++, Ogre3d, Visual Studio, and Blender. I started to make an RTS but then real life happened.
Anyway, I'm looking to get back into it and I am wondering if there are any worthy alternatives to C++, now that Ruby,Python, and C# have become popular.
Is C++ still the preferred language?
I'm running Ubuntu now so I'd have to use some Ubuntu C++ IDE, C++, and Ogre3d.
Anyone used Ogre3d and moved onto something else?
Edit
Goals: Just hobby based 3d programming on the PC
I'm running Ubuntu at the moment but will move to Win7 someday
I imagine a simple game like Startopia
I know a bit about physics engines and sound and I've plugged Ogre3d components together before
So far I've seen that Ogre3d is still widely used. Might look into python and http://www.panda3d.org/
Cheers.
If you like to make games and not just spend all your time working on a feature of your game engine, I recommend you take a look at Unity 3D.
Features:
Game engine (not just a rendering engine)
Script in C#, or JavaScript (modified), or Python, or Boo
Awsome editor
Game can be deployed on: Linux/Windows/Mac/Android/iPhone/iPad/Xbox (and always extending)
Web player to play games in browser (after installing a tiny plugin)
Proven with great commercial games
Having experience with ogre3d is not enough to make a game like startopia as a hobby project. Have you done a finished game before?
Here's a post I found interesting:
http://greyaliengames.com/blog/the-6-steps-to-massive-game-development-success/
IMHO, you should go making 3D games like this at stage 4.
And also depends on whether your hobby is in engineering or making games?
If engineering, using ogre3d would make you learn better engineering skills.
Otherwise, trying to learn how to use an engine like Unity 3D, Torque or UDK would be better.
Everyone mentioned Ogre3D, which is good, but you could also look into Irrlicht: http://irrlicht.sourceforge.net/features.html
it's main advantage (at least to my knowledge) against Ogre3D is that it's more simple, in design and use.
Ogre3d is a fantastic graphics API that is great if you don't want to delve into some crap OpenGL or DirectX shader code for shadows and lighting and alpha ordering etc, but also don't want a true game engine with sound, networking, etc; it's only graphics.
I prefer Ogre3D to Irrlicht over the structure of the API, but it's entirely personal preference.
I might take some flak for saying this, but Java isn't a bad language if you are programming a simple game engine, Java and C++ are getting on pretty equal terms as far as speed nowadays.
C++ gives you a lot of low level access to make small optimizations that if you are experienced enough with, you can get some good performance gains. But optimization is a huge broad topic, especially with game engines.
Typically the average game programmer isn't going to dive into serious low level optimizations with their engines, but large game companies do.
C++ and Ogre are still a viable combination. On the other hand, MICROSOFT wants you to use C# and their XNA framework, and you always want to obey MICROSOFT... oh, wait, anybody know if XNA works with VS 2010 yet? It didn't, when I looked.
I'll simply title this in concordance with my Pac-Man game that I want to make.
I was suggested to perhaps start with a programming language or platform that uses less overhead than, say, DirectX. I can agree to that, especially because then I can focus on the design of the game rather than the implementation- something I think is more important at this stage.
I was wondering what merits Processing has as a language capable of creating simple games. The creation of images seems almost trivially easy, which allows me a lot of play-room to mess with the algorithms. However, I wanted to know if the language is suited for a game and possibly resource-intensive code?
At first glance, this looks almost like a simplified version of Actionscript, a language that tries to easily produce images. ActionScript is something I have already programmed in, but do not like. The language, for some reason, isn't that appealing to me. Processing isn't so much either but I feel the image processing capabilities of this make it outweigh my negative view of the syntax.
So my question is, what are the people's experience with Processing, and am I really justified in comparing it to ActionScript? Is it suitable for creating games at all? I figure with all the comfort and ease I have creating images, I feel the speed of the program as a whole would be decreased, especially when I introduce algorithms.
Furthermore, if it is suitable for creating a simple pac-man game, should I try ActionScript instead anyway?
Well, you're not only choosing languages, but also choosing platforms here. AS3 means FlashPlayer, Processing means JVM. I don't think processing has to necessarily needs to turn out slower, or faster. In the case of pacman, this is all a matter of rendering speed. I don't know what Processing uses for rendering, but if it is jOGL, it is possible to outperform FlashPlayer (depending on the kind of graphics).
I think, the core question is, where you want to be going with the game. If it is just a prototype, both flash and processing are good tools, each having its own strengths and weaknesses. If you really want this to be a long shot, then you also should consider several factors:
Due to Flash's market penetration and a big gaming (and game developement) community:
Flash probably is a better platform for both distribution.
There's a number of flash game engines (also dealing with multiplayer etc.) out there, whereas I found similar engines to build on in Processing impossible to find.
From what I can tell, AS3 is a more "serious" language, aiming for developement of applications, whereas Processing focuses on fast prototyping and image processing.
Now another question is, what you don't like in both AS3 and Processing. Personally, I switched to Haxe, which proved to leverage the FlashPlayer better than AS3 does, and is a far more expressive and elegant language. However, since I don't know what your exact problem is, I cannot really give you advice.
after years of using processing, i can say that the language imposed itself as the canvas language with implementations in js, python and ruby.
if you like the canvas, you'll maybe understand the simplicity of it
a line is drawn with only
line(x1,x2,y1,y2);
compare this with native js or python syntax
as such, processing allows you to focus more on ideas rather than struggling with platform specific concept
numerous games have been produced with it both on the browser and in desktop.
compared to action script, i feel that processing is far more cross platformed and user friendly which makes unleashing your creativity a painless job !
Which one of these would fit a top down shooter better?
I've heard that Box2D performs faster, but I've also noticed that it lacks wider community support for XNA (it rather seems to be used for flash - for a reason unknown to me).
Farseer is however built for XNA, and seems to fit it and perform pretty fine. Farseer's advantage in my opinion is also it's clean, easy to use API (also it'd fit my game-engine's structure perfectly). However I'm affraid I'll have some drawbacks if I use it (bullets and high speed bodies? strange not a number crashes?)
Overall I'd appreciate if you'd point out which one fits better XNA/PC development.
Reasons why I need this:
It is not going to be used only in one top-down shooter, it's meant for integration with game framework.
Even a top-down shooter would be more appealing in an environment with better collisions, realistic physics - for example you could move a box to get into cover?
Manual control of collisions in an pixel perfect manner would be too expensive (I don't have time to optimize it - nor I need it if high-performance physics engines with advanced collision detection algorithms exist out there), whilst bounding box collision is way to unrealistic.
Do I deserve an answer with your opinion now? Please keep it straight and tell me did I make a wrong step by using Farseer instead of Box2D? (I had to start working while waiting for an answer.)
Thanks in advance
Why use a physics-library in a top-down shooter ?
I think all you need is some basic collision-detection / handling.
Running a complete physics simulation seems a bit over the top.
Edit:
Personally I think I'd go for Farseer, I've heard good things about it and it seems to be well supported. The point is that for a decision based on arguments, one would first need to know exactly what it will and won't be used for, what you expect of it in terms of functionality, speed and supported platforms, what you expect in terms of support, etcetera. Just asking "What physics-lib should I use for a topdown shooter" is not enough information. Especially if you edit it later on to say it's actually not for a topdown-shooter but for general use in a game-engine :-)
I'd go with Farseer for sure (although I've used it previously so I am biased). It has a lot of examples and even has some specific optimisations for the .Net compact FX. Internally it is based on Box2D (yes it is a slightly old build) but it is being actively developed all the newer features of Box2D are pulled across. The API is mature, clean and easier to use than Box2D. If all that doesn't sway you, then this should: http://ianqvist.blogspot.com/2010/12/benchmarking-box2d-based-physics.html
I definitely suggest using Farseer, it has been in development for long (>3 years) and I think its major flaws have been corrected.