Why don't we get anything done?

Friendly conversations, and everything that doesn't fit into the other forums.
45 posts Page 2 of 5
Steve_Yorkshire
Posts: 332
Joined: Tue Feb 03, 2015 10:30 pm
 
  by Steve_Yorkshire » Mon Jan 28, 2019 11:56 pm
we end up like Star Citizen
Can I sell anyone a jpeg of Kork?
Image
Happenstance
Posts: 101
Joined: Sat Apr 11, 2015 9:08 pm
by Happenstance » Tue Jan 29, 2019 1:04 am
I think @
User avatar
Duion
's point about "not getting anything done" has more to do with a lack of visibility regarding the changes people are making, which also goes along with my point about development being fragmented across multiple forks. Tracking down and pulling in all of the WIP things people are working on right now is a big barrier for people interested in improving the code (even more so for the folks looking at the engine for the first time) and makes it hard to leverage the small community we do have. What do we tell people interested in testing out the PBR changes right now? What about testing modules, the editor modifications, and so on? Are we directing them to pull individual branches from some repo tucked away somewhere in the gitosphere?

The git workflow still confuses me at times so I may be way off base here, but I'd love to have one branch that's just a dumping ground for whatever half-baked feature people are working to get into the next release. The expectation would be that code in there is broken, probably won't compile, may self-destruct on use, etc. but it would make pulling down the 'latest, greatest, and most brokenest' version of the codebase a straightforward process. The old HEAD branch from the TGE CVS days fit that description once upon a time whereas the development branch just feels like a place to put finished code that has yet to be officially released.

So to sum up:
1). +1 for more visibility for changes being made right now using whatever means necessary. Making a thread with links to individual repos? OK! Some fancy Discord integration? Great! Training a flock of carrier pigeons to dispense weekly handwritten progress reports, complete with full URL to said progress? Wait, what?!

2). +1 for an updated roadmap, maybe with jumping off points to specific branches to help get people started with WIP features.

3). +1 for an updated management structure. The steering committee concept isn't working but we do need some kind of oversight to help guide development, especially when it comes to merging PRs and setting release goals. I'd look to Godot in this case, their model of having one main person oversee the repo while a couple primary developers influence development direction by tackling the harder features is working. The community fills in the gaps just by using the engine and creating bug reports which act like a natural to-do list for others to submit PRs against.
Bloodknight
Posts: 288
Joined: Tue Feb 03, 2015 8:58 pm
by Bloodknight » Tue Jan 29, 2019 2:47 am
Tracking down and pulling in all of the WIP things people are working on right now is a big barrier for people interested in improving the code (even more so for the folks looking at the engine for the first time)
I'll deal with this first, I'll be forthright, this is utter BS, if somebody else is working on something you want to help with, you talk to them, you don't just walk away and say fuck it somebody else is doing it I can't be arsed. People who do that aren't very good community members, on the whole, they are end users, not helpers.

Also, there are two very distinct groups that you mention here, and neither should be downloading non/half function WIP branches for whole massive loads of reasons. The same reasons that MS doesn't ship windows out 2 years before its ready, not even to the fanbois who want to see what the next windows look like. There are two working branches, the master branch which is and always has been old and stable and the dev branch which is most stable and functional, at no point should any branch on the repo be non-functional.

I mean the mighty epic has only 2 -3 branches per release, a tagged branch and a development branch, it has all sorts of others but they are sub-branches/modules maintained by specialists in that particular area of the engine, and they manage with a dozen paid engine dev employees and the odd 25k other potential contributors, this is mirrored or echoed across most of software development and software engineering, you may find a few clusterfucks amongst the FOSS family tree, but you will also find that 99.99% of open source is dead and forgotten, even domestos cant kill as well as open sourcing software.

+1 for an updated management structure. The steering committee concept isn't working but we do need some kind of oversight to help guide development, especially when it comes to merging PRs and setting release goals.
the problem here is that no single volunteer led and run open source project works to what would be considered commercialised schedules, not one; I challenge you to find one because it doesn't exist, you also cannot boss, rush, harass etc volunteer workers, you have no method of threatening them, so you have no option but to wait. if we had a wider community that would help, if we had a community that gave back more; that would help. Look at the number of names that helped in each of the years since the engine went MIT 7 years ago. to me that's indicative of users, not helpers, I'd wager the number of people helping is possibly consistent across an invested dev community, so the smaller the community the less the helpers.

Maybe somebody could do a better job that Jeff and company, but those people don't exist in this community, and if they do they have a) neither the time or the energy Or b) they are working on their own games (see a) If they did, they'd be evident, and they aren't,

You get asshats like duion who has no fucking idea what work actually involves claiming he can do better, its taken him 5 years to make ubergame, I'm not taking time management lectures from somebody like him :p
i'd look to Godot in this case, their model of having one main person oversee the repo while a couple primary developers influence development direction by tackling the harder features is working. The community fills in the gaps just by using the engine and creating bug reports which act like a natural to-do list for others to submit PRs against.
i literally lolled at this because that's is almost exactly how torque works, I'm just wondering how many people are complaining at godot because he hasn't done the bits they want to be added to his engine?

Do you know the difference between torque and godot? torque doesn't get enough money every month to pay 3-4 full-time developers/employees.
Happenstance
Posts: 101
Joined: Sat Apr 11, 2015 9:08 pm
by Happenstance » Tue Jan 29, 2019 4:50 am
My turn.
I'll deal with this first, I'll be forthright, this is utter BS, if somebody else is working on something you want to help with, you talk to them, you don't just walk away and say fuck it somebody else is doing it I can't be arsed. People who do that aren't very good community members, on the whole, they are end users, not helpers.

Also, there are two very distinct groups that you mention here, and neither should be downloading non/half function WIP branches for whole massive loads of reasons. The same reasons that MS doesn't ship windows out 2 years before its ready, not even to the fanbois who want to see what the next windows look like. There are two working branches, the master branch which is and always has been old and stable and the dev branch which is most stable and functional, at no point should any branch on the repo be non-functional.

I mean the mighty epic has only 2 -3 branches per release, a tagged branch and a development branch, it has all sorts of others but they are sub-branches/modules maintained by specialists in that particular area of the engine, and they manage with a dozen paid engine dev employees and the odd 25k other potential contributors, this is mirrored or echoed across most of software development and software engineering, you may find a few clusterfucks amongst the FOSS family tree, but you will also find that 99.99% of open source is dead and forgotten, even domestos cant kill as well as open sourcing software.
I'm not sure what point you thought I was making but this rant doesn't address it. My point was that anyone interested in working on some upcoming release feature has to jump through hoops to do so, regardless of whether they have the technical ability to actually contribute. I'll give you an example: Let's say I'm a developer with some experience with graphics programming. I stumble on Torque3D and see talk on the forums about PBR being an upcoming feature. That's right up my alley so I fork the engine, compile the development branch and find there's no mention of PBR anywhere. I scour the forums and find it's tucked away in some other users's repo, amongst 100 other branches and elsewhere in the forums is a post I missed where that user discusses their most recent changes (maybe a nice thread about PBR being complete and how they're just waiting to PR the whole thing until some other feature is done). Maybe I spend my time sorting through all of that and go on to contribute something meaningful but I'd say based on what's left of this community that's probably not happening.

That example not good enough for you? Let's try another. Let's say I'm a game developer, not particularly good at programming but I like what I'm hearing about 4.0 and decide to get an early look at the new templates, maybe get a jump start on converting my game to the new tech (and 2 years of bug fixes which have yet to be rolled out). I see the latest development branch has some fun looking commits regarding the new templates so I give that a shot. Problem is, I missed that Discord chat someone had a month ago explaining the changes they made to the templates in their own repo that fixed that bug that everybody knows about. On my end, I just spent half a day tracking down the reason the new template causes my game to crash. I post a bug report, get a link to some commit on someone's repo that fixes the problem but that's time I can't get back. Think I'm done testing things. After all, I want to make games not game engines.

The bottom line is this: Keeping up with the development of this engine means tracking 5 or 6 different users and their repos. That might be acceptable to you but ultimately it's another hurdle someone has to overcome to participate. And considering losing just one active contributor means we're losing ~20% of the total community effort I'd say we need to attract all the help we can get.

