Toys for the dev team, Cost explanation

For all general, Amia-related discussions.
Post Reply
User avatar
ZoltanTheRed
Posts: 629
Joined: Sat Jun 06, 2020 4:33 pm

Toys for the dev team, Cost explanation

Post by ZoltanTheRed »

The new toys
I've gone ahead and procured a few licenses for JetBrains Rider for a few of the developers to use. Some of you might notice that the monthly donation goal was raised as a result. Rider is an IDE that will allow the developers to more comfortably work using Anvil, a C# framework for Neverwinter Nights that allows programmers to write standard NWScript style code in addition to utilizing a lot of the object oriented niceness of C#. With that also comes a lot of benefits, such as access to packages and patterns that will allow developers to (eventually) design more complicated systems without the hassle of having to deal with NWScript. NWScript is a fine language that does a lot of what you need, but I find that it also promotes some esoteric and troublesome practices that can be mitigated with some short training using Anvil.

Costs, Explained
It has been both asked or more or less stated that the community essentially covers the costs for Amia (mainly in response to my past claims that I'd paid the bills, etc). While this is true, I (who was previously managing the machine) and for the foreseeable future, Jes, essentially only ask for the bare minimum to make sure that the financial burden is lessened to keep the lights on. Essentially, the overall costs are or were:
  1. Long term commitment. It's a lot like renting an apartment. Usually, for more serious providers: when you rent a bare metal machine like I have, there is some period of time that you are committed to paying for the server. I'll go into the reasons for why this was the approach we (Jes and I) went with later in the post. Someone has to shoulder the commitment, and one can see how this would be a cost center if Amia were to fall through.
  2. Man hours. I had to do a lot of infrastructure work to set up Amia to be more easily developed. I more bring this up as it was like working a second full time job for a while. It ate into my family time and a bit of my sanity. I'm not asking to be appreciated or thanked or anything, I mostly just wanted to set the record straight to a few people on the team who I will keep anonymous. The skinny of it is that there were a lot of factors that made it less than ideal to set up Amia to be integrated with git, and there was a fair bit of up front work to be done to create a durable continuous integration pipeline in Jenkins. I could certainly have gone with GitHub Actions, and it would likely have been fine, but I wanted to create a system that was both unrestrained by build time (not a super big deal) and more under our control.
  3. Maintenance. So, I don't exactly pay OVH for the maintenance of the server. When you rent a server with the standard plan, it's up to you, the customer, to add all of the software and do all of the maintenance by yourself. Now I'm an experienced Linux user, so it's not a super big deal for me, but it can be disruptive to my day to day when things break, software needs to be updated, or new things need to be added to satisfy some requirement for the game.
So why mention all of this? What's the point of going into detail for the costs? Well, I was dealing with some nauseating claims behind the scenes that I felt were just a byproduct of miscommunication and misunderstanding. I felt like it might be of benefit for everyone to see all of this laid out so that they can harshly judge me for being a massive nerd see what all is really going into this beyond clicking some buttons and running the server program. NWServer with NWNX could probably run on a pregnancy test that it's so lightweight (exaggeration: but it could run on a really bare bones machine), but the reason I went to all of this effort was so that there would be a strong enough backbone to host things like Redis (which could still be planned, idk), Postgres, and other services if deemed necessary. It was more me gambling on what Amia could become and what it could accomplish given enough time and some good design decisions. Perhaps it was a little naive of me to assume I'd be able to pull some magic with it, but I think I should have been helping other devs skill up instead of spending so much time investing in solo dev work, but that's a mistake to explain for another day.

Thanks for reading if you got this far, I really appreciate the community that Amia has. We've all gone through a lot as a community, good and bad...various teams, drama, eras, crazy plots, fun plots, erp (obviously stands for extended roleplay, duh)...Without the community, a place like this couldn't really exist.
User avatar
Opustus
Posts: 660
Joined: Thu Aug 20, 2020 7:24 pm
Location: Eastern Finland, Joensuu

Re: Toys for the dev team, Cost explanation

Post by Opustus »

As someone who is fairly noobish with NWN code and has now worked roughly 20+ hours with Amia code both inside and outside of Rider, it really facilitates learning too. Everything is in the same place with great search tools so I don't have to constantly switch from notepad to browser to file explorer to github to toolset that gets my head spinning (except when I ruefully must delve into hak stuff), there's great troubleshooting and navigation, it's more visually pleasant and intuitive. Having the Anvil thingy hooked up lets me test stuff on the test server, while for things done without Anvil I have to build an offline test module which is a bit clumsier and doesn't have all the features that the online server does. On top of being a boon to learning and quality, it increases dev work enjoyment which is, you know, enjoyable and therefore valuable in itself but also motivates both learning and quality!
Post Reply