If you ever wanted a reason to use a modern langauge...

… check out Game Developer Magazine this month. There’s an article called “Mature Optimization” that shows you just how far in the past modern game developers are living. A good 50% of the “optimizations” to do up front that are listed are given for free in a modern language like Java.

Its such a shame to see an industry that used to be on the edge of technology, falling so far behind even us common enterprise engineers.

Kev

No kidding. There was a recent discussion on another site (can’t find the link atm), but it was pointing out not only things like that, but the fact that JIT compiler technology is able to make use of optimizations that aren’t even possible in a pre-compiled environment, due to the knowledge gained from optimizing the code while it’s running.

Also interesting, when I took my Assembly class in college, I was surprised how little languages have changed (from the programmer’s perspective). Even at that level of programming you’ve still got the same basic flow control and branching structures, albeit in a rudimentary form. Of course you had to understand more about how a computer works on the machine level, but it really wasn’t that bad.

by my experience, in assembly it takes a lot of work to do anything usefull. I remember a 2 hours exam to do a n-vector x n-vector subroutine for the good ol’ mc68000 assembler

Yeah, I guess I was just always surprised by how “high level” machine language is, at least compared to my expectations going into the class.

That statement really doesn’t make much sense does it? :slight_smile:

I was reading an article a little while ago about early machine languages before machines had a reasonably standard machine code, where you had to code in micro-ops that were even lower level, and which changed whenever a new processor came out! I can’t remember the details, but they looked evil to program for.

How true.

What exactly that article talks about? I don’t have subscribtion to gdev magazine.

I blogged about it in more detail here:

http://www.cokeandcode.com/node/318

Apologies its a bit of rant, personal blog excuses etc…

Kev

A good reason to write Java code is to go write some C++ again.

I justr had to do that. Handt done ti for 5 years…

YECCCHHH

In an effort to make the thing mreo mdoern they have made it so damn arcane and confusing its rediculous.

Java = Driving the Car.
C = working on the underside.
C++ = workign on the udnerside with power tools
C++ plus STL == Working on the underside with power tools grasped through VERY thick gloves.

Aw c’mmon. Don’t make C++ sounds so nice. Current macroassemblers are significantly better and nicer to work with. One of reasons is fixed size of data types, the other is making obvious that datatypes would be in CPU register.

I’ve been doing a bit of Ruby lately. Really makes me realise how the days of down-and-dirty close-to-the-metal languages like Java are numbered … :-p

LOL

All hail Ruby! :slight_smile:

Kev

Is it that language that tends to throw out of memory error after few iterations of this a = a*c + d ?

I would be surprised- it’s an open source language so it can get fixed very easily if anything like that comes up - but perhaps if all the numbers there are nine hundred million gadjillion it might get confused after a while.

So did i. In fact i still have to finish this work in C++ and sometimes i wish i was programming in Java because of all the problems in configuring my project for all kinds of different dependency apis, compilers, machines and operation systems this stuff will be compiled for.

However C++ has its charms. For example can you do template meta programming in Java?

In C++ i can write a vector math api that can build efficiently vectors and matrixs of any size like this:

vector<int size,class type>

With template specializations and inline assembly it’s possible to write math operations with these classes using advanced assembler instructions. Templates in C++ have evolved much to become a sort of mini programming language that runs during compilation phase.

One of them being that most Java runtime systems are written in that language aren’t they?. ;D

C++ is a very flexible and versatile language. That’s maybe no argument to use it for exactly game writing but still, why not? If it’s good enougth for a Java runtime system why would it be so bad for a game?

C++ is great for games! It just takes lots longer to get the thing finished.

Cas :slight_smile:

Maybe, but that appearantly doesn’t matter to game providers. There must be some perceived advantage using C++, probably a combination of speed, a small footprint, and fine control of low-level facilities.

Also remember that good internal design and portability primarily is for the benefit of the developer. The gamer couldn’t care less.

…and maybe that’s the problem. If you pick Java for a game it indicates your focus is on the tool itself rather than the user. Already in the choise of language you’ve revealed that you’re not willing to go the extra mile to attract and satisfy the actual player of the game. ;D