• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
KingofNoobs

OpenGL
Non-Microsoft Market Share

12 posts in this topic

Hello,

Does anyone have any up-to-date statistics on what percentage of the x86 based desktop PC market is occupied by non-Microsoft operating systems, and thus for which the use of OpenGL would be basically mandatory? Also, do most of you OpenGL programmers compile with GCC and if so, what is your preferred IDE? If you produce work for both Windows and Non-Windows, do you use VC to compile for windows and/or use DirectX for windows, while using OpenGL for the rest, or do you just use the GCC/GL combo for all your work?

Thanks in advance.

-Dave Ottley
0

Share this post


Link to post
Share on other sites
[quote name='KingofNoobs' timestamp='1354303807' post='5005801']
Does anyone have any up-to-date statistics on what percentage of the x86 based desktop PC market is occupied by non-Microsoft operating systems, and thus for which the use of OpenGL would be basically mandatory?[/quote]
Last month's [url="http://store.steampowered.com/hwsurvey"]Steam Hardware Survey[/url] indicates that 5% of Steam users run Macs. Perhaps this isn't the greatest indicator of overall Mac/Linux marketshare among gamers, but I'd expect that 5% figure to be a reasonable ballpark for the size of the market you are looking at.

[quote]Also, do most of you OpenGL programmers compile with GCC and if so, what is your preferred IDE?[/quote]
I gave up on cross-platform C++ IDEs a long time ago. Visual Studio is the gold standard, and XCode is not bad once you get used to it, but integrating the two together in a single project is a pain - and I seldom find other IDEs to be worth the hassle.

[quote]If you produce work for both Windows and Non-Windows, do you use VC to compile for windows and/or use DirectX for windows, while using OpenGL for the rest, or do you just use the GCC/GL combo for all your work?[/quote]
I have no interest in writing all my code twice. OpenGL works well enough on Windows as well.
0

Share this post


Link to post
Share on other sites
http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10 has some data about OS market share, which I'd assume would be at least fairly accurate, although with linux, dual booting, etc it's impossible to tell exactly.

I program with openGL, using MSVC on windows and GCC/Eclipse on linux
0

Share this post


Link to post
Share on other sites
I develop for both Linux and Windows pre-8 and primarily OpenGL, but since I use a non-platform-dependent API for these platform-specific parts, which is then compiled (or linked at run-time using DLL's/SO's) into platform-dependent source using macros, I can easily compile for a new platform, say Direct3D or MacOS, should I wish to do so later on. This is a common way of hiding away platform-dependent source. For reference, L. Spiro has posted a neat little article regarding the compile-time macro solution: http://lspiroengine.com/?p=49.

P.S. I fancy CodeBlocks too much to let VS get in my way on Windows :-)
2

Share this post


Link to post
Share on other sites
macs have at most 5%, but you can only use OGL 3.x
linux based systems have at most 1%, and latest OGL

For cross platform development you need to use cross platform libraries, and build with non-cross platform IDEs and compilers. For cross platform libraries your best choice IMO would be SFML + OGL + GLEW (and other libs like freetype, freeimage, assimp etc. if needed)
For example I chose cmake to create both a makefile (so yeah gcc/g++) on Linux and a Visual Studio solution on Windows. As far as I know it works for mac too.
On linux your best choice is cmake and kdevelop IMO, but 100 developers will give you 100 answers to this question. You still have other IDEs like Eclipse and Qt Creator.
In my experience OGL has been enough for everything, so I don't see why you'd use DX even on Windows (why would you develop the same thing twice?).
2

Share this post


Link to post
Share on other sites
People,

Thank you for your responses. I feel that there is merit to using D3D on Windows because the drivers are updated more frequently and the customer service from the graphics card manufacturers is much better. The fact that companies like Blizzard use D3D on Windows and GL on Mac is a form of proof of this concept.

I have decided to download and use Code::Blocks with the latest GCC collection. I do not really want to pay the $500 for MSVC12 unless it is totally necessary. I want to do some emperical research into why MSVC is considered the "Gold Standard." One possibility is that coders are "raised" on Microsoft code from past decades and they just don't want to change the way they do things. For example, most game writing books are written using D3D and very Windows-centric code. The other possibility is that MSVC offers features that increase the productivity of programmers and/or aid in creativity. My hypothesis is that the former is true, but I am going to download and use GCC on Windows now to prove that.

