Piracy not reason consoles won

edepot

Banned
One of the lessons not learned by many people dealing with operating systems is that native code is important.

It is so important that it can make or break acceptance of the device for software developers, and sometimes eventual success of the product. If anything, the old way of adding more features over layers and layers of code via interpretation or virtualization is out. Thin layers that allows developers full access to the hardware is the way to go. When mobile devices are becoming more popular, it is important that direct access to the hardware is not hampered because battery life will be reduced through wasted cpu cycles on the interpretation or virtualization. Wasted CPU cycles means reduced speed, and reduced speed means certain applications will not work on the device (notably power hungry games). It is not a secret that games drives sales of many devices. In fact, it is this reason that game consoles became so successful. Interpreted code also prevents cycle counting for very high performance applications (games notwithstanding), and this leads to unpredictable behavior unsuitable for real time OS and high framerate dependent games. For example, certain interpreted languages have garbage collectors and "hotspot" compiling that can kick in or be working in uncertain time periods, which will affect the timing and cpu cycle counting. It can also affect smoothness of user interfaces and quick feedback.

If you look at mobile technology (especially cell phones), the games were nothing to talk about. There are two factors, speed (the slow java), and the screen (small size and low resolution). Apple got lucky with the iphone (took some hackers to let them realize the profit potential for native apps on the device) and they ended up creating a new segment of low cost games and applications. Piggybacking on this concept will solve the other missing piece of the equation for a popular device... big size and high resolution in a touch tablet.

Google's entry into the mobile phone segment will probably be hampered by too many different cpu's that are tied together by an interpreted language (java). Java is an interpreted language and will have the same disadvantage as all interpreted languages (like C# and its .NET libraries). Interpreted languages are good for short programs that run short bursts (like perl programs, which lead to PHP web languages). They may be good for short quick web stuff, but try doing stuff in games with them and they will start to show their disadvantages. Even allowing "hacks" to allow direct access to the cpu via Java is kind of a bad idea. The hack won't work on different CPU's, thus segmenting the market. I think google should just stick with one type of CPU architecture and allow native access to it (like what apple is doing with their iphone and iPod touch).

On consoles, native code is a must. Even adding .NET XNA for developers showed that there is little market for slow unpredictable programs (because of interpretation), which is why on the XBox360, the game sellers are those that don't use it, but access the hardware directly in C or assembly. If the PlayStation brand of consoles started adding layers of interpretation, the console won't last that long (10+ years). Each layer of interpretation or virtualization slows the hardware down, and a hardware device must get as much power as possible throughout its lifetime, which is why newer and newer games go lower and lower to access the hardware in order to get more power (which means going down to assembly level programming). It is this reason that software libraries that add too much indirection or virtualization will end up hurting the device in the long run. Interpreted languages (.NET and it's incarnations) and virtual drivers on the Vista and later operating systems ended up killing most of the productive programs and games on the platform because with each revision of the OS, the hardware needs to be upgraded to basically do the same thing. Upgrading hardware to make up for slowed down operating system (because of the thick layers of interpretation and virtualization) may be good for hardware sales in the short run, but bad for everyone (including developers, hardware manufacturers, and consumers) in the long run when the number of apps and games perform poorly on the majority except for those who upgraded their hardware to the max specs. When this happens there is no market for apps and games, and that is why the consoles and iphones (with their thin layers of OS) started taking over the market previously held by desktop operating systems.

Google will probably find out this eventually when they finally realize chrome is popular because it is fast and accesses the hardware directly, while their mobile phones don't sell that much because of the lack of good games, and UI that is not smooth like native code. Games may have something to do with it, because games just don't work right on interpreted languages, and the mobile phone provided by google require that they be made in Java (an interpreted language) with garbage collection and inability to count cpu-cycles, and lack of direct access to the hardware. Like .NET (yes lack of games using it too), the platform will probably fizz out when the number of exciting games and powerful programs become lacking because developers can't get access to the hardware directly, without going though "hacks" that don't work on all devices. The google phone may save itself if they just emulate the iPhone of keeping to one type of CPU and get rid of virtualization and interpretations and keep the layers as thin as possible to allow programs to shine.

What many don't realize is that powerful software that can do many amazing things is great, but if you stick a middle layer (the operating system and the libraries) that hampers access to the hardware, and enforce a type of language (interpretation), you limit what can be achieved on the hardware. The application decides if it wants to use interpretation. The application decides how much CPU cycles to waste. The OS needs to get out of the way and be as thin as possible. Enforcing too much constraints on the applications (games) will kill the platform. Some vendors go out and even limit who can provide software on a platform, and while this has some benefits, it also reduces the number of channels the platform can succeed. Windows didn't become a monopoly because people can use it to move windows around, it was because of the cheap hardware and games and apps made by the developers that all ran on the same platform. Consoles took over because the hardware was cheap for consumers and you didn't need to keep upgrading hardware to keep up with the slow operating system revisions released each 3-5 years. It got to the point on the desktop where slow operating systems destroyed enough good developers that the limited number of developers on consoles overcame the negative aspects of expensive hardware upgrading, and the consoles took over the gaming market. If this keeps up, apple will also take over the application market because it seems for Microsoft adding features by absorbing more layers (and competitors) is their profit strategy. Soon, Microsoft will have to deal with the situation that developers will find alternative platforms that provides them with access to the hardware directly (which means good for games and powerful apps), and not worry about being swallowed up because the OS just got more bloated because it absorbed another similar feature offering by the developer. Destroy a developer on the platform, destroy future markets on the platform offered by the developer.

So what does this mean? The future device needs to be open to a lot of developers and the OS needs to get out of the way and not enforce a language, type of access to the hardware, and be very powerful and cheap. The PlayStation just happened to fit this description with the exception of the "open to a lot of developers" and that is why the iPhone came to market and absorbed what was left.

Source: http://www.edepot.com/forums/viewtopic.php?f=12&t=3146
 
Last edited by a moderator:
I really think you're overplaying the 'slowness' of the interpreted code in a lot of the java and c# / xna examples. Yes it can be slower (though oddly enough it can also be quicker then 'native' code in a number of situations.) The unpredicatability is also a bit of a red-herring, particularly on a fixed platform as while you're working on it you'll see the various allocation/ tenured gc etc. going on. The benefits of these 'layers' of all sorts for porting between different platforms etc will mean if anything they will become more prevalent. 'game code' in particular is much quicker/easier to develop using these sorts of languages. Expecting everything to be written in assembly or even lower is just not feasible any more.
 
Despite the title you didn't mention piracy once in your post. A better title could have been "OS bloat and API layers" or something like that.

Java is not an interpreted language. Modern JVMs have been JIT-enabled for a long time and, like the previous post mentions, there are cases where Java can beat C++. Now if you talk about Android in particular, it does not run Java bytecode. It uses the Dalvik VM which does not even support JIT. So it's a pretty bad example of Java performance.

Android offers you the option to use the NDK and develop in C targeting the CPU's native assemble. Yes, it means you no longer have platform independence (which was one of the design goals). You can't have your pie and eat it.

Were you trying to make an analogy between consoles vs PC and iPhone vs Android? Because it's not even remotely the same situation.

I disagree on the Windows parts as well. The D3D/OGL drivers are very optimized already, including game-specific profiles to get the most out of the GPU. An abstraction layer is needed to run on PC hardware. If you were to hit the hardware directly you might be able to get more performance or maybe not. Modern GPUs are so complex that it might not be worth it.

You also realize that most (if not all) modern engines support scripting in one form or another, right?

And, IMHO, thinking that OS bloat is the reason why devs target consoles is wishful thinking at best. See the Alan Wake thread and you will see that it's not likely to be the reason.
 
Console won because its a much bigger market and aspects like development costs, market taste and market offerings between the two markets have converged to the point that inherent advantages of the pc market have disappeared.
 
Last edited by a moderator:
Consoles won not because of raw computing performance. If that were the sole criteria, then PS3 would have been the top World-wide console seller, not the Wii.

Consoles won because they are the most convenient platform for end-users to game with.

Arguably, handhelds (phone & non-phone handhelds) are the most popular gaming platform there is now. They're certainly are not the most powerful -- and often times also have heavy APIs for UI, hardware access, etc. You left out blackberry, very popular, and Java based as well.
 
The VAST majority of gamers do not care about how the games are made. A lot of them do pretend to have some minimal grasp of the tech but it's super basic / slanted or horribly flawed. :D Really they just want to have fun and for it to be easy to get running, cheap and convenient.

Console won because its a much bigger market and aspects like development costs, market taste and market offerings between the two markets have converged to the point that inherent advantages of the pc market have disappeared.

Consoles won because they are the most convenient platform for end-users to game with.
These guys nailed it IMO.

There's also a peer pressure / popularity factor involved with products. Mind share. That aspect can be pretty unpredictable, but let's just say that PCs don't have it really and I don't think they ever did honestly. PC gaming is and always has been rather niche compared to consoles. Consoles used to be mostly out of sight of the mass market and media too, but that has changed a lot in the past decade.

I also think that the aspects that were unique about PC gaming sort of peaked out in popularity. Adventure and simulation gaming. They are still around but obviously there are other genres that just exploded in popularity and completely overshadowed the old standbys. Now it's mostly about which platform has better ports and the fact that PCs may have an advantage here is splitting hairs too much to matter really.
 
Last edited by a moderator:
Right on time for this quarter, 3 more for this year to go! :LOL:

Now I dont see what is won but it is easier to release crappy games and they will still sell lots of em on consoles and not becouse of userbase size. Be it mega hype or low expectations but it sure looks that way. Though in revenues it aint so black and white.
 
Last edited by a moderator:
Right on time for this quarter, 3 more for this year to go! :LOL:

Now I dont see what is won but it is easier to release crappy games and they will still sell lots of em on consoles and not becouse of userbase size. Be it mega hype or low expectations but it sure looks that way. Though in revenues it aint so black and white.
yeah yeah PC gaming's not dead, but hell it sure is second fiddle huh? maybe that's third fiddle, actually!
attachment.php

This ad and its display of the boxes tells volumes IMO. AVP2 and AVP1 didn't have ads like this. They weren't even on the consoles of their times! PCs are "that other platform" for most genres now. Console versions aren't the scaled back versions of the game like they used to be, they are the main target for almost all development efforts and PC guys get sloppy seconds hehe.

One plus is that my 8800GTX should be good to go until the nextnextGen toy boxes. :D
 

Attachments

  • avpboxes.jpg
    avpboxes.jpg
    61.8 KB · Views: 289
Last edited by a moderator:
yeah yeah PC gaming's not dead, but hell it sure is second fiddle huh? maybe that's third fiddle, actually!

Well the Wii and 360 is doing good in sales. :smile:

They weren't even on the consoles of their times! PCs are "that other platform" for most genres now. Console versions aren't the scaled back versions of the game like they used to be, they are the main target for almost all development efforts and PC guys get sloppy seconds hehe.

Well HL2, FC, DOOMIII lastgen where scaled backed ports much remniscent of todays multiplatforms* and I didn't hear much cries then. :p

...they are the main target for almost all development efforts and PC guys get sloppy seconds hehe.

While there has been some sloppiness there are lots of good ones to. For example talk about BC2 beta about perfomance vs visuals as for a port but a beta and that visuals are greatly improved and that not even near max settings is something people forget and that it is beta... beta... beta. Granted it is the last years ports have become better in visuals and perfomance compared to the old sloppy ports like king Kong CE (ouch!) and TR games as example. Also a decent amount of FPS, RTS, RPG on PC pushing tech/gameplay like no other except Crysis games ofcourse so there is still progress!

One plus is that my 8800GTX should be good to go until the nextnextGen toy boxes. :D

I'll meditate this over a match in AvP at almost full HD and avg 90fps on my 4890. Atleast all that power comes to some good giving me rollercoaster eyes! :LOL: ;)

*recent years.
 
If we are going to talk about the downfall of PC gaming (not the success of console gaming), piracy plaid a significant role
 
Well HL2, FC, DOOMIII lastgen where scaled backed ports much remniscent of todays multiplatforms* and I didn't hear much cries then. :p
Yes on the Xbox, Doom3 and HL2 were obviously reworked to function okay on the limited RAM of the machine. But that sort of thing isn't the case anymore. Now it's the consoles that the developers target for their technology. That's why it kinda feels like we're stuck in a perpetual ~2006.

I'll meditate this over a match in AvP at almost full HD and avg 90fps on my 4890. Atleast all that power comes to some good giving me rollercoaster eyes! :LOL: ;)
I should add that my 8800GTX only has to deal with 1360x768 these days because I use it for my TV. Games are best played on a big TV, even PC games!!! :D

It's fun to compare the consoles to this setup because I play the occasional 360 port of course, like Mass Effect, and they run 60 Hz usually and look a ton better due to higher res and somewhat better assets. By comparison the 360 versions are usually under 30fps even at a lower resolution. (I don't own either PS3 or 360 but I did borrow a 360 from a friend for a year).
 
Last edited by a moderator:
If we are going to talk about the downfall of PC gaming (not the success of console gaming), piracy plaid a significant role
As has been said, computer game piracy has existence since forever. I don't think piracy was a very big factor in consoles becoming the primary target because game companies have always dealt with it. I think it's just that game companies want more money and there is more audience to be accessed on the consoles and there are other advantages, including relative safety from piracy, that appeal as well.
 
Without console ports making super-expensive-to-develop PS3/360 games available, the PC gaming market would be in a far worse state than it is.

The idea that console games are holding PC games back is myth that only serves to obscure the fact that the PC market on its own couldn't support the number of high budget titles that consoles do. As for technology being held back, well, that's not really true either. The minimum running specs of console ports are relatively high, so this baseline has if anything been pushing requirements forwards. That most PC games (console ports or otherwise) don't scale up to take full advantage of a 5970 or GTX 295 is simply a reflection of the relative insignificance of that part of the market. Integrated graphics ftw.

PC gaming can be very expensive relative to console gaming. Not only is the hardware (+ OS) more expensive, once you make a real word comparison of the software costs the PC can end up coming out of comparisons badly once again. It might be cheaper to buy a PC game new, but borrowing your friends copy of "Latest Game 3" is free. And good luck trading in your PC copy of Orange Box, or buying one second hand.

I can't even activate my (bought new) copy of The Witcher any more. I'd barely played it. Money down the toilet.

Then there's reliability. Yesterday, a game of mine that had previously worked started crashing every few minutes. Supposedly its because of the latest Nvidia drivers, and I now need to run with AA off. It's not the first time I've run into things like this, and I know it won't be the last. Don't think I've ever had a situation like that on a console.

Consoles fair so well amongst core and casual gamers alike because of cost, compatibility and reliability, accessibility and increasingly because of closed networks such as Live. Oh, and multilayer games like Wii Sports haven't hurt either.

PCs have a lot of positive features of their own (mouse and keyboard and dedicated servers are two things I'll never give up) but most people want fewer barriers to entry rather than more, even if the pay off for gaming on the multiple-pain-in-the-ass PC can ultimately be high.

The OP has, IMO, completely missed the point.
 
Good points, function. Most of the console gamers I know don't really understand PC gaming and sure would not be interested in dicking around with the problems we run into.

Btw, the reason console games don't have issues down the road with "drivers" is that the games ship with their own drivers essentially. Closed platform advantage, indeed. So even though the libraries and APIs and whatnot on consoles do evolve over time, a released game always runs the same because it and its hardware access doesn't change. At least that is how it has been historically. I'm fairly sure that the current consoles do it the same.

Actually you can somewhat see this on PC too with the d3dx dlls. Games usually rely on one version of the DirectX library, the one used during development. So this is almost the same as consoles, but we have yet another layer of hardware abstraction with the hardware drivers and unfortunately the QA depts of AMD and NVIDIA are not omniscient.
 
To add to what function said, I think one area where PS360 has helped the PC plaftorm is in the area of multithreaded programming.
 
To add to what function said, I think one area where PS360 has helped the PC plaftorm is in the area of multithreaded programming.
Definitely. Probably mostly because those CPUs have really rather sad performance per core. The only choice is to try to use the extra cores.
 
function said:
Consoles fair so well amongst core and casual gamers alike because of cost, compatibility and reliability, accessibility and increasingly because of closed networks such as Live. Oh, and multilayer games like Wii Sports haven't hurt either.
Most of this is dead-on except for the remark about Live. The closed-ness of console online gaming isn't an advantage; rather, having closed-network online gaming is far less of a disadvantage than simply not having it at all. Hence, lots of gamers simply don't care that PC online has far more options...console online is "good enough," so PC's advantage here is no longer important them.

It's kind of like thumbsticks for FPSes. They're not better than K&M by any stretch, but, unlike useless D-pad, they are "good enough" for a large number of gamers, so that the PC's advantage in this genre no longer matters in terms of sales like it did in 1995.

As a former PC gamer, here's why I think PC gaming is doing so badly:
1. Treating customers like beta testers.
2. Treating customers like criminals.
3. Treating customers who don't want to tinker with their PCs' guts like 2nd-class citizens.

It's got nothing to do with technology and everything to do with the philosophy behind your product. There's a reason Blizzard has been so successful; they don't do those 3 things.
 
I think Live is an advantage, particularly in regards to voice chat. It just works, accross all games. No screwing around with 3rd party programs.
 
When discussing .NET and native code and performance it would help to have experience as a .net developer. If you had some, you'd know that since 2.0 you can generate native images. Also unless you're ranting against .net based OS what does the OS supporting a managed framework (not being supported by one) have to do with anything? Frankly, replace .net/java/interpreted keywords on your rant with "OO/C/assembly" and I'd say you were 10 years too late.

Change, you need not fear it.
 
Back
Top