the problem here is that no single volunteer led and run open source project works to what would be considered commercialised schedules, not one; I challenge you to find one because it doesn't exist, you also cannot boss, rush, harass etc volunteer workers, you have no method of threatening them, so you have no option but to wait. if we had a wider community that would help, if we had a community that gave back more; that would help. Look at the number of names that helped in each of the years since the engine went MIT 7 years ago. to me that's indicative of users, not helpers, I'd wager the number of people helping is possibly consistent across an invested dev community, so the smaller the community the less the helpers.

Maybe somebody could do a better job that Jeff and company, but those people don't exist in this community, and if they do they have a) neither the time or the energy Or b) they are working on their own games (see a) If they did, they'd be evident, and they aren't,

You get asshats like duion who has no fucking idea what work actually involves claiming he can do better, its taken him 5 years to make ubergame, I'm not taking time management lectures from somebody like him :p
Nothing I said had anything to do with harassing volunteers. I said the current steering committee structure is not working, which aligns with what Jeff and others have said. Frankly, there's not enough active participants to even have a 'committee' at this point but we do need more active users with the rights to review & merge PRs and form some kind of consensus on what this version of the engine should be. Right now development on the official repo (you know, the one 100% of people are going to look at first) is stagnant, regardless of what the commit logs show. There's still a significant amount of work to do to get to 4.0 and about 3 people actually focusing on the features outlined in the roadmap. Meanwhile we have a backlog of 60+ PRs right now, some dating back years, because no one with the rights to do so has the time, energy, motivation, or know-how to review, merge, or decline them.
i literally lolled at this because that's is almost exactly how torque works, I'm just wondering how many people are complaining at godot because he hasn't done the bits they want to be added to his engine?

Do you know the difference between torque and godot? torque doesn't get enough money every month to pay 3-4 full-time developers/employees.
People are free to suggest features but they've always maintained an overarching goal for the engine that guides development which means when they reject those requests or PRs there's a reason for doing so. I'm sure some people complain occasionally but that's irrelevant.

And Godot didn't have significant funding until fairly recently but they've used the same structure for years. Up until last year they had one volunteer handling PRs, the main developer knocking out big features and the community formed around that. What's happening here is we have Jeff's thread where he posts fun stuff he's tinkering with that everyone takes as "4.0 UPDATES!" and 4 or 5 other people that lurk in their own repos.

To be clear, this isn't about replacing Jeff or anyone else, it's about forming a structure that works for the community we have. I use Godot as an example because it's an opensource project that's thriving with oversight that's possible to implement here with the limited people we have. Or it can just be a free for all where everyone spins their wheels doing whatever they think is interesting. That's worked well so far.
Bloodknight
Posts: 288
Joined: Tue Feb 03, 2015 8:58 pm
by Bloodknight » Tue Jan 29, 2019 5:41 am
Right now development on the official repo (you know, the one 100% of people are going to look at first) is stagnant, regardless of what the commit logs show.
see this, this is wrong, plain wrong and while I could rant about specific use cases I won't because hypotheticals are hypotheticals, if you go to Github the default download is the development branch, not the master branch so if your entire argument is based in this premise your entire house is built on rocky foundations.

and to yet again point out that your only solution to the 'mismanagement' of torque is to copy a working practice that torque was using before godot was even a thing seems well, not a solution.

And yes my posts are a little ranty 1) because duion is an asshat who hates my guts and is always wrong, and the sentiment is mutually reciprocal, except for the wrong bit, he owns that domain... and because I think you are arguing from a position of ignorance and I am trying to explain things to you and well, offence is not intended even if the tone is not showing that., your partner in crime in this thread... that is duion, don't be like duion...

my point about the harassing etc is that in any other field of endeavour there are incentives, asshole bosses, you name it, motivating or demotivating, the only factors for motivation or demotivation for volunteers are people praising or people shitting on their work, I'm pretty sure everyone here knows all there is to know about software engineering best practices, but you know what makes projects even later? developers doing paperwork, especially when that developer gets maybe 2 hours per night and a few more hours at weekends ignoring their wives and drinking buddies.

