A question about interpreted languages~~

Started by
6 comments, last by FakeLord 12 years, 6 months ago
I'd like to start a game project and I've done some research as to which language to use. Most people seems to be concerned with speed when it comes to interpreted languages, but I mostly worry about installing the platform itself.

I've tried MonoDevelop and I really like it, but I'm not quite sure of how you get your users to install Mono... The way I see it you have to do a custom installer in another language, check if Mono is installed and if not, offer to install it?

It seems pretty troublesome to make a custom installer for Windows, Mac and Linux and make my game about 80 megabytes bigger. Nobody complains about this though. I guess it's not that important on a big project, but I'm surprised I did not see anybody even mention it.

So basically I'm wondering if I'm missing an easy way to do this, or if it's simpler to do than I think. Making installers, slower computation, more steps for users at install, bigger game size...I don't really want to use C++ but it's kinda piling up...lol
Advertisement
I'm confused. You started you post off with talk of interpreted languages, then segway into Mono.

Mono is not a language, it's an open source implementation of .NET which is a framework for a whole set of software languages, not one of which is interpreted.

Also, there is no need to install Mono on Windows, since Windows already has the Microsoft version of .NET available for it, and it doesn't even have to be manually installed on Vista or Windows 7 because it comes standard. On Linux, installing Mono is usually as easy as a single command.

If it's a concern to you, don't write your installer in a .NET language, or better yet, don't write one at all. Find a cross platform installer creator tool.
To add to what already has been said:

Almost any non-trivial piece of software is going to have dependencies, no matter what language is being used.

The complexity of packaging up software for distribution is not really related to what language was used to make it - it is mostly a consequence of how many platforms you want to support.


Making installers, slower computation, more steps for users at install, bigger game size...I don't really want to use C++ but it's kinda piling up...lol
[/quote]

Making installers and/or more steps for users to install is most likely not going to go away by switching to C++. "Slower computation" and "bigger game size" are 99.99% guaranteed to be non-issues for you. let alone if even true. What you will notice, however, is that you will need to compile your C++ code for each platform, producing multiple executables. You'll also notice many "gotcha's" when trying to write portable C++.
@lpcstr
Why confused? I know Mono is not a language. What I said applies to all interpreted languages. I just thought I'd give some details as to what framework I'm interested in exactly. I can't write the installer in a .Net language because it would need .Net to verify if .Net is installed. Also, I doubt an installer tool would check if .Net or Mono are installed. If there would be such a tool that would be the answer I seek, but I did not find one.

@laztrezort
I thought that at least the installer aspect would be simplified with C++. I can use something like Install Creator and there are probably similar tools for other platforms. I don't really mind slower computation, but I it does seem a little silly if my first project is like 10 megs but ends up doing 90 because of .Net or Mono.

Anyway, thanks to you both! I was just asking in case I'm missing on some awesome tool that creates an installer that checks for .Net automatically. In retrospect, it might have been a little foolish to ask. I just don't want to spend a week on the installer, but perhaps I worry for nothing hmm...
i think people are trying to tell you that, .NET languages are not "interpreted", they are JIT compiled, which is a whole different thing.

That aside, your problem doesn't really exists. Windows Vista comes with .NET 2.0 installed, Windows 7 comes with 3.5 pre installed. Last time i checked, .NET 4.0 has an automatic system that, if you try to run an app that needs it and it is not installed it will automatically download it for you.
Plus.. every decent install system has a scripting system to check if .NET is installed. If you use Visual Studio to build your installer it will do it for you.. I can't see where the problem might be if not that you have too many choices blink.gif

If your target OS isnt Windows, you still dont have a problem because your user base will be so small and so geeky that all you need to say is "get the Mono runtime to run it"..tongue.gif

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

Almost every language has a runtime. C++ has a runtime. For example, if you build with Microsoft Visual C++, you'll need to distribute your application with Microsoft's Visual C++ Runtime Installer. Alternatively, you can statically link to the C++ runtime, but this can be complicated, especially when you're using third party libraries.

laztrezort is correct - you're conflating two issues, deployment and language implementation. If the language is implemented using an interpreter, or has a heavy runtime, then that will certainly be a deployment issue to be overcome. But native languages don't necessarily lack similar issues.

The .Net framework installer appears to be approximately 20Mb from Microsoft. The various Mono downloads I saw with some light Googling are much larger (~80Mb(, but includes much more than just the runtime. However, there appears to be a "mkbundle" tool which might be just want you need.
I also can't help but think you are worrying about the wrong thing. Getting your game to run on all three of the major operating systems is going to be much more difficult task then how you are going deploy them. If you had gotten your game working on all three already, I doubt you'd have any problems figuring out how to create installers for it.

A cross platform installer is literally the last thing you should be worrying about, not the first.
@kunos
Ow...I see. I might have the wrong word here. I just said interpreted because it requires the .Net framework. If most installation builder can verify if .Net is installed I guess I'll do a bit more research. Hehe...I admit Linux users probably don't need too much help to install Mono.

@rip-off
Hmm...I thought it might be easier to include the necessary files with C++ since my first project should be kinda simple, but I see now how complications could arise. I will probably stick with a .Net language. The link you gave me looks quite promising. Thanks!

This topic is closed to new replies.

Advertisement