Contributing

Everything about development and the OpenMW source code.
Post Reply
Yacoby
Posts: 119
Joined: 30 Sep 2011, 09:42

Contributing

Post by Yacoby » 09 Oct 2011, 23:10

For some uni coursework I have to contribute to an open source project a fix bugs/implement features. I only have about 15 to 20 hours (ish) to spend on it and it would need to completed in that time. Time frame wise it would be done by the 9th of November.

Anything you guys really want to see done that fits in with this? If not I can just pick something(s) from the bug tracker.

jhooks1
Posts: 780
Joined: 06 Aug 2011, 21:34

Re: Contributing

Post by jhooks1 » 09 Oct 2011, 23:28

Awesome, the more developers we get, the better OpenMW will get as a whole. I think you should just implement something from the tracker that you are interested in. Looking forward to your contributions 8-)

User avatar
Star-Demon
Posts: 73
Joined: 11 Aug 2011, 03:17
Location: New York
Contact:

Re: Contributing

Post by Star-Demon » 10 Oct 2011, 02:50

Welcome!
Yacoby wrote:For some uni coursework I have to contribute to an open source project a fix bugs/implement features.
That sounds cool.
I only have about 15 to 20 hours (ish) to spend on it and it would need to completed in that time.
Your tasks? That's a tall order.
Time frame wise it would be done by the 9th of November.
Okay. Here's what I think you should do. Within this week (week of Oct 9th ):

1. Go to the bug Tracker.
2. Pick 3 very easy tasks.
3. Review them with Zini.
4. Spend one week studying our program, setting up your environment, and planning the feature and your implementation.
5. Spend the next three finishing the tasks.

You will want the last week to correct any technical problems that may come up. Since I assume you're a CSE major I'm also going to assume you have a few other 2-week in 1-week projects going on, so you'll definitely want to get a lot done in the first week to make sure no problems come up for you, or you can have a backup plan should something go wrong.

Before you begin: What year are you and do you have experience with compiling large, sprawling programs using multiple libraries cross-platform with nothing more than some automatically generated documentation and whatever time you have left on your hands? If so - then you will finish your assignment no problem, otherwise, I'm warning you that you might have a lot to figure out and do in 4 weeks and be able to submit on time.

That should leave you well prepared. Good luck, and work hard!
"The scientists of today think deeply instead of clearly. One must be sane to think clearly, but one can think deeply and be quite insane." - Nikola Tesla

User avatar
Zini
Posts: 5537
Joined: 06 Aug 2011, 15:16

Re: Contributing

Post by Zini » 10 Oct 2011, 07:32

You can pick any task from the tracker you like, but please check with me first before you start working on it. Some tasks have prerequisite tasks that haven't been completed yet. There are a few tasks that we need more than others, but they will be difficult to handle in the timeframe you have given (unless you have prior experience with the used libraries; primarily MyGUI).
If you want to be on the safe side, you are probably better of with picking a small task (and just add another one if it proves not having enough substance/size for your course work).

On the roadmap for 0.12.0 I only see one task that could be suitable: Use alternate storage location for modified object position

This can be done in 1-2 hours if you have already set up everything and know your way around in the code base (I can give some hints). For a newcomer it will certainly take a bit longer.

But as I said before, feel free to pick anything you like. We can easily move another task to the 0.12.0 roadmap.

Also make sure to read the developer documentation on our wiki. I see that you already have an account on github. Please register on our bug tracker too, so we can formally assign a task to you.

Edit: Found another task that might be suitable for you. This one is somewhat bigger and requires a bit more git knowledge (submodules).

User avatar
pvdk
Posts: 523
Joined: 12 Aug 2011, 16:34

Re: Contributing

Post by pvdk » 10 Oct 2011, 12:12

Are you the same Yacoby who did the terrain rendering for the old D version of OpenMW?

User avatar
raevol
Posts: 3054
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: Contributing

Post by raevol » 10 Oct 2011, 18:40

pvdk wrote:Are you the same Yacoby who did the terrain rendering for the old D version of OpenMW?
I'm wondering the same thing!

Especially since we still need terrain rendering!

Yacoby
Posts: 119
Joined: 30 Sep 2011, 09:42

Re: Contributing

Post by Yacoby » 10 Oct 2011, 23:06

1. Go to the bug Tracker.
2. Pick 3 very easy tasks.
3. Review them with Zini.
4. Spend one week studying our program, setting up your environment, and planning the feature and your implementation.
5. Spend the next three finishing the tasks.
Doing smaller tasks sounds like a good timetable, except that it probably needs to be compacted slightly. As both you and Zini pointed out, easier task are probably better.
Before you begin: What year are you and do you have experience with compiling large, sprawling programs using multiple libraries cross-platform with nothing more than some automatically generated documentation and whatever time you have left on your hands?
Second year (Yay!). But I have been programming longer. Compiling/Running it wasn't to much of a problem (apart from a irksome config file problem) (I <3 package managers)
Zini wrote:You can pick any task from the tracker you like, but please check with me first before you start working on it. Some tasks have prerequisite tasks that haven't been completed yet. There are a few tasks that we need more than others, but they will be difficult to handle in the timeframe you have given (unless you have prior experience with the used libraries; primarily MyGUI).
If you want to be on the safe side, you are probably better of with picking a small task (and just add another one if it proves not having enough substance/size for your course work).
Sounds a plan. To be honest I probably don't need to do a huge amount to get a decent mark so several smaller tasks is probably better and would allow more flexibility.
On the roadmap for 0.12.0 I only see one task that could be suitable: Use alternate storage location for modified object position

This can be done in 1-2 hours if you have already set up everything and know your way around in the code base (I can give some hints). For a newcomer it will certainly take a bit longer.
Ok, I will take a look at that.
Also make sure to read the developer documentation on our wiki. I see that you already have an account on github. Please register on our bug tracker too, so we can formally assign a task to you.
Done (Jacob Essex btw)
Edit: Found another task that might be suitable for you. This one is somewhat bigger and requires a bit more git knowledge (submodules).
If I get your first suggestion done then I will take a look at that if noone else has picked that up.
pvdk wrote:Are you the same Yacoby who did the terrain rendering for the old D version of OpenMW?
The one and only ;)

I give doing some terrain stuff some thought but the task is too big for the timeframe and I am not sure as to the state of Ogre3Ds terrain library. The biggest issue was that last time I gave it a glance it couldn't cope with huge amounts of data (I think MW has about 3000 cells). I do know that someone did some work on it in Google Summer of Code so it may have improved. The downside is that the improvements are in 1.8.

I am willing to have a look at terrain again at some point, but I would want to use the 1.8 improvements. If you take a look at what was done you can see that it has a much better LOD strategy.

User avatar
Zini
Posts: 5537
Joined: 06 Aug 2011, 15:16

Re: Contributing

Post by Zini » 12 Oct 2011, 08:46

Assuming you are still interested in the first issue, I think I should add some details. The issue description is a bit vague and incomplete.

- It's actually not only the position you need to take care of. Instead you should handle the whole ESM::Position struct.
- The place where the mutable position should go to is MWWorld::RefData, which takes the role of the D in the LiveCellRef template.
- As far as I know currently we only write to ESM::Position when moving the player. We might read from it in several places though. It's important that you catch them all.

Post Reply