Domain: techhaze.com
Stories and comments across the archive that link to techhaze.com.
Comments · 12
-
Re: Mehh
Furthermore, OpenGL, OpenAL and OpenCL work not only on new versions of Windows, they work on old versions of Windows (Win XP), Linux, Mac, real Unixes, your cellphone and tables (which have hardware OpenGL chipsets), etc.
Those who have bet on DirectX technologies have boxed themselves in. The computing word is becoming more heterogenous, not less. It was always obvious to any thinking person that the Microsoft market share was a temporary aberation. That's why you must choose technologies that insulate you from change as much as possible. Here's a case study that shows how the choice of OpenGL over DirectX made a difference of 3.5 million to the X-Plane simulator developer (despite muppets lcking strategic vision urging him to use DirectX):
http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/Disclaimer: I'm developing a modern multiplayer jet combat simulator in Java, OpenGL+GLSL and OpenAL. Progress has been good. Multi-platform issues are pretty negligible for the most part. I can compile once and the same package runs on Windows, Linux and Mac (with a little tweaking for Android). It also runs damn fast (since the limiting factor is the GPU if you have the correct architecture).
If you are considering building a modern game I cannot recommend these technologies highly enough. As platforms change Java and OpenGL will allow your program to run with little ot no porting effort (which means dollars).
-
Re:a bit of latency
Please note gamepads *are* supported by JInput. I know, as I said I can control my flight simulator using mouse, PS3 Dualshock, or HOTAS - simultaneously if I want (eg. use HOTAS throttle with PS3 right analogue axis).
Xbox 360 and PS3 are larger markets than the PC market for sure. However their hardware is unsuitable for my application, given they are so underpowered by modern standards (which is why the games you get on them are so similar, limited in scope, and IMHO underwhelming compared to some PC games). Note while Valve's Steam Box is still not specified it appears to be vastly superior to either of XBox 360/PS3 (no surprise, it is much newer) in hardware terms and it runs Linux - which means my GLSL code will definitely work and Java probably will too (perhaps even without any modification).
The balkanization of development platforms does not suit developers, it only suits console vendors. So I choose to avoid 'silo' technologies like XNA (designed to keep you on Microsoft platforms) and recommend others do the same. I always like to post the example of Austin Meyer's experience with X-Plane where by using open technologies he was able to exploit the iPhone/iPad hype and personally net $3.5 million dollars. Choosing open technologies over closed ones is the sane strategic decision: http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
-
Re:no more donuts for Gabe...
Huh? there is one input model for Linux (plenty of libraries to access it), OpenAL (which is now recommended by Microsoft), OpenGL (which has been there forever), standard networking etc.
I'm writing a modern jet combat flight simulator and use Java, JInput, JoGL etc etc and find I can run on Windows, Linux and Mac with vary little customization for each platform required (just a little for the GLSL implementation differences for Nvidia vs ATI on each platform). Linux is less hassle than Windows in many respects and I get better performance too (just like Valve) do. Java 1.6 U10 and later also kick ass for performance (I sit there with the JDK's JVisualVM and watch what goes on in real-time; this is an awesome [free!] tool).
We cross-platform devs have been trying to tell the DirectX guys for ages that it is completely possible to write cross-platform games for *less* effort than it is to write around the MS APIs (due to their cruft and version churn). However, the MS devs don't listen, won't listen and when they do finally listen they resist for ages.
So, even though Windows has a majority of the market share, it is definitely not the best OS. It's simply the most popular OS, for now.
Windows is the most popular *desktop* OS, this is true. However, it is not dominant on the server (eg enterprise and web serving spaces), consoles (PS3 and XBox are fairly even) or mobile devices (where the revenue growth is; Android [which is a customized Java+Linux]) has installs of 1.3 million new devices *each day*.
So, it makes economic sense to develop for Windows if you could only develop for one platform exclusively. However, if you are smart you can develop cross-platform applications that work on Windows *and* Linux *and* Mac *and* Android *and* PS3 without too much hassle (Xbox and iOS are kinda in siloes). The economics has been against developing for Windows only. The smart money has always been using the right tools to do cross-platform work. That way, when the IT landscape changes (eg. the advent of mobile, and one day whatever becomes the new hotness) your code will be able to quickly ported to the new platform. All because you chose the strategic (cross-platform) over the tactical (eg. DirectX ease of use but Windows-only).
Here's a case study I like to quote of someone who chose cross-platform technologies which allowed him to personally make $US 3.5 million dollars when the IPad and iPhone came out. He says if he had put himself in the Microsoft straightjacket with DirectX then he couldn't have done this (and this is why DirectX was invented, to keep you on Windows, and that has been a very successful strategy so far for MS, but it about to marginalize them in the coming heterogenous computing world):
http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
Hopefully this is a bit informative for you, and why the "develop for Windows only" mentality is wrong (and in fact has always been wrong; it suits Microsoft's purposes to keep you on the desktop, not the game developers who needs to adapt to future trends). Now here I have to give credit to the *new* Microsoft, they finally seemed to have grokked that there are other platforms out there and are starting to play nicely. This is very very good, but there is still a lot of MS stuff from the bad old days to be overcome (including indoctrination of its users, such as your mistaking Windows desktop popularity as a reason to develop using Windows-only technology
:) ).On what planet is input abstraction or OpenGL support more robust on Linux than on Windows? Are you so naive you don't know where OpenGL implementations come from? You mean to tell me that Nvidia/ATI/Intel have better Linux driver support than Windows?
And JAVA? You want to speak about the Linux development experience and you're using JAVA? The only thing that's less of a -
Re:no more donuts for Gabe...
Huh? there is one input model for Linux (plenty of libraries to access it), OpenAL (which is now recommended by Microsoft), OpenGL (which has been there forever), standard networking etc.
I'm writing a modern jet combat flight simulator and use Java, JInput, JoGL etc etc and find I can run on Windows, Linux and Mac with vary little customization for each platform required (just a little for the GLSL implementation differences for Nvidia vs ATI on each platform). Linux is less hassle than Windows in many respects and I get better performance too (just like Valve) do. Java 1.6 U10 and later also kick ass for performance (I sit there with the JDK's JVisualVM and watch what goes on in real-time; this is an awesome [free!] tool).
We cross-platform devs have been trying to tell the DirectX guys for ages that it is completely possible to write cross-platform games for *less* effort than it is to write around the MS APIs (due to their cruft and version churn). However, the MS devs don't listen, won't listen and when they do finally listen they resist for ages.
So, even though Windows has a majority of the market share, it is definitely not the best OS. It's simply the most popular OS, for now.
Windows is the most popular *desktop* OS, this is true. However, it is not dominant on the server (eg enterprise and web serving spaces), consoles (PS3 and XBox are fairly even) or mobile devices (where the revenue growth is; Android [which is a customized Java+Linux]) has installs of 1.3 million new devices *each day*.
So, it makes economic sense to develop for Windows if you could only develop for one platform exclusively. However, if you are smart you can develop cross-platform applications that work on Windows *and* Linux *and* Mac *and* Android *and* PS3 without too much hassle (Xbox and iOS are kinda in siloes). The economics has been against developing for Windows only. The smart money has always been using the right tools to do cross-platform work. That way, when the IT landscape changes (eg. the advent of mobile, and one day whatever becomes the new hotness) your code will be able to quickly ported to the new platform. All because you chose the strategic (cross-platform) over the tactical (eg. DirectX ease of use but Windows-only).
Here's a case study I like to quote of someone who chose cross-platform technologies which allowed him to personally make $US 3.5 million dollars when the IPad and iPhone came out. He says if he had put himself in the Microsoft straightjacket with DirectX then he couldn't have done this (and this is why DirectX was invented, to keep you on Windows, and that has been a very successful strategy so far for MS, but it about to marginalize them in the coming heterogenous computing world):
http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/Hopefully this is a bit informative for you, and why the "develop for Windows only" mentality is wrong (and in fact has always been wrong; it suits Microsoft's purposes to keep you on the desktop, not the game developers who needs to adapt to future trends). Now here I have to give credit to the *new* Microsoft, they finally seemed to have grokked that there are other platforms out there and are starting to play nicely. This is very very good, but there is still a lot of MS stuff from the bad old days to be overcome (including indoctrination of its users, such as your mistaking Windows desktop popularity as a reason to develop using Windows-only technology
:) ). -
Re:Are you actually that ignorant?
> Dude I wish you luck but that's an awful teeny tiny itsy bitsy niche you are aiming for.
Thanks man but do the math. In fact, you don't even have to do that, simply look at how much money Minecraft made - at that is a pretty out-there game too. You see the economics of an indie game are different than that of a AAA title - I have none of the overheads that EA has, and nearly all of revenue is pure profit. I think that is the mistakes that many folks make, they think that only the big houses can make money. Here are some actual numbers from an interview of the X-Plane author: http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
Now I'm not targetting iPhone/iPad, but my revenue per unit is nearly a factor of 10 higher (which I know I can get away with, since I'm not entering the target community with no idea - I'm actually been modding the only other product in this genre for a while and paying attention to what that community has been asking for - even if most gamers are completely oblivious to this [but those folks are not my target market, and I don't need them to still be very profitable]).> But in a way you post validates exactly what my point was, as you had to buy artwork that would automatically put you on the RMS "enemy of freedom!" list for using.
I bought artwork to get a faster time to market (although as an part-time indie dev the time to market is not a critical factor, I make a lot of money in my day job [I don't want to be a tosser, but the fact is that the potential money in this project is nearly all bonus and I have no financial pressures at all to rush it to market]). Now, RMS would say the situation is less than ideal, but it is better that the software works on a Free platform than not at all. Incidentally, I'm considering using a fair chunk of the money I make on the project to commissioning assets that I can release as Free Software (eg Creative Commons), since the money is a nice bonus. I believe I could make a modest living doing this (which you argue is not possible), again since I have very low overheads (unlike big players that must make hundreds of thousands of sales or they can't make back their advances and overheads). Personally I think Free Software is more suited to infrastructure projects where more than on stakeholder can contribute than games, but I still think it is possible to succeed even with games (perhaps not with the same margins and overheads that EA gets, even for their stinkers). -
Re:Good
> (see the hardware acceleration on DX10 class hardware mentioned).
Nope, that is entirely a ploy by Microsoft to mov people off WinXP. There is no technical reason why you can't get DX11 effects on WinXP provided your video hardware supports it. How do I know this? well OpenGL will give you DX11 effects no matter what the operating system. But Microsoft had to find ways to move users clinging on to XP (and bring in more revenue even though users won't be doing much different with Win7 that they aren't doing with WinXP) and holding back newer versions of DirectX/Direct3D was one way of milking the cow. Unfortunately the vast bulk of Windows users don't know about that and have been played (again) by Microsoft (although, most won't care I suppose, but that is up to them - the point is that Microsoft gave them no choice for their own cashflow reasons, not technical ones as you allude to).Once MS decided to abandon support for XP with newer DirectX versions I'm sure I gave them more technical flexibility in what they could do - but it was not technical limitations in XP that stop you having 'DirectX 11' style effects - like I said, OpenGL can do the same effects on Windows XP and many more operating systems - since OpenGL is no longer subject to the whims of any single company (unlike Microsoft and DirectX). Hence, I'm developing my modern jet combat simulator in OpenGL with GLSL shaders - just as the X-Plane developer famously did too: http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/ read how chosing OpenGL over DirectX resulted in business opportunities that personally made him $US 3.5 million dollars in a few months when his OpenGL code was very easily ported to the iPad/iPhone unlike DirectX apps that are stuck on the Windows desktop [which is the whole reason Microsoft tricked developers into building workflows using DirectX, since MS knew this would make it hard for game developers to leave, which makes it hard for gamers to leave - it is all about the 'lock-in'].
-
Re:They should not have used Java>They must? Funny, that - I wrote a WinForms app for a company once, back in 2002, when
.NET was still all new and shiny, having been released that very year. It still works fine, after 2 OS upgrades (98->XP->Vista), and I still occasionally make fixes for them - without porting anything to new frameworks and such. It compiles just as fine in VS2002 (the very first one) as it does on VS2010.Your app can't have been doing very much. Just routine form stuff I guess. Yeah, I also wrote WinForms apps starting back around the same time you did. It was ok for simple stuff, but a bitch to extend (just like your beloved SWT). Turns out that the Java Swing apps I was also writing at the time (although they were dog slow back then, thanks to the slow JVMs of that time) still also work - on all platforms too.
> Such people, when they refuse to move on with the times at all (rather than merely being conservative, but still moving ahead), are generally called "luddites". Luckily for us, the majority of people in the industry aren't luddites, which is why we have real and significant advancement in both programming languages and frameworks.
Nope. Such people use it because it still works (like C!) and the added complexity doesn't add much, especially like when in C# they add and deprecate features based on the fashion du-jour. Incidentally, you are living in a bubble. The numbers speak against you, please check out http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html for a more realistic appraisal of what is going on globally.
Well, I don't have the grey beard yet but I do have the salary (and the PhD in Astrophysics, incidentally). I realise that good design seeks to remove complexity, not introduce it arbitrarily because it piques the interest of an otherwise bored developer eg. those that change languages like they change their underwear in the misguided belief that a handle of extra language constructs will make up for a breath of solution-space libraries - which is where real gains productivity are achieved. Unfortunately many people don't understand great design (in any area) is generally about removing unnecessary complexity whenever they see it. As Einstein is often (mis-)quoted, "As simple as possible, but no simpler". Java is like C, it kicks ass because the language just enough to get the job done (and the real work is done by the libraries).
Incidentally, if you don't think platform independence matters from a business perspective then you won't even see the opportunities you've missed (I guess mere employees don't even looking at this aspect). Check out this interview where Austin Meyer of X-Plane fame personally made $3.5 million in one month because he chose OpenGL over DirectX (I already know what technology you'd advocate, but then you'd miss the $3,5 million personally in your pocket if you did): http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
-
Re:No.So your debate boils down to cursing and stating "it just is" ? I guess you haven't programmed OpenGL lately after you switched to Direct X. Turns out you very rarely need to check for extensions if you are using the shader pipeline unless you are targetting a specific optimisation for a specific piece of hardware. Most of the time is is not needed, especially as many extension migrate to the 'Core' as OpenGL evolves. These extensions give you access to features that you would otherwise have to wait for the OpenGL ARB/Khronos to make official. For example it lets Windows XP get Direct X 11-equivalent features. Can you do that with Direct X? I think you know the answer.
Regarding the cross-platform capability. You might even be a decent developer but you are clearly a poor businessman. Windows is dominant on the desktop for sure, but it turns out that the market pie is growing at a huge rate away from the desktop (consoles, tablets/pads and phones). Shame you have make a retarded business decision to lock yourself into the desktop based on a misguided belief the compting == Windows (a mindset of someone who is focussed on the path and was not prepared for the future). For us that have better strategic vision we have chosen OpenGL (despite its rough ride of late) not only because of the technology but also because of the strategic business factors (multi-platform being one). Unfortunately we can only lead the DirectX guys to water, we cant make them think (about the long term strategic aspects of their technology choice - we're clearly approaching the end of the 'Windows-only' era and only some of us are well-prepared). Don't believe me? That's cool, but how about you read the following article with an open mind, and see how choosing OpenGL personally made this guy $US 3.5 million in a month because of the *business* opportunity he was able to exploit due to that choice. And the world of computing is only going to get more diverse with time
... (which is why your blinkered focus on the desktop shows poor business decision making)http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
-
Re:The answers depend on the questions
Your comment is completely valid. However, when I say "cross-platform" I actually don't mean "different versions of Windows and the XBox" (Microsoft's hijacked definition). I actually mean *cross platform*. Yes, true cross-platform isn't ever plain sailing. However, DirectX is simply a non-starter in this area.
PCs and the Xbox are not the only places to make money (albeit they are big slices of the pie, it is far better to target the *whole pie* instead of of just two big slices). In fact, they are a large but shrinking proportion of general computing out there. So, I use OpenGL because it gives me flexibility, just like it did for Austen Meyer:
http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/ -
Re:Not going to lie
Spoken like someone who has never ported a large C++ application to Android. The NDK app is still a second class citizen on Android with many APIs being Java only. Sure, you can call them, but only after radically altering your program. In the end, it may be easier just to port to Java and hope that ROI will happen (it usually does not).
Programming for the Apple platforms? Keep your code, modify a handful of methods, redesign your UI to meet the guidelines and be touch-centric and you're done.
Read an interview with Austin Meyer: http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/ It took him 2 weeks to port X-Plane to iPhone and at the time of the interview he had sold over 500,000 copies for $7 each. Quite a return on only two weeks investment. Not gonna happen on Android.
-
Re:How about non-Windows and non-Mac?
The last OpenGL SuperBible touched on OpenGL ES (the stuff Android phones, iPod/iPad/iPhone etc). OpenGL ES is a subset of the full OpenGL functionality so this book is a good start to both. You can also get an Addison-Wesley book on OpenGL ES as well but the SuperBible is still worth it for the techniques it teaches (how to best use the API and but stuff together for various effects).
I hope all you DirectX programmers take note. Those who wrote for DirectX might have been able to make money on the PC+XBox but the software doesn't move to the PS3, iPhone/iPad, Android, Linux (while still running on Windows too) like OpenGL does. You all fell for Microsoft's deliberate plan to keep you on that platform (where is the Slashdot "it's a trap" tag when you need it, lol). You never know exactly what the future will bring but you do know that devices and operating systems will change. This makes OpenGL the best strategic (long-term) choice for 3D development and the OpenGL SuperBible is a great book to get you there (along with the other OpenGL classics: the 'Red Book', 'Blue Book' and 'Orange Book' - google for these or go to the OpenGL site: http://www.opengl.org./
Case studies:
The author of X-Plane talks about OpenGL made him $3.5 million in a month since he could port his product to iPhone very easily. He'll make even more money from iPad sales too (my nephew just bought X-Plane for the iPad):
http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
Il-2 Sturmovik had both a DirectX and (faster) OpenGL implementation. Coupled with the fact that it is largely written in Java and it was able to be ported to the PS3 as the product Wings-of-Prey greatly increasing sales.
If you must learn a 3D library, then learn OpenGL.It has the features of DirectX 11 (geometry shaders etc) but will run on Windows XP. -
Re:Wednesday
The flight simulator Il-2 has the choice of switching between OpenGL or Direct X. In fact, it is also written mostly in Java with much of the graphics in C++. This allowed it to be ported to the console in the form of Wings of Prey. The flexibility of OpenGL allowed this company to port easily, and made them money.
The flight simulator X-Plane (now taking the crown for civilian flight simulators since Microsoft has shut down the studio that produced the Flight Simulator line) uses OpenGL. It's creator says in an interview that the choice of OpenGL was the correct one since he was able to port his product to the iPhone in a matter of weeks. This meant he personally got around 3.5 million US dollars in revenue in around a month. OpenGL made sound business sense to him. Here's the interview with him if you are interested: http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
If you want to make money on the iPhone/iPad, Android, Windows, Linux, Mac, Unix workstation visualization, embedded electronics such as FAA approved in-cockpit instruments etc then OpenGL is the correct choice. If OpenGL didn't run on Windows then clearly it would be a bad choice, but the fact is OpenGL works well on Windows *and* just about every other platform too. This includes games.
DirectX may be just as good technically but the fact that it is not portable means it is a non-starter for many applications for both technical and commercial reasons.