Merge all game files into ONE EXE

If somebody asks how to do something, and I can’t think of a good reason
to do it and lots of bad reasons, there are plenty of good reasons to voice
my objections. If somebody’s asking how to embed an OGM in an AVI and how
to convince Windows to put a swap file on a ramdisk, it’s more useful to
tell them why it’s a bad idea than to think up ways to do it. Even if
they’re insistent and ignore me–which is their right, of course, just as
it’s my right to object–it’s useful for the sake of keeping the mistake
from spreading to people listening in. (Once in a while, they’ll give a
good reason that I hadn’t thought of.)

I think the uses of having a single binary for a small game is clear,
though, such as the ones you’ve given. Heck, being able to run binaries
directly off of a webpage, storing save state in the registry and not
leaving any other cruft behind or making the user go through “where to
install?” prompts is useful.On Sun, Sep 26, 2004 at 07:36:41PM -0500, Bob Pendleton wrote:

And then there is the other point… The author wants to do it. It is
his decision to make. He believes there is value in doing it. And you
have 0 (zero) reason or right to object. The fact that you would not do
it that way is not relevant to the discussion.


Glenn Maynard

The author of the original post was simply asking for some help.
Instead we have been spammed with your lengthy opinion on the topic. If
you don’t agree with what this guy is trying to do, then simply don’t
offer any help.

  • Tom

Donny Viszneki wrote:> On Sep 26, 2004, at 10:10 PM, TomT64 wrote:

Donny Viszneki wrote:

On Sep 26, 2004, at 8:36 PM, Bob Pendleton wrote:

On Sun, 2004-09-26 at 16:11, Donny Viszneki wrote:

What is this recent obsession on the SDL list with cramming more crap
into your application? WHAT FOR?

It makes things easier for the customer. That’s all. And, that is more
than enough! Game programming isn’t a primarily technical pursuit.
Therefore, not every decision is made for technical reasons. Many, if
not most, major decisions are made for human and business reasons. The
decision to lump everything together into one file is a business
decision arising from a human need.

Two arguments.

First, I will argue against whether or not this fact is even
relevant. Case and point: have you EVER seen a big name computer
game that comes as a single binary?

Well big name nowadays? No. I know in the DOS days and Windows 3.1
days there were lots of games that were a single EXE, or an EXE and a
DLL that the made themselves. Solitaire is one of the latter.
Stars! is one of the former (I know, you’ve probably never heard of
it). However it doesn’t seem very logical to do this, especially if
you’re using multiple libraries AND especially if you are going for
cross platform compilability. For that, the best you can do is
include all the DLLs (for Windows) and pack all your graphics, media,
and such into a zip file or other pack file and use a library to
access that (which is what I have done), or make your own library and
pack file format.

DOS and Windows 3.1 games: let’s face it, these games had a very tiny
amount of media, and were probably not subject to many updates.
Therefore, most of the disadvantages (besides personal inconvenience
on the part of the developers) are already eliminated.

I have no idea what Stars! is (besides a cable movie channel.)

Second, I will argue against this philosophy. Considering ease of
use (a purely human aspect) OVER system performance (a purely
technical aspect) is what has led us to things Windows and automatic
transmissions!

Hey I LIKE auto transmission! :slight_smile:

What are you, a woman? :stuck_out_tongue:

When I was in highschool I made a lot of software. Instead of making
it easy to use - I made it educational. It TEACHES the user about
the underlying technology. Not more than is necessary, but not less
either. In my opinion this is one of multiple approaches to the
ease-of-use problem that is much better than sacrificing performance
or functionality.

I should mention here that there is no logical reason not to have a
balance. In fact, it is quite possible, given enough time and effort,
to make it both easy to use AND have it perform and function well.
However, both sides of the coin are up to interpretation by whoever
uses it. No matter how easy it is to use, or how technically good it
is, someone can always complain.

I definitely agree.

Personally, I think if someone is making money off of your media it
will be relatively easy to find them (or at least the ease of
finding out will be proportional to their ill-gotten success.) And
if they’re using them for personal purposes who gives a damn?

Well therein lies a very legal and fundamental argument. Remember
when Paramount tried to shut down all the Star Trek websites?
Ill-conceived as the notion may have been, their goal was to prevent
"Star Trek" from becoming so commonly used anywhere that it became,
under common law, a common name. “Kleenex” almost had this problem
too. They didn’t want other tissue brands using their brand name to
describe all tissues. That’s where the paranoia about people ripping
artwork and music and other media comes from. In fact it can be very
problematic. How many button lights or pasta pans have you seen of
different brands on TV lately? Which one is original? You don’t
know, because the rights weren’t protected enough for one company to
be prevented from getting rich off someone else’s idea.

Star Trek and Kleenex: The laws that allow for common names to be used
freely by anyone do not apply to music, texture maps, sound effects,
fonts, or any other game media.

Ergo, that is not where the paranoia about ripping artwork and music
and other media from games comes from.

Button lights and pasta pans: A patent on a “button light” is adequate
protection - clearly no one has a patent - or they’re licensing the
patent to everyone under the sun - or they’re waiting for someone to
make a fortune on them and sue the pants off of them. Patents do not
prevent others from SEEING your idea, just from profiting from them.

But I’m pretty sure all of this is beside the original point of
trying to roll up your files into an easily distributable or “clean
looking” form. As I have suggested, a library to deal with a pack
file format and distribution of DLLs OR static linking libraries (in
my book no real difference as far as distribution goes… it’ll still
zip up to be about the same size) should take care of the problem of
files nicely.

Actually, the “original point” may have been lost. Bas van Dijk hasn’t
shown up to comment since his original post!

Besides, Windows default behavior is to HIDE DLLs, so there’s no need
to worry about them getting in the way within the directory of an
average user.

Only on the most recent windows versions.


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

The author of the original post was simply asking for some help.
Instead we have been spammed with your lengthy opinion on the topic.
If you don’t agree with what this guy is trying to do, then simply
don’t offer any help.

That’s silly and separatist. First, separatist: refusing to offer
advice, opinion, or help to a person because you disagree with them is
what has led to America’s excellent separatist democracy.

Second, silly: I do agree with what he is trying to do. What he is
trying to do (I think) is make the game look more friendly to people
who might want to play it. And I am trying to help him do that. I also
firmly believe that no user who has used their computer for more than a
month would be confused by - or turned off to - the idea of a DLL being
in the same directory as the application. I also also firmly believe
that putting a shortcut on the desktop and in the start menu is a much
better means to the same ends.On Sep 27, 2004, at 10:57 AM, Tom Wilson wrote:

What is this recent obsession on the SDL list with cramming more
crap
into your application? WHAT FOR?

It makes things easier for the customer. That’s all. And, that is
more
than enough! Game programming isn’t a primarily technical pursuit.
Therefore, not every decision is made for technical reasons. Many, if
not most, major decisions are made for human and business reasons.
The
decision to lump everything together into one file is a business
decision arising from a human need.

Two arguments.

First, I will argue against whether or not this fact is even relevant.
Case and point: have you EVER seen a big name computer game that comes
as a single binary?

Ahhh, a strawman argument. We are not talking about big name games, we
are talking about smaller games written by a single person or a small
group of people that are distributed over the Internet. Big name games
have big name budgets to support end users who have trouble installing
them. Small name games have to “just work”.

Your declaration that big name games are not more knowledgeable than
amateur developers when it comes to supporting your customer base is a
laughable one. Yes they can afford to support their customers. One of
the ways they do that is by eliminating foreseeable confusions, or
explaining them to their users within the game.

Succinctly: do you honestly believe that a company who might end up
deducting another quarter million dollars from their game’s bottom line
by paying the workers performing support services, would overlook a
potential technical support problem within their game?

I was using big name game companies as an example in my argument
because, as far as technical support goes, they have more money at
risk, and more resources and experience with which to save that money.
They simply seemed like bigger better organizations when it comes to
support. I do understand though that you might think people are willing
to put up with technical problems to play the most cutting-edge FPS
game. However I think my point still stands that where independent
developers can largely only speculate on what might confuse their
customers (like the ever-confusing subject of this thread - the DLL
file) large companies have millions of customers, and millions of
logged technical support sessions, with which they can and do
anticipate future technical support issues, and in their next game will
nip them in the bud.

Second, I will argue against this philosophy. Considering ease of use
(a purely human aspect) OVER system performance (a purely technical
aspect) is what has led us to things Windows and automatic
transmissions!

Bull… The only thing that matters is the “purely human aspect”. If
people have to work too hard to use something they will find something
that is easier to use. That is reality. Putting system performance over
human convenience is so… '1960ish. Back then, and I remember back
then, a 1 MOP/1 MB computer cost millions of dollars so it was worth a
huge amount human discomfort to get the most out of the computer.

