Developing a Contributor Skillset

OOC General Discussion

Moderators: Active DMs, Forum Moderators

Post Reply
User avatar
Amateur Hour
Posts: 550
Joined: Wed Dec 02, 2020 1:50 am

Developing a Contributor Skillset

Post by Amateur Hour » Sat May 28, 2022 12:33 pm

Inspired by Kenji's comment here.

I'm an app developer as my day job, and I'm sure I'm not the only one who has a coding background on this server who could turn over some free time to help keep the technical aspects of the server going and growing. This said, I (and I'm sure many others) have never touched the technical aspects of NWN before. Does anyone have any advice for building up Arelith-specific contributor-specific skills before applying to be a contributor?

Rolled: Solveigh Arnimayne, "Anna Locksley"
Shelved: Ninim Elario, Maethiel Tyireale'ala
Current: Ynge Redbeard, ???


User avatar
In Sorrow We Trust
Contributor
Contributor
Posts: 1074
Joined: Tue Nov 19, 2019 7:10 am

Re: Developing a Contributor Skillset

Post by In Sorrow We Trust » Sat May 28, 2022 12:40 pm

Learn C++ or NWScript basics. Understand how GitHub works. Be able to be decent with documentation. All else can be learned.

User avatar
Mattamue
Arelith Silver Supporter
Arelith Silver Supporter
Posts: 468
Joined: Mon Dec 10, 2018 1:45 am

Re: Developing a Contributor Skillset

Post by Mattamue » Sat May 28, 2022 1:17 pm

https://discord.gg/hmuEkNxYqw nwnx discord
https://discord.com/invite/pWVqMRX vault discord also a place to talk about dev
https://github.com/Daztek/NWNX-WSL I understand you essentially have to setup Linux to run your own server... And I assume test code? Either way, wsl1 or wsl2 are both easy to setup... I wouldn't mess with docker to start with... And I don't know if that's how arelith does it
https://nwnlexicon.com/index.php?title= ... The_Basics I posted in the other thread, the lexicon itself just has lots of info besides that tutorial

I've only dipped my toe in this stuff, so I'm sure there's more and better links, but these are what I've gotten started with

Who is the audience for this post?


Kalopsia
General Admin
General Admin
Posts: 1469
Joined: Thu Sep 28, 2017 10:34 am
Location: Concourse Capaneus
Contact:

Re: Developing a Contributor Skillset

Post by Kalopsia » Sat May 28, 2022 1:19 pm

NWScript is very similar to C in many ways.
To get started, I'd recommend having a look at base game scripts (bioware_nss.7z), as well as the NWN Lexicon, which is an amazing resource to read up on engine functions and the like. Arelith is also using NWNX a lot since it allows us to bypass various engine limitations.

User avatar
garrbear758
Posts: 1521
Joined: Tue Jun 26, 2018 4:20 am

Re: Developing a Contributor Skillset

Post by garrbear758 » Sat May 28, 2022 7:05 pm

NWN Lexicon tutorials.
You've done it [Garrbear], you've kicked the winemom nest. -Redacted

User avatar
Kenji
Arelith Platinum Supporter
Arelith Platinum Supporter
Posts: 1496
Joined: Mon May 14, 2018 9:14 am
Location: Mechanics Dungeon

Re: Developing a Contributor Skillset

Post by Kenji » Sat Jun 11, 2022 11:15 am

The other developers brought up excellent materials and programs to prepare one for becoming a code contributor for Arelith.

I'm going to piggyback on the above links/posts/programs and make a list for anyone interested in developing the skill set to become a code contributor for Arelith:
  1. Using GitHub, how does it function in a team contribution setting? Learn the basics of making a new branch from master, pulling, committing, pushing, and creating a pull request.
  2. Learning to apply the same logic and process used in almost every programming language. Then learn the syntax specific for NWScript, which is very similar to, if not based on, C++.
  3. Using a very user-friendly development environment. I use Sublime and GitHub desktop personally, but others have succeeded with NotePad++ or other dev environments.
  4. Setup AreDev. It is an emulator-like testing environment on the contributor's end to help test changes to scripts with live compiling. AreDev speeds up the development and testing process by a thousand-fold (I'm not kidding, Silvard pioneered this and later on improved by Hoodoo. Very revolutionary)
  5. Understanding what our haks are made of. What editing the .2da files and .json files would change to the module.
  6. Using NWToolset, knowing what kind of files we deal with, be it item files (.uti), creature files (.cre), etc., and knowing the individual tools that can be found on the NWVault that deal with these.
I'd say that #1 to #3 is almost a must, #4 is highly recommended (AFTER one becomes an Arelith Dev will they then have access to AreDev), and #5 and #6 are usually optional but good knowledge to have regardless.

To some, contributing codes will come very naturally, and they (Kalopsia, Sincra, and Hoodoo come to mind) will fly right off the wheels and do wonders for our server right away. Many will struggle for months before making the first commit and changes to master that are announcement-worthy. That was me, and it took me about six months' worth of time just learning some of the above to begin even doing a fraction of what Kalopsia, Sincra, ActionReplay, Garrbear, and numerous other developers have done.

One thing I wish I did was to ask as many questions as possible for every step. Trying to figure everything out by yourself will be time-intensive and isolating. The team has always been very friendly and helpful every step of the way.

User avatar
Liareth
General Admin
General Admin
Posts: 1167
Joined: Mon Sep 08, 2014 8:25 am

Re: Developing a Contributor Skillset

Post by Liareth » Sat Jun 11, 2022 11:46 am

My first time coding in NWN was simple: I made a silly NPC say a silly line every time you clicked on them. Over time, as I learned how things worked, I made my silly NPC teleport to any dropped items, cast a spell on them to destroy them, say one of the aforementioned silly lines, then teleport back to her starting postiion. When you don't have any context it can be overwhelming to think about things like version control, server hosting, and NWNX. Start with booting up the toolset, making an empty module, adding an area, then learning the very basics of nwscript by making your very own silly NPC. The advanced stuff can come later.

Post Reply