Sign in to follow this  
spyridonz

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

Recommended Posts

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?

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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++

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
I have one question to ask you that will help everyone understand what you want to do.

Okay, the question: Do you want to make the physics/rendering engine or not? Do you want to learn how they work and how to make one, or do you not really care? Do you want to make just a game or do you want to make an engine and a game?

Okay, so that was three questions, but they are all asking the same thing pretty much. It's important that you know the answer to this question so you can make the best decision, and it's important for the community to know the answer for this question so we can give the best advice.

I know you mentioned in Question A that you want to make a physics/rendering engine, but you need to know what that involves, and I don't know whether you do or not from reading your two posts.

I presonally chose to make my own rendering engine (hopefully physics will be added someday) because I really wanted to learn as much as I could about various subjects. I chose C++ as my language, and I'm happy with that choice. However, it is very time consuming, and when you don't have a whole lot of time to program (like me), progress is slow, but it is rewarding.

Share this post


Link to post
Share on other sites
Quote:
Original post by MikeTacular
I have one question to ask you that will help everyone understand what you want to do.

Okay, the question: Do you want to make the physics/rendering engine or not? Do you want to learn how they work and how to make one, or do you not really care? Do you want to make just a game or do you want to make an engine and a game?



I would like to eventually know how to make my own rendering and physics engine, but at first I would concentrate on the rendering, and wait until I get some more math classes in until I start getting serious about the physics.

Once I learn how to do it, I may not actually design my own engines all the time, especially if I'm trying to save on dev time for my personal projects, but it is important to me that I at least know how to do it were I ever to decide to, or if I ever need to for a job.

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