Difference between revisions of "Developer Central"

Jump to navigation Jump to search
485 bytes added ,  09:51, 10 August 2023
Added Joining the team subheading
m (→‎First steps: Change reference to IRC to Libera)
(Added Joining the team subheading)
 
(7 intermediate revisions by 6 users not shown)
Line 3: Line 3:
== Getting started ==
== Getting started ==
* The first thing you need to be able to do is [[Git#Retrieving_the_code|get the ScummVM code]] from our [[Git]] repository.
* The first thing you need to be able to do is [[Git#Retrieving_the_code|get the ScummVM code]] from our [[Git]] repository.
* Fork [https://github.com/scummvm/scummvm ScummVM main Git repository], this will be your working space
* Then you should [[Compiling ScummVM|compile ScummVM]].
* Then you should [[Compiling ScummVM|compile ScummVM]].
* If you are new to open source, you can also try reading https://opensource.guide/how-to-contribute/
* If you are new to open source, you can also try reading https://opensource.guide/how-to-contribute/
Line 55: Line 56:


=== First steps ===
=== First steps ===
The OSystem API shields game engines and gui code from the actual platform the software is running on. The backends code is the only part of the code base that is platform dependent. So if you want to work on a game engine for example you will need to look at the OSystem API to know what you can do in the engine, but you can ignore everything in the backends code as you don't need to know how the OSystem API is actually implemented. On the other hand if you wand to port ScummVM to a new platform, the backends code is what you will want to look at.
The OSystem API shields game engines and gui code from the actual platform the software is running on. The backends code is the only part of the code base that is platform dependent. So if you want to work on a game engine for example you will need to look at the OSystem API to know what you can do in the engine, but you can ignore everything in the backends code as you don't need to know how the OSystem API is actually implemented. On the other hand if you want to port ScummVM to a new platform, the backends code is what you will want to look at.


You can start by browsing a bit the source code to see how it maps to the description above, and then depending on your interests select one piece of code to look at in more details. For example if you are interested in ports, look at how one specific port is implemented. Or if you are interested in game engines, look at one engine.
You can start by browsing a bit the source code to see how it maps to the description above, and then depending on your interests select one piece of code to look at in more details. For example if you are interested in ports, look at how one specific port is implemented. Or if you are interested in game engines, look at one engine.
Line 87: Line 88:


Individual engine sub-teams decide by themselves on the process. For example currently the SCI development is performed via PRs as well for any sizeable changes. It is up to that sub-team to drop this rule any time or make something even stricter. Just make sure you continue enjoying hacking the ScummVM code.
Individual engine sub-teams decide by themselves on the process. For example currently the SCI development is performed via PRs as well for any sizeable changes. It is up to that sub-team to drop this rule any time or make something even stricter. Just make sure you continue enjoying hacking the ScummVM code.
== Joining the Team and expectations ==
There are covered on the [[Team Onboarding]] page.


== For Engine authors ==
== For Engine authors ==
Line 101: Line 107:
* When your engine is ready to be playtested and supported, please follow the [[HOWTO-Engine Release|How To Release Engine]] guide
* When your engine is ready to be playtested and supported, please follow the [[HOWTO-Engine Release|How To Release Engine]] guide
* On October 3, 2020, we have our engine plugins API changed please follow [[HOWTO-Convert-Plugins|How to Convert Plugins]] guide if you started your engine development prior to that
* On October 3, 2020, we have our engine plugins API changed please follow [[HOWTO-Convert-Plugins|How to Convert Plugins]] guide if you started your engine development prior to that
* See the [[List of External Projects]] for a list projects and tools that might be candidates for merging into ScummVM in the future. Or It may at least save some duplication of effort if a game you want to add support for has already had work done on it.


== For Backend authors ==
== For Backend authors ==
Line 108: Line 115:
== For Web site maintainers ==
== For Web site maintainers ==
If you want to update the main web site:
If you want to update the main web site:
* Update the files you want in the scummvm-web project
# Update the files you want in the scummvm-web project
* Trigger http://www.scummvm.org/site-update/ URL. (Ask sev for an account)  
#Go to https://www.scummvm.org/admin/ and log in (ask sev for an account)
* This is also covered in more detail by the relevant section of the Admin HOWTO [[HOWTO-Admin#How_to_edit.2Fupdate_webpages|here]].
#Click "ScummVM.org manual site update"
This is also covered in more detail by the relevant section of the Admin HOWTO [[HOWTO-Admin#How_to_edit.2Fupdate_webpages|here]].


If you want to regenerate from the data spreadsheet:
If you want to regenerate from the data spreadsheet:
* composer update-data
* composer update-data


== Contribution guide for technical writers ==
== Contribution guide for technical writers ==
Line 143: Line 150:
* macOS: Pip3 is installed if you install Python3 with Homebrew.
* macOS: Pip3 is installed if you install Python3 with Homebrew.
   
   
3. Use pip3 to install [https://www.sphinx-doc.org/en/master/usage/installation.html Sphinx], [https://sphinx-panels.readthedocs.io/en/latest/#installation sphinx-panels], [https://pypi.org/project/sphinx-tabs/ sphinx-tabs], [https://pypi.org/project/m2r2/ m2r2], and the [https://github.com/readthedocs/sphinx_rtd_theme Read the Docs theme].
3. Use pip3 to install [https://www.sphinx-doc.org/en/master/usage/installation.html sphinx], [https://sphinx-panels.readthedocs.io/en/latest/#installation sphinx-panels], [https://pypi.org/project/sphinx-tabs/ sphinx-tabs], [https://pypi.org/project/m2r2/ m2r2] and [https://github.com/readthedocs/sphinx_rtd_theme sphinx-rtd-theme].


4. [https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/set-up-git Install Git], if you don’t have it already.
4. [https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/set-up-git Install Git], if you don’t have it already.
Line 214: Line 221:
* @scummvm.org forwarding address
* @scummvm.org forwarding address
* DEVS status in our [[Discord Server]]
* DEVS status in our [[Discord Server]]
* operator status in our [[IRC Channel]] #scummvm @ freenode
* operator status in our [[IRC Channel]] #scummvm @ libera.chat
* moderator status on ScummVM [[Forums]] and appropriate badge "ScummVM Developer" or "ScummVM Porter" or special one
* moderator status on ScummVM [[Forums]] and appropriate badge "ScummVM Developer" or "ScummVM Porter" or special one
* ScummVM [[Wiki]] account
* ScummVM [[Wiki]] account

Navigation menu