Jump to content
  • Advertisement
Sign in to follow this  
Bru

OpenGL DirectX... costs money?

This topic is 3172 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

i recently read somewhere that if i try selling my game(that uses directX),i'll need to pay for a license. is it true? if it is,that's problematic for me. i am a sole person and i probably cant pay for a license. i am also using directX in order to be more impressive when i present my game when i try to get into a gaming company. i dont want to use openGL because then i'll go into a lower level and need to build myself more functions and classes(and i try not to use external libarys too much). a real engine? well i heared unity is nice,but now everybody seems to be using it and considering the fact i wont have a degree soon i need to be extrodinary if i want to get a job as a game programmer... not mention i dont want a unity watermark appearing on my game for using the free version. so... does directX realy cost money when i try selling my game?

Share this post


Link to post
Share on other sites
Advertisement
I have yet to find something that says you have to purchase a license to use it. You already have to use Microsoft Windows and Visual Studio before you can use DirectX anyways, and if you only use Visual Studio Express, I believe I've heard there are limitations on commercial distribution of applications coded in Visual Studio Express.

I'm assuming since they include the redist for free: http://www.microsoft.com/downloads/details.aspx?familyid=0cf368e5-5ce1-4032-a207-c693d210f616&displaylang=en then there is no license required.

Share this post


Link to post
Share on other sites
Quote:
Original post by Dbproguy
if you only use Visual Studio Express, I believe I've heard there are limitations on commercial distribution of applications coded in Visual Studio Express.
That is not true, there is no limit to commercial distribution even if you use the Express versions.

I don't know where you heard that you need pay to any license fees, but it's not true.

Share this post


Link to post
Share on other sites
Quote:
Original post by Codeka
Quote:
Original post by Dbproguy
if you only use Visual Studio Express, I believe I've heard there are limitations on commercial distribution of applications coded in Visual Studio Express.
That is not true, there is no limit to commercial distribution even if you use the Express versions.

I don't know where you heard that you need pay to any license fees, but it's not true.

True there is no fee, but there are some limits DirectX's use, regardless of which VStudio edition you're using. Not in quantity of sales or anything, just on how you're allowed to ship/install the needed files. You are not allowed to just pack a few DLLs in the same directory as your app. You can only distribute the redistributable installer packages that Microsoft allows. All the details on which files must be present, what's optional, etc, are contained in the REDIST folder of your SDK. If you don't want to ship with the redist packages, then you should point your users to the DirectX Web Installer.

Share this post


Link to post
Share on other sites
Hmmm, on this note... I'm using Visual Studio C++ 2008, but just for the compiler (not .NET or anything).

When I distribute a game, will the game just run on anyone's system?

Or will they need to install something? If so, is there some other compiler I should be using instead of VS? Also, if this is the case, why is it that I would need some extra package just to run a standard C++ program?

Share this post


Link to post
Share on other sites
Quote:
Original post by NightCabbage
Hmmm, on this note... I'm using Visual Studio C++ 2008, but just for the compiler (not .NET or anything). When I distribute a game, will the game just run on anyone's system? Or will they need to install something?
Yes you'll need them to install the visual C++ runtime. You can integrate this installer with your own game's installer though, so both packages are installed at once.

You can find the installer by doing a search for "Microsoft Visual C++ 2008 Redistributable Package".
Quote:
why is it that I would need some extra package just to run a standard C++ program?
Your game is compiled down to native code, BUT it will likely be linked to Microsoft DLLs, for functions such as printf, timeGetTime, fopen, etc... These DLLs are installed by the redist package.

Share this post


Link to post
Share on other sites
Quote:

Or will they need to install something? If so, is there some other compiler I should be using instead of VS? Also, if this is the case, why is it that I would need some extra package just to run a standard C++ program?

Because C++ isn't "standard" in that sense. All C and C++ programs need a runtime to execute -- that's where your "standard" functions come from, implemented in terms of the OS functions for the same. The difference with C++ is that those runtimes can be linked in to your program as static libraries, although that is discouraged these days in favor of linking dynamically (which means you need to package the redistributable for your runtime version with your installer).

Share this post


Link to post
Share on other sites
Note also that all C++ compilers have a runtime library component, it's just that some compilers choose to link to their statically, rather than dynamically.

Microsoft chose to link to the C++ runtime dynamically (by default) because it allows them to patch security vulnerabilities that may be found without requiring you to recompile and have all your clients re-download your application. Not that there's ever been a security vulnerability in the VC++ runtime (that I'm aware of), but it's theoretically possible - they learnt this lession with the JPEG vulnerability that was found in GDI+ a few years back: all applications that had distributed private copies of GDI+ had to be updated separately, and it was a nightmare for sysadmins!

In any case, the redist for the runtime is quite small. But if you're really against the idea of including it with your installer, you can link to the VC++ runtime statically instead. There are issues when linking with the C++ runtime statically (particularly if your application uses DLLs) but as long as you understand those and are willing to take on the responsibilty of monitoring for security issues in the runtime (you should always be monitoring for security [and other] issues in all your dependencies, of course) then it's an option.

Share this post


Link to post
Share on other sites
(Thanks to the above 3 posters!)

Ah, that's interesting... so it's about the libraries that it's linking to, not the actual compiled code itself. That makes sense.

So how do people get normal programs that are made in C++ to run on Windows without needing to install anything?

I don't think I've seen many "professional" games that require the redistributable package to run... why is this?

Should I be doing that? Or is it a good idea to just package the redistributable and be done with it?

Share this post


Link to post
Share on other sites
Those programs either link statically with their dependencies (but this is not always possible or advisable, for example, you cannot statically link to the DirectX libraries), or they bundle the redistributable installer with their own installer and quietly install it during the installation phase of the program.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!