So a number of complaints, issues, grievances, dismays, challenges, hangups, roadbumps or whatever other words for problems or inconveniences have been sorta... around, but haven't really been enough of an issue to frontline with the limited time everyone has to work on stuff.
Some of that is to be expected, of course, but it doesn't excuse it either.
So, over the last few days I've been talking to Lukas and others about what issues have come up and what can be done to correct them and make everything generally better and more efficient for everyone.
While it won't all get done today, I've been putting together a gameplan that will be implemented in the coming weeks.
As everyone knows, all main development work has been operating out of the GarageGames org on github since the engine's debut as being MIT'd. This has largely worked fine, but over the years GG's response time and on-call support has waned, compounding with people even to this day inquiring if GG is working on the engine, or if GG will fix a bug or whatnot.
I've been the only person with write access to the GG repo as well for a while and while it's WORKED, it's hardly optimal and definitely slow. So it's been something we've been kicking around for a while, but we're going to be pivoting to move all official development(and a bunch of associated, secondary and support stuff) to here: https://github.com/TorqueGameEngines/Torque3D
This gives us complete and total control over all the administrative stuff for the repo and org, which opens up better handling of CI builds, as well as stuff like webhooks so we can have discord bots report when things have been merged, etc, etc.
The Torque3D repo in particular will frontline the 4.0 Preview builds so people are better aware of what's happening relating to that. We originally started working out of my repo for it because of the major changes being expected to do lots of big, awful breakage. While the development branch was understood to be unstable, even people understanding that to be the case aren't fans of 'I can't even launch the program' levels of break as certain issues get hashed out.
Now that we're beyond that level of horrible brokenness and more into 'squashing remaining problems and fleshing out stuff', it can be frontlined. When 4.0 launches officially we'll go back to the classic Master/Development/SpecificVersion model.
The T3Dorg is a little messy at the moment, so it'll get some restructuring, but that'll be the official new home of all mainline development by the DEVGRU. Speaking of DEVGRU...
Development and Community Roles
There's been a lot of grievances pertaining to the lingering legacy of the Steering Committee. When it was originally drafted, the idea was that the members would steer the main development of the engine, and maybe contribute to it a little bit themselves, but it would largely be left to the community members to contribute.
It's an interesting idea, and no doubt works for some projects, but T3D is a fully fleshed out, powerful game engine, and requires a solid expertise to develop and make major improvements on it.
This meant that ultimately, the ones selected to be on the SC often were the ones that had the most in-depth knowledge, and thus were the most suited to actually do development on the engine. Obviously new or less knowledgeable contributors were able to make pull requests and help, but it was practically inevitable that the requirement of deep knowledge of the engine for it's development lead to a principle conflict of how the SC was 'supposed to' operate versus how it did. This lead to an expanded workload many couldn't deal with for 'just' being part of the SC, and over time(and the inability to add anyone new to write access due to falloff of contact with GG) meant that the SC largely evaporated.
As it stands, I'm the last active member of the old steering committee paradigm. Looking back on what it managed when it was running, versus what's been managed since, I'm disinclined to attempt to revitalize such a restrictive and limited system. So, looking forward, and in an effort to correct for the weaknesses it had, while buffing the power of the people that would contribute to the engine, I'm establishing a new principle role:
DEVGRU, a nifty little short name for DEVelopment GRoUp.
The DEVGRU will be made of people that have a deep knowledge of the engine, and contribute and help push it's development forward. You don't necessarily need to be a TOP CONTRIBUTING STAR to be on the DEVGRU, but one does need knowledge of the engine, ability to assist others in the community with their usage of the engine and ability to help guide what the engine needs to improve in addition to contributions to the core development.
The idea of the DEVGRU isn't to sit on some raised throne directing what the peons should do from on high via committee(heh), but instead be the guys down in the muck working to improve the engine and ensure people can use it and know how to use it. Principally because those that know and work with the engine know what it could use to improve.
One doesn't need to be part of the DEVGRU to contribute, of course, but members of the DEVGRU can (and usually will, though it's not an obligation if the persons don't desire the responsibility) have write access on the new T3Dorg repo(as someone has to be able to merge pull requests).
Technically, a group designation isn't required, as development has been moving along steadily this entire time, even without a dedicated leadership group, but what the DEVGRU can be to the community are the people you can message on the discord or forums and know you've got a pretty good chance to get your question answered, or directed to where you could learn about it.
As for the steering direction of the engine itself, it'll probably likely stay how it has been(partially because it seems like no one's really taken issue with this approach). Given that DEVGRU are the ones doing the merging of PRs and a lot of core development, it means that it's up to them to be the guiding hand of the engine's progress, but a critical thing to emphasize for DEVGRU's role there is that it's a community project, and the community's interests(which at it's core, is a good, powerful game engine) is the primary target. People can make suggestions and they'll be considered for future works. If they toss up actual content, code, or works, there's a real dang good chance it'll be accepted, but still considered against the broader goal of the engine's progress. A PR to intentionally make all rendering plaid all the time, while neat, probably doesn't improve the engine over all (Though, to date, people's contributions and the broader engine progress goal haven't really been in conflict, so I doubt much needs to be done there)
Suggesting something doesn't guarantee it'll happen, but we're always more than happy to at least put a note up on the board for consideration as the engine's development continues to progress forward. In cases where direction is unsure even with all of that, I can make the final deciding call.
Conjoined to that, and following on the naming convention, obviously there's the MODGRU - the Moderation Group - who are of course tasked with moderation of what's happening in the community. On the forums, the discord, etc. Their role will pretty much be exactly as it has been, but we'll be emphasizing going forward that if you have any issues with content or behavior on the community, that you should contact someone in the MODGRU to get it sorted out.
And finally, the third group, WEBGRU, named, very cleverly, because they're the Web Group. People in this group will be involved with maintaining the community's online presence. From Lukas working on the forums, to Tony helping with the landing page website to Mack running the twitter, if there's an issue happening on one of the sites, you can hit up the WEBGRU so the right person can get it fixed or updated.
The Landing Page Website
Topically, while a solid site, it hasn't been updated in a while. Part of it is an issue of having someone familiar with the web system and having access in order to do needed renovations and updates to get it back to being a good point of contact for people new to the engine and community. Thankfully I've been working with Dan to get the landing page repo moved over to the T3Dorg, and Tony's offered to help update and maintain the site. Spruce it up, update old information, update the featuresets and some shiney new images/gifs and it should be sitting rather pretty once again.
Me and Blood have been hashing out what to do about the core documentation for the engine and have been slowly working at building out a Read The Docs version for T3D. It generates the web documentation off of a git repo in the T3D org, so maintaining the docs is easier than a completely separate control point which is convenient. We'll be porting, reorganizing and fleshing out the documentation over the coming weeks, and once the basics are good, we'll 100% encourage anyone else to start contributing to it, adding examples, fleshing out definitions, etc.
Speaking of documentation, the wiki's been in a weird limbo state of purpose for a while. Editing Wikis isn't the greatest experience, which is why I don't really do it much, and navigating wikis to find out about a specific thing is often an indirect, or circuitous thing. Which is bad when you're trying to find out if someone documented a thing at all. So the current plan is to figure out what should go where in regards to other documentation points. Most of the info on the wiki can be moved either onto the Landing Page, or the RtD page. Anything left over could likely be moved onto the github's wiki to keep it close to home.
Not much really needs to be done for the discord. I did a bit of organizing on the channels, ensured our local Torque2D boys had proper mod status, and set up the DEV/MOD/WEBGRU groups with colors so persons of interest can easily be picked out for those joining into the community. I'm also working with a few of the guys to plot out some bot integration to help everyone keep up to date on things, such as a way to alert MODGRU if something is happening on the forums, or when PRs are merged to let everyone know it's happened automatically so people are better in the loop on what development progress there is.
Broadly, the state of the forums is fine, but there's a few improvements to be made to make everyone's lives easier. First, given some complains from various members of the community, I'll be updating/tweaking the CoC to better define certain expectations. We don't want people pulling a 'I'm not touching yoooouuuu' routine in an effort to annoy other users after all, so I'm working on wording to make expectations of behavior more clear.
Next, as should already be obvious, role terminology and membership is getting upgraded to the new DEV/MOD/WEBGRU paradigm for consistency and so forum goers know who they can turn to for certain issues.
Also, while it's likely a while out yet because it's something we want to test very thoroughly, me and Lukas have been looking into various updates and expansions for our lovely forum home to make it easier for people to use and easier to maintain for WEBGRU.
One suggestion that came up I like(and relates to what I'd mentioned with Discord Bots) is looking into a development tracker to get a sort of 'cliffs notes' of PR merges and the like of the engine automatically popping on the forums, which is cool and we'll look into.
And, as it's become kinda the main point of contact for people to see how general development of the engine is progressing, I'll be popping out my workblog thread into a workblog subforum in DEVGRU. This'll allow me to make a thread per update which will help a LOT in preventing the main topics on hand from being diluted or overrun with discussion. I love me the discussions that happen with each update, but for people just wanting the news, it can be easy to lose the posts.
A Community Project
This came up in the discord, and I've been talking with a few of the guys about a proper community project to show off 4.0. It's still in the early concepting phase, but as things solidify and a full plan is put together on it, you can be more will be posted on it. The idea of it is a playground to plug in and show off slices or vignettes of engine functionality and gameplay possibilities. So it should not only act as a good demo, but could double as a testbed/benchmark platform too. Multiple birds with one stone, and all that
I think that touches on the big stuff. Quite a bit done and a lot more to do, but I think it's a good gameplan moving forward. It better establishes who new/less familiar community members can turn to, better consolidates, but empowers maintenance and moderation of the community and development, and will make the whole of the community a tighter, better place to come to for all your Torque game development needs