-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Additional Developer “Getting Started” Documentation #9812
Comments
You don't really need to analyze the entire codebase, I personally believe there are two things enough for a new contributor (who of course knows C# and has a basic knowledge of game development) to get familiar with osu!lazer codebase:
after that, all that's left for the new contributor is reading on the https://github.com/ppy/osu/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue list as a good start and attempt fixing them, by debugging on the relevant parts of the codebase, understanding what's wrong, attempt fixing, testing by adding a test method case in the relevant test scene, or create one if there's none, and finally PR the fix. |
While I can sympathise with the feeling of being daunted with the codebase at first (and there are things that need more documentation, especially framework-side), I don't think the current state is so bad that you would have to "blindly" look through code to find some place. Namespacing, string searching, looking at tests should all help locate the particular area you are looking for with relative ease. Those are generally the best techniques when coming into a codebase of this size; you shouldn't be looking to instantly be productive. The thing with documentation is that it comes with an upkeep price. The project is slowly transitioning out of the rapid phase of development, but that phase is not over yet. Having docs detailed to the point you seem to desire comes with a significant upkeep cost, and I'd argue that it's impractical in the long term with the resources that we have. (I'm also skeptical as to how much diagrams are worth, but I suppose that's a personal opinion.) Also, as mentioned in the contribution guidelines, you are free to ask for advice both in issue threads and on the osu!dev discord. |
Yea that is true, I suppose I should have worded it more as a list of good things to document and request that some pieces to be selected. My goal wasn’t suggesting a full detailed documentation of everything, just some key overviews to jump start the process. I did eventually find the framework page which does actually have some good information there, perhaps a good start would be to add a more clear link of that to the project readme. |
Framework-side there is an issue open tracking areas that need more docs (ppy/osu-framework#3233). I guess this could be one for the game itself if needed. |
It would be helpful if you mention exactly what you were struggling to find so we can either add xmldoc or point you in the right direction. |
As someone who jumped blindly into the code to make a ruleset all my issues were resolved by just F12ing to understand how a given group of classes work. Not that docs aren't useful, but I believe the current naming is sufficient to quickly understand how the code works. |
Describe the new feature:
Adding some extra documentation and overviews of the codebase to make it easier for a new contributor to jump in without spending a lot of time blindly sifting through code. What is being looked for here is more general diagrams and/or descriptions of the stack, how code is organized (ie which groups of files do X, and where to look when wanting to make changes to Y), and other helpful suggestions on getting started.
This is being requested to aid developers who are newer to this project and/or who don’t have the free time to carefully analyze the entire codebase just to get started.
Proposal designs of the feature:
There already are some good diagrams such as Gameplay Clocks and Hitobject sample lookups but obviously these are on fairly specific topics. Additional diagrams like these both about other specific topics and (more importantly) the general stack as a whole would be great.
This request is for all of lazer/the codebase as a whole, but also I am personally interested in contributing to the Lazer Tournament client, so it would be awesome if some consideration could be made there as well when making this documentation.
The text was updated successfully, but these errors were encountered: