The elephant in the room #1573
Replies: 3 comments 7 replies
-
I wouldn't speak for the others, but for me the life just put other things on my plate. I'm happy to take time an review PRs (as I've done here and there the past few months), but I don't have the time to code more then a few days a quarter for Stride, which is nowhere near enough to keep up the momentum of things. I do plan to finish the serializer generator rewrite when a hack week at work comes around next quarter. Stride could very much use a small team of full time devs to keep up the maintenance on a higher level than we currently have. But for this to happen there needs to be some additional interest from companies who want to use Stride and give back to the community. I know there's been ideas of supporting someone with donations, but the cost of full time maintenance is much higher than donations would permit. I don't think it's something solved easily. Regarding the open PRs - some of them are around graphics, so only contributors more familiar with graphics can review them - some are open because the person who wrote it didn't come back to address feedback or they didn't go pinging anyone after a while of nothing happening. We should do a review of open PRs and try to close down on things - but again it takes time. The key thing there may be is the shared responsibility - with Stride being in the hands of the community and the contributors not forming a coherent core team with goals and time to execute on them, the responsibility gets a little lost. It's too much for any one person to take on themselves and without a team putting time into managing the project there's nobody paying attention to every single thing and it falls through. Last year there was a huge problem with the package deployments. It has been mostly addressed, but we haven't had enough changes to justify frequent releases since. And releasing a few hundred megabytes of new packages with a small change isn't the best idea, unless it's a security fix. For me Stride still has a future and I will be part of it to some degree. I like the codebase and will contribute to it slowly when I have the time. I will be reviewing others code if I have the knowledge to cover it (so for example I can cover code style and patterns even if the key logic is beyond me). Feel free to "at" me 😄 What would be cool to see is small gamedev teams with high C# skill getting involved in making a game with Stride. A huge amount of bugs and fixes will come up when the project is actively used to make stuff. But people aren't engaged because there's bugs, because there's not enough docs, etc. It's a classic chicken and egg problem and the only way through is for somebody to have the time and put in the effort to change the situation. |
Beta Was this translation helpful? Give feedback.
-
Thanks, I'll check Godot out. Looks like .NET 6 support is coming into next release, atleast on some level. Edit: Ok, I checked it out. There is .NET 7 version of Godot4 😀 Godot 3.5 builds to new and old android devices very nicely, 0 issues. Stride codebase is such a mess that it's impossible to add anything. It is fragile. It is undeterministic. It has crazy nupkg mechanism. Stride project isn't going forward until it has been completely refactored in an overhaul. Edit2: I've played with Godot for a day. I'm impressed, .NET 7 works nicely, visual studio debugging, breakpoints. .NET 7 + Android isn't ready yet, but probably later. And Godot codebase has 700x PR / month. |
Beta Was this translation helpful? Give feedback.
-
I would refactor code base so that:
Into
All these add to the development velocity, which is currently in paralysed state due to the build scripts of the solution. This refactoring could be done by starting from empty solution. Add new project Stide.Core, add classes only, no build scripts. Then Stride.Mathematics, .IO etc. Add all leaf class libraries first, then their dependees. Remove #if defines. Put library groups into different repositories: Stride.Core, Stride.Runtime, Stride.Editor, Stride.Asset, Stride.Graphics. This is must, because otherwise you will cause cyclomatic complexity. This game engine has lot to love about and has tonnes of exceptionally good design choices. On many fronts this engine is ahead of others. However, the solution has ballast from .NET framework era past and build scripts needs to be put into bin and be reworked. |
Beta Was this translation helpful? Give feedback.
-
There comes a time in every project's life for self reflection. A stinky fish must be set upon the table and the proverbial elephant or gorilla in the room must be addressed. I'm referring, of course, to Stride's development and momentum. Here is a snapshot of the past month:
Contrast that with the nearest "competitor", Godot:
So where do the differences come from? Godot has 1881 contributors and Stride only has 87. However, the doesn't really explain all the difference. Assuming that all things were equal, we should see a proportional number of each of these metrics. This would mean that we should see something like 26-27 Merged PRs and 8-9 New PRs. Engagement is low, but why?
The engine itself is impressive and has an immense amount of potential. There is clearly a lot of enthusiasm in the Discord channel and some fairly heroic undertakings have been made within the code this year. So what aren't we doing? What seems to hold us back the most? Why aren't we optimizing for the common case and solving the problems that inhibit contributor throughput? Why are there PRs with green check marks and one line of code open since July? Bug bounties are great but pointless if they can't get merged!
Opinion Time:
I've contributed a little to the project. My changes have not been nearly as impactful as many others but that is for a reason. It isn't for lack of ability, it's that all of my contributions sat frozen in an Open PR for months and in some cases years before being merged! That was just to get it merged, I literally started and finished college in the time from when my code was merged to when it was actually deployed in a release of Stride... I want to contribute to this project so bad, but every time I open the code, I remind myself that any changes I make will likely take months to years to even get into the engine. There aren't any weekly or monthly beta releases so I'll have to wire up some janky local NuGet source stuff just to use my own changes.
So to emphasize my point....we have a real problem here. If nothing changes, nothing will change. What are our major hurdles? Is it CI/CD pipeline in TeamCity? Is it lack of reviewers? If I can see a genuine commitment to improvement of contributor throughput from this project, I will contribute more. I'm confident I'm not the only person who feels this way.
Beta Was this translation helpful? Give feedback.
All reactions