Sign in to follow this  
Galima

A friend told me C# and XNA but ...

Recommended Posts

Hi fellow Game Devs :) first of all I'm glad to be a member of this site. "just signed in today" Me and two others has decided to make a gaming group where we will learn a language and then produce games later on, we where all agreed that we would learn Java because its easy to understand and simpel, so we begun reading some books, no we has not come to the game state yet. Another of my friend which has programmed in C# for two years told me we should stop learning Java and learning C# instead and with something XNA he told me, then i youtube'd XNA and its kinda looking really amazing, and he told me that C# is looking a little like Java and its also easy to learn, then im all :O because i know C# is stronger than Java and sure we will produce beatifuller and stronger and more advanced game's with a stronger language. Now my question is. Should we quit Java and begin learning C# and this XNA, our goal is to produce beatifull advanced 3D games, singleplayer and multiplayer. And is there any limitations on XNA ? And more information would be great Regards Galima.

Share this post


Link to post
Share on other sites
There is not really such thing as a stronger language.

1) No, If you have just started programming you guys should not ditch java. You guys need to concentrate on learning a language and sticking with it for some time. You seem to think that you can learn everything you need to know in a short while and pop out a beautiful 3D game. I have been programming for 3 years and I am being challenged by writing an asteroids clone!

2) Yes, I believe that XNA cannot use the XBOX live online system to play games through multiplayer on the XBOX. (Correct me if I am wrong)

My best wishes to you and your friends,
Jared

Share this post


Link to post
Share on other sites
Quote:
Original post by jdub
2) Yes, I believe that XNA cannot use the XBOX live online system to play games through multiplayer on the XBOX. (Correct me if I am wrong.


Actually the restriction is the other way around. You currently cannot distribute a Windows game that utilizes the XNA networking APIs (which wrap around Windows LIVE). If you create an Xbox 360 game (and distribute it through the upcoming Xbox LIVE Community Games system), you most definitely are free to use the Xbox LIVE networking in your game.

Share this post


Link to post
Share on other sites
Hi Galima,

The choice between Java and C#/XNA is not only a choice of language, but it's about available tools, libraries and (online) support as well. I don't know much about Java game development, but XNA is getting a lot of attention these days. So it might well be that you can get help to problems regarding C#/XNA quicker than to Java game dev related questions.

I don't know if you have spent a lot of time and money on Java, but if you're just beginning anyway, it might be a reasonable choice to move to C#/XNA. Not that much because of the language, but because of the support. Nevertheless, if you feel comfortable with Java, stick with it and gain experience in OOP etc.

Note that, like Jared said, you won't be able to write an AAA game just because you use XNA instead of Java.

Regards,
Andre

P.S.: And to finally come to the Java vs. C# flamewar-esque part: C# is certainly a more feature rich and further evolved language than Java.

Whenever I have the choice to decide whether a project has to be done in C# or in Java, for me C# is always the way to go. However, this choice is made before a very important background:
- I know both languages
- I know exactly what I want to do (e.g. business intranet apps in my job)
- I know I can squeeze more efficiency out of my work time by chosing C# over Java
What I want to say: I prefer C# over Java, because I know how to make use of the real differences of the two languages, not because I like class Foo : Bar better than class Foo extends Bar.

Share this post


Link to post
Share on other sites
Either of the languages you're considering are capable of producing good quality polished 3d games in the hands of a skilled programmer.

If you've already put time into or spent any money on getting started with Java you may as well stick with it for now. If not, then either of the two is a fine choice as long as you stick with one of them long enough to learn how ot program sufficiently to acheive your goals.



Personally I'd prefer C#/XNA if choosing between the two, but that doesn't neccesarily make it the best choice for you.

Share this post


Link to post
Share on other sites
Quote:
Original post by NickGravelyn
Quote:
Original post by jdub
2) Yes, I believe that XNA cannot use the XBOX live online system to play games through multiplayer on the XBOX. (Correct me if I am wrong.


Actually the restriction is the other way around. You currently cannot distribute a Windows game that utilizes the XNA networking APIs (which wrap around Windows LIVE). If you create an Xbox 360 game (and distribute it through the upcoming Xbox LIVE Community Games system), you most definitely are free to use the Xbox LIVE networking in your game.


Oh okay. Thanks for clearing that up for me [smile]

Share this post


Link to post
Share on other sites
Thanks alot guys,
actually i havent spent money on Java and i actually only in the beginning, I can't even program a graphical program yet.

But what are you guys saying about C# + XNA + Px Multiplayer would that work ?

I know it take ALOT of time, but as i did when i learned PHP I'm looking for it at the long run, And my long run is making 3D multiplayer games.

I do know that C# is better than java or, that I've heard because C# work faster and can handle more advanced stuff.

Share this post


Link to post
Share on other sites
>>
I do know that C# is better than java or, that I've heard because C# work faster and can handle more advanced stuff.
>>

Who ever told you that C# is better than java is mistaken.

Just to add a bit more:

I found C# and XNA to be a lot harder to work than java at first.

If you use java you get nice little functions to draw shapes and pretty little images. A lot of what is going on is abstracted away for you. This makes java great (or at least I think) to start making games with because you can concentrate more on how you want structure and put the different parts of the game together.

XNA also does a lot for you and gives you a bunch of cool gadgets to work with
but it is more complex.

I would suggest that you do what I did by starting with java and get all the basics down, maybe make a few little games, and then move on to XNA.

If you start easier you will progress faster.

Share this post


Link to post
Share on other sites
Quote:
Original post by jdub
Who ever told you that C# is better than java is mistaken.

Well, at least C#'s feature set is far superior to that of Java (properties, value types, lambdas, anonymous types (as in new { foo = "bar"}), "real" generics, delegates, events, LINQ, unsafe code, nullable types, extension methods, partial classes, type inferrence). This makes it a) more versatile (applicability in more cases) and b) more productive.
AFAIK C# misses only three features of Java: anonymous types with methods (in C# you use anonyous methods/lambdas in similar situations), wildcards and the class like enums.

Quote:

If you use java you get nice little functions to draw shapes and pretty little images. A lot of what is going on is abstracted away for you. This makes java great (or at least I think) to start making games with because you can concentrate more on how you want structure and put the different parts of the game together.

You can't compare java.awt.Graphics with XNA. If you use System.Drawing.Graphics you can do more or less the same things about as easily und .NET. XNA is a framework around DirectX with hardware acceleration etc. Of course it's more complex.

Share this post


Link to post
Share on other sites
Quote:
Original post by Galima
But what are you guys saying about C# + XNA + Px Multiplayer would that work ?

Forget about technology for a while. You have to learn programming first. Either of those languages wil be just fine for that.

Share this post


Link to post
Share on other sites
Thanks alot guys.

Here today at 19:00 danish time my group are going to meet "on msn/teamspeak" and then we will talk it through and see which language is best for our purpose but for my own i think we shoul look at C#.

To you DevFred as i said earlier i look at the stuff at the long run, example some years ago i would like to make a browser game but i had no clue what to learn and such, now i can make a browsergame when i want to.

:)