Another thing I am going to do is setup my rig to dual boot into Linux and learn Linux as well as I can. I believe that Windows 8 is the beginning of a long-term migration of non-Mac x86 users to the "free" space. I don't think it will happen fast, but I actually believe that the game development community itself (namely indies, but larger companies eventually) will be the catalyst for the change. If Windows becomes a closed system like it is rumored to become, then there will be no more bastion of censorship-free and middleman free game development platforms (other than web, but there are many limitations on web-games). Thus, game developers will move to Linux to gain the freedom (financial and otherwise) offered by the platform, and some gamer will want to play a Linux only game and move over, and then another, and then another. Unless I am mistaken, there is no reason at all why Windows should be the dominant platform other than network effect and historical reasons. To me, this is not enough of a reason to choose the platform for development. If Linux had a 50% share think of how much better of a world we would be living in. Microsoft would be forced to be more standards compliant and all cross-platform development would be made easier, not to mention the better coding practices that this diversification would encourage.

I believe that the Linux community, while small, could be the best place for Indie developers to focus now because of the exponential growth that it is poised to experience. When it blows up, the big guys will be there very quickly, so there are benefits to be had of getting into the space now.

Just my two cents.

-Dave Ottley
0

Share this post


Link to post
Share on other sites
It's true that once I developed games under MS platform, and I have a DirectX programming experience of 3 years.
But I will further look into the mystery of CG, I give up MS and D3D, and move into Linux. Now I use Ubuntu and QtCreator as my developing environment, recently I am learning[i] OpenGL Super Bible[/i], the sample code works fine.
0

Share this post


Link to post
Share on other sites
[quote name='KingofNoobs' timestamp='1354351362' post='5005975']
If Linux had a 50% share think of how much better of a world we would be living in. Microsoft would be forced to be more standards compliant and all cross-platform development would be made easier, not to mention the better coding practices that this diversification would encourage.
[/quote]

I think that's a very optimistic and unrealistic viewpoint. Split shares of a market has shown us time and time again in the technology field that not only do standards-compliant products not become more the norm, they tend to become less the norm as the competitors independently develop and implement a 'standard' to get a leg up on the other guys who are waiting for a committee to approve and tweak things just right.

Internet Explorer vs. Netscape Navigator/Communicator. Horrible divergent html paths that have yet to be resolved 15 years later.
iOS vs. Android. Virtually no interoperability between the two dominant mobile platforms.. 3rd party options that will individually compile to each is about as close to bridging that gap as exists. Maybe HTML 5 will grow into being closer to a true cross platform solution.

Not so 50/50 examples:
OSX vs. Windows.
MySpace vs. FaceBook then FaceBook vs. Google +
MS Office vs. Lotus Notes
Java vs. C#
Verizon Wireless vs. AT&T (cmda vs. gsm) (hey, you got one here, they're both headed to LTE as the 4G solution)
Hotmail vs. GMail
Mercurial vs. Git

So while I definitely don't agree that more standards would be drawn up and agreed to, I definitely do want Linux to continue to grow and thrive. I think having competition where people/companies are taking different approaches at the same problem is a great free-market style approach that leaves us with options and with better products as a result. One little story on that note is I recall how confused and then annoyed I was with GMail tagging instead of using folders. And now when I attempt to clean up my Hotmail account, I feel like I have so much less control having to choose 1 folder to put stuff in rather than being able to apply multiple tags and then view any tag that I care to. Tags > Folders all the way.
0

Share this post


Link to post
Share on other sites
[quote name='KingofNoobs' timestamp='1354351362' post='5005975']
I have decided to download and use Code::Blocks with the latest GCC collection. I do not really want to pay the $500 for MSVC12 unless it is totally necessary. I want to do some emperical research into why MSVC is considered the "Gold Standard." One possibility is that coders are "raised" on Microsoft code from past decades and they just don't want to change the way they do things. For example, most game writing books are written using D3D and very Windows-centric code. The other possibility is that MSVC offers features that increase the productivity of programmers and/or aid in creativity. My hypothesis is that the former is true, but I am going to download and use GCC on Windows now to prove that.
[/quote]

It's actually the case that the latter of your two possibilities is true; MSVC - while admittedly lagging behind in standards compliance (it's getting better though) - is ahead on productivity and is widely considered to have the best debugger currently available on the planet. The entry level is very accessible too - Express editions will cost you absolutely nothing and are quite well-featured.
0

Share this post


Link to post
Share on other sites
[quote name='KingofNoobs' timestamp='1354351362' post='5005975']
I do not really want to pay the $500 for MSVC12 unless it is totally necessary.[/quote]
The express editions are free, and perfectly usable.

