Skip to main content

TopCoder

Submitted by Zaph on
Forum

Has anyone here ever competed on TopCoder (www.topcoder.com) ?
I notice that the winner of the major prize this year (US$50,000) was an Aussie (from Melbourne in fact)
If nothing else it looks like a fun way to keep your coding skills up, and from the problems I've looked at and the format (code time, challenge time) it seems pretty relevant to the Games Industry too.

Submitted by Daemin on Wed, 11/12/02 - 9:16 AM Permalink

Nope, I must say that I haven't. I think the only contest that I will *really* enter this year is the Next Year's Game that was announced at the AGDC. Now all I need to do is get the Auran Engine and start to tinker.

Submitted by Jacana on Thu, 12/12/02 - 3:07 AM Permalink

quote:Although TopCoder competitions offer competitors the choice of three programming languages -- Java, C++ and C# -- all the finalists used C++ in the Championship round.

Interesting to read that comment.
All the coding I did at school was in Java. Something about C++ coders already having flooded the market....

"Yes I Code"
As found on AGDC name tag 2002

Submitted by Daemin on Thu, 12/12/02 - 8:55 AM Permalink

C++ is just superior to Java when programming games, that's it, and its also easier to create simple algorithms in C++ cos you can cut more cornders and do hacking more easily. I think that's why C++ is much more powerful for these competitions.

Submitted by Blitz on Thu, 12/12/02 - 12:39 PM Permalink

Not to mention the fact that C++ executes a helluva lot faster. Java is really only useful if you want to create a program that will run on any machine (that has a java interpreter). Although, that said, it isn't that difficult to have a C++ program run on multiple platforms (without changing the code) as long as you use standard C++ and opengl if you need graphics.
Universities (in my experience) tend to have a problem with teaching java. Many lecturers are quite oblivious to it's downfalls and why C++ is superior. I am amazed that some universities don't even teach C/C++ at all in their Comp Sci courses.
CYer, Blitz
PS. Had a quick look at the topcoder site and couldn't figure out what the actual competitions involved...if execution speed mattered at all then i'm not surprised at all that people chose C++.

Submitted by voxel on Thu, 19/12/02 - 12:35 PM Permalink

C++ is far superior to Java for games, but C++ is damn hard to optimize properly... especially if you use the STL, etc.. MANY games still use C - I know - yuck.

C++ only works well, when you use them in conjunction with a Design Pattern and now phony-baloney classes the are glorified structs.

Submitted by Maitrek on Sun, 05/01/03 - 3:18 AM Permalink

Sorry, let this be a warning to any other people thinking about posting bad stuff about C, I will only rant this once and then link it from now on.

quote: MANY games still use C - I know - yuck

Okay, I am well aware that the current status quo is object oriented programming. But as far as I am concerned, it has it's benifits and it's problems just like ANY other programming paradigm, as does the paradigm that C falls into (imperative).

To me C++ and any object oriented approach to a problem is a half-way step between how humans think, and how computers think. It isn't easily understood by either side of the problem. Java's attempts at object oriented programming is especially peculiar and totally hide what a real computer is actually doing from the programmer. C++ at least recognises and imparts the fact that functions stay in one place in memory.

Alot of games programming problems need to be far more optimised than a half-way step can offer.

I understand that software engineering requires a certain level of abstraction and all that lingo, and C++ provides an easy method for doing this. But C++ offers nothing that C can't do. In fact, one of the the first C++ compilers was simply a C compiler with a few macros to fill in the blanks.

I also admit, that it takes a longer time to build up, using C, a reasonably large amount of code that is flexible and extensible enough to withstand modern coding requirements, but because you *can* write extensible and flexible code in C, and there is nothing that C++ *can* do that C cannot emulate, I see no point in relentlessly poking tongues out at C just because C++ does a few of these things for us.

Given that games programming needs to be such a highly optimised environment, I'm surprised that modern aspiring coders don't attempt to learn how to code as closely to the machine as possible.

My *personal* preference is to code as closely to the machine as I can be bothered. I will almost always use C code until C++ actually does something that C can't, and even use assembly for some low level functions because I don't think platform independence is something games need to worry about for a while (how about just writing in a (small) platform dependent layer and then doing the main part of the code platform independent? A bit of effort can create faster code on many machines).

I am in no way saying that C++ is crap, in fact, it can save a bit of time in programming, although at a minor sacrifice to game speed. I am also aware that C++ compiling efficiency vs. that of C is another debate altogether.

This is simply my personal preference, and to say that C is yuck, is basically the same as saying C++ is yuck.

I'm not getting into debate about this, I suggest to anyone who wants to debate about this, privately email me, or just go do some research and make up your own mind about C vs. C++ and don't listen to an antiquated old fart like me :)

Submitted by Maitrek on Sun, 05/01/03 - 3:30 AM Permalink

