views:

108

answers:

6

Hey, I know someone who is looking into developing simple video games on his pc, and then eventually, hopefully port or develop some on the XBOX 360 indie center, using XNA studio.

So, I have heard about C#? How easy it for a beginner?

C++ is pretty good isn't it? But I've heard it's QUITE deep, broad, and sounds pretty easy to get lot in.

Also, I am assuming he would need an application for GUI and graphical development for the game?

Obviously we need a menu, and some graphics (unless we're doing a text-based game to begin with).

What program is good for that too?

Sorry for the kind of hap-hazardous question, but I'm just trying to feel everything out.

+3  A: 

If you want to develop for the XBOX 360 Indie Center, you really have to be using XNA. This is the main, supported platform for Xbox + PC development.

That will probably force you into C#, as all of the samples, and nearly all of the documentation, is done in C#. You'll also want to use XNA for the graphics, as well as the content pipeline.

The XNA Creators Club has quite a few articles to get you started.

Reed Copsey
+1  A: 

I think it is up to you which language will you choose, because you can develop games in (almost?) every programing/scripting language there exists.

As I know many games are developed under C++ and there are many ready to use libraries that can help you with that. I have some experience in programing games in Java and it's also good. There are also ready to use libraries, like Sprites to easy animate characters/items.

I am also sure that in C# it would be quite easy and there are also some libraries.

I heard that Python is also good language for games developing. I have no experience with that, but Python is quite easy language to learn/develop.

So if you have any experience in any language you try it :) I mean for PC games developing.

Ventus
Yes, I was actually experimenting with Python, and it was pretty forgiving actually.
BOSS
+3  A: 

The best way to start making games is to start making games.

In other words, just get going. XNA and C# are a good way to just get in and get used to doing things, and it's the best way to start developing on the Xbox. If you're a student, you can get some free software from Microsoft through Dreamspark, including a free limited XNA Creators' Club membership (it at least allows you to deploy to your own machine and test).

Eventually, you'll probably want to learn C++ if you are getting into professional development. It's the lingua franca of game development, and there's an expectation that you are at least intermediate in it (most companies don't expect you to be a language lawyer).

Feanor
I like the idea of just going for it, because I've been doing some web programming, and then I was delving a little into Objective-C and I could actually pick up obj-c quite easily, versus the first time I tried.I think just going into something and getting experience, like you mentioned IS the best.
BOSS
+2  A: 

To put it simply:

For a beginner looking toward PC and XBOX, then the answer is XNA studio, using the C# language.

Microsoft provides a free version of Visual Studio developer environment:

http://www.microsoft.com/express/Downloads/#2010-Visual-CS

C# is a very nice modern language, and a very good first-time language, as long as you're fine with being tied to Microsoft Windows and XBox (more or less).

Programming is not easy, but it can be very rewarding to learn.

There are some nice C# and XNA tutorials out there.

C++ is hard.

Detmar
Just wondering, is C# COMPLETELY tied to MSoft?I mean, because obviously with C# under your belt, you could spend some time with XNA and dev games that could hopefully work on PC's, W7phones and 360's.That's cool and all, but it reminds me of Objective-C and the OS X and iOS platform.I'm guessing to support both, you would need to learn both :)
BOSS
@BOSS: You can use C# via Mono on other platforms, even for developing games. For example, C# with Unity even works on iPhone: http://unity3d.com/
Reed Copsey
Right, Mono supports C# for non-Windows platforms. http://en.wikipedia.org/wiki/MonoDevelop But C# was developed by Microsoft for their own purposes, and they seem to want to keep some level of control over it. It's a bigger topic than can be covered in a comment :)
Detmar
Wow, Unity and Mono look aMAZING! :)
BOSS
@BOSS: There's a bit of discussion going back and forth here about whether C++ or C# is "better", whether from a game-making point of view, or a career point of view. Some of that is a matter of opinion and taste. Except to say that it's true that C++ *is* the professional language of large games. I'm a professional game programmer who has worked on many medium-sized teams. PC, PS2 PS3, other. In my experience, we wrote in C up to the year 2000, and in C++ ever since, including my current gig. Having said all that, I do most of my own personal hobby/game programming in C#.
Detmar
Interesting, it appears as though C# is great for someone more like me, a hobbyist, but for the pros, C++ is where it's at.
BOSS
+2  A: 

Starting vg dev, which language?

C++. Reasons: large collection of libraries, backward compatibility with C, widely used. Achieving good skill level in C++ will take from 2 to 7 years.

Also, I am assuming he would need an application for GUI and graphical development for the game?

There are multiple gui libraries, one of them is Qt 4, supported by nokia. There are alternatives.

Obviously we need a menu, and some graphics (unless we're doing a text-based game to begin with).

Graphics: gimp, blender 3d. OR photoshop, 3dsmax/maya/zbrush.

Menu - you'll probably have to write menu designer for your game yourself.

Now, let's get reasonable. Game consists of:
1. Engine (programming skill)
2. Music (composition skill)
3. Art (artistic skill)
4. Sound (sound recording/processing)
5. Script/story/idea (creativity)
6. Levels, ingame mechanics (that's game design)

Achieving mastery in each area most likely will take years. And developing a game takes time. You should expect that writing your game will take at least months, and aquiring skills for that will take at least year (if you're genius, that is). If you have previous programming experience, you can learn everything you need (though hiring someone to do it for you will be much easier) and write your game, but that won't be easy. Making a mod for existing game will be also easier than writing everything from scratch. Or you could use already available engine.

SigTerm
That's true.Wouldn't C# and XNA be a better place to begin for beginners?
BOSS
@BOSS: "Wouldn't C# and XNA be a better place to begin for beginners?" Probably not. No matter which technology/language you want to use, you *still* will have to spend a lot of time learning it - months, if you're smart and lucky. http://norvig.com/21-days.html
SigTerm
+1  A: 

C# is a good starting place for XNA and Xbox if you're not already comfortable with C++. The XNA tools for Visual Studio are quite good and are maturing nicely. Later, if you need more flexibility and performance, you can move to C++ and DirectX (or some other graphics library). The most important stuff you learn about games from C#/XNA, such as game loops, 3D math, and shader programming, will travel with you from C# to C++, C, or whatever other language you choose.

As Feanor said, the best step is just to start. You can always change the details of your path later.

TechNeilogy