compilers & graphics libraries to use?

Started by
7 comments, last by JustHeath 19 years, 4 months ago
This post concerns more than just directx so I didn't post it in the directx forum. I got the academic version of Visual Studio .NET and learned some directx because I want to distribute my games on the internet, I haven't yet decided if I'm going to release them as shareware or freeware, but that's besides my point. What bothered me slightly is when I found out that there are runtimes required to run programs made in .net and directx. It just seems kind of inconvenient for a user to have to download two runtimes to run a game. Anyway, I'm wondering about a few things: Are there other programming environments that do not require runtimes? For instance, does the Borland C++ compiler produce programs that require a runtime? Is it difficult to migrate from Visual Studio .net directx programming to programs written with Borland or other compilers and directx? I know of three C++ compilers: Microsoft .NET, which I have, but requires a runtime Borland, I do not know if it requires a runtime djgpp, which is free but only produces DOS programs Any other compilers to choose from that someone knows of? also, if I choose to stay with .NET what happens a few years down the road when Microsoft changes their compiler and the current .NET runtime is not available at their web site? Will my .NET programs run under the new compiler's runtime? Does Microsoft allow developers to distribute the .net runtime on their own, and how is that done if it's possible? I have the same question about directx - when directx 10 comes out, will directx 9 programs run with the directx 10 runtime? Graphics packages- I know of three: directx of course, which requires a runtime but it's small and can be packaged with a game according to what I read in a game programming book opengl - does it require a runtime and what package would I use for sound if I did opengl? fastgraph, which is expensive, and if I remember correctly (and I may be remembering incorrectly) does not require a runtime.. what other graphics packages are there? Without knowing all the answers to the questions I have written above, it seems that I might want to try djgpp with fastgraph, although I'd be concerned that windows eventually will not be able to run DOS programs. In my understanding even though Windows XP doesn't have DOS anymore, it still can run DOS programs. However, if I were to do this I would be throwing away all that work that I spent learning directx.. I don't know, I would consider it, but I'm still not sure - I just want to know what options are out there. Any answers/helpful suggestions? [Edited by - jimiwa on January 4, 2005 6:54:32 PM]
Advertisement
Executables made with .NET don't require the .NET runtime unless you make use of that specific functionality. In other words, unless there's some restriction in the academic version that I am unaware of, you can still build standalone DirectX apps that only require DirectX. If you did choose to use the .NET runtime for some reason, I am under the impression that they allow you to redistribute it with your app anyway. No doubt someone more knowledgable than I in .NET stuff will post below.

Although I expect VS.NET is fine for your needs, the main other compiler you might consider is MinGW, ideally packaged as part of Dev-C++. In my experience it's a bit more awkward to set up for games development but it's based on GCC which is an open source compiler, therefore available on multiple platforms and will be around forever.

Windows XP already has problems with some DOS games, but I don't think that's relevant here unless you used DJGPP and there's really almost no reason why you'd want to do that.

The OpenGL 'runtime' I believe tends to be installed as part of your graphic card's drivers (or at least the latest version does). So there is less to distribute there. But remember that DirectX is more than just a graphics subsystem. Some games use OpenGL for graphics and DirectX for input, sound, etc.

There are many other simpler graphics libraries listed in the library link in my signature, however I think that almost without exception they rely on DirectX or OpenGL at the low level for performance reasons.
so can someone tell me if there's a way
to make my .net programs run without a runtime?
(academic version)
if I can't make my programs run without a runtime
does Microsoft allow developers to
ship the runtime with the game?
if you compile a NON-MANAGED C++ application the only runtime you require is 2 dlls, which you are allowed to ship, and then only if you compile with the 'multi-thread dll' runtime library.

However, if you use anything .Net related (C#, VB.Net, Managed C++) then the end user needs the .Net framework installed for it to run.
sure, thats the whole point of .NET, microsoft want it to be used!
as Kylotan pointed out when build a c++ app and don't using any .NET runtime libraries you don't have to worry about them. only when developing managed stuff (managed c++, c#, vb.net, etc.) you might want to add the .NET runtimes to your installer.

For more information about that check out your Visual Studio .NET directory (runtimes should be there somewhere) or just download them:
http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=en
and put them in your installer or at least tell the user somehow to install this stuff. check the licence files in the package if you want to know more about that.

btw: the academic version of VS is and was always the same stuff as the other versions, so everything should be in there as well. but remember: academic means you can't sell/distribute programs with it.
Microsoft DirectX MVP. My Blog: abi.exdream.com
I still don't know what managed and unmanaged means.
Could someone explain that to me?
What are the 2 dll's required?

so because I have the academic version I'm not going
to be able to sell my games?
managed is an extension that can be used with normal C++, but in this context also refers to .NET languages like C#. If you use them, the user will need to have the .NET framework installed.

If you accidentally use streams/exceptions you most of the times need two extra dlls, (msvcp71.dll and msvcr71.dll). You're allowed to ship those with your app. Just put them into the same folder as your .exe and you're set.

To see what dependencies your exe needs, use the Dependency Viewer, which should be installed with Studio (in the tools/bin folder), should come with the Academic version also.

Fruny: Ftagn! Ia! Ia! std::time_put_byname! Mglui naflftagn std::codecvt eY'ha-nthlei!,char,mbstate_t>

Jim, may I suggest that you take a good hard long look at the rather excellent Visual C++ 2005 Express Beta edition? I'ts free for use and is pretty good in its own right.

You can use it to develop applications *exactly* as you would have used Visual C++ 6 (unmanaged C++ so to speak), but using the latest Platform SDK and Direct X 9 libraries. How cool is that! Trust me, there is very little porting issues involved. I say this because I managed to port all of my Visual 6 Direct X applications to the DirectX 9 (december update) sdk with just a little bit of help from friends here on gamedev. :)

If you intend to use the .NET framework, then C# would be recommended because it's apparently perfectly suited for .NET development (although u CAN use C++ too). In which case I suppose you can use the any of the free C# compilers or thre free Sharp IDE for C# (just search for free C# IDE on google). I suppose you could also try the Eclipse IDE with the associated C# plugin.

If you don't intend to use Managed C++ then you can dunk .NET and go for Visual C++ Express beta and the MS Platform SDK.
"There is no dark side of the moon." - Pink Floyd
Quote:Original post by jimiwa
I still don't know what managed and unmanaged means.
Could someone explain that to me?
What are the 2 dll's required?

so because I have the academic version I'm not going
to be able to sell my games?


Managed means you get to call 'new' all the live-long day and never have to call 'delete' and the GarbageCollector© will clean it all up for you! This isn't recommended for seriously speed dependent games such as most FPS's.

I don't know what the dll's required are, but you won't need them if you follow some of the other advice given in this thread.

From one of the quotes above though I have a question. With the academic version, I am not allowed to even send someone a copy of an executable I built?

This topic is closed to new replies.

Advertisement