Go through your list of complaints and strip out everything that can be fixed with more manpower, see what's left.

now for some ad hominem, which I think you've earned, you know there's a discord channel you have 0 fucking excuses about not knowing what's going on and who is doing it, all you have to do is ask, but no, you come here and provide tbh what sounds like a trolling attack at points.

Jeff would probably love some assistance with PBR Az would probably love some assistance with probes, but nobody asks, and nobody offers, everybody just demands, and complains, nobody wants to touch the engine till its all shiny and fully featured, and nobody wants to help.

Image
Duion
Posts: 1475
Joined: Sun Feb 08, 2015 1:51 am
 
by Duion » Tue Jan 29, 2019 7:16 am
It is not a visibility problem, but a statement of fact and fact is no releases in over 2 years, even though it was planned to have like 4 major releases every year and the steering committee concept worked fine before as it was proven by the fact that we had releases and visible progress.

Sure I know there is development going on, here and there, but it is not visible and if it is not visible it did not happen.

By the way there is almost no visible change to the engines appearance since forever, sure there are updates and bugfixes under the hood, but everyone opening up the engine will see something that looks outdated by 10 years or so.

Other engines have like new updates with fancy new visuals, demos and marketing campaigns etc every few months and we have nothing in that regard, not only do we have nothing, we do not even have people admitting that we should do something in that regard.
Bloodknight
Posts: 288
Joined: Tue Feb 03, 2015 8:58 pm
by Bloodknight » Tue Jan 29, 2019 7:30 am
awesome, we will get somebody to slap a new paint job on it and call it done, fantatstic :)
JeffR
Steering Committee
Steering Committee
Posts: 945
Joined: Tue Feb 03, 2015 9:49 pm
 
by JeffR » Tue Jan 29, 2019 8:06 am
Ok, this is getting fairly heated, so hopefully I don't have to lock this or anything.

There's absolutely some good points brought up in here, and we did some chatting about it in the discord about things to improve on. A highlighting of points that are solid and possible solutions:

Easy to lose track of work being done across different repos/branches
This makes sense and can be helped by whenever I mention something in the workblog, for example, I can link against the appropriate PR or branch so people can keep better tabs on where stuff is handling. Blood is correct that you can also look at the commit history if all else fails to see what and when changes has made, but this is a low-effort cost fix that can assist with people staying on top of things

PRs often sit for a long period of time
Part of this stems out of the limited admin abilities of the GG repo, and I'll start looking into a fork into the Torque3D group so in the future we can likely shift primary development over there so we can better manage/control stuff. In the short term, we'll look at pushing a list of PRs that should get a testing pass so they can be validated or merged in more quickly.
As covered in the discord, part of it is that while, say, I can test a PR, if we don't test a few different builds or platforms, it's hard to say if it's actually rugged enough for a merge-in. This will help deal with that as well, as getting another set or few of eyes on them assuages that problem and we can do merge-ins much more rapidly if we have testing confidence.
Beyond this, is there anything relating to this that would make it easier for people to get into testing PRs? Is it an issue of knowledge of how git works?

Issue tracking
Partially tying into limited admin abilities for activating advanced tracking or the like, but we can still better facilitate this by having a place people can actually note and actually discuss/take ownership of working on standing issues. Could potentially repurpose the Development subforum, as it was originally a sort of curated PR-testing list that didn't get capitalized on much. Making it a place to discuss issues or wishlists for development would probably work alright, since that's in line with the theme of "Development"

Big Ol' Breaky-Build
Having a build that we can roll all the cutting edge stuff right into for quick testing is a good idea in theory, but it has some roadblocks that prevent that from being simple to implement, such as what branches should be rolled in. If it's just flatly broken and can't compile/run is it actually helping anything, etc.
It also adds a level of additional management that needs to be done. If we could figure out some means to have a build script or something to automate that in some way though, then this may not be a bad idea to try.
At minimum, having a dumping ground for "please test this build with X PR or whatnot" in it wouldn't hurt.

