Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I started making a 2D game in C# and realized that I could also use a game engine or XNA. For the moment everything works fine but I'm afraid I will have problems in the future.

So do I actually need a game engine or XNA? Or will it also works without.

PS: I don't know anything of XNA so I would learn it.

share|improve this question

closed as off-topic by Anko, Kromster, Josh Petrie Sep 16 '15 at 15:49

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 Petrie
If this question can be reworded to fit the rules in the help center, please edit the question.

C# is not a great game language as it is managed. This means to talk directly to the GPU (and not very slow GDI or cumbersome P/Invokes) probably means using external libraries such as SlimDX etc. XNA is the replacement for DirectX from Microsoft that makes using C# syntax in a faster, game orientated (and cross platform) way. It hides most of the GPU access required and makes many things much easier while maintaining good frame rates. It is well worth learning. – Wolf5370 Jul 13 '12 at 18:48
Wolf5370, I'm kind of building up my programming skills. I started with Visual Basic and I'm also seeing this language in school. Right now I'm learning C# and after C#, I'm going to learn Java or C++. – Velcio Jul 13 '12 at 19:03
Sure - c# is great for building Apps and websites/services with. XNA is the form of C# you want to use if you want to game program. There are other ways (like I said SlimDX and TAO) but these are just libraries which do not help learning c# particularly. It's just a case of picking the right tool for the right job really. IMHO I would spend some time on XNA, if games programming is your objective; or build some winform apps if learning c# is your objective. XNA is good because it handles a lot of the under the covers horror nad adds helpers and datatypes/maths etc that make life easier. – Wolf5370 Jul 14 '12 at 9:36
up vote 12 down vote accepted

Game engines are not required! However, since you seem to be new to game development, game engines are highly recommended. XNA will help you by abstracting away a large amount of complex tasks into easy ones. Think of the engine like a set of tools and code that covers all the "standard" game development tasks, so you don't have to re-write something that needs to be written for every game.

Obligatory game/engine advice: Make games, not engines.

share|improve this answer
Is it easy to make my own buttons in XNA? Because without XNA it was very easy to make my own custom button. Thnx for the advice :P – Velcio Jul 13 '12 at 16:12
I don't use XNA, so I don't really have a good idea about that. However, from my understanding, XNA doesn't really have GUI features built in. If you're only looking for GUI type functionality check out: – Byte56 Jul 13 '12 at 16:17
thank you very much, I think I will use XNA to make my game. – Velcio Jul 13 '12 at 16:21
Plus one for the "make games, not engines" advice, even though I'm making an engine now- ;) – jcora Jul 13 '12 at 16:50
@Bane Same here :/ I think that means we're more qualified to give the advice though :) – Byte56 Jul 13 '12 at 16:59

It seems to be a slight misunderstanding here what a engine actually is. The foundation of a game is always called a engine. Can you build a car without a engine? No. But you can build your own, you don't have to depend on any premade engine. Your engine can be a tiny 100 lines of code or it can be a big beast of hundred thousands lines of code. Either way its a engine. Building big reusable engines is something rather new, ten/fifteen years ago every engine was a very specialized one, specifically build for the one game it was used in.

Building your game from scratch can teach you a lot about the implications of design decisions and I think every game developer should have gone through that process at least once for a small game.

However using a already existing engine will make a game require a lot less work, and why do the work again if it was done once already?

I tend to interpret the slogan "Make games, not engines" as "Make your engine as small as possible" because many programmers tend to work years on the engine for their game, implementing many things they don't really need, rather than the game itself. That way they never finish it.

share|improve this answer
Is XNA a game engine or can I make a small engine using XNA? – Velcio Jul 13 '12 at 17:45
XNA is a library you can use to write your engine. Its not a engine because its basically just providing building blocks rather then a complete (and rigid, as it is usual for engines) structure. – API-Beast Jul 13 '12 at 18:21

Game engines make's it easier to create video games.But its not really 100% required to create.You can also use programming skills to create video games (Minecraft is created with Java)

share|improve this answer

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