3
\$\begingroup\$

I just shipped my first working MonoGame in-development game to one of my friends. He got some OpenAL DLL crashes, until he installed OpenAL.

Is there a way to include the OpenAL dependencies somehow with my game? I noticed Visual Studio already copies MonoGame, OpenTK, Tao.SDL, etc. to the bin directory.

Edit: XNA/MonoGame/VisualStudio already creates all the required DLLs, content, etc. in bin; it's only OpenAL that doesn't appear (there's no DLL). What's the best way to handle this without creating an installer?

\$\endgroup\$
10
  • \$\begingroup\$ Why don't you just include the OpenAL install in your install process? \$\endgroup\$ Feb 11, 2013 at 6:41
  • 1
    \$\begingroup\$ Because I don't have an install process :) \$\endgroup\$
    – ashes999
    Feb 11, 2013 at 12:36
  • \$\begingroup\$ "Because I don't have an install process" You're already depending on OpenTK, Tao.SDL, and so forth, so that's a problem you're going to have to fix sooner or later. \$\endgroup\$ Feb 11, 2013 at 14:15
  • 1
    \$\begingroup\$ I haven't tried this, but you could attempt to put the openal32.dll and wrap_oal.dll files along with the rest of your bins. It should technically work, but again I have not tested this. \$\endgroup\$
    – jgallant
    Feb 11, 2013 at 17:38
  • 1
    \$\begingroup\$ I actually tried @Jon's suggestion with my game recently and still had users report issues. I think the silent installer is the only way to go. \$\endgroup\$ Feb 12, 2013 at 5:21

2 Answers 2

1
\$\begingroup\$

I haven't tried this, but you could attempt to put the openal32.dll and wrap_oal.dll files along with the rest of your bins. It should technically work, but again I have not tested this.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ OpenAL shouldn't be installed like this where possible - it's bad practice and has side-effects as noted by a user in the original question comments. \$\endgroup\$ Feb 12, 2013 at 15:13
  • \$\begingroup\$ I agree. I was requested to put this as an answer. \$\endgroup\$
    – jgallant
    Feb 12, 2013 at 15:16
  • \$\begingroup\$ I disagree. This worked for me and is the simplest solution. +1 \$\endgroup\$
    – ashes999
    Feb 12, 2013 at 16:35
8
\$\begingroup\$

Just run the OpenAL installer inside of your install process.

You should be deploying your game with some sort of installer anyway to include libraries you might have and do other legwork, so just include another step in your build process to install OpenAL with the silent flag. For OpenAL this is:

/S or /s or -S or -s The installation runs in silent mode. Nothing will be displayed.

Reference

This should be all you need to ensure every user has OpenAL installed before they try and run your game.

\$\endgroup\$
5
  • \$\begingroup\$ I've never shipped any XNA games, so I never ran into this before -- I usually just zip up binaries. What's the "usual" developer's choice for Windows/XNA installation? \$\endgroup\$
    – ashes999
    Feb 11, 2013 at 12:37
  • \$\begingroup\$ I've updated my question. I would like to avoid needing an installer (OpenAL is the only reason I need it today, which I don't even use in Windows apps). If there's no better answer, a winnar is you. \$\endgroup\$
    – ashes999
    Feb 11, 2013 at 17:28
  • \$\begingroup\$ The alternative is including OpenAL in the EXE itself and unpacking itself upon the system if it's not installed. I can include an example below if you need implementation details. \$\endgroup\$ Feb 11, 2013 at 18:35
  • \$\begingroup\$ @ashes999 Or copying all the OpenAL stuff to the directory if OpenAL requires no additional registry keys etc. \$\endgroup\$ Feb 11, 2013 at 18:36
  • \$\begingroup\$ what install software/kit do you recommend? I tried ClickOnce and NSIS without success. \$\endgroup\$
    – ashes999
    Feb 13, 2013 at 4:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .