How can I contribute to the DFU project?

Discuss coding questions, pull requests, and implementation details.
Scelestus
Posts: 3
Joined: Mon Dec 17, 2018 8:11 pm

How can I contribute to the DFU project?

Post by Scelestus » Mon Dec 17, 2018 8:32 pm

Hello everyone,

I apologize if this is a duplicate post; I couldn't find a similar question, but, admittedly, I didn't perform an exhaustive search.

In any event, I am fairly new to the open-source contributions thing and really want to get on-board with a project about which I am passionate. I'm a n00b when it comes to version control, I have very little github experience, but I do have a cursory understanding of the process, and I'm not a moron (unless you ask my wife). I'm wrapping up my M.S. in computer science this year and have screwed around in Unity for about a year now. I wouldn't consider myself prolific in Unity, but I think I am capable.

Most importantly, I really want to help bring DFU to v1.0. Look, I'm no coding savant, and I won't pretend to be. But I don't act like I know everything, I'm not an ass**** (again, unless you ask my wife), and I am genuinely interested in assisting all of you to help Daggerfall meet its unrealized potential.

Unity (intermediate), C# (intermediate), Blender (limited experience), general OOP principles (intermediate-advanced), and writing -- like, 'writing' as in English sentences (you can use this post to judge my competency in English) -- are likely the most relevant skills I have to offer.

What can I do to help, and how can I get started doing it?

Thank you!

User avatar
Interkarma
Posts: 4713
Joined: Sun Mar 22, 2015 1:51 am

Re: How can I contribute to the DFU project?

Post by Interkarma » Mon Dec 17, 2018 9:52 pm

Hey Scelestus, welcome to the forums! :)

At this late stage in the game, there aren't any major systems remaining on the roadmap that haven't already been completed, are almost complete, or already allocated out to another dev. I made a topic back in June about the push to exit pre-alpha in 2019. Unfortunately this means some of opportunity to get in at the ground level has passed. But there are still ways to contribute.

One is work such as Pango is doing - providing great bug reports with saves and steps to reproduce, and fixing what bugs he can. This takes a keen eye for detail, and a good understanding of classic Daggerfall to know what's a bug in classic vs. a bug in Daggerfall Unity, or just a weird design quirk of Daggerfall itself. Pango is extraordinarily good at this and can possibly provide some advice about his process if he's not too busy.

The modding side of things is also a great place to get started. Besides the fun of creating new content, it's a good way to get a grounding in the code and working out how to bend it to do new things. Some of the mods that have cropped up have been a big surprise. They've accomplished stuff I wasn't even fully aware was possible.

Whatever you end up doing, thank you for taking the time to post and offering to help. All the best, and good luck!

User avatar
Jay_H
Posts: 2519
Joined: Tue Aug 25, 2015 1:54 am

Re: How can I contribute to the DFU project?

Post by Jay_H » Mon Dec 17, 2018 9:56 pm

Interkarma wrote:
Mon Dec 17, 2018 9:52 pm
The modding side of things is also a great place to get started. Besides the fun of creating new content, it's a good way to get a grounding in the code and working out how to bend it to do new things. Some of the mods that have cropped up have been a big surprise. They've accomplished stuff I wasn't even fully aware was possible.
YES! We have a few hundred thousand mod ideas here on the forums, and any time one takes off it's like a shot of adrenaline for us all :D Modding is just as exciting to us as core features are.

Welcome to the forums! :)
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.
Progress on fixing classic quests here.

User avatar
mikeprichard
Posts: 684
Joined: Sun Feb 19, 2017 6:49 pm

Re: How can I contribute to the DFU project?

Post by mikeprichard » Mon Dec 17, 2018 10:22 pm

If you are interested in modding, plenty of random non-programmer idiots like me post ideas that smarter people sometimes pick up on in the "Mods & Features General" forum. We have quite a few great graphical and gameplay mods cropping up, but my main interest is further improvements to the UI. Or of course, you could look at the tools available and come up with something entirely new. The potential for DFU to become what Daggerfall should have been (which in many ways, it already is) is huge. Great to see more talented people take an interest in moving the community forward!

User avatar
pango
Posts: 1321
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: How can I contribute to the DFU project?

Post by pango » Tue Dec 18, 2018 3:06 am