Now days computers with a hundred to a thousand times that performance
can be picked up in flea markets for less than $100. I spent a large
part of yesterday in a flea market and saw just that.

Putting the computer ahead of the person using the computer is just
plain wrong. It is what is wrong with the majority of developers I
meet.
They somehow think the customer is less important than the computer.

As one guy on this list already pointed out, you can have a balance. I
don’t think loading all your game resources into memory in two separate
places is a balance.

Consider that if it takes you two years to develop a game, a reasonable
time for a complex game, by the time you are done computers will have
twice the performance and dropped in price by roughly 25%.

I don’t know about you, but as a computer user, I hate it when my
system slows to a crawl. When this happens, it is largely due to a
running a lot of software that is running at much less than its
potential performance, wasting clock cycles, and forcing more frequent
virtual memory paging. Sufficiently bogged down systems will even cause
badly written applications to crash, which isn’t good for the user.
Windows used to (and maybe still does - I don’t know) under low memory
conditions, kill seemingly random applications. That is not exactly
good for the user.

When I was in highschool I made a lot of software. Instead of making
it
easy to use - I made it educational. It TEACHES the user about the
underlying technology. Not more than is necessary, but not less
either.
In my opinion this is one of multiple approaches to the ease-of-use
problem that is much better than sacrificing performance or
functionality.

I have no idea what kind of programs you wrote in high school, nor do I
care. I am talking about writing games in a market where there are many
many game developers all trying to make a buck, or even get noticed.
Anything the developer can do to make the game more attractive to the
customer is a good thing to do.

You’re right. It would be terrible if the Readme or something contained
help regarding the DLLs in the folder for people who didn’t know what
they were.

Personally I wouldn’t do that. But, if this guy thinks the DLL is going
to confuse or offend his target audience, then it’s a pretty good idea
if you ask me.

There is also the slight benefit that it keeps the less technically
inclined from lifting your art and music resources. Some people do
worry
about that.

Technically inclined or not, if you know the name of the media you’re
looking for, you’ll find it on a file sharing network ten times faster
than you’ll rip it out of any sort of proprietary or otherwise
difficult to access archive.

Case and point - I am technically inclined, but if I wanted to get
megaman sprites (and at one point I did want just that) I didn’t
download the ROM and start the laborious process of extracting them -
I
searched the internet and downloaded hundreds of them in minutes.

Personally, I think if someone is making money off of your media it
will be relatively easy to find them (or at least the ease of finding
out will be proportional to their ill-gotten success.) And if they’re
using them for personal purposes who gives a damn?

Very, very personally, I know a LOT of people disagree with this - but
even if they used them in an open source project I wouldn’t mind one
bit. Though I’d definitely come down on them for using it without my
permission if that was the case.

And another thing: if they aren’t technically inclined, WHAT are they
going to with your precious media that you wouldn’t want them to do?

Change them and post them to the Internet. Like I said, this is a minor
point. I notice you spent more time on it than on the rest of the
discussion combined.

I feel almost bad even responding to this, however… the fact that
it’s longer doesn’t mean I spent more time on it. AAMOF, the only thing
illustrated by that is that it probably took you longer to read.

And then there is the other point… The author wants to do it. It is
his decision to make. He believes there is value in doing it. And you
have 0 (zero) reason or right to object. The fact that you would not
do
it that way is not relevant to the discussion.

Oh come on Bob, this is just silly. The nature of an argumentative
objection is not to steal another’s will power from them and force
them
to do what you say! It’s totally my right to make this sort of
objection, I’m not forcing anybody to do anything!

As a matter of fact, that is exactly what an argumentative objection is
for. Its only purpose is to try to bully someone into your point of
view. Constructive criticism is always OK. Bullying is not.

I’m not the only one on the list who disagrees and says so. In a
concise gesture to prove you wrong, have you ever heard the phrase
"devil’s advocate?" Would this phrase even exist if the only point of
argument was to "bully someone into your point of view?"On Sep 27, 2004, at 10:02 AM, Bob Pendleton wrote:

On Sun, 2004-09-26 at 20:40, Donny Viszneki wrote:

On Sep 26, 2004, at 8:36 PM, Bob Pendleton wrote:

On Sun, 2004-09-26 at 16:11, Donny Viszneki wrote:

