kevglass
|
 |
«
Posted
2006-01-26 19:15:54 » |
|
... 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
|
|
|
|
kul_th_las
Guest
|
 |
«
Reply #1 - Posted
2006-01-26 22:44:10 » |
|
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.
|
|
|
|
|
f.l.x
|
 |
«
Reply #2 - Posted
2006-01-26 22:59:56 » |
|
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
|
|
|
|
Games published by our own members! Check 'em out!
|
|
kul_th_las
Guest
|
 |
«
Reply #3 - Posted
2006-01-27 16:53:44 » |
|
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? 
|
|
|
|
|
chaosdeathfish
|
 |
«
Reply #4 - Posted
2006-01-27 18:23:16 » |
|
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.
|
|
|
|
|
Bombadil
|
 |
«
Reply #5 - Posted
2006-01-27 20:13:05 » |
|
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. The old problem with C++, which basically is an OO macro assmbler (C is the pure macro assembler)... :-) 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. How true.
|
|
|
|
|
Raghar
Junior Member  
Ue ni taete 'ru hitomi ni kono mi wa dou utsuru
|
 |
«
Reply #6 - Posted
2006-01-27 21:56:57 » |
|
... 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. What exactly that article talks about? I don't have subscribtion to gdev magazine.
|
|
|
|
|
|
|
Jeff
|
 |
«
Reply #8 - Posted
2006-01-28 05:35:07 » |
|
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.
|
|
|
|
Raghar
Junior Member  
Ue ni taete 'ru hitomi ni kono mi wa dou utsuru
|
 |
«
Reply #9 - Posted
2006-01-29 20:16:54 » |
|
The old problem with C++, which basically is an OO macro assmbler (C is the pure macro assembler)... :-) 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.
|
|
|
|
|
Games published by our own members! Check 'em out!
|
|
Breakfast
|
 |
«
Reply #10 - Posted
2006-01-31 23:34:39 » |
|
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
|
|
|
|
|
arne
Senior Member   
money is the worst drug- we should not let it rule
|
 |
«
Reply #11 - Posted
2006-01-31 23:51:17 » |
|
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
|
|
|
|
kevglass
|
 |
«
Reply #12 - Posted
2006-02-01 00:14:42 » |
|
All hail Ruby!  Kev
|
|
|
|
Raghar
Junior Member  
Ue ni taete 'ru hitomi ni kono mi wa dou utsuru
|
 |
«
Reply #13 - Posted
2006-02-01 19:39:28 » |
|
Is it that language that tends to throw out of memory error after few iterations of this a = a*c + d ?
|
|
|
|
|
Breakfast
|
 |
«
Reply #14 - Posted
2006-02-02 10:55:54 » |
|
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.
|
|
|
|
|
zingbat
|
 |
«
Reply #15 - Posted
2006-02-02 20:17:27 » |
|
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
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.
|
|
|
|
|
.uj
|
 |
«
Reply #16 - Posted
2006-02-06 19:13:03 » |
|
However C++ has its charms.
One of them being that most Java runtime systems are written in that language aren't they?.  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?
|
|
|
|
|
princec
|
 |
«
Reply #17 - Posted
2006-02-06 19:43:46 » |
|
C++ is great for games! It just takes lots longer to get the thing finished. Cas 
|
|
|
|
.uj
|
 |
«
Reply #18 - Posted
2006-02-06 21:29:24 » |
|
C++ is great for games! It just takes lots longer to get the thing finished.
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.
|
|
|
|
|
.uj
|
 |
«
Reply #19 - Posted
2006-02-06 21:40:11 » |
|
.....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. 
|
|
|
|
|
g666
|
 |
«
Reply #20 - Posted
2006-02-06 21:41:52 » |
|
.....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.  That makes no sense.
|
desperately seeking sanity
|
|
|
.uj
|
 |
«
Reply #21 - Posted
2006-02-07 13:40:07 » |
|
That makes no sense.
That was more of a joke really. I showed the flip-side of the conventional wisdom that the new "modern" languages give you more time to spend on the application rather than technical detail. I thought I sensed a certain degree of whining in this thread as to why game programmers stick to the old trusted C++ instead of jumping on the modern Java bandwaggon. Well, let me remind you that Java has be seriously crappy during most of its 10 years of existance. It's only during the last couple of years it has been good enougth for game programming at all. Today it may be a myth that Java is slow but it wasn't just a few years ago. Java hasn't even had OpenGl support until very recently. So yes Java is modern. It's so modern it has barely arrived! 
|
|
|
|
|
princec
|
 |