Regards Galima

Share this post


Link to post
Share on other sites
I was thinking, when we made a game, can we then just press a button and that creates a .exe and some other files and such, and those do we just let people download as our game

or does people need to have other things.

We would like to keep it simple, like when you install a demo of a game you download alot of files and a .exe

Regards. Galima

Share this post


Link to post
Share on other sites
Quote:
Original post by Galima
I was thinking, when we made a game, can we then just press a button and that creates a .exe and some other files and such, and those do we just let people download as our game

or does people need to have other things.

We would like to keep it simple, like when you install a demo of a game you download alot of files and a .exe

Regards. Galima


Starting in the upcoming XNA Game Studio 3.0 (due out "holiday 2008"), there will be full support for ClickOnce publishing. So you'll just hit "Publish" and it'll give you a nice installer for your game. Users can download and run that and it will handle all dependencies for you. Should make distributing your Windows games much, much easier.

Share this post


Link to post
Share on other sites
Quote:
Original post by NickGravelyn
Quote:
Original post by Galima
I was thinking, when we made a game, can we then just press a button and that creates a .exe and some other files and such, and those do we just let people download as our game

or does people need to have other things.

We would like to keep it simple, like when you install a demo of a game you download alot of files and a .exe

Regards. Galima


Starting in the upcoming XNA Game Studio 3.0 (due out "holiday 2008"), there will be full support for ClickOnce publishing. So you'll just hit "Publish" and it'll give you a nice installer for your game. Users can download and run that and it will handle all dependencies for you. Should make distributing your Windows games much, much easier.

I didn't realize that. Cool!

(I guess there's something to be said about keeping up on the XNA news...)

Share this post


Link to post
Share on other sites
Thanks alot, I'm still talking with my m8's "gaming group" and it seems we are slightly keep getting more and more interrested in C# and XNA

A few more questions, this is absolutely rediciless question in our skill state right now, but i wan't to know it.

When we get good enough and produce a high quality game, can we then sell it as a game, or is there some kind of license stuff like you may not use XNA for commercial games, i do know that selling games for Xbox where XNA have been used it not legal, though i wan't to know what about the computer games ?.

Regards Galima

Share this post


Link to post
Share on other sites
Quote:
Original post by Moe
Quote:
Original post by NickGravelyn
Quote:
Original post by Galima
I was thinking, when we made a game, can we then just press a button and that creates a .exe and some other files and such, and those do we just let people download as our game

or does people need to have other things.

We would like to keep it simple, like when you install a demo of a game you download alot of files and a .exe

Regards. Galima


Starting in the upcoming XNA Game Studio 3.0 (due out "holiday 2008"), there will be full support for ClickOnce publishing. So you'll just hit "Publish" and it'll give you a nice installer for your game. Users can download and run that and it will handle all dependencies for you. Should make distributing your Windows games much, much easier.

I didn't realize that. Cool!

(I guess there's something to be said about keeping up on the XNA news...)


XNA is always getting new things. In the last year Microsoft and the XNA team have been amazing at pushing new things out including new starter kits, examples, and releases (2.0 was fairly recent, 3.0 CTP is now out, 3.0 will be later this year hopefully).

Currently with XNA though, you'll need them to download and install a few things before they will be able to play it (for a windows game), but if you used something with Java that was a graphics API I would guess most people would still have to install something.

I would suggest C# and XNA only because as a new developer you'll get into programming 'games' quicker than if you used Java (in my opinion). Like the others before me said, 'One isn't better than the other', one just might suit your needs better than the other for your projects.

Don't start with trying to do a million things at once (multiplayer, 3D, etc...), learn how to code generally first.

Share this post


Link to post
Share on other sites
Thanks again, yes ofcourse i/we will start slow, first learning the language, when we are good enough we can think about making ping pong and instead of just throwing the game away after it has been made as white ball and black background then you can progress on it, make better graphic, highscore, and even more small stuff and then tetris and so on.

Please don't belive I'm such a person which just say "H3y 1m g01ng t0 m4k3 3D g4m3" becaue I'm not, as i said earlier "i look at it on the long run before getting into it"

Example, before i learned xhtml css php mysql i studied the possibilites with these languages, my long run project was making a browser text based game, then i knew what to learn, and now i can make it if i want to, and funny enough i work as a webdesigner now :)

Thats why i ask alot of long run questions.

Regards Galima

Share this post


Link to post
Share on other sites
Quote:
Original post by Galima
Thanks again, yes ofcourse i/we will start slow, first learning the language, when we are good enough we can think about making ping pong and instead of just throwing the game away after it has been made as white ball and black background then you can progress on it, make better graphic, highscore, and even more small stuff and then tetris and so on.


I just finished my Pong XNA game, took me 6-8 months (although I had some massive design elements to deal with). Mine is quite advanced though. I would suggest doing little tech demos that teach you little techniques, later you can put those techniques together and have a good shell for a game.

Quote:

Please don't belive I'm such a person which just say "H3y 1m g01ng t0 m4k3 3D g4m3" becaue I'm not, as i said earlier "i look at it on the long run before getting into it"


Good! :)

Quote:

Thats why i ask alot of long run questions.


No problem, we're here to help you. Ask away.

Share this post


Link to post
Share on other sites
There's been plenty of good advice given here so far, but there is 1 topic I think a lot of people are forgetting to mention.

You keep saying that you and your team are in for the "long run" and don't expect to put out great 3d games right away... if you don't mind me asking, what is the "long run" to you... 1 year? 3 years? 5-10 years? 5 hours a week, 40 hours a week?

And now for the part people keep forgetting to mention:

With very few exceptions, once you know how to -program- you can do so with any language. You're learning to -program-, not learning to write _____ language code. If you want to draw a line in your program you know you need a start point and an endpoint, maybe some color, line thickness etc... you don't care if the way you do that is by calling System.Drawing.Line() or LineTo() or glBegin(GL_LINES) or D3DXLine::Draw or any other weird name.

I've known and used C/C++ for years. This year I picked up a "managed" language for the first time (C#) and 3 hours later I had a decent tool for one of my projects, just by googling things I wanted to do.

Forget about the technologies for a while and focus on the theories... maybe a good analogy would be: You learn to drive a car, not a Toyota Carolla 2006. Sure you're going to be most comfortable on your first car, but with some slight modifications you can drive most other 4 wheeled vehicles just fine... Your goal isn't to learn C# or Java, it's to learn how to think like a programmer, and use whatever tools (languages) you ahve to get you to your goal.

Share this post


Link to post
Share on other sites
Regardless of your level of knowledge, I truly believe there is no better game dev choice than XNA at the moment. The entire processes of programming, distrubution, and publishing has been standardized, and you can just start typing up code right away, and flaunt your creativity.

Share this post


Link to post
Share on other sites
Java does have some impressive stuff when it comes to 3d gaming. Check out jmonkey engine. However things like directx and opengl can also produce such graphics and with greater performance. I hear XNA is really good. I havent used it myself, and i feel hesitant about it as you have to pay microsoft and such to actually develop.

Share this post


Link to post
Share on other sites
Quote:
Original post by Daaark
Quote:
Original post by agm_ultimatex
as you have to pay microsoft and such to actually develop.
It's free.


That is, it's 100% free to develop a windows application with XNA. If you intend on making an Xbox 360 games, then you then have to pay an annual membership fee to debug the game on your Xbox 360, which I believe is $100. Quite a small amount still.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this