Would like to help

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:

Would like to help

Post by lgromanowski »

K1ll wrote: Hello

I've been lurking the forums, the wiki and github of OpenMW for quite some time now and finally decided to join the project. I'm a C coder and have basic knowledge of object oriented programming but haven't worked with C++ yet.

The code is still pretty confusing for me and i haven't found anything to work on which seems easy enough to begin with. I'm pretty open to suggestions thought.

I admire the effort you have put into this project and think it's a good example of open source development.

PS: My main OS is Ubuntu but i also have win xp and win 7 and can cross-compile for both.
Star-Demon wrote:
K1ll wrote:Hello

I've been lurking the forums, the wiki and github of OpenMW for quite some time now and finally decided to join the project. I'm a C coder and have basic knowledge of object oriented programming but haven't worked with C++ yet.

The code is still pretty confusing for me and i haven't found anything to work on which seems easy enough to begin with. I'm pretty open to suggestions thought.

I admire the effort you have put into this project and think it's a good example of open source development.

PS: My main OS is Ubuntu but i also have win xp and win 7 and can cross-compile for both.
Welcome!

C to C++ isn't hard. If you feel comfortable doing any of the smaller tasks in C, then C++ will only make things easier for you by making it more logical and organized and not occupying your time.

If you want, try making really basic projects in C++.

Make an Item, and then make descendants of Item and experiment with heavy use of Polymorphism and Inheritance. Now try making fake classes that represent systems and try to make a UML diagram to see how they interact. See what you can access and what you can't. I'm sure you'll be fine and I'm just talking.

You know C, dude. That's really powerful. You have the low-level view to understand and make judgements of Higher Level implementations.

Also - I'm being selfish while saying this, but Windows. We need more windows people. Windows needs a lot of love around here.
Zini wrote: Sorry, but I have to disagree here.

Going from C to C++ is certainly easier than going from nothing to C++. But there are also some pitfalls. While C++ inherited most of C, a lot the old C features have replacements in C++ and when you go with the C way, you can get yourself in trouble quickly.
Make an Item, and then make descendants of Item and experiment with heavy use of Polymorphism and Inheritance. Now try making fake classes that represent systems and try to make a UML diagram to see how they interact. See what you can access and what you can't. I'm sure you'll be fine and I'm just talking.
That would be the Java-way. C++ is a multi-paradigm language. Heavy focus on inheritance is one of the biggest pitfalls for people new to C++ and especially people coming from Java-like languages.


As I wrote in another thread we are a bit short on tasks suitable for a beginner. But I am sure we will find something, eventually.
Star-Demon wrote:
Zini wrote:Sorry, but I have to disagree here.

Going from C to C++ is certainly easier than going from nothing to C++. But there are also some pitfalls. While C++ inherited most of C, a lot the old C features have replacements in C++ and when you go with the C way, you can get yourself in trouble quickly.
I can see what you mean, here.
That would be the Java-way. C++ is a multi-paradigm language. Heavy focus on inheritance is one of the biggest pitfalls for people new to C++ and especially people coming from Java-like languages.
So - what *is* the C++ way?
Zini wrote: Choose from the huge set of tools that C++ offers those that are most suitable for the task at hand. That can be OOP, that can be generic programming or even basic imperative programming or any combination of these and with C++0x even a few bits of functional programming.
Zini wrote: @K1ll: If you don't have any good material on C++ yet (hint: most online tutorials are not sufficient), try this site: http://www.mindview.net/Books/TICPP/Thi ... CPP2e.html

There is a legal free download for both books at the bottom of the page. I haven't used them myself, but they are recommended often and at least from the table of content they look reasonable.
Star-Demon wrote: Looking at it now - it looks okay - Doesn't necessarily look like books which throw code at you to copy and paste. Maybe I'll give it a shot sometime.
K1ll wrote:
Zini wrote:@K1ll: If you don't have any good material on C++ yet (hint: most online tutorials are not sufficient), try this site: http://www.mindview.net/Books/TICPP/Thi ... CPP2e.html

There is a legal free download for both books at the bottom of the page. I haven't used them myself, but they are recommended often and at least from the table of content they look reasonable.
Thanks i've read some wikibooks but as you said those are mostly insufficient.
Star-Demon wrote:
K1ll wrote:Thanks i've read some wikibooks but as you said those are mostly insufficient.
Just charge right in with a burning spirit!
Zini wrote: @K1ll: I have thought about what task to give you. How would you feel about having a go at this: http://bugs.openmw.org/issues/130

The code you would be dealing with is mostly in components/esm/ and is somewhat more C-ish than the rest of OpenMW. I suspect the best way to tackle this problem would be to find the problematic record in the esm file and then to use a hex editor to compare it with the loading code to find where it fails.
K1ll wrote:
Zini wrote:@K1ll: I have thought about what task to give you. How would you feel about having a go at this: http://bugs.openmw.org/issues/130

The code you would be dealing with is mostly in components/esm/ and is somewhat more C-ish than the rest of OpenMW. I suspect the best way to tackle this problem would be to find the problematic record in the esm file and then to use a hex editor to compare it with the loading code to find where it fails.
Yeah looks interesting and beginner friendly, i'll take it ;)
Zini wrote: Assigned. If you want to do any discussion regarding this issue or want to report progress, please make a new thread in the Development forum.
Locked