I have experience with XNA and Unity3D. I have also built my own engine with Tao and C#. I am in last year of college and I want to make a small RTS game demo, nothing fancy I won't bother much with the art part. I will leave objects untextured, just drop some light.

It is a big decision, which one to choose XNA or Unity3D or maybe else? I definitely won't build my own engine since I will waste lot of time that way. I am looking for an engine/framework that will allow me to concentrate on higher level stuff like AI algorithms rather than do my own texture loading and stuff.

I will try to copy stuff from Starcraft2. My models and environment won't be textured though. I won't bother with sounds either, just some simple explosion and shooting sounds. The player will play against AI. I will go for the Starcraft2 mechanics/logic, not the skin. By skin I mean art stuff. At the end I would make small videos of gameplay showing the AI decision making process by printing text, so that a potential employee can see what is actually going on.


closed as off-topic by Kromster, Josh Nov 16 '15 at 16:08

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started," "what to learn next," or "which technology to use" are discussion-oriented questions which involve answers that are either based on opinion, or which are all equally valid. Those kinds of questions are outside the scope of this site. Visit our help center for more information." – Josh
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 5
    \$\begingroup\$ Contrary to "No sense in re-inventing the wheel", my belief is re-invent the wheel so you know how it works and then you can customize it and make it an awesome wheel. \$\endgroup\$ – KRB Oct 5 '11 at 20:27
  • 2
    \$\begingroup\$ Since XNA is not an engine, just a heavy wrapper around DirectX9 + some helper functions I think you should go for Unity3D. (Although I am a big fan of XNA the iteration time with Unity3D should be even shorter). \$\endgroup\$ – Roy T. Oct 5 '11 at 20:41
  • \$\begingroup\$ If you want to dive a bit deeper and don't mind older code, Warzone 2100's source code was released some time ago: en.wikipedia.org/wiki/Warzone_2100 \$\endgroup\$ – Michael Stum Oct 8 '11 at 12:24
  • \$\begingroup\$ Yeah, its here: Warzone 2100 source \$\endgroup\$ – bobobobo Oct 13 '11 at 21:01
  • \$\begingroup\$ Its more realistic to say "i wanna build a game like Warcraft" than it is "Starcraft 2". THE HUMANS DRAW NEAR!! \$\endgroup\$ – bobobobo Oct 13 '11 at 21:05

How to Choose Between Two Things

Seriously though, it sounds like a personal choice to me. Which one do you have more experience in or are more comfortable with? How might you start making an RTS with XNA vs. making it in Unity3D? Unity3D is higher-level, more engine-like; do you want to deal with matrices and stuff, essentially writing things from scratch, or do you want to work within Unity's environment?

Also from a goal-oriented perspective, it sounds like you're doing this for the end goal of showing an employer your game AI. It seems like you would want to do the least amount of work to get to the point of implementing AI, therefore you would want to choose Unity. But if you want to impress your employer with what you've written from scratch, XNA is definitely closer to starting from scratch than Unity3D.

  • \$\begingroup\$ What really gets me about that link is it doesn't just say "GO WITH WHAT YOU SAID HEADS WOULD DO", but it says "If you don't like the outcome, then go with the other thing" \$\endgroup\$ – bobobobo Oct 13 '11 at 21:03
  • \$\begingroup\$ @bobobobo Actually, you should give it a try. I do it occasionally (before finding this link) and that's exactly what I do. I can't decide one or the other, so I flip the coin and then I either agree with it or argue with it, and discover my choice. It's no fun if you flip it and it's heads but then you realize you wanted whatever tails was but force yourself to do the heads thing; the point is simply to get a "second opinion". \$\endgroup\$ – Ricket Oct 15 '11 at 2:30

XNA is fine. Unity too. Really just choose one.

As a student I coded a turnbased strategy game in C#/XNA to implement an AI.

So here's some free advice:

You need to get the game in a playable state before even thinking about writing the AI. Yes I know this is obvious ;) So you might wanna consider making a mod for an existing RTS instead of writing an RTS from scratch.

Create a dumb AI as soon as possible. Just to test/tweak your RTS (if you build from scratch). This will give you some insights how to design your AI and which problems the AI needs to solve. It can also be used as opponent against the real AI later.

Your RTS rules must be complex enough to even require an AI e.g. a player should not be able to win by simply mass producing one unit type. One way to do this is by having a counter unit for each other unit type. Starcraft achieves this with different weapon/armor types.

The AI Game Programming Wisdom books by Steve Rabin are a good resource on game AI.


There is a FOSS engine specifically for RTS's http://springrts.com/

It uses Lua and C++.

Though it looks like your using the StarCraft2 engine. Which is a really good idea.

  • \$\begingroup\$ Its amazing, how long this engine is going one. Since 2005! \$\endgroup\$ – Quazi Irfan Oct 8 '11 at 8:28

Unity has come a long way. Anyone thinking about creating their own game or game demo should now ask themselves, why should I NOT choose Unity.

When it comes down to Real Time Strategy type of games, Unity already has an asset for this in the asset store. It currently has no AI and no multiplayer but should be a great asset to build upon or learn from.

RTS development framework

  • \$\begingroup\$ "Why should I NOT choose Unity": lack of control, expensive, bloated and it's honestly easier to make games without it, at least for me. \$\endgroup\$ – Lolums Nov 16 '15 at 17:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.