You have posted some good stuff on the list, you have also posted a lot
of bullying and belittling stuff. If you want to be respected you need
to drop the bulling and belittling else you wind up in peoples kill
files.

  Bob Pendleton

SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

±-------------------------------------+


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

Hello Bas,

Packaging assets (images, sounds, fonts, or any other non-executables) into
the exe can be done any number of ways. Windows, for example, allows any
number of “resources” to be attached to an exe, each of which can be mapped
to memory [1] at runtime. Just note that this isn’t a terribly portable
option [2], however it does have the advantage whereby resources can be
added/removed from the exe without having to recompile.

As for the dlls, your best bet is probably to statically link them in,
provided that you’re willing to either release your code under a
GPL-compatible license, or come up with a way to link in a 3rd party copy of
SDL, SGE, and any other LGPL libraries that you’re using.

[1] Resources are mapped into memory using the Windows API function
LockResource. Please note, however, that this will require a few other Win
API calls as well, namely: GetModuleHandle, FindResourceEx, SizeofResource,
and LoadResource at the least. Modifying resources can be done through
BeginUpdateResource and EndUpdateResource… All of these functions are
documented in MSDN.

[2] MacOS X has a similar feature whereby applications are really just
directories, allowing any file to be packaged up in it, including
dynamically loaded libraries. I’m not sure about this feature in Linux or
other operating systems though.–
David Ludwig
davidl at funkitron.com
http://www.funkitron.com

----- Original Message -----
From: bas.van.dijk@zonnet.nl (Bas van Dijk)
To:
Sent: Sunday, September 26, 2004 4:16 PM
Subject: [SDL] Merge all game files into ONE EXE

So, at last my first game is ready for release.

Now, for easy distribution i would like to create a SINGLE exe which
contains
all te dll’s (SDL, SGE, MSVC…, etc.), the ttf files and the gif files.

Is this possible? And, if so: how?

The author of the original post was simply asking for some help.
Instead we have been spammed with your lengthy opinion on the topic.
If you don’t agree with what this guy is trying to do, then simply
don’t offer any help.

So now you are starting to insult entire nations. In this case, mine. To
avoid a nuclear flame war it is now time to drop this line of
discussion. It has been taken too far.

	Bob PendletonOn Mon, 2004-09-27 at 13:39, Donny Viszneki wrote:

On Sep 27, 2004, at 10:57 AM, Tom Wilson wrote:

That’s silly and separatist. First, separatist: refusing to offer
advice, opinion, or help to a person because you disagree with them is
what has led to America’s excellent separatist democracy.

Second, silly: I do agree with what he is trying to do. What he is
trying to do (I think) is make the game look more friendly to people
who might want to play it. And I am trying to help him do that. I also
firmly believe that no user who has used their computer for more than a
month would be confused by - or turned off to - the idea of a DLL being
in the same directory as the application. I also also firmly believe
that putting a shortcut on the desktop and in the start menu is a much
better means to the same ends.


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

±-------------------------------------+

Guys, if you’re offended by the opposing point of view on all these
subjects, the customer vs. the programmer, the DLL vs. the EXE, the
object file vs. the dynamic link, then just be offended, or (as is
probably more healthy) get over it and explain your point of view vs.
theirs. My point of view is simple:

I see no loss in performance by using a library to access files that
have been “packed” into a file (like a zip file). I see no improvement
in performance by statically linking a library vs. dynamically linking,
so this appears to me to be an issue that’s choice is determined based
on other issues, such as what the user wants. I also see that default
windows behavior for newer versions (which is what most people with a
complaint about DLLs will have) is to hide them. So I see no reason not
to use DLLs, particularly since they can be upgraded to newer versions
later without much effort. So what you have, in my opinion, is an EXE,
some DLLs, and 1 or more pack files. DLLs can be installed into windows
system directories (checks for versions should be made here) and
basically forgotten. Also, zip files and exe installers have, for
years, been the preferred way to pack multiple files up into one file so
you can distribute it over the internet, but I suspect this isn’t the
real issue. The real issue seems to be not confusing the user with DLLs
and lots of media files. So solutions I have are:

  1. pack files for the media files
  2. DLLs in windows system directories

Also, on the issue of MSVCP60D.DLL (or some similar name), the D at the
end means it’s a debug DLL. Microsoft does not permit you to
redistribute Microsoft Debug DLLs freely. So you’ll have to make a
release build so the build doesn’t require that DLL to run.