«
Reply #22 - Posted
2006-02-07 13:49:05 » |
|
Java became absolutely usable for games programming 5 years ago with the advent of 1.4. Cas 
|
|
|
|
blahblahblahh
|
 |
«
Reply #23 - Posted
2006-02-07 15:13:25 » |
|
C++ is great for games! It just takes lots longer to get the thing finished.
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. Um, its pretty straightforward: professional games developers all know C++. Practically none of them know any java. A small number have "played with" java and, increasingly, been pleasantly surprised. They have no idea how to write much more than a simple scrolling shmup though. Many played with java 5+ years ago, and still slag it off because "you can't do any hardware acceleration of graphics" or similar outdated nonsense. The thing is...it's rather hard to write a game with a team of developers when you can't hire any staff to do the actual work.
|
malloc will be first against the wall when the revolution comes...
|
|
|
.uj
|
 |
«
Reply #24 - Posted
2006-02-07 16:41:09 » |
|
Java became absolutely usable for games programming 5 years ago with the advent of 1.4.
Wasn't version 1.4 introduced in 2002, about 4 years ago? Well it may have been usable in the sense of passable but I would say Java didn't get fully game enabled until 2004 with the version 5.0 JVM and JOGL. To be honest, Java hasn't been a real option for gaming until very recently after far too many years of hype and that in my view explains to some extent why people may feel reluctant to throw the proven workhorse C++ overboard for Java that has been around for 10 years without really cutting it but now suddenly has become, well, "modern". I myself go for Java but I can fully understand why people are hesitating.
|
|
|
|
|
Breakfast
|
 |
«
Reply #25 - Posted
2006-02-07 17:01:37 » |
|
To be honest, I'm not sure I see any reason someone would choose Java for their games development project now. Everything it does well* C# does equally well or better and given that it is no harder for your experienced C++ developers to learn C# than it is for them to learn Java (easier, in some respects- stuff like Structs and Enums have been in C# from the start) I can't see a compelling reason for a games development house to work with Java.
*I'm well aware that java has advantages, but I don't see many of them being relevant to games development. It's great for an amateur like me, though - the JVM reliably falls over before my PC does...
|
|
|
|
|
swpalmer
|
 |
«
Reply #26 - Posted
2006-02-07 17:31:18 » |
|
To be honest, Java hasn't been a real option for gaming until very recently ... It all depends on the type of game... Myst could be done with Java 1.1 and some simple API bindings to do fullscreen graphics Many strategy games could be done with Java 10 years ago. Many games for young children could be done with Java 10 years ago. For the elite FPS, fast action, whiz-bang graphics, yes it is within the last year or two that a ton of progress was made with the OpenGL, OpenAL, JInput bindings and general GC improvements and VM speedups that basically let Java attack any genre of game without a handicap.
|
|
|
|
kevglass
|
 |
«
Reply #27 - Posted
2006-02-07 17:43:51 » |
|
To be honest, I'm not sure I see any reason someone would choose Java for their games development project now. Everything it does well* C# does equally well or better and given that it is no harder for your experienced C++ developers to learn C# than it is for them to learn Java (easier, in some respects- stuff like Structs and Enums have been in C# from the start) I can't see a compelling reason for a games development house to work with Java.
Absolutely agreed - at the moment the transition from C++ to C# is much easier. The question has to be why arn't more games companies using *any* modern language - C# or Java, I don't really mind - just as long as we start seeing games with more features, gameplay and innovation because the developers safe enough time in using modern tools to add them. From the replies to my blog entry it seems to be strictly console related - to port to a console we need low level optimisation control => C++. Presumably this changes as the console/PC line blurrs. Kev
|
|
|
|
princec
|
 |
«
Reply #28 - Posted
2006-02-07 18:07:57 » |
|
Well, we know why they're not considering Java en masse, and we've argued and ranted about it over and over again for the last 5 years on these very boards  C# is almost certain to dominate in very short order, due to Microsoft's canny vision and the XBox and Vista. Cas 
|
|
|
|
.uj
|
 |
«
Reply #29 - Posted
2006-02-07 18:16:50 » |
|
quote author=swpalmer link=topic=12259.msg99048#msg99048 date=1139329878] yes it is within the last year or two that a ton of progress was made .......... That's my point. After having been around for 10 years Java has been a viable option for gaming for only two years at the most. With a track record like that it's somewhat pompous of Java to declare supremacy over C++ which has been pumping out game after game over all these years. It will take maybe 5 more years for Java to gain the confidence of game developers. And the only way is to start producing popular games, not by claiming to be better than C++.
|
|
|
|
|
|