0
0

Can the installation setup be simplified for FMOD? We’re using it for 3 platforms, and updating frequently is a nightmare of copying files. I would prefer not to add include directories to our project from outside the project tree.

The WIN32, XBox and PS3 installations for instance all install to completely separate folders, with lots of duplicated header files, documentation, etc. Can they be combined or overlaid into a single tree with duplicate files filtered out?

As it is right now I had to write a massive batch file to copy everything out of the separate directories and into our project in a central place. This is obviously pretty fragile…

  • You must to post comments
0
0

We also have three different platforms.

I don’t know why you would want this in a single tree without duplicate files. For one, there could/will be a time when you need one of the platforms at a different fmod revision than the other platforms.

I wrote a batch file that copies from the install directories (C:\program files\FMOD SoundSystem\FMOD Programmers API Win32) to a special directory in our own structure that is platform dependent. Like this:

copy %fmod%\api\inc\ win32\api\inc\
… and so on

Then I repeat the procedure for the other platforms, keeping the files in the same kind of structure that FMOD has them.

Luckily the dlls are named uniquely "fmodex.dll" and "fmodex64.dll", so these go into the same directory as where I run my executable from.

The projects are set up with different include and library paths for the different platforms.

This works well for me. When I update fmod, I install the different packages at their default location. Then I run this batch file once and I’m done.

  • You must to post comments
0
0

[quote="jornj":25a86yxh]
I don’t know why you would want this in a single tree without duplicate files. For one, there could/will be a time when you need one of the platforms at a different fmod revision than the other platforms. [/quote:25a86yxh]

That would be a QA nightmare for us. This is a game with 100+ people working on it.

[quote="jornj":25a86yxh]
I wrote a batch file that copies from the install directories (C:\program files\FMOD SoundSystem\FMOD Programmers API Win32) to a special directory in our own structure that is platform dependent. Like this:
[/quote:25a86yxh]

Like I said, I’ve already written a batch file that updates all three platforms. Would be trivial to subdivide it if that was what I wanted, but it’s not.

  • You must to post comments
0
0

I don’t know if you guys use Perforce, but if you do, you could do it with a couple of branchspecs. The way we do it is to install all of the FMOD platforms to something like C:\MyCompany\Import\FMOD. Then, we have a couple of branch specs* that map files from C:\MyCompany\Import\FMOD to C:\MyCompany\MyProject\Whatever. Our branchspecs look like this:

— FMOD API Branchspec
//depot/Import/FMOD/Win32/api/inc/… //depot/Common/Code/External/FMOD/Inc/…
//depot/Import/FMOD/Win32/api/lib/… //depot/Common/Code/External/FMOD/Win32/lib/…
//depot/Import/FMOD/Win32/api/. //depot/Game/Bin/Win32/.
//depot/Import/FMOD/PS3/api/inc/fmodps3.h //depot/Common/Code/External/FMOD/Inc/fmodps3.h
//depot/Import/FMOD/PS3/api/lib/… //depot/Common/Code/External/FMOD/PS3/lib/…
//depot/Import/FMOD/PS3/api/. //depot/Game/Bin/PS3/.
//depot/Import/FMOD/Xenon/api/inc/fmodxbox360.h //depot/Common/Code/External/FMOD/Inc/fmodxbox360.h
//depot/Import/FMOD/Xenon/api/lib/… //depot/Common/Code/External/FMOD/Xenon/lib/…

— FMOD Designer Branchspec
//depot/Import/FMOD/Win32/fmoddesignerapi/api/inc/… //depot/Common/Code/External/FMOD/Inc/…
//depot/Import/FMOD/Win32/fmoddesignerapi/api/lib/… //depot/Common/Code/External/FMOD/Win32/lib/…
//depot/Import/FMOD/Win32/fmoddesignerapi/api/. //depot/Game/Bin/Win32/.
//depot/Import/FMOD/PS3/fmoddesignerapi/api/lib/… //depot/Common/Code/External/FMOD/PS3/lib/…
//depot/Import/FMOD/Xenon/fmoddesignerapi/api/lib/… //depot/Common/Code/External/FMOD/Xenon/lib/…

So, to bump the version of FMOD, we just install the latest PC/360/PS3/Whatever, integrate the branches, and it’s done. We take this same approach to other middleware and it works nicely, even allows you to use diffs, histories, etc. to see what changed. I used to do it by hand, which took forever. Now the longest part of the process is downloading the new installers.

  • We need two branch specs because we map files from both api/ and apidesigner/ to the same folder, which perforce won’t let you do in a single branchsped.
  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.