I think I know whats best for me, but...

Started by
10 comments, last by spyridonz 16 years, 1 month ago
In my mission to figure out which language(s) I would choose, I think I figured out whats best. My goals are.. A) be able to program graphic engines/physics that perform well, and... B) be able to save time on how long the game takes to create wherever possible. Now I have had some experience with Python and PyGame, and recently I have been working with C++ and SDL. I'm currently learning some OpenGL and after that I'm going to try out Direct3D to see which I would prefer using. Taking my background and goals in to consideration, I think it would fit my needs and be a good choice to extend C++ with Python. But I must admit, lately I have been quite tempted as I see all these people talking about C# and XNA and how "it is going to be the future of programming" and all that. Faster production is tempting as always, even though I'm pretty sure it wont beat the development speed of C++/Python. But the thing that really catches my interest is how C# and XNA are supposed to come with much better tools. Which brings me to my question - how valuable are these tools in the long run? Are they something that is focused towards new programmers, or everyone? Is this something I should look in to, or does my current plan of C++/Python fit my goals better?
Advertisement
My goals are.. A) be able to program graphic engines/physics that perform well, and... B) be able to save time on how long the game takes to create wherever possible.



can you ellaborate on this? do you plan to write your own physics / graphics libraries or would you prefer to use some middleware in order that you can quickly achieve graphical / physical output?

i disagree that XNA will be the future of game programming, it is nice that you can easily develop on the 360 and is heavily endorsed by microsoft, but i feel you will gain a lot more by working with something a little less "watered down" although this debate has been on-going for time, and ALOT of people believe managed code is the way forward
http://stowelly.co.uk/
C++ is the way to go. You've got all the speed you can ever get with it and you are not restricted in anyway.

If you can imagine it, you will be able to develop it with C++

Quote:Original post by mmakrzem
C++ is the way to go. You've got all the speed you can ever get with it and you are not restricted in anyway.

If you can imagine it, you will be able to develop it with C++


Only if you think the horrible language design, tiny standard library, and poor IDE support (due to horrible language design) aren't restrictions. And if you ignore the fact that you can develop anything you can imagine in any Turing complete language...


If you're asking in For Beginners, C++ should be avoided at all costs.
Sure XNA will revolutionize gaming this week but what about next week when MS releases the entirely incompatible XGF next week. The biggest problem with MS platforms is the simple fact that MS likes to force upgrades by radical, incompatible redesign.
Thanks for the responses so far, and not to be rude at all, but things seemed to stray away from my questions a bit. So let me reiterate and clarify things a bit more.

I mentioned how I heard people say "XNA is going to be the future of programming", but I didnt mean that to imply a discussion of C++ or C# superiority. I know it is all opinionated. I mentioned that because hearing it so much made me curious.

Then I decided to read up on it a bit, and I know the basic things about C# and XNA. But there is only so much you could find out from reading what they advertise, or in brief overviews on their webpages. Here lies the problem - I would have to try it myself to find out the rest of the information.

My post is here because I still lack the knowledge of C# and XNA to decide if I want jump ship to give it a try. I'm not concerned with any difficulty involved in switching languages, as long as it fits what I am looking for. I'd just like to avoid switching to it and possibly not liking it, then having to switch back.

So I need some information before I could make my decision. The biggest thing that has intrigued me is how I hear everyone talking about superior tools in C# and XNA. I need to know about these tools. What are they exactly? Will they only help me as I'm learning or even once I am an expert? Are there alternatives for these tools, or are they C#/XNA only? I dont think I've seen Direct3D libraries available for C# other then thru XNA, and I dont know how powerful the rendering compares to each other, so finally, how would programming in C++/Python compare to C#/XNA when it comes to power for graphics/physics, and development time?

Thanks.
I downloaded the Visual Studio C# Express 2005 edition and XNA Game Studio 2.0 for it a couple of weeks ago. Two days later I deleted it after realizing that I didn't really like the level of documentation/support it had. I hated the tutorials. The video tutorials took way too long to load, and they couldn't be downloaded because MS basically said they didn't know how to offer that yet. So that really turned me off to it. I thought it would have been pretty cool to make things for the 360 but not cool enough to spend 150 bucks a year (xbox live subscription + game developer's club subscription).

My advice...stick with C++ until C# and XNA have stood the test of time and have better documentation/support.
JackKnife
Quote:A) be able to program graphic engines


Get advanced computer graphics degree.

Quote:/physics that perform well,


Get a physics degree.

Quote:be able to save time on how long the game takes to create wherever possible


Buy/obtain a free already made engine.

You may think that well performing engines are something that's made over the weekend. In reality, most such projects take upwards of 10 man-years. Each.

If you're in a company that bases its business around engines (Epic, for example), then being an expert in one of the areas (either graphics or physics, but almost impossibly both) will allow you to develop engines.

Elsewhere, if you're alone or indie, developing your own engine means you'll be working for two years, after which, you will have exactly nothing. There's plenty of physics and graphics engines out there. Their quality varies, but choosing the most suitable one will save you years. And even if it turns out to be invalid choice, you will only have wasted days, or weeks, rather than years you would by developing your own.

Quote:how would programming in C++/Python compare to C#/XNA when it comes to power for graphics/physics, and development time


Languages have no "power". How much power does screwdriver have vs. a hammer? Tools need to be applied to appropriate tasks.

Development time varies as well. If you're a guru in C++ and have a large library, but have never worked in C#, C++ is likely a better choice.
For goal A) C++ does offer a bit more in speed and a lot more in pre-existing libraries and with C#/XNA, it offers a tiny bit slower performance and there isn't as much out there for it.

For goal B) C++, well, is a difficult language to grasp (well, it goes from simple to complex in 100 milliseconds). Some, if not most, of the libraries out there, also require a decent knowledge of C++, but once you get a handle on C++ it will become easier. C# with XNA, you can create things very rapidly but if you want a graphics engine or physics engine, there aren't many out there. On a plus side, the 360 (or a decent computer rig) will handle 100%(unless your experimenting with new techs) of what your going to throw at it (plus the whole getting your game distributed on XBOX Live, possibly...I don't have the link, but its coming around the holiday season)

As for tools in XNA...what tools (that are specific to XNA)? Everything that I've seen on the community web page could be used in just about any language. Maybe, your talking about the tools to export to the 360? Yeah, thats neat..but DirectX does it too, it just costs a lot of cash. Or the Maybe I missed something on the site.

My opinion on what you should do. Go with C# and XNA for rapid development. Or once you get a grip on C++ and SDL, move on to OpenGL or DirectX for a bit more performance and cutting-edge techniques.

In reality, choose what you want to do. Everyone has their opinion. You might even want to stick with Python and PyGame.

For an extra 2 cents, I use C# and XNA for rapid game development.
my blog contains ramblings and what I am up to programming wise.
Sorry to diverge a little, I can't stand lies.

XNA will deal with common formats, so any tool that deals with them will work well. What people probably mean is that C#/XNA is super good at making tools. This is useful because big games require a bunch of little tools that work for your game so artists, level designers, admins, testers can all go in a fiddle with stuff. There's also some other artistic tools in the package, though I've not dealt much with them.

Have you downloaded MSVC# yet? If not (and if you've got a speedy connection), then download it and fiddle around with the form editor. This makes it really quite simple to knock up a good, high quality tool.

There are DirectX ports for C#. Promit and others here developed SlimDX if you're so inclined.

But in the beginning, just learn.

This topic is closed to new replies.

Advertisement