Steering Committee
Ties into the PRs and Issue tracking situation. We'll be able to open up roles and help better diffuse responsibility out more on shifting to a repo we have total control over. So we won't change that immediately, but I'll definitely keep it in mind so we can better handle the steering, as it were.

"Everyone's wishes or requests are ignored"
Part of this is just the unfortunately reality of a linear-time universe. Only so much work can be done in man hours at a time and it needs to be prioritized. I've tried to keep the primary push of the engine to moderinizing and expanding it's functionality and other improvements, fixes and expansions have been community driven. Realistically, this won't change at the broad scale, but having a place were we can better discuss wishlists, feature requests we can stick up on the dartboard and the like to better prioritize is a good idea and again we can probably repurpose the Development subforum towards this end.

Hopefully that covers the major talking points. If I missed anything or there's anything productive we can work towards correcting, by all means we can keep having a chat. After all, if people feel there's a problem but don't talk about it, nothing can be worked at.

If this all sounds good to people, I can pretty quickly start by opening up the Development subforum for the above notions, as well as start putting together a topical branch reference list(which going forward I'll be sure to mention any relevant branches in my workblogs, as said above)
Duion
Posts: 1475
Joined: Sun Feb 08, 2015 1:51 am
 
by Duion » Tue Jan 29, 2019 8:47 am
@
User avatar
JeffR

If the current repo setup is a problem, why not change it? Open up a new group and call that the main engine repository and assign roles. I would also suggest to split up the repo into core engine, game templates and art assets, as otherwise it gets too big and complex, I mean you want to go modular anyway, so why not go all the way.

I mean any plan is better than no plan at all. If you are the one skilled enough to maintain the repo, why not become the primary maintainer. It worked with this forum as well, if @
User avatar
LukasPJ
would not have created it, even though almost everyone else was against it, we still would sit around at the inactive garagegames drowning in spam getting nowhere. So why not do the same with the repo, ignore everyone else that contributes nothing.
Bloodknight
Posts: 288
Joined: Tue Feb 03, 2015 8:58 pm
by Bloodknight » Tue Jan 29, 2019 12:05 pm
Creating a forked yet standalone repo is actually not as complicated as it looks, this means that you can add already functioning forks as extra remotes to merge changes in either direction. This means if you already have a code base that you are using for a game you just need to add the new V4 as a remote and you can merge as normal. Making PRs will require re-forking the new V4 repo, but like the earlier example, adding your own repo as a remote to your fork means you can merge into the new fork and then PR pretty easily if you have some work already completed.

This fork would then be wholly independent of GarageGames in terms of control, the control would rest firmly in Jeffs hands + whoever he selects as 'co-owners' of the repo. Once this is done teams are easily set up by admin/owners so that different people have different levels of access to different repos. For example, if you are a plugin developer or wish to upgrade and maintain one of the other plugins that have been open-sourced and abandoned then these repositories could be set up under the new organisation.

so, in summary, this would
  • maintain code parity with current repos
  • Be independent of GG control
  • Allow the owners to have more flexible control
  • Potentially able to support community plugins under the same organisational umbrella.
Obviously, a much larger set of documentation would be needed to support the new organisation, setting out some 'standardised' methodology so that when users arrive they can be directed to stable branches, old versions that support different technologies, unstable works in progress.

The idea of splitting off the templates has been discussed in the past, personally, I think it's a good idea, tho yet again, extra documentation would be needed as well as systems in place to ensure that we have the tag alignments correctly set up. As a secondary benefit tied into better admin flexibility teams could be set up to maintain the templates, for example, I'm working on the RPG template, so I could potentially update the template without needing the main devs to mess around checking and then merging in PRs. Another advantage of that system is that I like say the plugin owners could do all that and at the same time be in control of the PRs for those repos, again, saving the main devs time and effort. It also means that people who arent super genius math brained coders can at least contribute to improving the demos, examples and plugins via art and scripting.

The documentation should also be open to editing, this is something else that people can do to help the engine as a whole, and yet again take some of the workloads from the main devs.
45 posts Page 2 of 5

Who is online

Users browsing this forum: No registered users and 3 guests