Metody wspierania

Godot Engine jest projektem nienastawionym na zysk, skupioną wokół idei wolnego oprogramowania. Prawie wszyscy (oprócz głównego dewelopera Juana, więcej na ten temat poniżej) deweloperzy pracują pro bono w swoim czasie wolnym, z osobistego zainteresowania i z miłości do tworzenia wolnego i otwartego silnika wyjątkowej jakości.

Oznacza to, że aby dobrze się rozwijać, Godot potrzebuje jak największej liczby użytkowników zaangażowanych w pracę przy silnika. Istnieje wiele sposobów, aby pomóc w realizacji tak dużego projektu, dzięki czemu każdy będzie mógł wnieść coś pozytywnego do silnika, niezależnie od swoich umiejętności:

  • Be part of the community. The best way to contribute to Godot and help it become ever better is simply to use the engine and promote it by word-of-mouth, in the credits or splash screen of your games, blog posts, tutorials, videos, demos, gamedev or free software events, support on the Q&A, forums, Contributors Chat, Discord, etc. Participate! Being a user and advocate helps spread the word about our great engine, which has no marketing budget and can therefore only rely on its community to become more mainstream.

  • Twórz gry. Nie jest tajemnicą, że aby przekonać nowych użytkowników, a w szczególności branżę, że Godot jest ważnym graczem na rynku, potrzebujemy świetnych gier z Godotem. Wiemy, że silnik ma duży potencjał, zarówno dla gier 2D jak i 3D, ale biorąc pod uwagę jego młody wiek wciąż brakuje nam dużych wydawnictw, którzy zwrócą uwagę na Godota. Kontynuuj więc pracę nad swoimi wspaniałymi projektami, każda nowa gra zwiększa naszą wiarygodność na rynku gier!

  • Zaangażuj się w rozwój silnika. Może to być poprzez dodawanie kodu poprzez pull requesty, testowanie wydań deweloperskich lub programu kompilowanego bezpośrednio z git master, zgłaszanie błędów lub sugerowanie ulepszeń w issue trackeru, ulepszanie oficjalnej dokumentacji (zarówno dokumentacji klas, jak i samouczków) oraz jej tłumaczeń. W kolejnych sekcjach omówiono każdy z tych "bezpośrednich" sposobów przyczyniania się do wspierania silnika.

  • Donate. Godot is a non-profit project, but it can still benefit from user donations for many things. Apart from usual expenses such as hosting costs or promotional material on events, we also use donation money to acquire hardware when necessary (e.g. we used donation money to buy a MacBook Pro to implement Retina/HiDPI support and various other macOS-related features). Most importantly, we also used donation money to hire core developers so they can work full-time on the engine. Even with a low monthly wage, we need a steady donation income to continue doing this, which has been very beneficial to the project so far. So if you want to donate some money to the project, check our website for details.

Pisanie kodu silnika

Możliwość studiowania, używania, modyfikowania i redystrybucji modyfikacji kodu źródłowego silnika są podstawowymi prawami, które daje wam licencja Godota MIT, czyniąc go wolnym i otwartym oprogramowaniem.

As such, everyone is entitled to modify Godot's source code, and send those modifications back to the upstream project in the form of a patch (a text file describing the changes in a ready-to-apply manner) or - in the modern workflow that we use - via a so-called "pull request" (PR), i.e. a proposal to directly merge one or more Git commits (patches) into the main development branch.

Pisanie kodu silnika ma dwie duże zalety:

  • Your own code will be reviewed and improved by other developers, and will be further maintained directly in the upstream project, so you won't have to reapply your own changes every time you move to a newer version. On the other hand it comes with a responsibility, as your changes have to be generic enough to be beneficial to all users, and not just your project; so in some cases it might still be relevant to keep your changes only for your own project, if they are too specific.

  • The whole community will benefit from your work, and other contributors will behave the same way, contributing code that will be beneficial to you. At the time of this writing, more than 1000 developers have contributed code changes to the engine!

To ensure good collaboration and overall quality, the Godot developers enforce some rules for code contributions, for example regarding the style to use in the C++ code (indentation, brackets, etc.) or the Git and PR workflow.

A good place to start is by searching for issues tagged as junior jobs (or Hacktoberfest during October) on GitHub.

Zobacz także

Techniczne szczegóły na temat przepływu pracy PR są opisane w odrębnej sekcji, Pull request workflow.

Szczegóły na temat wytycznych stylu kodu oraz narzędzia clang-format używanego do egzekwowania ich są opisane w Styl pisania kodu źródłowego Godota.

All pull requests must go through a review process before being accepted. Depending on the scope of the changes, it may take some time for a maintainer responsible for the modified part of the engine to provide their review. We value all of our contributors and ask them to be patient in the meantime, as it is expected that in an open source project like Godot, there is going to be way more contributions than people validating them.

To make sure that your time and efforts aren't wasted, it is recommended to vet the idea first before implementing it and putting it for a review as a PR. To that end, Godot has a proposal system. Its usage is encouraged to plan changes and discuss them with the community. Implementation details can also be discussed with other contributors on the Godot Contributors Chat.

