Getting involved

A generic talk on the OpenMW project.
Locked
User avatar
lgromanowski
Site Admin
Posts: 1193
Joined: 05 Aug 2011, 22:21
Location: Wroclaw, Poland
Contact:

Getting involved

Post by lgromanowski »

bobtedbob wrote: Hi

I'm a new to open morrowind but would like to get involved even if its only small (I love the elder scrolls series).

I have a mac and I realise that there aren't any official builds for the mac, maybe I can help out later by helping to get some mac build scripts (I saw that corristo is involved in mac builds but didn't see anything on the site to say things was happening).

Before getting too involved I wanted to understand the build process a bit more so i can familiarise myself, I saw some wiki pages on how to build for various environments but it didn't explain much about the directory structures in the source code (just looking at the 0.09 code base at the moment, have things changed much in 0.10 and 0.11?). Is there any documentation anywhere on how the code is layed out directory wise? If there isn't could people help out by posting some information here. Maybe I could assemble it in to a wiki page.

I don't have much c++ experience but I do have a lot of java experience so should be able to pick things up fairly quickly. My job is in IT so I'm pretty malleable to learning new things. I've also done some opengl things so can maybe help out on other things later on.

So to summerise, I'm new here but looking to help out :)
Zini wrote:
I have a mac and I realise that there aren't any official builds for the mac, maybe I can help out later by helping to get some mac build scripts (I saw that corristo is involved in mac builds but didn't see anything on the site to say things was happening).
Actually the OS X porting work is finished. 0.10.0 (my master branch) should build and run on a Mac out of the box.
Before getting too involved I wanted to understand the build process a bit more so i can familiarise myself, I saw some wiki pages on how to build for various environments but it didn't explain much about the directory structures in the source code (just looking at the 0.09 code base at the moment, have things changed much in 0.10 and 0.11?).
There is no 0.11.0 yet. We are still in the warm-up phase. For the build process a semi-decent working knowledge of cmake is useful.
Is there any documentation anywhere on how the code is layed out directory wise? If there isn't could people help out by posting some information here.
I just started to write down some documentation: http://openmw.org/wiki/index.php?title= ... _Standards
Especially the 2nd link should give you a rough idea, what you are dealing with.
Zini wrote: Also if you haven't do so, you should have a look at the doxygen documentation: http://zinnschlag.github.com/openmw/modules.html (this is for 0.9.0 though).
bobtedbob wrote: Thanks Zini

I'm building the source at the moment. I'll post the steps I took once I have it successfully done as the Wiki is slightly out of date for Mac
Zini wrote: Please feel free to fix the description in the wiki. Read this thread for getting editing rights: http://openmw.org/forum/viewtopic.php?f=18&t=335

Also, do you have a github account? You might want to enter your details on this page: http://openmw.org/wiki/index.php?title=Developers (especially if your forum name does not match the github name)
bobtedbob wrote: I have the same git name as this forum name
Star-Demon wrote: Welcome!

C++ from java is a bit of a jump, but some practice and lots of examples and you'll be okay.

We're trying to get the knowledge of the project on paper as we can. Right now, it's preferred that you have lots of experience with these sorts of projects so there's as little support going and more code being written.

My own guide is slowly growing, and I think during spring break you might see more additions if we get the upcoming release out in time. It's a good high-level view, for what's there atm.

As Zini linked, there's the Deoxy; always looking for additions and more detailed descriptions. I haven't learned how to add to it, myself - so much to do...

Much <3 if you fully-document as you write, though.
bobtedbob wrote: Thanks

I have uploaded some wiki changes for Mac OSX install, its just basically the steps I did to get things going.

I agree C++ is different to Java, I did some c++ many years ago. If I did anything it would have to be small stuff that didn't really matter as it might take some time to get used to the environment etc.

Probably the wrong place to ask but I got an error on the build during the linking stage (previous slinking stages worked fine). I took the latest version of the source from git
Linking CXX executable ../../openmw
ld: warning: in /usr/local/lib/libmpg123.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in /usr/local/lib/libsndfile.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in ../../extern/caelum/libcaelum.a, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in ../../extern/mygui_3.0.1/MyGUIEngine/libMyGUIEngine.a, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in ../../extern/mygui_3.0.1/OgrePlatform/libMyGUIOgrePlatform.a, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in /usr/local/lib/libfreetype.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
"MyGUI::Gui::injectKeyRelease(MyGUI::KeyCode)", referenced from:
OEngine::GUI::EventInjector::event(Mangle::Input::Event::Type, int, void const*)in events.cpp.o
"MyGUI::Widget::_unlinkChildWidget(MyGUI::Widget*)", referenced from:
vtable for MWGui::DialogeHistoryin window_manager.cpp.o
vtable for MWGui::Widgets::MWDynamicStatin widgets.cpp.o
vtable for MWGui::Widgets::MWSpellEffectin widgets.cpp.o
There are lots and lots of these (undefined symbols), they all seem to be to do with MyGUI.
Zini wrote: Looks like OS X specific build problems. Maybe corristo can help. I can't because I haven't got a clue about OS X.
bobtedbob wrote: Do you know where in the build process the, ie where this step is configured?

Linking CXX executable ../../openmw

Looks like its not linking the include files where the definitions are set. I might take a look, but not sure exactly where to look at the moment
Zini wrote: The executable target openmw is defined at the end of apps/openmw/CMakeLists.txt. But since the scripts are working for corristo I would suspect, that they are correct. Actually I am not sure how offen corristo shows up here at the forum. Maybe you could try to PM him on github?
Peppe wrote:
bobtedbob wrote:

Code: Select all

file was built for unsupported file format which is not the architecture being linked (i386)
That sounds to me like you are trying to build for another architecture than the one you have libraries for. I.e. trying to build for 64bit when having 32bit libraries or the other way around.
willrandship wrote: Or maybe he has a PPC mac? not sure :P, but if it is, it saves a lot of troubleshooting on the 64-bit end.
bobtedbob wrote: I have a mac book, sent a pm to corristo to see if he can help

I'll play around more on the build tonight to see if I can debug it, all the code compiles fine and other area's of the build link fine its just when openmw and MyGui are linked to each other that the symbol information seems missing.

The MyGui projects are linked as projects in the openmw build script. I'm not sure if its the fact that I'm using the latest version of cmake that could be the issue.
bobtedbob wrote: Hi

Just to let you know all problems fixed now, updated the Wiki.

Spoke with corristo on github and he helped out. It was an i386 issue so needed some flags set for compile. As an F.Y.I. I have the latest version of the external libraries and they seem to all work fine with the game.

Have the game running now, looks good. Can just see sky and the inside of a cave.

Just out of interest do you code openmw from just looking at the game on windows? To try and mimick the original?

Not sure what I can help with, but I'll play around with things and Maybe suggest things later on once I have hacked some local code enough thatI understand things
Zini wrote: There is a lot of reference material about MW on the internet. Also, we have some people doing research on the original game (game mechanics formulas and such). Me, I am mostly working from memory and from knowledge I get from my work on the Redemption project (Morrowind total conversion). I haven't actually played original MW within the last six years.
Locked