Hi Scelestus, welcome :)
Scelestus wrote:
Mon Dec 17, 2018 8:32 pm
I'm a n00b when it comes to version control, I have very little github experience, [...]
If you can take my word for it, if you're into computing science you should learn to use Git (or other similar tool like Mercurial, but Git is the most popular those days) that won't be wasted time, it's the kind of tool you'll be using daily after that. GitHub is sugar coating on top of Git, it's very well done, but is mostly just exposing Git features, so Git is the tool to master.
Scelestus wrote:
Mon Dec 17, 2018 8:32 pm
What can I do to help, and how can I get started doing it?
Personally I'm driven by opportunity.
I see something that bothers me? I try to debug it as deep as I can, then depending on my skills or knowledge all I can do is a bug report (but still using my developer experience to try to make it as useful as possible, thanks for your kind words Interkarma! ), or code contributions. And each time I try to modify the code, I may not succeed but I always understand it a bit better so it becomes easier with time.
I've never done gaming development before, so I still have a long way to go... but that's part of the fun.
Don't forget to have fun :)
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

Scelestus
Posts: 3
Joined: Mon Dec 17, 2018 8:11 pm

Re: How can I contribute to the DFU project?

Post by Scelestus » Tue Dec 18, 2018 3:58 pm

Wow, thanks for all of the feedback guys!
Interkarma wrote:
Mon Dec 17, 2018 9:52 pm
This takes a keen eye for detail, and a good understanding of classic Daggerfall to know what's a bug in classic vs. a bug in Daggerfall Unity, or just a weird design quirk of Daggerfall itself. Pango is extraordinarily good at this and can possibly provide some advice about his process if he's not too busy.
Unfortunately, I do not have an extensive history with vanilla Daggerfall -- Morrowind was my introduction to the TES universe. But I'll setup the environment and keep an eye out for anything that seems a bit unusual (even by Daggerfall's standards!) and will take the appropriate actions to let y'all know.
Interkarma wrote:
Mon Dec 17, 2018 9:52 pm
The modding side of things is also a great place to get started. Besides the fun of creating new content, it's a good way to get a grounding in the code and working out how to bend it to do new things. Some of the mods that have cropped up have been a big surprise. They've accomplished stuff I wasn't even fully aware was possible.
This does sound like a lot of fun. I'll definitely look into some of the mod requests!
mikeprichard wrote:
Mon Dec 17, 2018 10:22 pm
If you are interested in modding, plenty of random non-programmer idiots like me post ideas that smarter people sometimes pick up on in the "Mods & Features General" forum . . . Great to see more talented people take an interest in moving the community forward!
Though a programmer, I'm certainly not immune from being an idiot, and "talented" is a strong statement in my case! But being an idiot hasn't gotten in my way to this point, so I don't see it being an issue going forward.
pango wrote:
Tue Dec 18, 2018 3:06 am

If you can take my word for it, if you're into computing science you should learn to use Git (or other similar tool like Mercurial, but Git is the most popular those days) that won't be wasted time, it's the kind of tool you'll be using daily after that. GitHub is sugar coating on top of Git, it's very well done, but is mostly just exposing Git features, so Git is the tool to master.
I'll certainly take your word for it, pango! In fact, part of my motivation for finding a good open-source project to which I can contribute is to learn my way around Git -- doesn't look like finding a job upon graduation is going to happen, if I don't! On that note, do you have any sources you'd recommend for learning Git? Like I said, I'm still quite new, but I would really love to get a stronger handle/greater comfort-level with Git.
pango wrote:
Tue Dec 18, 2018 3:06 am
. . . Don't forget to have fun :)
As far as the "fun" goes . . . that's why I'm here! The original Daggerfall was an immensely interesting, albeit flawed, game; and the project Interkarma and all of you have put together is fantastic! Who wouldn't have fun contributing to it?!


Again, thank you all for the warm welcome and substantive feedback! I've been registered for all of 20 hours and feel like I've been here for years; thank you! And I look forward to working with each of you -- in whatever capacity that may be.

User avatar
pango
Posts: 1321
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: How can I contribute to the DFU project?

Post by pango » Tue Dec 18, 2018 6:48 pm

Scelestus wrote:
Tue Dec 18, 2018 3:58 pm
pango wrote:
Tue Dec 18, 2018 3:06 am
If you can take my word for it, if you're into computing science you should learn to use Git (or other similar tool like Mercurial, but Git is the most popular those days) that won't be wasted time, it's the kind of tool you'll be using daily after that. GitHub is sugar coating on top of Git, it's very well done, but is mostly just exposing Git features, so Git is the tool to master.
I'll certainly take your word for it, pango! In fact, part of my motivation for finding a good open-source project to which I can contribute is to learn my way around Git -- doesn't look like finding a job upon graduation is going to happen, if I don't! On that note, do you have any sources you'd recommend for learning Git? Like I said, I'm still quite new, but I would really love to get a stronger handle/greater comfort-level with Git.
Mmmh it seems tutorials are easy enough to find, but I'm not sure which one to recommend, as I don't remember using any...
For one it was many years ago, so I don't remember clearly what sources of information I used at the time (and those are probably obsolete by now anyway); And at the time I already knew Mercurial, and the concepts are very similar between the two, so I "just" looked up how standard operations translated to Git, so I followed a different learning path...
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

