I'm still developing everything with OpenGL, and I'm still targeting mac and linux as well as windows, but I want to rationally address some points in the API debate:
D3D is clunky, etc
Not really true anymore. MS made large strides with each release, and DX8 can't be called a lousy API anymore. One can argue various points, but they are minor points. Anti-Microsoft forces have a bad habit of focusing on early problems, and not tracking the improvements that have been made in current versions. My rant of five years ago doesn't apply to the world of today.
I do think that the world would be a slightly better place if Microsoft had pulled an embrace-and-extend on OpenGL instead of developing a brand new API that had to be rewritten a half dozen times, but its water under the bridge now.
Open for more sales, etc
It has been pretty clearly demonstrated that the mac market is barely viable and the linux market is not viable for game developers to pursue. Linux ports will be done out of good will, not profit motives. From an economic standpoint, a developer is not making a bad call if they ignore the existence of all platforms but windows.
DX8 Gives more features
Some people have an odd view that an API gives you features. Assuming you don't care about software emulation, hardware gives you features, and an API exposes them. If you try to use vertex programs or bump env map on a TNT, DX8 doesn't magically make it work. DX8's hardware independence is also looking a bit silly now as they make point releases to support ATI's new hardware. They might as well say D3D-GF3 or D3D-R200 instead of DX8 and DX8.1.
All of Nvidia's new features have showed up as OpenGL extensions before they show up as new D3D features.
Divergent extensions haven't been a problem up until very recently. All of the vendors tended to support all the extensions they could, and if they had unique functionality, like register combiners, they made their own extension. The current status of vertex programs does piss me off, though. I really wish ATI would have just adopted Nvidia's extension, even if it meant not exposing every last bit of their hardware.
Abstraction in a high performance environment can be dangerous. If you insist that all hardware behave the same, you prevent vendors from making significant improvements. If the spec for behavior comes from people that aren't hardware oriented, it can be a huge burden. D3D still suffers somewhat due to this, with some semantics and odd features that make hardware guys wince.
The Good News
We are rapidly approaching a real golden age for graphics programming. Currently, cards and API's are a complex mess of hundreds of states and function calls, but the next two years will see the addition of the final primitive functionality needed to allow arbitrarily complex operations with graceful performance degradation.
At that point, a higher level graphics API will finally make good sense. There is debate over exactly what it is going to look like, but the model will be like C. Just like any CPU can compile any C program (with various levels of efficiency), any graphics card past this point will be able to run any shader. Some hardware vendors are a bit concerned about this, because bullet point features that you have that the other guy doesn't are a major marketing feature, but the direction is a technical inevitability. They will just have to compete on price and performance. Oh, darn.
It's a Turing machine point. Even if OpenGL 2.0 and DX10 don't adopt the same shader description language, they will be functionally equivalent, and could be automatically translated.
There is lots of other goop like texture specification and context management that will still be different between API, but the core day-to-day work of a graphics programmer will be basically above the disputes.
At that point, a higher level graphics API will finally make good sense. There is debate over exactly what it is going to look like, but the model will be like C.
It seems odd to adopt C as a model for universality. I was working with a co-worker of mine who was having trouble compiling some good-old-fashioned ANSI-compliant C code on MSVC 6.0, because it isn't standards-compliant. While most architectures seem to be able to compile a dialect of C, I dunno if one can really say C is universal. While the rate of change for introduction of incompadabilities with C seems to be slowing, it acts very much like an organism continually mutating and diversifying itself.
An interpreted language like Python may be a better model, because it behaves transparently in spite of the underlying architecture. That and some folks [oreilly.com] are already using [alice.org] it as a high-level graphics language.
Python is no more transparent than a C program after a compile on the platform in question. Python only appears to be more portable because MS hasn't broken it yet.
I'm guessing Carmack used C as an example because shader-code is bound to be very low-level code.
Standards are standards, ANSI-C still compiles
on any decent compiler, and your comment is misplaced.
by Anonymous Coward writes:
on Sunday August 19, 2001 @05:42PM (#2194874)
Boy do you not know what you are talking about! It never ceases to amaze me when some 15 year old kid who's only experience with real game programming is writing dupe macros for Ultima Online decides to jump into a discussion on slashdot and make all these sweeping generalizations like they actually have a clue.
The whole tone of your comment has this ridiculous tone of authority like you and only you among slashdot's readership is qualified to make intelligent points about the topic. Well guess what? Slashdot is a democracy, and you are no better positioned to trash Linux gaming than the rest of us. As a matter of fact, I bet you are some lame Wind0ze user who doesn't know the first thing about Linux! There are lots of Linux games and they totally rock. It is just stupid for the majority of game developers to ignore the best OS out there just because Bill Gates has a total monopoly and all the stupid people use his product.
All you moderators who voted this up to +5 just prove that you are total suckers for some shill from Micros~1 who can write with a fake semblence of authority. You are hurting Linux by giving credence to someone who obviously has ulterior motives. Stop rewarding people who just write 15 paragraphs and start realizing that what makes Slashdot so great is that we can all offer our professional opinions about stuff. We don't need to rely on some long winded, self-important person to tell us what's going on, because we know best!
The one thing that really makes the internet a great place is that we have ripped down the barriers to publishing, and by doing so we have proven that we don't need self-described "experts" to tell us what to think.
The 95% statistic is made up. Somewhere around 20% of all PCs are MacOS, due to the iMacs selling in the millions. I know the remaining 80% aren't Windows, there's some Linux there, but Linux as a primary OS(ie. >50% of the time you're in Linux) doesn't stack up to the amount of Macs in use today.
Macs do sell well in terms of software. With a Geforce3, there are several hundred thousand copies of Q3A:TA sold for the Mac.
Is Q3A:TA being bundled with the GeForce 3 on the Mac? If it isn't, then your sales numbers are high. According to PC Data, and Apple (they were in the office the other day), there were only about 11,000 copies of Q3A sold for the Mac.
Boy do you not know what you are talking about! It never ceases to amaze me when some 15 year old kid who's only experience with real game programming is writing dupe macros for Ultima Online decides to jump into a discussion on slashdot and make all these sweeping generalizations like they actually have a clue.
I couldn't agree more! In fact I've already emailed commendante taco and that robolimosine guy to take this fucking james carmack and automatically moderate all his posts to below the lowest possible point that can be set in the new slashbingo that the site is running.
The days of anyone trying to come on here and cyberturf pro Micro$0~1 stuff here is AT AN END.
VIVA LA LUNIX! ME CASA SU LINUX! I AM WITH YOU MY BORHTER!!
Before you go off trashing another user's comments, you might want to educate yourself as to whom you are talking to. This person you are calling "self-important" is none other than John Carmack. Contrary to what you may believe, Mr. Carmack has done a little game programming of his own. You may have heard of the games called DOOM, DOOM II, Ultimate DOOM, Final DOOM, Quake, Quake II, Quake III: Arena, and Quake III: Team Arena. If anyone is an "expert" in game programming, Mr. Carmack is it. Just thought someone should help you pull your head out of your ass.
I think it's only been established that Id didn't do well with the Linux gaming market (Admittedly, that's NOT a good thing) and it's been pointed out repeatedly by myself and others what went down with the sales of Quake III:Arena- and it wasn't because you did a bad game or did bad by us. (On the contrary, you and the great people at Id given us all KINDS of things- including the initial 3D support for the ATI RagePRO, etc.)
When you lag the release of the game by a bit, offer a way for Linux users to buy the Windows version and then "convert" it to the Linux version, and have a situation of mixed quality support of 3D (Some of the blame can be laid at the community's feet for that- some of it can be laid SQUARELY at the feet of the chip vendors...) sales are going to be most certainly in the toilet. One has to wonder how many of the sales for the Windows SKU were really impatient Linux users. You're never going to know- because there's no way for you, or any of the other management there at Id to know for sure because you didn't have a framework for keeping track of the "conversions" in place (Should you have? I'm not so bold as to say you should have- but it would have helped to know for certain that the Linux market was a washout at that time or not. I tried to buy it at the rollout for Linux, to no avail- and in Dallas, one of the larger markets...)
I don't think anybody would blame you for not seeing Q3A on Linux as a success or viable for gaming- I sure wouldn't and I completely understand the position you're taking on this. I just don't see it the way you are because I'm seeing different data points.
> I think it's only been established that Id didn't do well with the Linux gaming market
All linux games sales EVER don't add up to one medium selling windows title. We are one of the creditors that aren't likely to see money that Loki owes us, so we have some idea just how grim it is.
That isn't saying that it can't change in the future, or that doing linux ports isn't a Good Thing, but it isn't an economic motivator at the present time.
John Carmack is simply telling the truth. Look at the gaming market. How many Windows games do you see? How many Mac games? How many Linux games?
I run a website about The Sims ( http://www.thewageofsim.com/ ) and I was one of the first (if not the first) established The Sims websites to embrace the Mac community and convert all of my content to Mac compatible when the Mac version of The Sims was released.
John Carmack is simply telling the truth. Look at the gaming market. How many Windows games do you see? How many Mac games? How many Linux games?
Forget all of those. Consoles are where's it at now. I say this as an avid gamer of 10+ years who used to play the hardware rat race with all the others. Every year a new $300 video card, constantly upgrading processors, memory, sounds cards. Who needs it.
I'm totally sold on consoles now, and I'm addicted to my PS2. The only thing that PC games really shine at these days is better video resolution, but at what cost? (Used to be networking, but the consoles are catching up there.)
Judging by all the dying PC game companies, the slowdown in PC-only titles, and the lack of innovation there, I think the PC gaming market is becoming irrelevant.
So I don't really care if I can't play games on my Mac or Linux box. I don't play them any more on my Windows box, either.
You know this kind of post is funny. I recall just a few years ago when the N64 was brand new and Dreamcast and such, that the exact same discussion began. What can the PC possibly offer now that the console hardware has caught up to it?
Think about how things will stand in 18 months when the PC has blasted far beyond where the 'nex-gen' consoles are.
Lest I be misunderstood, I must clarify this by saying that I am not here bashing consoles, and replying with the: PC's WILL ALWAYS RULE! Argument.. I believe the answer is a more rational perspective to the whole argument. PC and Consol are vastly different kinds of machines right now. While they may converge. the fact stands, the market for the PC and Console are not the same yet.
I admit, there is some overlap.. But the kind of people that love to upgrade their system, run their latest game at it highest resolution and speed will not go away. Nor will those like myself who like the fact that they can integrate their development station, word processor AND game platform all in one. You talk about how 300 dollars is too much to spend for a new card.. Do you think *I* and going to go out and drop 300 dollars for a new PS2, 40 bucks for a new controller( or maybe I need to have 3 more? ), god who knows how much for a HD expansion, memory cards, etc?
The whole argument is simply a matter of perspective. You probably are the type that enjoys console games more. I, in general, am not. Perhaps some day yes, the console will win.. But it will not win the way you think. Have you noticed the price of consoles rising just as rapidly as the price of a new computer drops? I'll bet at some point in the next few years, they will finally overlap, and there will be a marginal difference at best. Just as there are PCs designed for the specific task of handling server loads, there will probably be PCs specificially designed for games... Sounds similar to what the XBox is maybe?
This discussion asside, I think the generalizations of "dying PC Game companies, slowdown and lack of innovation" are a load of crap. Can you claim Black & White suffers from a lack of innovation in AI, or that Max Payne doesn't have cinematic innovation? I don't claim the opposite, that consoles suck. I think both are evolving, and seems to me slightly towards eachother. I could be wrong, this is merely my observation. I think you however, are completely off base and biased.
Yea, but what happens when a Super-Duper new Console comes out? No more games for the one that you have. I've recentaly gotten my hands on a PSX (hold back the laughter) and now the majority of the newer console based games are only for the newer consoles that can handle the graphics. It works the same in the Console world as it does in the Computer world. The only difference is that the console world is slower.
Hmm, as you seem to be talking more about government then computers. You should read this interesting article on the advantages of the two party election system over the multipary system.
HEHHE, slashdot adds random spaces to long words, to mess up the formating of spam graphics. Anyways, the proper way to do a link would be to actually code a link.:) It works. Link [edge.org]
I'm just curious if you could mention roughly how well the mac sales went, were they better than Linux? How about Team arena, did you get many downloads of the mac binary for the CD-ROM?
Plus, I had the question on why the Q3A for mac was somewhere like $20 higher than the windows version when I bought it 3 weeks after it came out for mac?
Ok, I'll give you that- but then, infant PC games sales didn't compare to one medium Atari, Nintendo, or Sega game either.
Linux gaming is in it's infancy. As my wife put it, all it'd take is a blockbuster or two at the same time with Windows (or better yet, being Linux first) to change the story.
Hmm, what was the name of that one major Windows 3.1 PC game. There was Myst, then ther ewas this other 3d adventure/puzzle game, you where an excevator or some type. . . . hmm, anyways it was really popular and really helped show that indeed windows could actualy support games, heh.
Well, there are several issues with Linux that make it a hard sell:
1. Not enough users (hopefully Microsoft will help change that with it's new registration system for Windows XP and Office XP)
2. Linux is still not as easy to use. It took me several long nights to get my X-Windows set up to run OpenGL, Mesa, SDL, and all the other stuff that's needed to run my DVD Player, Quake 3, FlightGear, and other programs that require 3D hardware acceleration. It's getting better. I upgraded to XFree86 4.1.0, which solved a great deal of my problems. I consider my self an expert and I like to tinker with this stuff. Most people want something that works out of the box.
This is definately changing. Linux is becoming easier to install and use. It's just not quite there yet.
3. I didn't even know there was a Linux version of Quake2 and Quake3 that you could buy until after I bought the Windows version. If I had known they were out there, I might have passed over the Windows version and looked for the Linux version.
I see more games coming out (I bought 3 in the last week, specifically for Linux). I think as Linux becomes more accepted, more people will buy games for Linux. Perhaps they need some incentive (like a less expensive version for Linux?) I know, I know, why should you give Linux users a break. Well, most people see Linux as the less expensive alternative. You want more Linux sales, show people you support it by charging less (or by charging more for the Windows version). As you've stated, you haven't made a lot of money off of the Linux versions, so what do you have to lose?
Usually, you have to buy the Windows version and download the Quake engine from Id for Linux, which is what I've been doing. So, move one of those tick marks from the Windows sales column to the Linux column, if you don't mind.
That's my 2 cents. I've been using Linux for about three years, and I love it. It's to the point where I'm probably going to wipe Windows off my system. I haven't booted Windows in, probably, three months (at least at home, at work I'm forced to use Microsoft).
So what if linux games dont sell
to good. I buy them and I love
them...Its also my beleive that if I
keep on buying them the sales
will increase, its the multibooters
and window$ users own headache that they run
games on a platform that
keep on crashing and crashing...and crashing...:)
I'm a bit surprised by that comment about the sales of all Linux games ever. It's probably true, but also misleading. Given that id releases binaries for non-Windows platforms (which we do appreciate, by the way!), but no boxed sets for those platforms, how can anyone possibly know how many Linux users are (legally) using those games by downloading the binary? By saying "Linux game sales", I expect Mr. Carmack very strictly meant sales of boxed sets. But I expect that this clarification takes the edge off that "it isn't an economic motivator" comment, though. Does anyone really know how many Linux users bought Quake III because someone at id developed a Linux binary? This is why such a comment may be misleading.
By itself I'm sure my quibble is just a minor point, yet I've seen this point made so many times on LinuxGames, SlashDot, and other sites and newsgroups. Sometimes I just get the feeling that the people at the game development houses just aren't paying attention to us:) What's really surprising, though, is the occasional evidence that some of these people may not realize this themselves! For example, Loki should know that you can't sell Quake III for $50 when it's just $20 in the stores...
$30 price difference can also matter. When I went to buy Q3A for my Mac, which was admittedly about 2 months after release, it was priced at $49.99, while the windows version one aisle over was a paltry $20, and no linux version in site at the store at all. Needless to say a sale went to the windows version that day. Perhaps instead of releasing different cds for different platforms, just release one cd with all the binaries, or instructions for downloading the binaries for your OS. If you are really interested in how many of each OS are running your games, then maybe create some form of registration mechanism where 'What OS are you using?' is asked. I would bet that at least the linux and mac users would be willing to answer a few questions, if just for the sole purpose of letting you know what OS they run your game on. just a thought.
>The current status of vertex programs does piss
>me off, though. I really wish ATI would have
>just adopted Nvidia's extension, even if it
>meant not exposing every last bit of their
>hardware.
Perhaps Carmack didn't see where it says "NVIDIA Propietary" under "IP Status" on the vertex program spec. I'm not lawyer, but wouldn't that make it illegal for ATI to adopt the extension?
I asked Nvidia at the last Games Developer's Conference about extensions for vertex/pixel shaders (GL_NV_vertex_program, GL_NV_texture_shader, GL_NV_register_combiners2, etc.) and multiple vendor support. They said that if others were interested, they would have no problem in letting them support the extensions. ATI obviously didn't take that route...
What about consoles? Don't they sell far more than PC games?
I wouldn't worry too much about the mac, there are many porting houses that port the mac version over, at the expense of looong delays for a mac version, usually 6 months minimum.
Q3A is the only game I really enjoy the mac port of, the patches are extremely prompt, thanx.
I donno about being a legend. But I think we can safely say that Carmack is one of the best 3D programmers out there. And a person who seriously considers the current alternatives and oppertunities in his field.
As for making new stuff... Well. No offence. But I wouldn't define Carmack as a game developer. As far as I can see. It seems he is much more interrested in pushing the limit of how good 3D a computer can generate. In many ways it seems much more like personal research than making games. As I see it that's what all the other guys at id is doing... Using his work to make games.
As for id doing something new... Well... I'm not sure if I would take anything else serious from id than FPS games... Right now it is not exactly a company known for it's rich storylines or huge details of realism... I'm not sure their current team would do very well at doing much else than great looking action games with perhaps a couple of good excuses to blow everything in sight to pices.
I've been asked on my own forum why people who bought the Windows version of Quake couldn't get some kind of discount on the Linux version. I said that because of the distribution costs id has to charge for the game, even if you bought the Windoze copy.
Granted Unix based games have not sold well. But are you sure your numbers for Q3 are accurate? How many people "borrowed" a copy cause they felt justified in doing so after paying for the Windows version?
Sad but true: People will whine and complain about the cost of comercial software, and then turn around and crack shareware... (yes, I know Q3 isn't shareware... you get my point). How many of you out there didn't show your support for the Linux version of Q3 by paying for your copy?...
Excellent summary. I'd like to add one more point. OpenGL isn't supported nearly well enough on Windows. Only 3 popular cards (ie, affordable consumer grade) have a decent implementation. But pretty much all Windows cards have a workable Direct3D implementation. It's little wonder that Direct3D is targetted first by games developers.
The OpenGL spec is difficult to write a fully compliant driver against. The state of OpenGL would be immensely boosted if there was an open source direct rendering OpenGL implementation for Windows. Then all video cards from all manufacturers would at least have some minimum quality for their entry level drivers.
You are right about OpenGl not being supported well by video cards. I work in a outsourced compatibility lab that tests games on various hardware, the Direct3d games almost always have fewer compat issues with video cards than the Opengl games.
Just a quick comment
Given that Apples new OSX shares a lot of code with the various *nixes out there won't that reduce the cost of developing for non Windows platforms. I don't know how OpenGL is implemented on the different platforms but some Linux games have alreadybeen ported.
This should give developers a larger customer base for their games with minimal development costs
stoneskimmer
Thinking about Linux, I had always assumed that the wisdom behind a Linux port was not so that people could play Quake at home on their Linux box, but so that Linux machines could be used as Quake servers.
This brought me on to thinking about MacOs, as some have already mentioned in this thread. With MacOS X based on Unix and not a proprietary kernel any more, surely this will aid porting of games, with both Linux and OS X based around similar operating systems it should add credence not only for id, but for other games developers to see the 'alternative' operating system market as more financially viable.
If i'm not mistaken, using Unix with such a powerful and complete layer of OpenGL built into the operating system was more than just a design feature, but a serious attempt at attracting games developers to give quality support for the platform.
Yes and no. When programming for Carbon (the old MacOS API's) you will probably never call a unix API at all on OS X, except maybe C Std Lib stuff, which may loosely qualify if you are generous. Since most MacOS users are still on OS 9 and not X, that is the current reality for Mac games.
In the future, game programmers will write for OS X only. In that case, the suite of API's that will be most touched will be OpenGL, sockets, pthreads, CoreGraphics (Apple's proprietary API for resolution switching and graphics), CoreAudio (Apple's currently closed source very low latency audio API), and HID (Apple's API for gathering device input.) Notice that not all of these are supported on linux, just the first three. All of the low level graphics config, input and sound will have to be rewritten for that platform.
OpenAL might solve the CoreAudio dilemma -- if there was an OS X implementation, and it doesn't die on the vine now that Loki is out of the picture. I dont know of a good solution for the other two. Maybe Simple Direct Media Layer? It needs to "just work" whatever it is.
This may be a call to arms to get Linux to be a bit more standards compliant.;-)
I'm not a programmer or anything, but maybe what game developers need is a higher level graphics API that works over OpenGL. something like these folks are doing (http://www.quesa.org/) but highly optimized for gaming. What do you think?
One comment there really drove me up the wall. Carmack admits that it took years and many major revisions to make DirectX 8 into a decent graphics API -- competitive with OpenGL -- but then he waves his hand and dismisses that as merely "water under the bridge" and says people shouldn't harp on it.
The reason that bugs me is because I remember years ago when the whole OpenGL versus Direct3D issue first came up. Somebody wise in the ways of software development (sorry, I don't recall who it was) posted a prediction. He said: Direct3D is pitiful compared to OpenGL. Somewhere several years down the road, after several major revisions, Microsoft will finally get Direct3D to work as well as OpenGL already does today. A few smart developers will use OpenGL, but the vast majority of them will let Microsoft lead them around by the nose for a few years before finally getting basically the same thing -- except without cross-platform portability.
And it happened exactly the way that guy predicted. And I watched it happen, helplessly. The question I have is, why do developers go along with this kind of thing? I mean, are they STUPID? Don't they ever LEARN? John Carmack calls this "water under the bridge". Sure. . . It's all in the past now -- until Microsoft rolls out their next "de facto standard" (dot-net, anyone?) in a half-completed state, expecting developers to sign onto it en masse. Which most of them will, just because it's from Microsoft. Then wait four or five years for Microsoft to get it working right -- and oh, by the way, it only works on M$'s operating system.
Sure Microsoft have made mistakes in the past and will in the future. What do you do? Do you not use their API and spend more money developing?
Look at it from an economic stand point. It is most economical to develope a game using DX right now in most cases. Just because it sucked in the past you don't not use the very usuable product now.
Microsoft is here to stay. Not all that they touch is evil. Dot Net stuff isn't solely Ms either. It infact is an OPEN STANDARD that any vendor can adopt. The WINS extension to it is the windows front end which will not be readily portable to other devices. Dot Net has some good and bad points but your statement "except without cross-platform portability" is dead wrong
If I write a application in Dot-Net and don't use the Windows extension then I can take that Dot-Net program (binary form) to ANY machine that has a JIT Dot-Net Compiler (which is an open standard) and the first time I run that program it will compile what it needs for that machine....once....then it is in native binary form. Think of Dot-Net as a Java program that compiles only what it needs when it needs it the FIRST time. Every time after that it uses the natively compiled code. Sure its slower the first time you run it or the first time you use a particular segment of code but it is completely portable to any device that has a JIT. Any device can have a JIT writen for it as long as they can impliment the basic Dot-Net features.
So I write a calculator program and I can take that program run it underwindows. I can then take that exact file and run it under Linux on a Sun box then take that same file and run it on a DEC Unix box then decide send it to my new wiz bang mobile phone that has a JIT for it before sending over to my Apple Mac to look at it there.
1 file....any number of operating systems...and you know what....the JIT can be different for different complatible CPUs. There maybe a JIT writen for AMD or INTEL depending on the host platform gaing performance benifits for the native CPU instead of compling to 586 code. Now the only other draw back to this is that the file grows with each operating system you use it on. But with careful planning that isn't that big of an issue.
I'm not a microsoft lover but I'm not also stupid enough to force one of my customers to us an alternate OS if its going to cost them more to use it for ZERO benifit to them. Oracle...nice database but for many of my customers they can't afford $15,000 or more to purchase it then pay a higher priced DBA to manage it when they can get away with SQL Sever for one tenth the cost and I can train one of their staff to manage it in a few days.
Why support only one API rather than multiples? What your proposing is that we only support Walmart like company (implying: let that we should let them take over). And we already know that when an object trys to take over the world i.e. Shredder in the Teenage Mutant Ninja Turtles, or in a more real-world sense Hitler, they will thankfully be brought down.
It seems that a man of such knowledge wouldn't only support on group of people, but as many as possible.
Why?
-walloo
I've seen this argument pop up time and time again, and it has come to the point where it induces nausea!
There is no doubt that Microsoft is a monopoly. But unless I am mistaken, all of those here have chosen to develop applications for personal computer class machines knowing full well what kind of tyrannical power MS wields.
But you have to ask yourself one question as a game developer. What are you trying to develop? When a user runs a well developed game, do they give a rats ass if the rasterization code calls glDrawElements() or g_D3DDevice->DrawPrimative()? No! They see the interaction of objects in a universe created by the developer. They experience the rules of physics or psuedo-physics that go into play upon their interaction with the game engine. What will make a good game has NOTHING to do with the graphics API in use.
Concentrate on GAME programming. Graphics APIs are interchangable; good game play is priceless! If you can use your graphics API of choice, be proud of your accomplishments.
I've suffered the same wracking back and foward between API's myself, forgetting what was important. I've decided to develop my rasterizer as seperate from my game engine as possible! This way I can replace the graphics API any time I want without changing anything having to do with game logic.
If you make a crappy game you can not blame it on the graphics API. A crappy game is a crappy game no matter what it looks like. Making a top selling game is a matter of playing the capitilistic game and simply going with the flow no matter how polluted the water is. Money is the devil's special blend of poison. If this is what you want from developing games, so be it!
I don't think anyone has ever pointed it out...from Analyst on Wall street and the US government to software developers....time and time again, Microsoft has beaten its competition by dividing them and than conquering them one at a time...Now it's the game-developers turn... xbox is just the beginning...they'll do with the xbox what they did with windows with one distinct exception...this time they're going after the hardware side of the equation as well.
The issue isn't if there is a market in Linux or Mac for making games....The issue is you as developers need to feel obligated to support multiple platforms...unless you the developer take it upon yourself to give choices to your user base, they'll continue to be channeled in to one company's corner! And when you have them in one corner you just limited your own choice...you just gave another company reason to come after you...I wonder if the poor souls at WordPerfect, Apple, Lotus, Aldus...etc...ever saw what hit them in the head!
Don't worry cause you wont see it either...
The present and the future (Score:5, Informative)
D3D is clunky, etc
Not really true anymore. MS made large strides with each release, and DX8 can't be called a lousy API anymore. One can argue various points, but they are minor points. Anti-Microsoft forces have a bad habit of focusing on early problems, and not tracking the improvements that have been made in current versions. My rant of five years ago doesn't apply to the world of today.
I do think that the world would be a slightly better place if Microsoft had pulled an embrace-and-extend on OpenGL instead of developing a brand new API that had to be rewritten a half dozen times, but its water under the bridge now.
Open for more sales, etc
It has been pretty clearly demonstrated that the mac market is barely viable and the linux market is not viable for game developers to pursue. Linux ports will be done out of good will, not profit motives. From an economic standpoint, a developer is not making a bad call if they ignore the existence of all platforms but windows.
DX8 Gives more features
Some people have an odd view that an API gives you features. Assuming you don't care about software emulation, hardware gives you features, and an API exposes them. If you try to use vertex programs or bump env map on a TNT, DX8 doesn't magically make it work. DX8's hardware independence is also looking a bit silly now as they make point releases to support ATI's new hardware. They might as well say D3D-GF3 or D3D-R200 instead of DX8 and DX8.1.
All of Nvidia's new features have showed up as OpenGL extensions before they show up as new D3D features.
Divergent extensions haven't been a problem up until very recently. All of the vendors tended to support all the extensions they could, and if they had unique functionality, like register combiners, they made their own extension. The current status of vertex programs does piss me off, though. I really wish ATI would have just adopted Nvidia's extension, even if it meant not exposing every last bit of their hardware.
Abstraction in a high performance environment can be dangerous. If you insist that all hardware behave the same, you prevent vendors from making significant improvements. If the spec for behavior comes from people that aren't hardware oriented, it can be a huge burden. D3D still suffers somewhat due to this, with some semantics and odd features that make hardware guys wince.
The Good News
We are rapidly approaching a real golden age for graphics programming. Currently, cards and API's are a complex mess of hundreds of states and function calls, but the next two years will see the addition of the final primitive functionality needed to allow arbitrarily complex operations with graceful performance degradation.
At that point, a higher level graphics API will finally make good sense. There is debate over exactly what it is going to look like, but the model will be like C. Just like any CPU can compile any C program (with various levels of efficiency), any graphics card past this point will be able to run any shader. Some hardware vendors are a bit concerned about this, because bullet point features that you have that the other guy doesn't are a major marketing feature, but the direction is a technical inevitability. They will just have to compete on price and performance. Oh, darn.
It's a Turing machine point. Even if OpenGL 2.0 and DX10 don't adopt the same shader description language, they will be functionally equivalent, and could be automatically translated.
There is lots of other goop like texture specification and context management that will still be different between API, but the core day-to-day work of a graphics programmer will be basically above the disputes.
John Carmack
c good model for high level graphics programming? (Score:2, Informative)
It seems odd to adopt C as a model for universality. I was working with a co-worker of mine who was having trouble compiling some good-old-fashioned ANSI-compliant C code on MSVC 6.0, because it isn't standards-compliant. While most architectures seem to be able to compile a dialect of C, I dunno if one can really say C is universal. While the rate of change for introduction of incompadabilities with C seems to be slowing, it acts very much like an organism continually mutating and diversifying itself.
An interpreted language like Python may be a better model, because it behaves transparently in spite of the underlying architecture. That and some folks [oreilly.com] are already using [alice.org] it as a high-level graphics language.
Re:c good model for high level graphics programmin (Score:1)
I'm guessing Carmack used C as an example because shader-code is bound to be very low-level code.
Standards are standards, ANSI-C still compiles
on any decent compiler, and your comment is misplaced.
Re:The present and the future (Score:5, Funny)
The whole tone of your comment has this ridiculous tone of authority like you and only you among slashdot's readership is qualified to make intelligent points about the topic. Well guess what? Slashdot is a democracy, and you are no better positioned to trash Linux gaming than the rest of us. As a matter of fact, I bet you are some lame Wind0ze user who doesn't know the first thing about Linux! There are lots of Linux games and they totally rock. It is just stupid for the majority of game developers to ignore the best OS out there just because Bill Gates has a total monopoly and all the stupid people use his product.
All you moderators who voted this up to +5 just prove that you are total suckers for some shill from Micros~1 who can write with a fake semblence of authority. You are hurting Linux by giving credence to someone who obviously has ulterior motives. Stop rewarding people who just write 15 paragraphs and start realizing that what makes Slashdot so great is that we can all offer our professional opinions about stuff. We don't need to rely on some long winded, self-important person to tell us what's going on, because we know best!
The one thing that really makes the internet a great place is that we have ripped down the barriers to publishing, and by doing so we have proven that we don't need self-described "experts" to tell us what to think.
Re:Open mouth, insert foot, make an *ss of oneself (Score:1)
Lesson: Everything's a joke. Don't be so serious or you won't get it.
- Steeltoe
Re:The present and the future (Score:1)
Macs do sell well in terms of software. With a Geforce3, there are several hundred thousand copies of Q3A:TA sold for the Mac.
Re:The present and the future (Score:1)
Re:The present and the future (Score:3, Funny)
I don't know which is funnier... this post, or the replies of those who didn't "get it".
Even funnier... (Score:1)
BUAHAHAHAHAHAHA!!!!
Re:The present and the future (Score:1)
Re:The present and the future (Score:1)
I couldn't agree more! In fact I've already emailed commendante taco and that robolimosine guy to take this fucking james carmack and automatically moderate all his posts to below the lowest possible point that can be set in the new slashbingo that the site is running.
The days of anyone trying to come on here and cyberturf pro Micro$0~1 stuff here is AT AN END.
VIVA LA LUNIX! ME CASA SU LINUX! I AM WITH YOU MY BORHTER!!
S.
Re:The present and the future (Score:1)
Re:The present and the future (Score:1)
Oh, man! This is so goddamn funny, it hurt. (Score:1)
Re:The present and the future (Score:2)
Re:The present and the future (Score:1)
Re:The present and the future (Score:1)
It keeps them out of Europe.
I don't think it's really been established... (Score:2)
When you lag the release of the game by a bit, offer a way for Linux users to buy the Windows version and then "convert" it to the Linux version, and have a situation of mixed quality support of 3D (Some of the blame can be laid at the community's feet for that- some of it can be laid SQUARELY at the feet of the chip vendors...) sales are going to be most certainly in the toilet. One has to wonder how many of the sales for the Windows SKU were really impatient Linux users. You're never going to know- because there's no way for you, or any of the other management there at Id to know for sure because you didn't have a framework for keeping track of the "conversions" in place (Should you have? I'm not so bold as to say you should have- but it would have helped to know for certain that the Linux market was a washout at that time or not. I tried to buy it at the rollout for Linux, to no avail- and in Dallas, one of the larger markets...)
I don't think anybody would blame you for not seeing Q3A on Linux as a success or viable for gaming- I sure wouldn't and I completely understand the position you're taking on this. I just don't see it the way you are because I'm seeing different data points.
Re:I don't think it's really been established... (Score:5, Insightful)
All linux games sales EVER don't add up to one medium selling windows title. We are one of the creditors that aren't likely to see money that Loki owes us, so we have some idea just how grim it is.
That isn't saying that it can't change in the future, or that doing linux ports isn't a Good Thing, but it isn't an economic motivator at the present time.
John Carmack
Re:I don't think it's really been established... (Score:2, Interesting)
I run a website about The Sims ( http://www.thewageofsim.com/ ) and I was one of the first (if not the first) established The Sims websites to embrace the Mac community and convert all of my content to Mac compatible when the Mac version of The Sims was released.
My traffic is 95% Windows users. 95%.
Re:I don't think it's really been established... (Score:2, Insightful)
Forget all of those. Consoles are where's it at now. I say this as an avid gamer of 10+ years who used to play the hardware rat race with all the others. Every year a new $300 video card, constantly upgrading processors, memory, sounds cards. Who needs it.
I'm totally sold on consoles now, and I'm addicted to my PS2. The only thing that PC games really shine at these days is better video resolution, but at what cost? (Used to be networking, but the consoles are catching up there.)
Judging by all the dying PC game companies, the slowdown in PC-only titles, and the lack of innovation there, I think the PC gaming market is becoming irrelevant.
So I don't really care if I can't play games on my Mac or Linux box. I don't play them any more on my Windows box, either.
Re:I don't think it's really been established... (Score:1, Insightful)
Think about how things will stand in 18 months when the PC has blasted far beyond where the 'nex-gen' consoles are.
Lest I be misunderstood, I must clarify this by saying that I am not here bashing consoles, and replying with the: PC's WILL ALWAYS RULE! Argument.. I believe the answer is a more rational perspective to the whole argument. PC and Consol are vastly different kinds of machines right now. While they may converge. the fact stands, the market for the PC and Console are not the same yet.
I admit, there is some overlap.. But the kind of people that love to upgrade their system, run their latest game at it highest resolution and speed will not go away. Nor will those like myself who like the fact that they can integrate their development station, word processor AND game platform all in one. You talk about how 300 dollars is too much to spend for a new card.. Do you think *I* and going to go out and drop 300 dollars for a new PS2, 40 bucks for a new controller( or maybe I need to have 3 more? ), god who knows how much for a HD expansion, memory cards, etc?
The whole argument is simply a matter of perspective. You probably are the type that enjoys console games more. I, in general, am not. Perhaps some day yes, the console will win.. But it will not win the way you think. Have you noticed the price of consoles rising just as rapidly as the price of a new computer drops? I'll bet at some point in the next few years, they will finally overlap, and there will be a marginal difference at best. Just as there are PCs designed for the specific task of handling server loads, there will probably be PCs specificially designed for games... Sounds similar to what the XBox is maybe?
This discussion asside, I think the generalizations of "dying PC Game companies, slowdown and lack of innovation" are a load of crap. Can you claim Black & White suffers from a lack of innovation in AI, or that Max Payne doesn't have cinematic innovation? I don't claim the opposite, that consoles suck. I think both are evolving, and seems to me slightly towards eachother. I could be wrong, this is merely my observation. I think you however, are completely off base and biased.
Re:I don't think it's really been established... (Score:1)
Re:I don't think it's really been established... (Score:1)
http://www.edge.org/3rd_culture/hillis_democrac
Re:I don't think it's really been established... (Score:1)
Re:I don't think it's really been established... (Score:2)
Re:I don't think it's really been established... (Score:2)
Plus, I had the question on why the Q3A for mac was somewhere like $20 higher than the windows version when I bought it 3 weeks after it came out for mac?
Re:I don't think it's really been established... (Score:2)
Linux gaming is in it's infancy. As my wife put it, all it'd take is a blockbuster or two at the same time with Windows (or better yet, being Linux first) to change the story.
Re:I don't think it's really been established... (Score:1)
Re:I don't think it's really been established... (Score:1)
1. Not enough users (hopefully Microsoft will help change that with it's new registration system for Windows XP and Office XP)
2. Linux is still not as easy to use. It took me several long nights to get my X-Windows set up to run OpenGL, Mesa, SDL, and all the other stuff that's needed to run my DVD Player, Quake 3, FlightGear, and other programs that require 3D hardware acceleration. It's getting better. I upgraded to XFree86 4.1.0, which solved a great deal of my problems. I consider my self an expert and I like to tinker with this stuff. Most people want something that works out of the box.
This is definately changing. Linux is becoming easier to install and use. It's just not quite there yet.
3. I didn't even know there was a Linux version of Quake2 and Quake3 that you could buy until after I bought the Windows version. If I had known they were out there, I might have passed over the Windows version and looked for the Linux version.
I see more games coming out (I bought 3 in the last week, specifically for Linux). I think as Linux becomes more accepted, more people will buy games for Linux. Perhaps they need some incentive (like a less expensive version for Linux?) I know, I know, why should you give Linux users a break. Well, most people see Linux as the less expensive alternative. You want more Linux sales, show people you support it by charging less (or by charging more for the Windows version). As you've stated, you haven't made a lot of money off of the Linux versions, so what do you have to lose?
Usually, you have to buy the Windows version and download the Quake engine from Id for Linux, which is what I've been doing. So, move one of those tick marks from the Windows sales column to the Linux column, if you don't mind.
That's my 2 cents. I've been using Linux for about three years, and I love it. It's to the point where I'm probably going to wipe Windows off my system. I haven't booted Windows in, probably, three months (at least at home, at work I'm forced to use Microsoft).
Re:I don't think it's really been established... (Score:1)
to good. I buy them and I love
them...Its also my beleive that if I
keep on buying them the sales
will increase, its the multibooters
and window$ users own headache that they run
games on a platform that
keep on crashing and crashing...and crashing...:)
Re:I don't think it's really been established... (Score:1)
By itself I'm sure my quibble is just a minor point, yet I've seen this point made so many times on LinuxGames, SlashDot, and other sites and newsgroups. Sometimes I just get the feeling that the people at the game development houses just aren't paying attention to us
Re:I don't think it's really been established... (Score:2)
Re:The present and the future (Score:1, Informative)
>me off, though. I really wish ATI would have
>just adopted Nvidia's extension, even if it
>meant not exposing every last bit of their
>hardware.
Perhaps Carmack didn't see where it says "NVIDIA Propietary" under "IP Status" on the vertex program spec. I'm not lawyer, but wouldn't that make it illegal for ATI to adopt the extension?
Re:The present and the future (Score:1)
Dan
thank you for writing here =) (Score:1)
you make slashdot suck considerably less.
Re:The present and the future (Score:1)
I wouldn't worry too much about the mac, there are many porting houses that port the mac version over, at the expense of looong delays for a mac version, usually 6 months minimum.
Q3A is the only game I really enjoy the mac port of, the patches are extremely prompt, thanx.
Re:The present and the future (Score:1)
As for making new stuff... Well. No offence. But I wouldn't define Carmack as a game developer. As far as I can see. It seems he is much more interrested in pushing the limit of how good 3D a computer can generate. In many ways it seems much more like personal research than making games. As I see it that's what all the other guys at id is doing... Using his work to make games.
As for id doing something new... Well... I'm not sure if I would take anything else serious from id than FPS games... Right now it is not exactly a company known for it's rich storylines or huge details of realism... I'm not sure their current team would do very well at doing much else than great looking action games with perhaps a couple of good excuses to blow everything in sight to pices.
Re:The present and the future (Score:1)
Granted Unix based games have not sold well. But are you sure your numbers for Q3 are accurate? How many people "borrowed" a copy cause they felt justified in doing so after paying for the Windows version?
Sad but true: People will whine and complain about the cost of comercial software, and then turn around and crack shareware... (yes, I know Q3 isn't shareware... you get my point). How many of you out there didn't show your support for the Linux version of Q3 by paying for your copy?...
Re:The present and the future (Score:2)
Excellent summary. I'd like to add one more point. OpenGL isn't supported nearly well enough on Windows. Only 3 popular cards (ie, affordable consumer grade) have a decent implementation. But pretty much all Windows cards have a workable Direct3D implementation. It's little wonder that Direct3D is targetted first by games developers.
The OpenGL spec is difficult to write a fully compliant driver against. The state of OpenGL would be immensely boosted if there was an open source direct rendering OpenGL implementation for Windows. Then all video cards from all manufacturers would at least have some minimum quality for their entry level drivers.
Re:The present and the future (Score:1)
Re:The present, the future *nix and OSX (Score:1)
Re:The present and the future (Score:1)
This brought me on to thinking about MacOs, as some have already mentioned in this thread. With MacOS X based on Unix and not a proprietary kernel any more, surely this will aid porting of games, with both Linux and OS X based around similar operating systems it should add credence not only for id, but for other games developers to see the 'alternative' operating system market as more financially viable.
If i'm not mistaken, using Unix with such a powerful and complete layer of OpenGL built into the operating system was more than just a design feature, but a serious attempt at attracting games developers to give quality support for the platform.
Re:The present and the future (Score:1)
Yes and no. When programming for Carbon (the old MacOS API's) you will probably never call a unix API at all on OS X, except maybe C Std Lib stuff, which may loosely qualify if you are generous. Since most MacOS users are still on OS 9 and not X, that is the current reality for Mac games.
In the future, game programmers will write for OS X only. In that case, the suite of API's that will be most touched will be OpenGL, sockets, pthreads, CoreGraphics (Apple's proprietary API for resolution switching and graphics), CoreAudio (Apple's currently closed source very low latency audio API), and HID (Apple's API for gathering device input.) Notice that not all of these are supported on linux, just the first three. All of the low level graphics config, input and sound will have to be rewritten for that platform.
OpenAL might solve the CoreAudio dilemma -- if there was an OS X implementation, and it doesn't die on the vine now that Loki is out of the picture. I dont know of a good solution for the other two. Maybe Simple Direct Media Layer? It needs to "just work" whatever it is.
This may be a call to arms to get Linux to be a bit more standards compliant.
Ian Ollmann
Re:The present and the future (Score:1)
Re:The present and the future (Score:1)
Direct3D versus OpenGL (Score:1)
The reason that bugs me is because I remember years ago when the whole OpenGL versus Direct3D issue first came up. Somebody wise in the ways of software development (sorry, I don't recall who it was) posted a prediction. He said: Direct3D is pitiful compared to OpenGL. Somewhere several years down the road, after several major revisions, Microsoft will finally get Direct3D to work as well as OpenGL already does today. A few smart developers will use OpenGL, but the vast majority of them will let Microsoft lead them around by the nose for a few years before finally getting basically the same thing -- except without cross-platform portability.
And it happened exactly the way that guy predicted. And I watched it happen, helplessly. The question I have is, why do developers go along with this kind of thing? I mean, are they STUPID? Don't they ever LEARN? John Carmack calls this "water under the bridge". Sure. . . It's all in the past now -- until Microsoft rolls out their next "de facto standard" (dot-net, anyone?) in a half-completed state, expecting developers to sign onto it en masse. Which most of them will, just because it's from Microsoft. Then wait four or five years for Microsoft to get it working right -- and oh, by the way, it only works on M$'s operating system.
I don't get it.
Re:Direct3D versus OpenGL (Score:1)
OpenGL (Score:1)
Re:OpenGL (Score:1)
Re:The present and the future (Score:1)
Thanks John.
Back to some more interesting, technical articles on slashdot now....
Re:The present and the future (Score:1)
There is no doubt that Microsoft is a monopoly. But unless I am mistaken, all of those here have chosen to develop applications for personal computer class machines knowing full well what kind of tyrannical power MS wields.
But you have to ask yourself one question as a game developer. What are you trying to develop? When a user runs a well developed game, do they give a rats ass if the rasterization code calls glDrawElements() or g_D3DDevice->DrawPrimative()? No! They see the interaction of objects in a universe created by the developer. They experience the rules of physics or psuedo-physics that go into play upon their interaction with the game engine. What will make a good game has NOTHING to do with the graphics API in use.
Concentrate on GAME programming. Graphics APIs are interchangable; good game play is priceless! If you can use your graphics API of choice, be proud of your accomplishments.
I've suffered the same wracking back and foward between API's myself, forgetting what was important. I've decided to develop my rasterizer as seperate from my game engine as possible! This way I can replace the graphics API any time I want without changing anything having to do with game logic.
If you make a crappy game you can not blame it on the graphics API. A crappy game is a crappy game no matter what it looks like. Making a top selling game is a matter of playing the capitilistic game and simply going with the flow no matter how polluted the water is. Money is the devil's special blend of poison. If this is what you want from developing games, so be it!
Daniel Piron
Divide and conquer (Score:1)
Re:The present and the future (Score:1)
Re:The present and the future (Score:1)