-TomT64

What is this recent obsession on the SDL list with cramming more
crap
into your application? WHAT FOR?

It makes things easier for the customer. That’s all. And, that is
more
than enough! Game programming isn’t a primarily technical pursuit.
Therefore, not every decision is made for technical reasons. Many, if
not most, major decisions are made for human and business reasons.
The
decision to lump everything together into one file is a business
decision arising from a human need.

Two arguments.

First, I will argue against whether or not this fact is even relevant.
Case and point: have you EVER seen a big name computer game that comes
as a single binary?

Ahhh, a strawman argument. We are not talking about big name games, we
are talking about smaller games written by a single person or a small
group of people that are distributed over the Internet. Big name games
have big name budgets to support end users who have trouble installing
them. Small name games have to “just work”.

Donny, go back and read what I said. It is very very different from what
you imagine I said. Either you have difficulty reading and understanding
written English or you are deliberately misconstruing what I said.

		Bob PendletonOn Mon, 2004-09-27 at 14:05, Donny Viszneki wrote:

On Sep 27, 2004, at 10:02 AM, Bob Pendleton wrote:

On Sun, 2004-09-26 at 20:40, Donny Viszneki wrote:

On Sep 26, 2004, at 8:36 PM, Bob Pendleton wrote:

On Sun, 2004-09-26 at 16:11, Donny Viszneki wrote:

Your declaration that big name games are not more knowledgeable than
amateur developers when it comes to supporting your customer base is a
laughable one. Yes they can afford to support their customers. One of
the ways they do that is by eliminating foreseeable confusions, or
explaining them to their users within the game.

Succinctly: do you honestly believe that a company who might end up
deducting another quarter million dollars from their game’s bottom line
by paying the workers performing support services, would overlook a
potential technical support problem within their game?

I was using big name game companies as an example in my argument
because, as far as technical support goes, they have more money at
risk, and more resources and experience with which to save that money.
They simply seemed like bigger better organizations when it comes to
support. I do understand though that you might think people are willing
to put up with technical problems to play the most cutting-edge FPS
game. However I think my point still stands that where independent
developers can largely only speculate on what might confuse their
customers (like the ever-confusing subject of this thread - the DLL
file) large companies have millions of customers, and millions of
logged technical support sessions, with which they can and do
anticipate future technical support issues, and in their next game will
nip them in the bud.

Second, I will argue against this philosophy. Considering ease of use
(a purely human aspect) OVER system performance (a purely technical
aspect) is what has led us to things Windows and automatic
transmissions!

Bull… The only thing that matters is the “purely human aspect”. If
people have to work too hard to use something they will find something
that is easier to use. That is reality. Putting system performance over
human convenience is so… '1960ish. Back then, and I remember back
then, a 1 MOP/1 MB computer cost millions of dollars so it was worth a
huge amount human discomfort to get the most out of the computer.

Now days computers with a hundred to a thousand times that performance
can be picked up in flea markets for less than $100. I spent a large
part of yesterday in a flea market and saw just that.

Putting the computer ahead of the person using the computer is just
plain wrong. It is what is wrong with the majority of developers I
meet.
They somehow think the customer is less important than the computer.

As one guy on this list already pointed out, you can have a balance. I
don’t think loading all your game resources into memory in two separate
places is a balance.

Consider that if it takes you two years to develop a game, a reasonable
time for a complex game, by the time you are done computers will have
twice the performance and dropped in price by roughly 25%.

I don’t know about you, but as a computer user, I hate it when my
system slows to a crawl. When this happens, it is largely due to a
running a lot of software that is running at much less than its
potential performance, wasting clock cycles, and forcing more frequent
virtual memory paging. Sufficiently bogged down systems will even cause
badly written applications to crash, which isn’t good for the user.
Windows used to (and maybe still does - I don’t know) under low memory
conditions, kill seemingly random applications. That is not exactly
good for the user.

When I was in highschool I made a lot of software. Instead of making
it
easy to use - I made it educational. It TEACHES the user about the
underlying technology. Not more than is necessary, but not less
either.
In my opinion this is one of multiple approaches to the ease-of-use
problem that is much better than sacrificing performance or
functionality.

I have no idea what kind of programs you wrote in high school, nor do I
care. I am talking about writing games in a market where there are many
many game developers all trying to make a buck, or even get noticed.
Anything the developer can do to make the game more attractive to the
customer is a good thing to do.

You’re right. It would be terrible if the Readme or something contained
help regarding the DLLs in the folder for people who didn’t know what
they were.

Personally I wouldn’t do that. But, if this guy thinks the DLL is going
to confuse or offend his target audience, then it’s a pretty good idea
if you ask me.

There is also the slight benefit that it keeps the less technically
inclined from lifting your art and music resources. Some people do
worry
about that.

Technically inclined or not, if you know the name of the media you’re
looking for, you’ll find it on a file sharing network ten times faster
than you’ll rip it out of any sort of proprietary or otherwise
difficult to access archive.

Case and point - I am technically inclined, but if I wanted to get
megaman sprites (and at one point I did want just that) I didn’t
download the ROM and start the laborious process of extracting them -
I
searched the internet and downloaded hundreds of them in minutes.

Personally, I think if someone is making money off of your media it
will be relatively easy to find them (or at least the ease of finding
out will be proportional to their ill-gotten success.) And if they’re
using them for personal purposes who gives a damn?

Very, very personally, I know a LOT of people disagree with this - but
even if they used them in an open source project I wouldn’t mind one
bit. Though I’d definitely come down on them for using it without my
permission if that was the case.

And another thing: if they aren’t technically inclined, WHAT are they
going to with your precious media that you wouldn’t want them to do?

Change them and post them to the Internet. Like I said, this is a minor
point. I notice you spent more time on it than on the rest of the
discussion combined.

I feel almost bad even responding to this, however… the fact that
it’s longer doesn’t mean I spent more time on it. AAMOF, the only thing
illustrated by that is that it probably took you longer to read.

And then there is the other point… The author wants to do it. It is
his decision to make. He believes there is value in doing it. And you
have 0 (zero) reason or right to object. The fact that you would not
do
it that way is not relevant to the discussion.

Oh come on Bob, this is just silly. The nature of an argumentative
objection is not to steal another’s will power from them and force
them
to do what you say! It’s totally my right to make this sort of
objection, I’m not forcing anybody to do anything!

As a matter of fact, that is exactly what an argumentative objection is
for. Its only purpose is to try to bully someone into your point of
view. Constructive criticism is always OK. Bullying is not.

I’m not the only one on the list who disagrees and says so. In a
concise gesture to prove you wrong, have you ever heard the phrase
"devil’s advocate?" Would this phrase even exist if the only point of
argument was to “bully someone into your point of view?”

You have posted some good stuff on the list, you have also posted a lot
of bullying and belittling stuff. If you want to be respected you need
to drop the bulling and belittling else you wind up in peoples kill
files.

  Bob Pendleton

SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

±-------------------------------------+


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

±-------------------------------------+

Guys, if you’re offended by the opposing point of view on all these
subjects, the customer vs. the programmer, the DLL vs. the EXE, the
object file vs. the dynamic link, then just be offended, or (as is
probably more healthy) get over it and explain your point of view vs.
theirs. My point of view is simple:

I see no loss in performance by using a library to access files that
have been “packed” into a file (like a zip file). I see no
improvement in performance by statically linking a library vs.
dynamically linking, so this appears to me to be an issue that’s
choice is determined based on other issues, such as what the user
wants. I also see that default windows behavior for newer versions
(which is what most people with a complaint about DLLs will have) is
to hide them. So I see no reason not to use DLLs, particularly since
they can be upgraded to newer versions later without much effort. So
what you have, in my opinion, is an EXE, some DLLs, and 1 or more pack
files. DLLs can be installed into windows system directories (checks
for versions should be made here) and basically forgotten. Also, zip
files and exe installers have, for years, been the preferred way to
pack multiple files up into one file so you can distribute it over the
internet, but I suspect this isn’t the real issue. The real issue
seems to be not confusing the user with DLLs and lots of media files.
So solutions I have are:

  1. pack files for the media files
  2. DLLs in windows system directories

These are all pretty valid points. A few extra points however:

  • a pack file with a good library will typically consume less hard
    disk space
  • putting resources directly into the exe on most systems will
    sometimes result in taking up more RAM
  • Windows also supports a Hidden file/folder attribute to hide
    resources if clutter and confusion is the problem. Though I think you
    should educate your user if you actually think clutter and confusion is
    the problem.
  • On Mac OS X and all other unix system AFAIK will have intelligent
    users - or short of that, you can begin file or folder names with a dot
    (.) to hide themOn Sep 27, 2004, at 4:28 PM, TomT64 wrote:

Thanks a lot everyone!!!

I’ll keep the licence in mind and start to work with all your answers, very
helpfull!

grtz,

B at s

I also also firmly believe that putting a shortcut on the desktop and in the start menu is a
much better means to the same ends.

Uggh…if every app put a shortcut on the desktop…On Mon, 27 Sep 2004 14:39:43 -0400, Donny Viszneki wrote:


Chris Nystrom
http://www.newio.org/~ccn
AIM: nystromchris

P.S. I have 3 Gmail invites available. Please e-mail me if you want one.

create a TAR like file ONE.EXE with last 4 bytes the size of all extra files and
then

copy /b binary.exe + file1.jpg + file2.jpg + FOUR_BYTES_LENGTH.bin
ONE.EXE

dynamically load all DLLs.

Statically link code for decompress this TAR like file.

But why? your code is no cross-platform now.

I believe this is better:
one EXE
many DLLs
a big ZIP file with all other files inside (uncompressed jpeg/png pictures,
compressed other files)

what you say?

What is this recent obsession on the SDL list with cramming more crap
into your application? WHAT FOR?

In my case it will be for several reasons…

1- distribution, updates, etc, one file does it all… is in fact a good
point.

2- when dealing with artists (in my case students)… you never can make
things
fool proof… because fool are so ingenius… so, files such as dll are on the
only if you need to know basis. so its better to hide them!

3- estetic… I think it all starts with a good naming convention and well
organised pipepline… files of all kinds such as dlls in your root folder
ends
up to be a bunch of unnecessary files the artists who uses your product dont
care about… and plus, I hate scrolling in a folder to find a game.exe.

4- id software with doom3 is a great exemple… cleanyness is next to
godlyness! they know it… and I agree.

5- I do my bed every morning!

Whow!!!

I also also firmly believe that putting a shortcut on the desktop and
in the start menu is a
much better means to the same ends.

Uggh…if every app put a shortcut on the desktop…

Putting a shortcut on the desktop is an implicit convenience for a DUMB
or at least computer illiterate user. THE EXACT SAME KIND OF USER who
would find a DLL intimidating or confusing!On Sep 28, 2004, at 9:47 AM, Chris Nystrom wrote:

On Mon, 27 Sep 2004 14:39:43 -0400, Donny Viszneki wrote:


Chris Nystrom
http://www.newio.org/~ccn
AIM: nystromchris

P.S. I have 3 Gmail invites available. Please e-mail me if you want
one.


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

What is this recent obsession on the SDL list with cramming more crap
into your application? WHAT FOR?

In my case it will be for several reasons…

1- distribution, updates, etc, one file does it all… is in fact a
good
point.

The file size becomes very large.

2- when dealing with artists (in my case students)… you never can
make
things fool proof… because fool are so ingenius… so, files such as
dll are on the only if you need to know basis. so its better to hide
them!

If I understand you correctly, begging your pardon I know the language
barrier can be a thick one, you’re saying your art students are such
not-genius fools that they cannot be taught to leave the DLLs alone for
art purposes.

I disagree.

3- estetic… I think it all starts with a good naming convention and
well
organised pipepline… files of all kinds such as dlls in your root
folder
ends up to be a bunch of unnecessary files the artists who uses your
product dont care about… and plus, I hate scrolling in a folder to
find
a game.exe.

Are aesthetics really so sensitive that you can’t stand a few DLL files?

4- id software with doom3 is a great exemple… cleanyness is next to
godlyness! they know it… and I agree.

Cleanliness is next to Godliness? This isn’t really a new point.

5- I do my bed every morning!

If the DLLs are that much of an eyesore, just use the Windows "hidden"
file/folder attribute. Pull up the context menu of a file by right
clicking, the last item is Properties. On one of the tabs (excuse me
for not remembering which one - I haven’t used Windows for over a year)
there are three (I think) attributes. Among them are the "Hidden"
attribute. You can use this to hide the files.

Also be aware that in your explorer options / preferences somewhere,
there is an option of whether or not to show files that are marked with
the “hidden” attribute! By default it hides them. If yours is set to
show “Hidden” files, then you will see no difference when you mark it
as hidden. (Actually, IIRC, after Windows 98, the behavior was changed
to show the files, but make their icons look slightly faded, so that
you could tell they were supposed to be hidden.)