Informacja

Proposals are only required when working on an enhancement or a new feature. Bug reports are sufficient for fixing issues.

Testowanie i zgłaszanie problemów

Innym sposobem na udoskonalenie silnika jest testowanie niestabilnych wersji programu i zgłaszanie problemów. Pomocne jest również zgłaszanie problemów wykrytych w stabilnych wersjach, tak aby można je było naprawić w przyszłych wersjach.

Testowanie wersji deweloperskich

Masz wiele możliwości by pomóc z testowaniem:

  • Skompiluj sam silnik ze źródła, postępując zgodnie z instrukcjami zawartymi na stronie Kompilowanie dla twojej platformy.

  • Testuj oficjalne przedpremierowe wydania tuż po ich ogłoszeniu (zazwyczaj na blogu i innych platformach społecznościowych), takie jak alfa, beta i kandydaci do wydania (RC).

  • Testuj tylko "zaufane" kompilacje; po prostu zapytaj członków społeczności o wiarygodnych dostawców. Jeśli to tylko możliwe, najlepiej jest użyć oficjalnych plików binarnych lub skompilować się samemu, aby mieć pewność co do ich bezpieczeństwa.

As mentioned previously, it is also helpful to keep your eyes peeled for potential bugs that might still be present in the stable releases, especially when using some niche features of the engine which might get less testing by the developers.

Zgłaszanie problemu na GitHubie

Godot uses GitHub's issue tracker for bug reports and enhancement suggestions. You will need a GitHub account to be able to open a new issue there, and click on the New issue button.

Zgłaszając błąd, należy pamiętać, że proces ten jest podobny do wizyty u lekarza. Zauważyłeś symptomy, które sprawiają, że myślisz, że coś może być nie tak (silnik się zacina lub wyłącza, niektóre funkcje nie działają zgodnie z oczekiwaniami itp.). Zadaniem zespołu zajmującego się znajdowaniem i opisywaniem błędów i programistów jest pomoc w postawieniu diagnozy problemu, z którym się zetknęliście, tak aby można było zidentyfikować i zająć się faktyczną przyczyną błędu.

Dlatego powinieneś zawsze zadawać sobie pytanie: jakie istotne informacje należy podać, aby inni użytkownicy Godot mogli zrozumieć błąd, zidentyfikować go i, miejmy nadzieję, naprawić. Oto kilka z najważniejszych informacji, które należy zawsze podawać:

  • **System operacyjny**Czasami błędy są specyficzne dla danego systemu, tzn. występują tylko w systemie Windows lub tylko w systemie Linux itp. Jest to szczególnie istotne dla wszystkich błędów związanych z interfejsami OS, takimi jak zarządzanie plikami, wejściami, okienkami, dźwiękiem itp.

  • Sprzęt. Czasami błędy są specyficzne dla sprzętu, tzn. występują tylko na niektórych procesorach, kartach graficznych itp. Jeśli jesteś w stanie, pomocne może być umieszczenie informacji o twoim sprzęcie.

  • Godot version. This is a must-have. Some issues might be relevant in the current stable release, but fixed in the development branch, or the other way around. You might also be using an obsolete version of Godot and experiencing a known issue fixed in a later version, so knowing this from the start helps to speed up the diagnosis.

  • How to reproduce the bug. In the majority of cases, bugs are reproducible, i.e. it is possible to trigger them reliably by following some steps. Please always describe those steps as clearly as possible, so that everyone can try to reproduce the issue and confirm it. Ideally, make a demo project that reproduces this issue out of the box, zip it and attach it to the issue (you can do this by drag and drop). Even if you think that the issue is trivial to reproduce, adding a minimal project that lets everyone reproduce it is a big added value. You have to keep in mind that there are thousands of issues in the tracker, and developers can only dedicate little time to each issue.

When you click the New issue button, you should be presented with a text area prefilled with our issue template. Please try to follow it so that all issues are consistent and provide the required information.

Wspieranie dokumentacji

W Godocie istnieją dwa oddzielne zasoby zwane "dokumentacją":

  • The class reference. This is the documentation for the complete Godot API as exposed to GDScript and the other scripting languages. It can be consulted offline, directly in Godot's code editor, or online at Godot API. To contribute to the class reference, you have to edit the XML file corresponding to the class and make a pull request. See Contributing to the class reference and Class reference writing guidelines for more details.

  • The tutorials and engine documentation and its translations. This is the part you are reading now, which is distributed in the HTML format. Its contents are generated from plain text files in the reStructured Text (rst) format, to which you can contribute via pull requests on the godot-docs GitHub repository. See Wspieranie dokumentacji for more details.

Contributing translations

By uczynić Godot dostępnym dla wszystkich, włączając użytkowników, którzy mogą woleć zasoby w swoim ojczystym języku a nie angielskim, nasza społeczność pomaga tłumaczyć zarówno edytor jaki i jego dokumentację na wiele języków.

Tu znajdziesz więcej Editor and docs localization.