Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Allegro needs your help!

This thread is locked; no one can reply to it. rss feed Print
Allegro needs your help!
Striker
Member #10,701
February 2009
avatar

And what kind of installer do you want? I have seen ready made installers, if you know exactly which files to put where it seems to be a work of a few hours... 8-)

Arthur Kalliokoski
Second in Command
February 2005
avatar

I've seen Inno Setup mentioned here several times, I'd bet the hard part would be sorting out what directories go where for different windows versions.

They all watch too much MSNBC... they get ideas.

Thomas Fjellstrom
Member #476
June 2000
avatar

Yeah. If possible you'd want to try and find the users compiler or let them select it... Or if its an all in one side setup then you'd just install it all.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Dennis
Member #1,090
July 2003
avatar

The most convenient "installer" is a .zip imho, something you just extract wherever you want and then run it from there. All tools (compiler/ide/project templates/etc.) inside that zip will have to use relative paths in all their configuration files.

Thomas Fjellstrom
Member #476
June 2000
avatar

Dennis said:

something you just extract wherever you want and then run it from there.

Run what? It's a zip.

And most newbies would disagree. An installer is by far simpler. double click, and wham, it installs the headers and libs to the proper compiler paths, or maybe installs to some shared dir, and adds those paths to the compiler's/IDE's global paths.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Paul whoknows
Member #5,081
September 2004
avatar

I agree with Dennis.

____

"The unlimited potential has been replaced by the concrete reality of what I programmed today." - Jordan Mechner.

Thomas Fjellstrom
Member #476
June 2000
avatar

I'm still not sure how extracting the dlls and headers to a random directory, is better than an installer figuring things out.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

bamccaig
Member #7,536
July 2006
avatar

What they're really getting at is that Windows installers are evil bastards that make a mess of your file system and registry and don't clean up after themselves properly. What's better about a run-in-place tree is that the user can easily get rid of it if they don't like it.

Albeit, zip files tend to not have top-level directories, which is just evil Windows n00b shit. But by all means include one and it's fine. If the package includes a full MinGW environment, etc., then it's not terrible. However, the problem with Windows is that there is no good command shell, and by extension no good command shell languages to script things in... You end up making users launch goddamn ugly .bat or .cmd files with rudimentary functionality fit only for the 1940s. I digress.

Another advantage to the tree distribution method is that the user doesn't need elevated privileges on the computer to use the software.

If somebody trustworth wants to make a loose archive available of binaries for Allegro and its dependencies, as well as the header files, myself (and anyone else that wants to) can try to fool around with it and fill in the blanks for a suitable package... I imagine the hardest part will be manually assembling a minimal set of MinGW packages needed... Alternatively, attempting to integrate the MinGW installer into your own reliably (if you go with the GUI installer route).

I will personally only bother testing Windows 7 most likely. XP is old and unsupported, Vista is basically Windows 7, and I don't want anything to do with Windows 8. Still, I imagine if it works in Windows 7 then it'll probably work in Vista and Windows 8 with a little care...

Append:

I see no reason why you can't compromise and bundle an installer program that will embed a bundled run-in-place tree into the operating system for the user.

* allegro-5.1_git-abcdef.zip/
`-* allegro-5.1_git-abcdef/
  `-* INSTALL
  `-* README
  `-* bin/
  `-* env.cmd
  `-* include/
  `-* lib/
  `-* setup.exe

Thomas Fjellstrom
Member #476
June 2000
avatar

That has some possibilities. Gives you options. I don't like a run in place config or project file as that limits the user to one project...they'd then have the same problem when starting a different project... An installer is supposed to make it so the ide or compiler is setup for use. Imo.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Elias
Member #358
May 2000

For just Allegro itself, the best thing would be to maintain an msys2 package.

But I think the main point of an installer is that it comes with an IDE, which is set up to compile/run and has syntax highlighting and documentation and so on already setup. So basically, run the installer, and now the start menu has an icon which opens the IDE. And inside the IDE you find a simple example program and when you click the run button it compiles and runs it.

Any in-between solutions where just Allegro binaries are installed but you still have to figure out how to use it from your editor/IDE are less desirable I think. Someone who already knows how to use MSVC should be able to figure out how to use Michal's binaries already.

--
"Either help out or stop whining" - Evert

Dennis
Member #1,090
July 2003
avatar

I don't like a run in place config or project file as that limits the user to one project...they'd then have the same problem when starting a different project...

Not if the project template(s) are configured with relative paths to all tools/libs/includes/etc.

e.g. (expanding bambams example):

* allegro-5.1_git-abcdef.zip/
`-* allegro-5.1_git-abcdef/
  `-* INSTALL
  `-* README
  `-* bin/
  `-* env.cmd
  `-* include/
  `-* lib/
  `-* projects/
      `-* templateA5project/
          `-* templateConfig(*)
  `-* setup.exe

(*)templateConfig is represantative for whatever configuration file(s) are necessary for the toolchain used in the bundle.

Inside those files, relative paths must be used for the toolchain(whatever compiler/IDE ends up being supplied in the package) to find stuff, e.g. ../../bin/ , ../../include/, ../../lib/.

Starting a new (A5)project in an in-place structure like that is straightforward and easy, just copy the template folder, rename the copy, open it and start hacking.

Keep in mind, this package would be meant for complete newbie users. Experts will always know/have better options for their own stuff and a package like the one proposed does not and should not keep in mind the special needs of experts who use their own already installed tools (they can just grab the source and compile/setup everything themselves).

SiegeLord
Member #7,827
October 2006
avatar

Dennis said:

xperts will always know/have better options for their own stuff and a package like the one proposed does not and should not keep in mind the special needs of experts who use their own already installed tools (they can just grab the source and compile/setup everything themselves).

There's a big gap between a complete newbie and an expert who can set everything up easily... it's fine to have a newbie project, but there should be a simple package for 'experts' as well.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Peter Hull
Member #1,136
March 2001

Imagine you've just heard of Allegro on a forum or something and you want to check it out. You land on http://alleg.sourceforge.net/ and then... I think it's missing something as an experience.

Re. packages - I've used the Homebrew package for OS X, and the .deb for Ubuntu, both work very nicely. I don't use Msys/MingW but if the MSYS2 package works like the others then that will be a big step forward. Visual Studio users have NuGet packages, I have no experience with those, do people even use VC for Allegro these days?

Re. installers. In the past I have used WiX and I found it very easy and robust. WiX is (sort of) blessed by Microsoft so I'm sure it does the right thing w.r.t not messing up the registry etc etc.

Pete

Thomas Fjellstrom
Member #476
June 2000
avatar

I have no experience with those, do people even use VC for Allegro these days?

Sadly, quite a few do.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Neil Roy
Member #2,229
April 2002
avatar

I found a good default installation folder on all Windows, is in the My Documents folder, the environment variable HOMEPATH points to it. You can also simply set the root directory like C:\ as the default and let them choose. I prefer the UserProfile folder because it is easier for most people to find as there is usually an icon that points to it on your desktop. I used to then use appdata to store the program save files but that is a big headache when people need to find everything so now it ALL goes into the game folder in UserProfile\MyGame by default (see script below), plus I like to keep everything together so it can be put on a thumbdrive etc.
You could also provide it in a ZIP as well as an install, I see no reason why one has to be preferred over the other.

Something along this line is good. I also prefer InnoSetup.

For my Deluxe Pacman 1 game, this is the Inno Setup script I use to create an install...

; -- Deluxe Pacman.iss --
;   A simple script for now, I will expand on it later.

[Setup]
UsePreviousAppDir=no
;changed the next two from yes to no
DisableStartupPrompt=no
DisableDirPage=no
AppName=Deluxe Pacman
AppVerName=Deluxe Pacman version 1.98c
AppVersion=1.98c
OutputBaseFilename=Deluxe_Pacman_setup
OutputDir=Setup
DefaultDirName={%userprofile}\Deluxe Pacman
DefaultGroupName=Deluxe Pacman
SetupIconFile=Deluxe_Pacman.ico

[Files]
Source: "bin\Deluxe_Pacman.exe"; DestDir: "{app}"
Source: "bin\PACEdit.exe"; DestDir: "{app}"
Source: "bin\Deluxe_Pacman.dat"; DestDir: "{app}"
Source: "bin\keyboard.dat"; DestDir: "{app}"
Source: "bin\language.dat"; DestDir: "{app}"
Source: "docs\license.txt"; DestDir: "{app}\docs"; Flags: isreadme
Source: "docs\manual.txt"; DestDir: "{app}\docs"
Source: "docs\troubleshooting.txt"; DestDir: "{app}\docs"
Source: "docs\journal.txt"; DestDir: "{app}\docs"
Source: "docs\old log.txt"; DestDir: "{app}\docs"

[Icons]
Name: "{group}\Deluxe Pacman"; Filename: "{app}\Deluxe_Pacman.exe"; WorkingDir: "{app}"
Name: "{group}\Level Editor"; Filename: "{app}\PACEdit.exe"; WorkingDir: "{app}"
Name: "{group}\Uninstall"; Filename: "{uninstallexe}"
Name: "{group}\Documentation\Manual"; Filename: "{app}\docs\manual.txt"
Name: "{group}\Documentation\Troubleshooting"; Filename: "{app}\docs\troubleshooting.txt"
Name: "{group}\Documentation\Journal"; Filename: "{app}\docs\journal.txt"
Name: "{group}\Documentation\Old Log"; Filename: "{app}\docs\old log.txt"
Name: "{group}\Documentation\Licence"; Filename: "{app}\docs\license.txt"
Name: "{group}\Deluxe Pacman website"; Filename: "http://home.cogeco.ca/~nroy15/games_index.html"
Name: "{userdesktop}\Deluxe Pacman"; Filename: "{app}\Deluxe_Pacman.exe"; WorkingDir: "{app}"

---
“I love you too.” - last words of Wanda Roy

Arthur Kalliokoski
Second in Command
February 2005
avatar

NiteHackr said:

I found a good default installation folder on all Windows, is in the My Documents folder, the environment variable HOMEPATH points to it.

Does MinGW still barf on embedded spaces?

They all watch too much MSNBC... they get ideas.

Neil Roy
Member #2,229
April 2002
avatar

Does MinGW still barf on embedded spaces?

I've had no problems with this, and have had no reports of problems (and this game has had several million downloads now). Tested it personally on Windows XP, Windows 7 and Windows 8.

---
“I love you too.” - last words of Wanda Roy

MiquelFire
Member #3,110
January 2003
avatar

The stuff you make never had that issue, but the compiler did. I haven't used it in a long time though (Vista and up uses c:\users\username by default, so that might be something to keep in mind) so I'm not sure if they fixed it or not. Depending on why it barfed, you can use quotes around your own paths.

---
Febreze (and other air fresheners actually) is just below perfumes/colognes, and that's just below dead skunks in terms of smells that offend my nose.
MiquelFire.red
If anyone is of the opinion that there is no systemic racism in America, they're either blind, stupid, or racist too. ~Edgar Reynaldo

Thomas Fjellstrom
Member #476
June 2000
avatar

Thats fine for installing a game. But not necessarily for installing development tools, libs or projects.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

beoran
Member #12,636
March 2011

Nice to see people are thinking about how to actually make and installer or a fully-featured binary zip file!

I think on Windows we probably need both approaches, the installer for the total newbie, the zip file for the advanced user. And we also need an msys2 package, for the experts. :) The more options, the better.

The installers and zip file would be great on the allegro web page, with some recordings and text tutorials on how to use these install methods.

Thomas Fjellstrom
Member #476
June 2000
avatar

I kinda like the idea of the zip with the files bare, AND an included installer that'll point an IDE to those files, or copy them into the IDEs paths.

append: ooh. Or make it a simple project creator wizard. It will ask you where to save a new project, what IDE you're using (or cmake..), and save a project file to that directory, with the path to allegro pre-set in the project.

I like that far more than a monolithic automagic IDE detector installer.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Neil Roy
Member #2,229
April 2002
avatar

My main point about my own installer script for my game is that it is very customizable and much more can be added to it fairly easily.

But when it comes to the library, I have to be honest, if you don't know where to put libs, headers etc... than, maybe you should take up another hobby. ;)

There could be some help files included which gives some general tips on where to find the proper locations for various IDEs. But honestly, how much of this goes beyond what a library should be doing? Shouldn't one understand the basics of how to operate their IDE beforehand?

---
“I love you too.” - last words of Wanda Roy

Thomas Fjellstrom
Member #476
June 2000
avatar

A lot of us old fogies will agree with you there nitehackr. But a lot of newer people will appreciate a simple way to check allegro out before spending a boat load of time on it.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Neil Roy
Member #2,229
April 2002
avatar

The stuff you make never had that issue, but the compiler did. I haven't used it in a long time though (Vista and up uses c:\users\username by default, so that might be something to keep in mind) so I'm not sure if they fixed it or not. Depending on why it barfed, you can use quotes around your own paths.

Oh, and I did test this with Windows XP which still uses "MY DOCUMENTS" and I have no problem installing it and using it there. Trust me, I have definitely tested this extensively. ;)

A lot of us old fogies will agree with you there nitehackr. But a lot of newer people will appreciate a simple way to check allegro out before spending a boat load of time on it.

Oh yeah, I totally understand. Perhaps some text files, like visual_studio.txt, codeblocks.txt etc... with instructions on finding the proper locations. That would probably be easy enough to do if people didn't want to tackle trying to get an installer set up to do it. Though if an installer approach was used, it certainly would be unique in the library community and could set Allegro apart as being more friendly. (or as I said, use BOTH approaches)

Or what goes beyond my own skill, software you download where you select the package you need, and then it downloads and installs the appropriate libs, examples for you and creates some links.

---
“I love you too.” - last words of Wanda Roy

Thomas Fjellstrom
Member #476
June 2000
avatar

I think SDL or SFML has a wizard/installer. I think it'd be pretty useful.

I really like the idea of a project creation wizard that just generates a project or cmake file depending on the IDE/Editor selected, and points the project files to the location where you put the allegro lib/include files. It has possibilities. It's not a super complex installer that has to know how to find installed IDEs, just has to have a template for a few IDE's project files, and modifies them slightly when generating.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730



Go to: