Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Tools => Topic started by: Echelon9 on January 31, 2013, 11:19:11 pm
-
I'm seeking comments on a aspirational thought I had:
How much of the FS2Open modding infrastructure and tooling is wrapped up in platform-specific binary programs?
Why is this the case?
Since the open sourcing of the engine, we've seen a reasonably proliferation of cross-platform support for the main engine. However, it seems to date that the tooling, such as packers/unpackers, asset pipeline converters and editing tools remain Windows binaries.
Putting aside FRED, which already has an established open source, cross platform project, I'm interested to see which other parts of the asset creation pipeline are restricted to Windows binaries.
The goal is to map each to an open source scripting solution, such as say Ruby or Python, once I know what's out there.
While I know the main engine code pretty well I've never taken a deep look at the surrounding tools and infrastructure.
-
Already started, using Python. Could use some help if you're willing and able:
http://code.google.com/p/blender-pof-support/
http://code.google.com/p/wxvp/
-
MajaExpress for VP editing is written in Java and thus is cross platform
I think that PCS2 is also cross platform C/C++ as well?
Some of the ANI creation tools are windows only
(wx)FRED you've mentioned
What other tools are there?
-
Original FS2 tools (http://www.freespacemods.net/download.php?view.109)
We need a new pilot viewer program, there used to be one for retail pilot files.
As stated, an ani builder/viewer would be useful.
Maja and PCS2 should pretty much cover all model and vp related needs cross-platform, although PCS2 might not actually be compiling on all platforms yet. Probably need to work on that.
-
Compiling PCS2 is non-trivial on Linux, mainly because of the Collada DOM. The last stable version (2.2) relies on ancient versions of boost, and later versions (2.3 and 2.4) are a complete mess.
Is MajaExpress still (supposed to be) working? I recall I had it working a while ago, but for the life of me I can't remember how I did it :blah:
-
I've been using MajaExpress to extract data from VPs for ages and it works fine. I haven't tried to create/modify a VP with it though.
-
How do I use Maja to extract the data from the VPs? I tried doing that once, but it gave me a bunch of files that needed to be extracted in the .jar. I was using the Ubuntu variant Lubuntu.
-
Compiling PCS2 is non-trivial on Linux, mainly because of the Collada DOM. The last stable version (2.2) relies on ancient versions of boost, and later versions (2.3 and 2.4) are a complete mess.
compiling pcs2 on any platform is non-trivial. i still dont know how to pull it off and ive been trying on and off for several years. id love to see projects files, instructions, a list of dependencies and their configurations, etc.
-
How do I use Maja to extract the data from the VPs? I tried doing that once, but it gave me a bunch of files that needed to be extracted in the .jar. I was using the Ubuntu variant Lubuntu.
Hmmm.. well, for a complete walkthrough (apologies in advance if this is too basic!)
- install OpenJDK 1.6.0_24 from the ubuntu repositories (any version 1.6 or later will probably work)
- Run using this command line: java -jar /path/to/MajaExpress085.jar
- Project -> Import Package (select VP from the filesystem)
- Right click on the files or directory that you want to export in the left hand pane (under Entries Tree)
- Select "Export Directory"
- Select a destination to export to
-
I build PCS2 with MSVC 2008 with boost 1.44, ColladaDOM 2.1.1, wxWidgets 2.8.10 and some pre-built version of DevIL.
The better long term solution is probably to switch a different XML library.
-
- install OpenJDK 1.6.0_24 from the ubuntu repositories (any version 1.6 or later will probably work)
- Run using this command line: java -jar /path/to/MajaExpress085.jar
~$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.4) (7u9-2.3.4-0ubuntu1.12.10.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
~$ java -jar MajaExpress085.jar
Exception in thread "Main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
at javax.swing.JFrame.<init>(JFrame.java:218)
at MajaGUI.MajaFrame.<init>(MajaFrame.java:20)
at Maja.MajaApp.<init>(MajaApp.java:17)
at Maja.MajaApp.main(MajaApp.java:154)
:( Could Java 1.7 have broken it?
The better long term solution is probably to switch a different XML library.
Probably yes, given the state the Collada DOM is in right now... Would it be a lot of work?
-
:( Could Java 1.7 have broken it?
:sigh: yes, Java is notorious for breakage between versions, even in minor point/bugfix releases - I think my previous statement was probably a little too optimistic. I don't suppose ubuntu kept a 1.6 release in the repos?
-
Do these look relevant?
http://stackoverflow.com/questions/5362512/unable-to-run-java-gui-programs-with-ubuntu
http://ubuntuforums.org/showthread.php?t=1659097
EDIT: Based on these threads, try getting the openjdk-7-jre package from the Ubuntu repos.
-
It looks like compiling PCS2 on OSX is at least theoretically possible, unfortunately I can't test this since wxWidgets won't compile :mad:, which is to say nothing of the other dependencies...
-
:( Could Java 1.7 have broken it?
:sigh: yes, Java is notorious for breakage between versions, even in minor point/bugfix releases - I think my previous statement was probably a little too optimistic. I don't suppose ubuntu kept a 1.6 release in the repos?
Do these look relevant?
http://stackoverflow.com/questions/5362512/unable-to-run-java-gui-programs-with-ubuntu
http://ubuntuforums.org/showthread.php?t=1659097
EDIT: Based on these threads, try getting the openjdk-7-jre package from the Ubuntu repos.
Well, that's a prime example (from me) of letting your prejudices get in the way of thinking - good thing that you're around jg18 to set the record straight! :)
FSF - here's the packages I have installed:
$ dpkg --get-selections | grep openjdk
openjdk-6-jre install
openjdk-6-jre-headless install
openjdk-6-jre-lib install
-
It looks like compiling PCS2 on OSX is at least theoretically possible, unfortunately I can't test this since wxWidgets won't compile :mad:, which is to say nothing of the other dependencies...
Check the wxWidgets wiki (http://wiki.wxwidgets.org/Development:_wxMac) and wxLauncher readme (http://code.google.com/p/wxlauncher/source/browse/ReadMe.txt#179) for ideas on how to build wxWidgets on OS X. You might also want to try wx 2.8.12 (which wxL is built with) instead of 2.8.10.
Well, that's a prime example (from me) of letting your prejudices get in the way of thinking - good thing that you're around jg18 to set the record straight! :)
No problem. :)
-
It looks like compiling PCS2 on OSX is at least theoretically possible, unfortunately I can't test this since wxWidgets won't compile :mad:, which is to say nothing of the other dependencies...
Check the wxWidgets wiki (http://wiki.wxwidgets.org/Development:_wxMac) and wxLauncher readme (http://code.google.com/p/wxlauncher/source/browse/ReadMe.txt#179) for ideas on how to build wxWidgets on OS X. You might also want to try wx 2.8.12 (which wxL is built with) instead of 2.8.10.
:eek: That actually worked! And that's after spending hours trying to make several versions work with several combinations of configure flags work yesterday. I suppose it has something to do with the sdk... Thanks! :)
-
EDIT: Based on these threads, try getting the openjdk-7-jre package from the Ubuntu repos.
Apparently I have both Java 6 and 7 installed (J6 seems to be a JabRef dependency). Yet that particular package was missing. You are awesome :)
-
Already started, using Python. Could use some help if you're willing and able:
http://code.google.com/p/blender-pof-support/
http://code.google.com/p/wxvp/
Yup, this is exactly what I had in mind. We should get in touch.
-
Already started, using Python. Could use some help if you're willing and able:
http://code.google.com/p/blender-pof-support/
http://code.google.com/p/wxvp/
Yup, this is exactly what I had in mind. We should get in touch.
Feel free to email or PM me. :)
-
Probably yes, given the state the Collada DOM is in right now... Would it be a lot of work?
It's ready to try (https://googledrive.com/host/0B_qLK7VGhoIydUY1RFlzOVNMdGc/pcs2-pugixml.7z).
-
It's ready to try (https://googledrive.com/host/0B_qLK7VGhoIydUY1RFlzOVNMdGc/pcs2-pugixml.7z).
Looking good so far; I opened, converted, saved and reopened several DAEs without any problems. Got source? :)
-
git://alliance.git.sourceforge.net/gitroot/alliance/PCS2
-
Superb! :yes:
(http://i.imgur.com/lPLZK1u.png)
Noticed two issues so far, both unrelated to the XML lib:
- The interface appears a little cramped in places (see e.g. the New/Duplicate/Delete buttons, the Preferences window).
- PCS2 seems to have trouble finding some textures; some display, some don't - I haven't discovered a pattern yet. Could it be related to Linux being case-sensitive?
Either way, thank you very much!
(Note for non-Ubuntu users: the File-Edit-View-etc bar is hidden behind the window title bar, that's on purpose.)
-
Superb! :yes:
(http://i.imgur.com/lPLZK1u.png)
Noticed two issues so far, both unrelated to the XML lib:
- The interface appears a little cramped in places (see e.g. the New/Duplicate/Delete buttons, the Preferences window).
- PCS2 seems to have trouble finding some textures; some display, some don't - I haven't discovered a pattern yet. Could it be related to Linux being case-sensitive?
Either way, thank you very much!
(Note for non-Ubuntu users: the File-Edit-View-etc bar is hidden behind the window title bar, that's on purpose.)
I'm fairly certain number two is related to Linux being case-sensitive. I ran into the same issue when working on a Blender import script. Ended up running a bash script to make all my textures lowercase and then had the Blender script change the texture names read from the TXTR chunk to lowercase.
-
The controls have hard-coded sizes. I tried changing that once but some controls did not play nicely.
-
An interesting list.
Also seems that fontool is a small utility that would benefit from conversion to scripting (http://www.hard-light.net/forums/index.php?topic=83836.0).
Something so basic shouldn't be so finicky.
-
- The interface appears a little cramped in places (see e.g. the New/Duplicate/Delete buttons, the Preferences window).
How does this look?
[attachment deleted by a basterd]
-
- The interface appears a little cramped in places (see e.g. the New/Duplicate/Delete buttons, the Preferences window).
How does this look?
Awesome :yes: :yes:
-
Pushed. Let me know if you find any new problems.
-
Hmm, I can't compile HEAD anymore now. Seems to have started with commit 76072d9 (Remove most hard-coded control sizes). Error messages are mostly these:
debug/model_editor_ctrl.h:117:3: error: 'set_value' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In revision d89cdad (Switch from ColladaDOM to pugixml) the same set_value messages show up as warnings, allowing building to complete. Using GCC 4.7.2 (Ubuntu 12.10).
-
Re-add -fpermissive to cc_flags or fix it yourself.
-
Right, that was obvious :nervous: Controls are looking good now, thanks! I'll try to find out what's with the textures this weekend.
-
Ok, so the textures thing: although PCS2 handles unpacked textures (i.e. outside a VP) in a case-insensitive manner, like it should, it is case-sensitive for packed textures: these are only found if the capitalization of the texture matches exactly between POF and VP. Guess that should be an easy fix?