Changeset - r26446:32d6b835a20f
[Not reviewed]
master
0 1 0
krysclarke - 23 months ago 2022-10-17 06:52:14
110656065+krysclarke@users.noreply.github.com
Fix: Typo and grammatical correction in CONTRIBUTING.md (#10085)
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
CONTRIBUTING.md
Show inline comments
 
@@ -191,50 +191,50 @@ You may also want the guide to [compilin
 
### What are the goals of the official branch?
 

	
 
The main goals of the official branch are:
 

	
 
- Stay faithful to the original gameplay from Transport Tycoon Deluxe
 
- Improve the user interface
 
- Allow extending the gameplay with add-ons / mods via supported content APIs
 
- Provide a (relatively) stable core for both players of the official branch, and for authors of add-ons and maintainers of patchpacks
 

	
 
In contrast, extending or altering the gameplay of the base game is not encouraged.
 

	
 
The rationale behind these goals is that people have different opinions about what OpenTTD is and what it should be.
 
When it comes to gameplay, there are at least these groups of people:
 

	
 
- *Model railway (mostly singleplayer)*: build "realistic" landscapes, roleplay a world, or even replicate historical scenarios
 
- *Economical challenge (mostly singleplayer)*: run a business with economical challenges
 
- *Transport challenge (singleplayer or cooperative multiplayer)*: build efficient track layouts with high cargo throughput and tons of vehicles
 
- *Competitive speed run (competitive multiplayer)*: maximize some goal in some limited amount of time
 

	
 
When it comes to gameplay features there are at least these groups of interests:
 

	
 
- *Control freak:* micromanagement like conditional orders, refitting and loading etc.
 
- *Casual:* automatisation like cargodist, path based signalling etc.
 

	
 
To please everyone, the official branch tries to stay close to the original gameplay; after all, that is what everyone brought here.
 
The preferred method to alter and extent the gameplay is via add-ons like NewGRF and GameScripts.
 
To please everyone, the official branch tries to stay close to the original gameplay; after all, that is what brought everyone here.
 
The preferred method to alter and extend the gameplay is via add-ons like NewGRF and GameScripts.
 

	
 
For a long time, the official branch was also open to features which could be enabled/disabled, but the corner-cases that came with some configurations have rendered some parts of the code very complicated.
 
Today, new features have to work with all the already existing features, which is not only challenging in corner cases, but also requires spending considerable more work than just "making it work in the game mode that I play".
 

	
 
The preferred method to introduce new gameplay features is to extend the content APIs, supporting ever more add-on content / mods.
 

	
 
This moves conflict-solving away from the codebase to content authors / players.
 
It is more accepted for add-ons not working together than the base game not working with certain setting combinations.
 

	
 
In general the game should allow anything that doesn't violate basic rules, but it should warn players if they take potentially dangerous or "stupid" actions.
 

	
 
For example, players are not prevented from starting vehicles without orders, but will receive a warning about vehicles having too few orders.
 
This lack of limitation has led to players challenging themselves to create networks where all vehicles have no orders, increasing gameplay possibilities.
 

	
 
### I do not agree with the goals of the official branch, what can I do instead?
 

	
 
Fork!  There is a rich history of experimental patches for OpenTTD.
 

	
 
Many of these will never be accepted for core, but are creative and interesting ways to modify OpenTTD.
 

	
 
Sometimes patches are combined into long-running patchpacks, modified OpenTTD versions which can be downloaded by anyone, or modified OpenTTD clients for dedicated multiplayer servers.
 

	
 
One of the reasons to keep core relatively stable is to make life easier for patch authors and patchpack maintainers where possible.
 

	
0 comments (0 inline, 0 general)