[quote]I want to do some emperical research into why MSVC is considered the "Gold Standard." One possibility is that coders are "raised" on Microsoft code from past decades and they just don't want to change the way they do things.[/quote]
Don't look at me then. I'm from a very Mac/linux centric worldview, and even I admit that Visual Studio is the gold standard of IDEs.

Seriously, download the express edition and give it a whirl - XCode comes somewhere close in terms of usability (especially since Apple threw out GCC and adopted Clang instead), but no other IDE is even in the same league.
1

Share this post


Link to post
Share on other sites
Do you guys and gals just like the debugger in MSVC or are there other reasons you like it so much? I am seriously struggling to understand why I should use it. In order to develop "desktop" apps I have to stick to 2010 and that is unlikely to receive updates for C++11 which I love so much. It's not that I can't afford it, it's the question of why would I want to pay for something I don't need. I once sunk $50k into a music studio to get my "creative on" only to realize that $50k doesn't buy 50 cents worth of creativity or productivity. Its the talent, the person that counts, and as long as a compiler has a debugger, is standards compliant, and has some features like completing code for you and lookup of member names, etc. I see no reason why one IDE should be preferred to the others.
0

Share this post


Link to post
Share on other sites
[quote name='KingofNoobs' timestamp='1354561706' post='5006721']
In order to develop "desktop" apps I have to stick to 2010 and that is unlikely to receive updates for C++11 which I love so much.
[/quote]

This is not the case. MS originally planned to only support the development of store applications with the VS2012 express editions, but they came back on this decision after getting quite a few negative reactions.

Visual Studio is just a proven and stable IDE with a lot of great features, so why not use it when you can get it for free?
2

Share this post