Scelestus
Posts: 3
Joined: Mon Dec 17, 2018 8:11 pm

Re: How can I contribute to the DFU project?

Post by Scelestus » Fri Dec 21, 2018 8:55 pm

pango wrote:
Tue Dec 18, 2018 6:48 pm
Mmmh it seems tutorials are easy enough to find, but I'm not sure which one to recommend, as I don't remember using any...
For one it was many years ago, so I don't remember clearly what sources of information I used at the time (and those are probably obsolete by now anyway); And at the time I already knew Mercurial, and the concepts are very similar between the two, so I "just" looked up how standard operations translated to Git, so I followed a different learning path...
Ah, I see. Well, I appreciate it anyway. I'm tooling around with Git using Bitbucket and Sourcetree with a project of my own right now, until I get the hang of it. Version control in the abstract seems easy enough to understand. Hopefully, the details and command-line stuff will come with practice.

jimfcarroll
Posts: 8
Joined: Tue Feb 12, 2019 12:55 am

Re: How can I contribute to the DFU project?

Post by jimfcarroll » Tue Feb 12, 2019 1:03 am

Hello all,

I had the same question but I've been a coder for a long time and in open source for a long time, though not gaming or game engines (nor, C#, but I'm sure I can pick it up). Can someone recommend the best way to understand the code base? Is there a developer's guide anywhere?

Thanks
Jim

User avatar
MasonFace
Posts: 289
Joined: Tue Nov 27, 2018 7:28 pm
Contact:

Re: How can I contribute to the DFU project?

Post by MasonFace » Tue Feb 12, 2019 8:58 pm

Can someone recommend the best way to understand the code base? Is there a developer's guide anywhere?
Hi jimfcarroll!

I'm assuming that you're looking for information on how to code for mods, so my response will be geared towards that.
_______________________________________________

I would recommend starting off by downloading Unity and getting started with these tutorials:
Unity Basics: https://unity3d.com/learn/tutorials/s/i ... -tutorials
Unity Scripting: https://unity3d.com/learn/tutorials/s/scripting

With regards to installing Unity, just download Unity Hub (https://unity3d.com/get-unity/download) and I think you can choose whatever version of Unity you want (recommended version 2018.2.11f1 for Daggerfall Unity development). It's been a long time since I've done it, but I believe you'll need to register, but the "Personal" license is free.

There should be instructions in the referenced tutorials on how to get Visual Studio setup with Unity. Other IDEs can be used if you have another preference.

Since you have a background in programming, you may just skim through a lot of the early tutorials. Not sure what languages you're familiar with but if you are familiar with object oriented languages, you'll probably find C# to be a pretty easy language to pickup.

As you get the hang of it, I recommend bookmarking the Unity Programming API Documentation since you will likely reference it a lot: https://docs.unity3d.com/ScriptReference/
If you see a method that you want to learn more about or need to figure out the syntax for, just search in the box at the top right of the API documentation page.

Once you have the hang of programming in Unity, I'd recommend this tutorial for getting Daggerfall Tools for Unity imported into your Unity project: https://www.dfworkshop.net/projects/dag ... tutorials/

Keep in mind that pretty most everything in DFTU is instantiated at run-time, so while your Unity scene looks empty, it will read the data from the ARENA2 file (Daggerfall's main data) once you hit the play button and start the game.

To learn more about modding for Daggerfall unity, reference these URLs:
https://www.dfworkshop.net/projects/dag ... y/modding/
https://www.dfworkshop.net/projects/dag ... /#settings

Now, if the crux of your question is more about the code base, then I'm afraid I'll have to plea ignorance (hopefully you will still find some utility in my long winded response somewhere). My understanding is that the majority of the core code is centered around properly reading and parsing the ARENA2 file into data that Unity can use (possibly an over-simplification or even flat-out falsehood on my part). I haven't seen in depth documentation on its inner workings, but I also haven't really searched for it. That level of understanding isn't really required for most modding.

Anyhow, good luck and welcome to the DFU community! I'm only an intermediate(-ish) programmer myself, so hopefully I'm not telling you anything too wildly inaccurate.

Post Reply