#1 Members - Reputation: 349
Posted 30 September 2012 - 09:47 AM
I've realized it will be quite hard to distribute the game. I have to somehow include Strawberry Perl and SDL in the installation wizard, and I would be surprised if I could get that to work error-less. Even then, the Strawberry Perl package is quite big, and the file size will probably throw-off users.
Do you think I should convert to a language thats pre-installed in computers, to not deal with this? (such as C)
#2 Members - Reputation: 3503
Posted 30 September 2012 - 09:55 AM
With C/C++ programs, you'll have to distribute the proper library DLLs and make sure the user has the right version of the C/C++ runtime installed. Then there are video card drivers. The DirectX user redistributable, etc...
So nothing will change. Just the name of the language!
#4 Members - Reputation: 382
Posted 30 September 2012 - 10:33 AM
No matter what language you use, there is always something that has to be distributed with it.
With C/C++ programs, you'll have to distribute the proper library DLLs and make sure the user has the right version of the C/C++ runtime installed. Then there are video card drivers. The DirectX user redistributable, etc...
So nothing will change. Just the name of the language!
I see what you are saying, but I'm not sure it's strictly always true, it depends on the type of game / app you are writing, and the market (think e.g. casual games, apps, versus AAA games).
If you write c / c++ and statically link to the runtimes, there are no dependencies due to the language, only core OS dlls (which will always be present).
The need for more and more sprawling dependencies is up to you, your choice of language / tech and what third party stuff you decide to pull in. (Sometimes you can statically link to third party stuff though).
I think azonicrider is right to an extent .. end users are easily put off installing stuff. If your game needs a 15 minute download from a third party and separate installation just to run, they'll probably move on. I know I do. If I see a 'your java needs to be updated' or flash or whatever, I'm like 'forget it'. So there is a good argument for considering your market before deciding what dependencies to rely on.
#5 Members - Reputation: 662
Posted 30 September 2012 - 11:01 AM
#6 Members - Reputation: 329
Posted 30 September 2012 - 11:25 AM
Edited by Dunge, 30 September 2012 - 11:26 AM.
#7 Members - Reputation: 349
Posted 30 September 2012 - 11:53 AM
Yep you understood what I meant. I doubt distributing the Strawberry Perl folder is enough, its more than likely having to use the Perl exe, then Command Prompting the 5 minute SDL installation.I think azonicrider is right to an extent .. end users are easily put off installing stuff. If your game needs a 15 minute download from a third party and separate installation just to run, they'll probably move on. I know I do. If I see a 'your java needs to be updated' or flash or whatever, I'm like 'forget it'. So there is a good argument for considering your market before deciding what dependencies to rely on.
#8 Members - Reputation: 1985
Posted 30 September 2012 - 12:08 PM
Do you think I should convert to a language thats pre-installed in computers, to not deal with this? (such as C)
Find out what's needed to make an installer first. Maybe you can even make a folder that contains everything you need without an installer, it's worth a shot. There are probably people that have done a game with it before, try the IRC channel mentioned here: http://sdl.perl.org/
If it doesn't work or gets too big and complicated, then yes it's probably a good idea to try out another language. Already being familiar with SDL should help you use it from C easier.
#9 Members - Reputation: 349
Posted 30 September 2012 - 01:42 PM
I've found out that SDL is just a module folder, so I don't need to worry about retrieving that from CPAN(the Perl network) using Command Prompt.
#10 Members - Reputation: 305
Posted 30 September 2012 - 01:55 PM
#11 Members - Reputation: 256
Posted 30 September 2012 - 05:09 PM
There is a game mod I was messing around with a couple months ago called DayZ, and OMFG, I swear you need a degree from MIT plus all the stars in alignment just to get it installed and running, yet there are tons of people who have gone through the hassle, just to play the great game.
Like you, I have also had trepidation about what to do once a project is complete. Trying to figure out a good distribution method, how to take payments, advertising, as well as worrying about piracy prevention... It is quite overwhelming.
No. Do not give up.
#12 Members - Reputation: 603
Posted 30 September 2012 - 07:46 PM
For example it could do the following:
Download a copy of perl from internet.
Install it on target system.
Set up scripts folder on system.
Modify system paths to point to scripts.
install another exe that autoloads you game scripts
Make desktop icons that link to the script loader exe, parameters passed with the link tell the loader what to load.
From the users perspective all they would have to do is double click the exe, and presto all done.
#13 Members - Reputation: 551
Posted 30 September 2012 - 08:29 PM
What language you choose is mainly up to you, your goals and your target platform(s). I suggest C# a lot (as I love it and I'm biased, for one), since Mono has made it a true cross-platform language and there are excellent DirectX wrappers (SlimDX, SharpDX, etc) and OpenGL wrappers too... even wrappers for CUDA and PhysX... so if you know what you're doing you can get all the benefits of C# and run it damn near anywhere.
Again, this is just MY personal bias/opinion, but I couldn't imagine trying to write a game in a language like Perl, Lisp, Python, or some scripting language, etc... though some other people pull it off smoothly, I'm just heavily in favor of the "curly-brace" style and C-like syntax in more "conventional" languages. And I like the lower-level features and capabilities it gives me to communicate directly with hardware and rendering APIs...
Edited by ATC, 30 September 2012 - 08:32 PM.
CEO & Lead Developer at ATCWARE™
"Project X-1"; a 100% managed, platform-agnostic game & simulation engine
Please visit our new forums and help us test them and break the ice!
___________________________________________________________________________________
#14 Members - Reputation: 349
Posted 01 October 2012 - 08:10 AM
Perl borrowed tons of C syntax, and uses curly braces.This is why people favor languages like C, C++ and C# for game development. You can theoretically write a great game in any Turing-complete language, but some are just more conducive to game development than others. For instance, writing a game in C++ is a hell of a lot easier than writing it in assembly language.
What language you choose is mainly up to you, your goals and your target platform(s). I suggest C# a lot (as I love it and I'm biased, for one), since Mono has made it a true cross-platform language and there are excellent DirectX wrappers (SlimDX, SharpDX, etc) and OpenGL wrappers too... even wrappers for CUDA and PhysX... so if you know what you're doing you can get all the benefits of C# and run it damn near anywhere.
Again, this is just MY personal bias/opinion, but I couldn't imagine trying to write a game in a language like Perl, Lisp, Python, or some scripting language, etc... though some other people pull it off smoothly, I'm just heavily in favor of the "curly-brace" style and C-like syntax in more "conventional" languages. And I like the lower-level features and capabilities it gives me to communicate directly with hardware and rendering APIs...
What really is quite strange, is I'd have the most trouble with Perl on Windows. Perl is already pre-installed in Linux and Mac, and I'd just have to set-up the SDL files into the correct location.
#15 Members - Reputation: 398
Posted 01 October 2012 - 10:32 AM
As long as you're working with a language that you can accomplish your goals with then stick with it. And we look forward to seeing the end product in IOTD!
#16 Members - Reputation: 283
Posted 01 October 2012 - 02:46 PM
Do you think I should convert to a language thats pre-installed in computers, to not deal with this? (such as C)
C is not pre-installed in any computer, per-se. In fact, what do you even mean by "pre-installed in computers"?
C needs a compiler to work(and a linker, usually, and parsing, and a preprocessor, text-editor, etc., etc., etc.). C compilers are not pre-installed in most factory bought computers.
The only things you can basically use in most computers in this department of "coding" is HTML/CSS and Javascript. Everything else must be manually/automatically installed for use.
So I don't get your sentence there at all ... if you want an easily playable and downloadable game file, make the process of installing/playing it faster and easier.
You said,
I have to somehow include Strawberry Perl and SDL in the installation wizard, and I would be surprised if I could get that to work error-less. Even then, the Strawberry Perl package is quite big, and the file size will probably throw-off users.
So don't use Strawberry Perl then, if you think it will turn-off possible users of your software.
There is no direct integrated language in a "machine", (assuming you mean a processor) and you need to download the necessary programs and data to write, compile, and create software. This goes for every other language as well. The processor doesn't work with C, Perl, or anything like that.
A processor works with machine language (and that's not really even a "language" at all), and all the higher-level tools/programs to convert to it are unavoidable and tweakable at best for the best possible situation.
Edited by Pointer2APointer, 01 October 2012 - 02:52 PM.
#17 Members - Reputation: 499
Posted 01 October 2012 - 02:53 PM
First google: http://stackoverflow.com/questions/2948405/how-to-compile-a-perl-script-pl-to-a-windows-executable-exe-with-strawberr
#18 Members - Reputation: 172
Posted 01 October 2012 - 04:21 PM
Edited by mholmes, 01 October 2012 - 04:21 PM.
#19 Crossbones+ - Reputation: 3520
Posted 01 October 2012 - 06:34 PM
The C code itself is obviously unusable for most Windows users (OTOH gcc comes preinstalled with basically every Linux distribution), but it is pretty clear he is talking about binaries made from compiled C code, which may only rely on built-in and system libraries, which means it'll work on *any* Windows computer. But this is not quite true - any moderately complex game is going to be using external libraries (from DirectX to an asset-loading manager) which may require additional .dll's or frameworks to be bundled along. There is no perfect solution - if you use anything other than system, standard, or built-in features, the user's gonna need them somehow.C is not pre-installed in any computer, per-se. In fact, what do you even mean by "pre-installed in computers"?
C needs a compiler to work(and a linker, usually, and parsing, and a preprocessor, text-editor, etc., etc., etc.). C compilers are not pre-installed in most factory bought computers.
#20 Members - Reputation: 349
Posted 01 October 2012 - 07:57 PM
How come I can run C and C++ programs without installing anything, yet when I run a program written in Java or Ruby, I need to install the compilers for those languages?Do you think I should convert to a language thats pre-installed in computers, to not deal with this? (such as C)
C is not pre-installed in any computer, per-se. In fact, what do you even mean by "pre-installed in computers"?
C needs a compiler to work(and a linker, usually, and parsing, and a preprocessor, text-editor, etc., etc., etc.). C compilers are not pre-installed in most factory bought computers.
The only things you can basically use in most computers in this department of "coding" is HTML/CSS and Javascript. Everything else must be manually/automatically installed for use.
So I don't get your sentence there at all ... if you want an easily playable and downloadable game file, make the process of installing/playing it faster and easier.
You said,I have to somehow include Strawberry Perl and SDL in the installation wizard, and I would be surprised if I could get that to work error-less. Even then, the Strawberry Perl package is quite big, and the file size will probably throw-off users.
So don't use Strawberry Perl then, if you think it will turn-off possible users of your software.
There is no direct integrated language in a "machine", (assuming you mean a processor) and you need to download the necessary programs and data to write, compile, and create software. This goes for every other language as well. The processor doesn't work with C, Perl, or anything like that.
A processor works with machine language (and that's not really even a "language" at all), and all the higher-level tools/programs to convert to it are unavoidable and tweakable at best for the best possible situation.
http://en.wikipedia.org/wiki/C_%28programming_language%29
(I don't know if you guys are against quoting Wikipedia)C is one of the most widely used programming languages of all time,[6][7] and there are very few computer architectures for which a C compiler does not exist.
UglyDavis, yea I understand that. I did the same thing with Python before, and I could probably get it to work with this Language.