Link to post
Share on other sites
Radikalizm, wow! I was unaware of this! Thank you I think you just saved my day. Now I can continue to develop on both platforms.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • By fllwr0491
      I googled around but are unable to find source code or details of implementation.
      What keywords should I search for this topic?
      Things I would like to know:
      A. How to ensure that partially covered pixels are rasterized?
         Apparently by expanding each triangle by 1 pixel or so, rasterization problem is almost solved.
         But it will result in an unindexable triangle list without tons of overlaps. Will it incur a large performance penalty?
      B. A-buffer like bitmask needs a read-modiry-write operation.
         How to ensure proper synchronizations in GLSL?
         GLSL seems to only allow int32 atomics on image.
      C. Is there some simple ways to estimate coverage on-the-fly?
         In case I am to draw 2D shapes onto an exisitng target:
         1. A multi-pass whatever-buffer seems overkill.
         2. Multisampling could cost a lot memory though all I need is better coverage.
            Besides, I have to blit twice, if draw target is not multisampled.
       
    • By mapra99
      Hello

      I am working on a recent project and I have been learning how to code in C# using OpenGL libraries for some graphics. I have achieved some quite interesting things using TAO Framework writing in Console Applications, creating a GLUT Window. But my problem now is that I need to incorporate the Graphics in a Windows Form so I can relate the objects that I render with some .NET Controls.

      To deal with this problem, I have seen in some forums that it's better to use OpenTK instead of TAO Framework, so I can use the glControl that OpenTK libraries offer. However, I haven't found complete articles, tutorials or source codes that help using the glControl or that may insert me into de OpenTK functions. Would somebody please share in this forum some links or files where I can find good documentation about this topic? Or may I use another library different of OpenTK?

      Thanks!
    • By Solid_Spy
      Hello, I have been working on SH Irradiance map rendering, and I have been using a GLSL pixel shader to render SH irradiance to 2D irradiance maps for my static objects. I already have it working with 9 3D textures so far for the first 9 SH functions.
      In my GLSL shader, I have to send in 9 SH Coefficient 3D Texures that use RGBA8 as a pixel format. RGB being used for the coefficients for red, green, and blue, and the A for checking if the voxel is in use (for the 3D texture solidification shader to prevent bleeding).
      My problem is, I want to knock this number of textures down to something like 4 or 5. Getting even lower would be a godsend. This is because I eventually plan on adding more SH Coefficient 3D Textures for other parts of the game map (such as inside rooms, as opposed to the outside), to circumvent irradiance probe bleeding between rooms separated by walls. I don't want to reach the 32 texture limit too soon. Also, I figure that it would be a LOT faster.
      Is there a way I could, say, store 2 sets of SH Coefficients for 2 SH functions inside a texture with RGBA16 pixels? If so, how would I extract them from inside GLSL? Let me know if you have any suggestions ^^.
    • By KarimIO
      EDIT: I thought this was restricted to Attribute-Created GL contexts, but it isn't, so I rewrote the post.
      Hey guys, whenever I call SwapBuffers(hDC), I get a crash, and I get a "Too many posts were made to a semaphore." from Windows as I call SwapBuffers. What could be the cause of this?
      Update: No crash occurs if I don't draw, just clear and swap.
      static PIXELFORMATDESCRIPTOR pfd = // pfd Tells Windows How We Want Things To Be { sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor 1, // Version Number PFD_DRAW_TO_WINDOW | // Format Must Support Window PFD_SUPPORT_OPENGL | // Format Must Support OpenGL PFD_DOUBLEBUFFER, // Must Support Double Buffering PFD_TYPE_RGBA, // Request An RGBA Format 32, // Select Our Color Depth 0, 0, 0, 0, 0, 0, // Color Bits Ignored 0, // No Alpha Buffer 0, // Shift Bit Ignored 0, // No Accumulation Buffer 0, 0, 0, 0, // Accumulation Bits Ignored 24, // 24Bit Z-Buffer (Depth Buffer) 0, // No Stencil Buffer 0, // No Auxiliary Buffer PFD_MAIN_PLANE, // Main Drawing Layer 0, // Reserved 0, 0, 0 // Layer Masks Ignored }; if (!(hDC = GetDC(windowHandle))) return false; unsigned int PixelFormat; if (!(PixelFormat = ChoosePixelFormat(hDC, &pfd))) return false; if (!SetPixelFormat(hDC, PixelFormat, &pfd)) return false; hRC = wglCreateContext(hDC); if (!hRC) { std::cout << "wglCreateContext Failed!\n"; return false; } if (wglMakeCurrent(hDC, hRC) == NULL) { std::cout << "Make Context Current Second Failed!\n"; return false; } ... // OGL Buffer Initialization glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glBindVertexArray(vao); glUseProgram(myprogram); glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_SHORT, (void *)indexStart); SwapBuffers(GetDC(window_handle));  
    • By Tchom
      Hey devs!
       
      I've been working on a OpenGL ES 2.0 android engine and I have begun implementing some simple (point) lighting. I had something fairly simple working, so I tried to get fancy and added color-tinting light. And it works great... with only one or two lights. Any more than that, the application drops about 15 frames per light added (my ideal is at least 4 or 5). I know implementing lighting is expensive, I just didn't think it was that expensive. I'm fairly new to the world of OpenGL and GLSL, so there is a good chance I've written some crappy shader code. If anyone had any feedback or tips on how I can optimize this code, please let me know.
       
      Vertex Shader
      uniform mat4 u_MVPMatrix; uniform mat4 u_MVMatrix; attribute vec4 a_Position; attribute vec3 a_Normal; attribute vec2 a_TexCoordinate; varying vec3 v_Position; varying vec3 v_Normal; varying vec2 v_TexCoordinate; void main() { v_Position = vec3(u_MVMatrix * a_Position); v_TexCoordinate = a_TexCoordinate; v_Normal = vec3(u_MVMatrix * vec4(a_Normal, 0.0)); gl_Position = u_MVPMatrix * a_Position; } Fragment Shader
      precision mediump float; uniform vec4 u_LightPos["+numLights+"]; uniform vec4 u_LightColours["+numLights+"]; uniform float u_LightPower["+numLights+"]; uniform sampler2D u_Texture; varying vec3 v_Position; varying vec3 v_Normal; varying vec2 v_TexCoordinate; void main() { gl_FragColor = (texture2D(u_Texture, v_TexCoordinate)); float diffuse = 0.0; vec4 colourSum = vec4(1.0); for (int i = 0; i < "+numLights+"; i++) { vec3 toPointLight = vec3(u_LightPos[i]); float distance = length(toPointLight - v_Position); vec3 lightVector = normalize(toPointLight - v_Position); float diffuseDiff = 0.0; // The diffuse difference contributed from current light diffuseDiff = max(dot(v_Normal, lightVector), 0.0); diffuseDiff = diffuseDiff * (1.0 / (1.0 + ((1.0-u_LightPower[i])* distance * distance))); //Determine attenuatio diffuse += diffuseDiff; gl_FragColor.rgb *= vec3(1.0) / ((vec3(1.0) + ((vec3(1.0) - vec3(u_LightColours[i]))*diffuseDiff))); //The expensive part } diffuse += 0.1; //Add ambient light gl_FragColor.rgb *= diffuse; } Am I making any rookie mistakes? Or am I just being unrealistic about what I can do? Thanks in advance
  • Popular Now