And to stay on topic.
Topcoder looks like an interesting competition, but I've never been the competitive type :)
I'd probably bust too many brain cells and it's a distraction from making a project :(
Plus I don't really have the brains to "compete" as a coder.
However the sample problems look interesting and it could be fun! Maybe in the far flung future I might do it.

Submitted by WiffleCube on Sat, 21/08/04 - 10:47 AM Permalink

I suppose it's that games programmers still like to be able to 'touch the metal' which you cannot do in java (to my knowledge). Even if there isn't a speed gain, it allows the programmer to feel more 'in control' of the hardware.

Submitted by Kane on Sat, 21/08/04 - 6:43 PM Permalink

wasn't this thread about TopCoder? [?]

Posted by Zaph on
Forum

Has anyone here ever competed on TopCoder (www.topcoder.com) ?
I notice that the winner of the major prize this year (US$50,000) was an Aussie (from Melbourne in fact)
If nothing else it looks like a fun way to keep your coding skills up, and from the problems I've looked at and the format (code time, challenge time) it seems pretty relevant to the Games Industry too.


Submitted by Daemin on Wed, 11/12/02 - 9:16 AM Permalink

Nope, I must say that I haven't. I think the only contest that I will *really* enter this year is the Next Year's Game that was announced at the AGDC. Now all I need to do is get the Auran Engine and start to tinker.

Submitted by Jacana on Thu, 12/12/02 - 3:07 AM Permalink

quote:Although TopCoder competitions offer competitors the choice of three programming languages -- Java, C++ and C# -- all the finalists used C++ in the Championship round.

Interesting to read that comment.
All the coding I did at school was in Java. Something about C++ coders already having flooded the market....

"Yes I Code"
As found on AGDC name tag 2002

Submitted by Daemin on Thu, 12/12/02 - 8:55 AM Permalink

C++ is just superior to Java when programming games, that's it, and its also easier to create simple algorithms in C++ cos you can cut more cornders and do hacking more easily. I think that's why C++ is much more powerful for these competitions.

Submitted by Blitz on Thu, 12/12/02 - 12:39 PM Permalink

Not to mention the fact that C++ executes a helluva lot faster. Java is really only useful if you want to create a program that will run on any machine (that has a java interpreter). Although, that said, it isn't that difficult to have a C++ program run on multiple platforms (without changing the code) as long as you use standard C++ and opengl if you need graphics.
Universities (in my experience) tend to have a problem with teaching java. Many lecturers are quite oblivious to it's downfalls and why C++ is superior. I am amazed that some universities don't even teach C/C++ at all in their Comp Sci courses.
CYer, Blitz
PS. Had a quick look at the topcoder site and couldn't figure out what the actual competitions involved...if execution speed mattered at all then i'm not surprised at all that people chose C++.

Submitted by voxel on Thu, 19/12/02 - 12:35 PM Permalink

C++ is far superior to Java for games, but C++ is damn hard to optimize properly... especially if you use the STL, etc.. MANY games still use C - I know - yuck.

C++ only works well, when you use them in conjunction with a Design Pattern and now phony-baloney classes the are glorified structs.

Submitted by Maitrek on Sun, 05/01/03 - 3:18 AM Permalink

Sorry, let this be a warning to any other people thinking about posting bad stuff about C, I will only rant this once and then link it from now on.

quote: MANY games still use C - I know - yuck

Okay, I am well aware that the current status quo is object oriented programming. But as far as I am concerned, it has it's benifits and it's problems just like ANY other programming paradigm, as does the paradigm that C falls into (imperative).

To me C++ and any object oriented approach to a problem is a half-way step between how humans think, and how computers think. It isn't easily understood by either side of the problem. Java's attempts at object oriented programming is especially peculiar and totally hide what a real computer is actually doing from the programmer. C++ at least recognises and imparts the fact that functions stay in one place in memory.

Alot of games programming problems need to be far more optimised than a half-way step can offer.

I understand that software engineering requires a certain level of abstraction and all that lingo, and C++ provides an easy method for doing this. But C++ offers nothing that C can't do. In fact, one of the the first C++ compilers was simply a C compiler with a few macros to fill in the blanks.

I also admit, that it takes a longer time to build up, using C, a reasonably large amount of code that is flexible and extensible enough to withstand modern coding requirements, but because you *can* write extensible and flexible code in C, and there is nothing that C++ *can* do that C cannot emulate, I see no point in relentlessly poking tongues out at C just because C++ does a few of these things for us.

Given that games programming needs to be such a highly optimised environment, I'm surprised that modern aspiring coders don't attempt to learn how to code as closely to the machine as possible.

My *personal* preference is to code as closely to the machine as I can be bothered. I will almost always use C code until C++ actually does something that C can't, and even use assembly for some low level functions because I don't think platform independence is something games need to worry about for a while (how about just writing in a (small) platform dependent layer and then doing the main part of the code platform independent? A bit of effort can create faster code on many machines).

I am in no way saying that C++ is crap, in fact, it can save a bit of time in programming, although at a minor sacrifice to game speed. I am also aware that C++ compiling efficiency vs. that of C is another debate altogether.

This is simply my personal preference, and to say that C is yuck, is basically the same as saying C++ is yuck.

I'm not getting into debate about this, I suggest to anyone who wants to debate about this, privately email me, or just go do some research and make up your own mind about C vs. C++ and don't listen to an antiquated old fart like me :)

Submitted by Maitrek on Sun, 05/01/03 - 3:30 AM Permalink

And to stay on topic.
Topcoder looks like an interesting competition, but I've never been the competitive type :)
I'd probably bust too many brain cells and it's a distraction from making a project :(
Plus I don't really have the brains to "compete" as a coder.
However the sample problems look interesting and it could be fun! Maybe in the far flung future I might do it.

Submitted by WiffleCube on Sat, 21/08/04 - 10:47 AM Permalink

I suppose it's that games programmers still like to be able to 'touch the metal' which you cannot do in java (to my knowledge). Even if there isn't a speed gain, it allows the programmer to feel more 'in control' of the hardware.

Submitted by Kane on Sat, 21/08/04 - 6:43 PM Permalink

wasn't this thread about TopCoder? [?]