Thread: Choosing a compiler

  1. #1
    Registered User
    Join Date
    Dec 2006
    Posts
    17

    Choosing a compiler

    Hey

    I'm about to embark on the long hard road of a full project! I've done a few smaller games in the past and have a couple of skilled programmers willing to help me :-)

    I'm kind of falling over at the first hurdle though. Last time I chose a compiler for a game Allegro and DJGPP were all the rage. Recently I've been mostly developing the server end of an online RPG using C# .NET (no graphics obviously!)

    The game we'll be developing is essentially a fighting game (think Tekken!). Now, obviously I'd like to use C++ for this and have already decided to go with OpenGL for the graphics library. My question is this :- can I use Visual Studio 2005 to develop this game, or is it out of the question? I know it includes a C++ compiler, but is this all bound up with the CLI/CLR rubbish or is it properly unmanaged? I can see the Win32 project options, but is there any downside to using this as opposed to an entirely non-MS C++ environment/compiler??

    I use VS 2005 a lot already and if I can go ahead and develop something like this in C++ without having to use a different environment that would be great. If there is ANY performance, development or whatever hit I'd rather just forget about it before I look into it more.

    Thanks, sorry for being so long winded about this!

  2. #2
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    VS actually produces some of the fastest code out there, so it's a very good choice. The Win32 project types are clean of all .Net stuff.
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  3. #3
    Registered User
    Join Date
    Dec 2006
    Posts
    17

    woop!

    That's what I wanted to hear! Thanks man

  4. #4
    Its hard... But im here swgh's Avatar
    Join Date
    Apr 2005
    Location
    England
    Posts
    1,688
    Although I do not know this for certain, a few programmng books have stated that the proffrsionals choose MSVC++ for games. They also add a few little mods or functions thst use code warrior and also a little devC++. But in general, yes, like Cat said, use MS to get the best from yout code.
    Double Helix STL

  5. #5
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    MSVS. Love it or hate it, but so far it's the best. Not sure about the fastest as I think Intel takes that one, but it is the most robust, most supported, and most friendly to Windows, DirectX, COM, MFC, .NET and ActiveX.

    I would choose a compiler based on your target operating system. If it's for Windows I could not imagine using another compiler because even though they attempt and usually succeed at supporting various MS technologies, MS usually surpasses them by far.

    If you don't want to fight with Windows or any of the associated MS technologies, I highly recommend using MSVS .NET. The cycles saved by another compiler probably won't be noticed much as compared to the ease of development using MSVS. You as the programmer WILL notice when your compiler/IDE just isn't cutting it far before you will ever notice a difference in speed across compilers.
    Last edited by VirtualAce; 12-13-2006 at 06:01 AM.

  6. #6
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    On a side note, while highly popular, OpenGL is not backwards compatible with many older (4 or 5 years) graphics cards. If you plan to appeal also to older low-end 3D graphics cards, consider using DirectX. AT least, they make that effort.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  7. #7
    Registered User
    Join Date
    Dec 2006
    Posts
    17

    damn!

    I had no idea!

    I really would rather not use DirectX though... At least OpenGL retains some semblance of portability!

    Is this standard for them? Does it mean future releases of the library will also outdate old cards??

  8. #8
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    I'm certain someone else also has something to say about this.

    The fact though is that I can't run software with the latest OpenGL drivers, whereas DirectX 9.0c gives me no problems whatsoever.

    Arguably my card manufacturers or Toshiba could release drivers for the new OpenGL versions. But this problem doesn't happen with DirectX where an effort to be backwards compatible is a reality.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  9. #9
    Insane Game Developer Nodtveidt's Avatar
    Join Date
    Nov 2006
    Location
    Isabela, PR
    Posts
    105
    It's up to the video card manufacturer to determine whether OpenGL works properly on their cards or not. OpenGL 1.x is rather outdated now, and extension upon extension was added to extend its capabilities. Many modern developers are favoring OpenGL 2.x, which of coure is going to cause issues on older cards. DirectX and OpenGL take a different approach...Microsoft aims to make things as backwards-compatible as possible, which is good for the average consumer, whereas OpenGL sometimes breaks this in favor of a clean start. Both methods have their advantages and disadvantages but you have to ask yourself what your target audience is...if you're going for hardcore gamers with top-of-the-line gaming machines, obviously OpenGL is going to have some distinct advantages, but if you're targetting casual gamers or intend to serve a wide audience, DirectX is a better choice.
    Last edited by Nodtveidt; 12-13-2006 at 12:16 PM.

  10. #10
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    Quote Originally Posted by Mario F.
    OpenGL is not backwards compatible with many older (4 or 5 years) graphics cards.
    Where exactly did you get that idea from? OpenGL is compatible wherever OpenGL drivers are available. Older cards don't support all the new extensions, and newer versions, but it's still supported. If you intend on supporting old and new hardware, you will need to write your own fallback methods.

    Quote Originally Posted by Nodtveidt
    whereas OpenGL sometimes breaks this in favor of a clean start
    There hasn't been a "clean start" since OpenGL 1.1. Everything else has been accessed through an extension since, even though the features are techically part of the spec.
    Last edited by psychopath; 12-13-2006 at 01:07 PM.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  11. #11
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Where exactly did you get that idea from? OpenGL is compatible wherever OpenGL drivers are available. Older cards don't support all the new extensions, and newer versions, but it's still supported. If you intend on supporting old and new hardware, you will need to write your own fallback methods.
    Not sure what you are talking about. I speak from the user end. OpenGL software based on the new versions doesn't run on my machine. DirectX software based on the new versions does. Simple as that.

    Edit: The graphic card driver (a Trident Cyberblade XP which does support OpenGL) is 4 years old. No new updates to these drivers for the Toshiba Satellite Pro 6000 have been released. So, I'm running today software with a 4 year old graphics card drivers. DirectX software gives me no problems at all.
    Last edited by Mario F.; 12-13-2006 at 01:23 PM.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  12. #12
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    OpenGL software based on the new versions doesn't run on my machine. DirectX software based on the new versions does. Simple as that.
    Then that's a driver issue, and sounds specific to the hardware vendor. Actually, not really an issue, just that the drivers don't sound like they provide much OpenGL support.

    The point i'm trying to make, is that OpenGL does support old hardware. If new features are used where the drivers don't allow for it, then that will obviously be a problem.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  13. #13
    Insane Game Developer Nodtveidt's Avatar
    Join Date
    Nov 2006
    Location
    Isabela, PR
    Posts
    105

    Cool

    Quote Originally Posted by psychopath
    There hasn't been a "clean start" since OpenGL 1.1. Everything else has been accessed through an extension since, even though the features are techically part of the spec.
    OpenGL 2.0 was a clean start (so to speak), and 1.1 was as well. I don't know about 2.1 though, I haven't really been hardcore into OpenGL as of late. Hence why I said "sometimes".

  14. #14
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    I think I'm missing your definition of "clean". The biggest change in GL2 was the promotion of GLSL to core, but it wasn't really a "clean start". AFAIK, 1.1 wasn't much different from 1.0.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  15. #15
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    I use GLDirect on those instances where I want to use the latest versions of OpenGL. It's not a perfect solution (heck, sometimes it's not even a good one), but it works.

    I never thought of the possibility of it being a drivers problem. Mostly because 1.x versions of OpenGL run without a glitch. But what do I know? Graphics is definitely one area I never ventured much.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. C Compiler and stuff
    By pal1ndr0me in forum C Programming
    Replies: 10
    Last Post: 07-21-2006, 11:07 AM
  2. I can't get this new compiler to work.
    By Loduwijk in forum C++ Programming
    Replies: 7
    Last Post: 03-29-2006, 06:42 AM
  3. how to call a compiler?
    By castlelight in forum C Programming
    Replies: 3
    Last Post: 11-22-2005, 11:28 AM
  4. Help With finding a compiler
    By macman in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 04-15-2005, 08:15 AM
  5. choosing a compiler
    By almost_here in forum Game Programming
    Replies: 4
    Last Post: 11-29-2001, 07:20 AM