Game programmer

Sure there’s a reason, two actually: speed requirements for major games, and the fact that existing dev kits and third-party libraries are all for C++. But Jason doesn’t want to write a major game, not for a long while.

If VS 2005 is VS8, Id go back to VS2003 (VS7). I have heard nothing but bad things about VS8.

I see you have carefully purged all positive feedback on VS2005 from your long-term memory, just like in the last thread on this subject.

Jason, if you’re going to use C# you must use VS2005 (if you use VS at all) because you certainly don’t want to start with the outdated .NET 1.1 Framework. Just saying. For C++ it doesn’t really matter as the changes from 2003 to 2005 weren’t that big (other than the new .NET extensions).

If you’ve never written a game before, start with a simple concept in 2D. Just try and incorporate the basics (graphics, input, saving/loading games, sound), and use it as an opportunity to explore how to put something like this together.

I would recommend C#, mainly because it takes a lot of the bullshit hassle out of Windows programming that you don’t want to fuck with when you’re just writing a little fun project to get your feet wet.

Then, once you have that under your belt, you can go crazy and expand your game in a direction that suits your fancy. But just make sure you have that solid, simple basis first, because otherwise you’ll just get frustrated and give up.

Do you have numbers on how many actually got it running? I bet a good number of people saw that it didn’t work, shrugged, and forgot about it.

I’m not saying it’s hard, I’m saying that a lot of people, people who are only marginally interested, just won’t bother.

And I bet you’re wrong. I had exactly one (1) complaint from someone having the program fail to run because the .NET Framework wasn’t installed. This requirement is advertised on the website, and the installer detects whether the Framework is installed and tells people to use Windows Update to get it if not. I have tons of feedback from people on multiple forums who liked the program and suggested enhancements, which means they did get it to run.

Yes, the website gets more hits than the program gets downloads (~13,200 vs ~8,000 so far) but the difference is hardly big enough to cause concern. People may decide they don’t like the plain looks, or they may be just curious about the title and don’t know it’s a GalCiv2 utility. (There’s an Internet Star Trek encyclopedia of the same name, for instance… didn’t know about that when I named the program.)

As much as Microsoft haters would like to believe otherwise, all evidence indicates that requiring the .NET Framework is actually not a very big obstacle at all. Just read the recurring threads on the JoS forums – lots of FUD from people who haven’t actually tried it, but those who did virtually always say they didn’t notice any big problems nor a drop in sales. A one-time download of 24 MB via Windows Update just isn’t a big deal these days, and word gets around that .NET is stable and harmless.

Ok, so I’m going to continue with C++ since I’m in the middle of it at current but after the current book I’m reading I may look at C#. If I do, what would be a good book to learn C# with?

Books are really fairly antiquated these days. You obviously have a net connection - use it. There are TONS of tutorials and books online and wikis and…

Understandable, but I always liked books because any jackass can write something and put it on the web whereas you kinda have to know what youre talking about to get published.

Why did I know this was going to happen? Why did I know that someone would fixate on the CStrings while COMPLETELY MISSING THE POINT ???

Apparently I have some major problem in my ability to communicate.

How does one give an example of an abstract concept in concrete terms without having people get stuck on the concrete details? I could just offer a purely abstract example, but I have found that not everyone is an abstract thinker and half the people wouldn’t get it. So, please tell me, for future reference how to make such examples?

Bad programmer, no donut.

Inline is just a hint, you should never rely on it. Never pass by value unless it’s a basic type. Always pass by reference or pointer. Never trust the compiler to fix your fuckups. You are smart, the compiler is not.

Gunnerson & Wienholt get you up to speed with C# if you’re already a well-versed programmer. Jeff Richter is a must-read for any .NET developer.

I know inline is a hint. However, I disagree with you about the compiler being dumb. There are very rare cases where the compiler makes a dumb decision and a lot more where programmers make dumb decisions. There are decades of research in compiler theory. People get doctorates on just small sections of compiler theory. There is a huge amount of brain power in the making of compilers smart and they do a damm good job.

As for ‘always’ passing be reference that is not a good answer. If you are doing game programming, then yes. If you are not, where system resources plentiful and cpu time is as well, it can help make your code more readable and bug resistant.

Lets take the following non-game code:

MyFunction(CString Text) vs MyFunction(CString &Text)

In the first case I can say: MyFunction(“Hello World”), which you can not do in the second instance. To pass a value in, even a trivial value you would have to do:

CString Temp = “Hello World”
MyFunction(Temp)

While Ill agree with you, passing by reference is nearly always the best choice for game code programming, I am trying to give a tip off for someone who has done non game programming and wishes to move to the game programming paradigm.

Sure, dumb decisions like not passing a string class by reference.

Let me ask you a question based on previous experience:

What happens when your String class does a memory allocation in the constructor? And what happens if you use your function in a common function which is called 200 times per frame?

You can if you define it as “MyFunction(const CString& Text)”.

(Edit: Assuming that it’s okay for it to be const, that is. If it isn’t, you should still be able to call it with MyFunction(CString(“Hello World”)); )

Sure, people aren’t going to complain to you that they’re lazy.

If version N was native code and version N+1 was .NET, and sales were pretty much the same, that’s convincing data. There’s always going to be an influx of marginally interested people, and if the .NET version isn’t turning them away faster than the native version, .NET isn’t a problem.

You mean in that thread where one person said they didn’t like it (Charles) and everyone else said it was great, and you piped up and said “Ya, that’s why I haven’t upgraded - I’ve heard it’s shit.”

It’s great.

I like VS 2005. It has a lot of good features. Once they fix the crapass pauses I get with it, it’ll be awesome.

This discussion alone might be sufficient to persuade you that you want to use C# instead of C++ (although you really should use Java, because then you’ll automatically run on Macs and Linux as well, although Flash does have its adherents)

Is it possible to do serious game programming java? I’m a big fan of java for business programming precisely because of the portability but I don’t think I’ve ever seen any games done in java.

Serious web games maybe, but you won’t ship a full scale game on PC or console in Java anytime soon.

edit: broke my rule about using the word ‘never’.

Well, maybe not ‘serious game programming’, but maybe enough to screw around with for fun.

http://www.bytonic.de/html/benchmarks.html