gameranand
Living to Play
From what I can see nothing is going to change. It will improve slowly and steadily as usual.
From what I can see nothing is going to change. It will improve slowly and steadily as usual.
You see its never about what you can achieve with any hardware its always about what a developer wants you to see. If the former were the case then no would have ever bought a console simply because they lack hardware part right but people do buy that and developers make what they want and what they can.
Its always upto developer what they want the audience to see, do you really think that these console will kill PC market or a high end PC can't compete with them ?? I mean come on PCs can always compete it comes to developer what hey going to make their preference, now if consoles today will have a high end card of this generation then you think that GPU industry will just pause their researches and all until a new console is needed or consoles have lived their life cycle. The PS3 and Xbox 360 got the best what they could get from 5 year back, next gen consoles are getting what best is available today. I mean I really see no point about a big change or anything. Yes there will be a hype and some news for 5-6 months and after that it'll all settle down and the debate will begin again. Console or PCs in which PCs will win as usual. So tell me whats new ??
You are talking about horse power, the next gen console are still a 50K PC without monitor, tell me if I am wrong. Of course in 50K you are just putting GPU and CPU and other components and excluding many components so the high end system, but fact remains same that they can't beat a Ultra high end PC. Maybe games will look better on the consoles as for now because they'll be more optimized but fact remains the same. Give the console 2 years and they get behind the PC.
I witnessed PS3 and Xbox360, PS3 in initial days was like something else you now. I bet you have also seen those crazy days and so many flame wars at forums and everywhere digging up the same thing over and over again. Xbox360 is inferior to PS3 in many aspect but does games looks worse in it, certainly no because thats the way developer wants it to go. It all comes down to developer what they want.
I am witnessing that PC gaming is actually improving, I mean many console exclusives are coming on PCs lately. I take it as a good sign and its good that developers are seeing this way and as long as developers sees it this way consoles can't beat PC.
You are completely deviating from the topic friend. You are simply generalizing facts.
Its nothing like what developers want to show you but how efficiently you tap into the power.
Read about cell architecture and you'll understand why multiplats look inferior on a ps3 while exclusives are in a whole different level.
Do you know cell can do vertex shading and compute based ray tracing? Exclusives benefit from that greatly and you can call it a secret sauce.
Ok let me try to make this simple.
You know that java is a very powerful oop language Its extremely robust and has an enormous api set and flexibility.
But still its not used in game development. Instead C++, lisp and other languages are used. C++ is like a default language not only in game development but also
developing operating system kernels. Can you answer why ? If you can answer this , you can get my point.
Even if you don't, i'll correlate everything as simply as possible.
Only if a game is multiplatform, we can properly compare the image quality/graphics/looks across the platforms. Exclusives will always look best on their respective platforms.
In that case PC always wins,
Anand i asked you something mate.
Yeah coming to that part.
Yes I read about the Cell processor and also read that why developers didn't prefer it because the coding required is quite difficult and different, however in case of exclusives developers were free to fully utilize the resources and raw power that Cell Processor gave to them. But that is the case with PC also and Xbox also, I mean can any game looks better than Crysis even now, yes they come close to it and sometimes even beat it in some particular aspects but altogether they can't.
About OOP and Java, One thing that I can easily speculate is that programmers are more used to it and as its a default language, so nobody wants to change that because that might also cause some problems. For example we have DirectX and OpenGL but most games are DirectX based even though OpenGL is better than that in most aspects just because its default and widely used so nobody wants to change that. Also many of the libraries and engines are coded in this language so it becomes easy for the developer to stimulate it into the programming. If we go deeper then of course we will find many more reasons but if I stay above the deeper facts and all, then I can think of this reason. I know that you are very well known to language but as you asked me a laymen answer so I am giving that only and not going in any deeper aspects. I am just stating what I'll tell someone with no knowledge about language.
Yeah we all know that. I knew that Java uses Virtual way and other reasons also, but like I said didn't mentioned them in the post. Also I know that in PC hardware never gets fully utilized and all. All I told you that nothing is going to change, its a general fact and I just stated that. But nice info.Ok mate now lets see if i can clear your doubts here. Coming to the question that i asked you i.e why not java instead of C++,lisp and others?
The answer is JVM or simply "Java virtual machine". Think of JVM as a mini os type layer on which java code runs. In short java does not have direct hardware access or simply
access to low level components. It communicates through JVM. Whenever you write a java source code, it gets compiled by a compiler generating a byte code. This byte-code runs on a JVM which allocates memory and cpu time slice for the process to run. Let the process be a game code accessing various 3d libraries like directx or opengl.
Now C++ is an intermediate language i.e it has features of both high and low level language. Most importantly, it can communicate with lower hardware like cpu and memory directly. It does not require something like a JVM to run below it.
Now game code generates interactive content which behaves according to user input right. So if you write a game code in C++, it directly talks to the gpu, allocates memory etc all by itself in real time with extremely less lag. But if you write the same code in java, there is considerable lag due to the presence of JVM and there will be time lost in compilation of source code into byte code then again running that in JVM. Then jvm will takes its time to allocate memory and cpu cycles and then only you get the resulting output.
So which is faster? Definitely C++ and that's why, game codes and even engines are written in C & C++. Android also uses a virtual machine to run java code called DVM or "Dalvik Virtual Machine". Its basically a JVM.
So you must be wondering why i brought JVM into the picture. That's because i wanted you to understand what a software abstraction really is. Its nothing but a piece of
software to communicate with underlying hardware. Think this as a layer on top of hardware to communicate and behave according to instructions provided. Every api you know of is an abstraction to communicate with hardware.
Now in context of consoles and pc, there are abstractions too. In pc, the abstraction is the OS and for a gaming platform, that OS is windows as you know.
Now windows is not only meant for gaming and not developed to handle only 3d api's. It has to support all sorts of application for different hardware set. The only common aspect are x86 processors. So windows should be capable of communicating with different hardware configurations. To do so, it offers restrictions of different levels so that applications perform optimally. By imposing these restrictions, it offers deeper layers of abstraction. So when game libraries are called by your gamecode to be processed in a gpu, it has to go through windows layers which like jvm allocates memory, cpu/gpu cycles and other aspects for data processing. So there is a downtime present and resources go into wait states.
Since windows also decides how much cpu cycles etc are to assigned, its not always optimal. It does not address optimal amount of memory or optimal no. of cpu/gpu resources always as windows is not written to support a fixed hardware set.
So your gpu in this case is not utilized at its full potential. This is called an open box design as the os supports a variety of apps to run on underlying hardware.
Coming to consoles now, they too have abstraction but not as deep as windows. Their software is written according to their fixed state of hardware and how to allocate resources to the maximum potential and optimally. So the api's in consoles almost directly communicate with low level hardware with maximum resource use. This is called a closed box system.
Therefore a 7970 in a console will be much much faster than in pc because the game code and api's will use it to the fullest thanks to a customized abstraction layer which optimally allocates resources. That's why gaming consoles are so much hyped at launch and will certainly beat current pc's. Now how much performance benefits the system achieves depends on various other aspects. But this is the simplest reason.
But pc's with their ever changing hardware, eventually counterattack in time by bruteforce when their architectures develop in each iteration of their development cycle.
When ps3 was launched, it wasn't beaten by pc's of its time but after 2 years when pc hardware developed.
I hope you got it mate.
Playstation 4 is Looking Far Better than the next-gen Xbox.
Although sony patented the anti piracy technology of blocking used games, there are strong rumors that they won't implement it unlike microsoft.
Everything will be clear in just a little more than a week from now.
Ok mate now lets see if i can clear your doubts here. Coming to the question that i asked you i.e why not java instead of C++,lisp and others?
-snip-
I hope you got it mate.
In pc, the abstraction is the OS and for a gaming platform, that OS is windows as you know.
extremely well written.. i understood everything.. except this:
extremely well written.. i understood everything.. except this: