Skip to content

Commit

Permalink
more screenshots, updated contribution guidelines
Browse files Browse the repository at this point in the history
  • Loading branch information
Trilarion committed Nov 13, 2021
1 parent 044a9f9 commit c84f7b2
Show file tree
Hide file tree
Showing 93 changed files with 2,490 additions and 634 deletions.
113 changes: 113 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Contribution guidelines

There are two main ways to contribute content to the OSGL.

### 1. New issue on the [Issue tracker](https://github.com/Trilarion/opensourcegames/issues)

Recommended if you have only small changes to entries or if you have changes in developer or inspiration informations
or if you are not familiar with pull requests.

Please create one issue for each entry that is to be modified/added and provide all the information that is required to
update or create a new entry.

Exception: For reporting screenshot URLs, please use [this issue]().

### 2. Fork the repository and submit a pull request

Recommended if you have many changes and are familiar with pull requests. Please study carefully the information below.

### Requirements for a adding a new entry

A new entry can be created if

- it's about a game, a game maker/editor, a game tool, a framework/engine/library primarily used in games
- features a FOSS license (GPL, MIT, ...) of the code and the code must be publicly available
- a game must be at least in beta (with an executable demo)
- if it's not a game, popularity should be high enough that it is somewhat notable (I'll have to decide on that)

Irrelevant are activity status, the location of the code, or the existence of an inspiration.

### Format of entries

All entries are stored as [markdown](https://en.wikipedia.org/wiki/Markdown) text with some specific conventions in the
[entries](entries) folder. Adding a new entry is as easy as modifying the [template](template.md) and adding the modified
markdown file the [entries](entries) folder. Please observe all conventions stated below.

*Note: Outside of the [entries](entries) folder, no file needs to be changed if the goal of a contribution is to change content only!*

Description of the fields in the [template](template.md). Comments start with "//".

<pre>
# {NAME} // name of the game

- Home: {URL} // project main site(s) (most significant first)
- Media: {URL} // (optional) links to wikipedia and other significant mentions
- Inspiration: {XX} // (optional) names of games used as inspiration for this entry
- State: {XX} // one of {beta, mature}, (optional) "inactive since YEAR"
- Play: {URL} // (optional) link(s) to online play possibilities
- Download: {URL} // (optional) link(s) to download binary (or source if no repository is given) releases
- Platform: {XX} // (optional) list of supported platforms {Windows, Linux, macOS, Android, iOS, Web}
- Keyword: {XX} // list of tags describing the game, first tage is the main category tag, at least one category tag needed
- Code repository: {URL} // code repositories (most significant first)
- Code language: {XX} // programming language(s) used
- Code license: {XX} // license of the code, use "Custom" with comment in () if the license is project-specific
- Code dependency: {XX} // (optional) important third party libraries / frameworks used by the project
- Assets license: {XX} // (optional) license(s) of the assets (artwork, ..)
- Developer: {XX} // (optional) list of developer names

Notes // whatever you want to put up here, focused on the technical aspects

## Building

- Build system: {XX} // (optional) typically one of {CMake, Autoconf, Gradle, ..} but can be more
- Build instruction: {XX} // (optional) link(s) to build instructions offered by the project

Notes // addition build instructions or technical comments you want to put here
</pre>

### Important conventions (please read carefully!)

- For the name of an entry file, use the name of the game, convert to lower case and replace spaces with underlines.
Example: "Alex the Allegator 4" is in file alex_the_allegator_4.md. In the case of a name collision just add something
to make file names unique.
- If there are multiple links, licenses, ... separate them by comma.
- The same link can be assigned to different fields (home could also be the code repository, etc.).
- Put comments in "()" parentheses after each values.
- Remove lines with fields that do not apply to the project or where information is not available otherwise.
- Status active is implied/default unless the optional "inactive since" is present
- All lines starting with '- ' are considered fields.
- No need to add the number of stars/forks/founding year of Git repositories (GitHub, GitLab), that is done automatically regularly
- No need to add or change any text starting with "@", unless you really know what to do.
- No need to modify "code/archives.json", that will be overwritten regularly.
- No need to modify "docs/**" or "entries/screenshots/*" or "entries/tocs/*"

### Developer information

The developer information relates developers to open source games they have participated in. Developer profiles on GitHub,
SourceForge or BitBucket are linked on a developer information and also on the game entries in the developers field.
The relation between developers and games is shown twice to allow for both search directions, i.e. find all developers of
a game or all games of a developer. A consistency check will run regularly on the content and will give precedence to
the developer names stored in the games entries (the games list stored in the developer information will be overwritten).

It is recommended to suggest changes to developer information within an issue on the issue tracker although it's also
possible to modify the [developers file](developers.md), if you know what you are doing. Please add missing developers only
to the "Developer" field in an entry.

### Inspiration information

Inspirations are short pieces of information that collect links to inspirations website or Wikipedia websites and also
link to all entries that have this game as inspiration. Please only edit entries "Inspiration" fields to indicate that a
game has a certain inspiration. If not sure, suggest changes or additions to inspirations within an issue at the issue
tracker (see above).

### Updates to the code base

All Python scripts reside in the code folder, their purpose is:

- checking consistency of the contained entry, developer and inspiration information (maintenance_xxx.py)
- reading and writing markdown files from and to Python dictionaries (with lark grammars *.lark)
- keep a local set of git repositories of the games (archive_update.py)
- synchronize with opensourcegameclones and LibreGameWiki (synchronization/*.py)
- generate the static website that is stored in doc/* (code/html/generate_static_website.py via *.jinja templates)

Help: [MarkDown Help](https://help.github.com/articles/github-flavored-markdown), [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
101 changes: 29 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
# Open Source Games

**Please visit the [Web page](https://trilarion.github.io/opensourcegames/), which renders the content of this list nicely!**
**Please visit the [Web page](https://trilarion.github.io/opensourcegames/), which renders the content of this list
nicely!**

Development **[Blog](https://trilarion.blogspot.com/search/label/osgames)** / **[Statistics](statistics.md#statistics)** about entries
Development **[Blog](https://trilarion.blogspot.com/search/label/osgames)** / **[Statistics](statistics.md#statistics)**
/ **[Contribution](CONTRIBUTING.md)** guidelines

OSGL (open source games list) is a list of open source games, game frameworks and game creation tools. The projects are at least in beta stage with a
code basis that builds into an executable demo. The code must be under a [FOSS](https://en.wikipedia.org/wiki/FOSS)
license that allows modification and sharing by others. For each entry, relevant information is collected regarding
code repositories, download possibilities and build instructions.

Alternatives include [Open Source Clones](https://github.com/opengaming/osgameclones);
[Games hosted on GitHub](https://github.com/leereilly/games); [List of open-source video games](https://en.wikipedia.org/wiki/List_of_open-source_video_games)
on Wikipedia, diverse [Awesome Gaming lists](https://github.com/sindresorhus/awesome#gaming) or the [LibreGameWiki](https://libregamewiki.org/Main_Page).

## Content

[comment]: # (start of autogenerated content, do not edit)
**[Games](entries/tocs/_games.md#Games)** (1499) - **[Tools](entries/tocs/_tools.md#Tools)** (50) - **[Frameworks](entries/tocs/_frameworks.md#Frameworks)** (96) - **[Libraries](entries/tocs/_libraries.md#Libraries)** (16)
Expand All @@ -13,71 +26,24 @@ By platform: **[Windows](entries/tocs/_windows.md#windows)** (541), **[Linux](en

[comment]: # (end of autogenerated content)

A list of open source games, game frameworks and game creation tools. The projects are at least in beta stage with a code basis that builds
into an executable demo. The code must be under a [FOSS](https://en.wikipedia.org/wiki/FOSS) license that allows
modification and sharing by others. For each entry, relevant information is collected regarding code repositories,
download possibilities and build instructions.

Similar collections include [Open Source Clones](https://github.com/opengaming/osgameclones) of popular games;
Popular games, add-ons, maps, etc. [hosted on GitHub](https://github.com/leereilly/games); [List of open-source video games](https://en.wikipedia.org/wiki/List_of_open-source_video_games) on Wikipedia or the [LibreGameWiki](https://libregamewiki.org/Main_Page).

## Contribute

To add or modify entries, please use the [Issue tracker](https://github.com/Trilarion/opensourcegames/issues),
or fork this repository and submit a pull request.

### Adding a new entry

Checklist for a new entry

- Must be a game, a game maker, a game's tool, a framework or a library, used in games
- Must be under a FOSS license (GPL, MIT, ...) and code must be available
- Must be mature or at least in beta (with an executable demo)
- Active or inactive is irrelevant.

All entries are stored as [markdown](https://en.wikipedia.org/wiki/Markdown) text with some specific conventions.
Adding a new entry is as easy as modifying the [template](games/template.md) and adding the modified markdown file in a subdirectory of [games](games).

Description of the fields in the template. Comments start with "//".

<pre>
# {NAME} // name of the game
**See the [Contribution guidelines](CONTRIBUTING.md).**

_{Description}_ // single description line (typically taken from about page of game)

- Home: {URL} // project main site(s) (most significant first)
- Media: {URL} // (optional) links to wikipedia and other significant mentions
- State: {XX} // one of {beta, mature} and optional "inactive since YEAR"
- Play: {URL} // (optional) link(s) to online play possibility
- Download: {URL} // (optional) link(s) to download binary (or source) releases
- Platform: {XX} // (optional) list of supported platforms {Linux, Windows, macOS, Android, ..}
- Keywords: {XX} // list of tags describing the game, first tage is the main category tag
- Code repository: {URL} // code repositories (most significant first)
- Code language: {XX} // programming language(s) used
- Code license: {XX} // license of the code, use "Custom" with comment in () if the license is project-specific
- Code dependencies: {XX} // (optional) important third party libraries / frameworks used by the project
- Assets license: {XX} // (optional) license(s) of the assets (artwork, ..)

// whatever you want to put here

## Building

- Build system: {XX} // (optional) typically one of {CMake, Autoconf, Gradle, ..}
- Build instructions: {URL} // (optional) link(s) to build instructions offered by the project

// whatever you want to put here
</pre>
## License

- If there are multiple links, licenses, ... separate them by comma.
- The same link can be assigned to different fields (home could also be the code repository, etc.).
- Put comments in "()" parentheses (do not put commas in comments).
- Remove lines with fields that do not apply to the project or where information is not available otherwise.
- Status active is implied/default unless the optional "inactive since" is present
- All lines starting with '- ' are considered fields.
See [LICENSE](LICENSE). This work is dedicated to the public domain by waiving all rights to the work worldwide under
copyright law, including all related and neighboring rights, to the extent allowed by law. Additionally, the content is
also licensed (multi-licensed) under the following other licenses: [WTFPL](http://www.wtfpl.net/txt/copying/),
[CC-BY-3.0](https://creativecommons.org/licenses/by/3.0/), [GFDL 1.3](https://www.gnu.org/licenses/fdl-1.3.txt) and
given to the Public Domain (wherever it exists and to the maximum possible extent). I hope that this allows everyone
to just use the content however they like.

Help: [MarkDown Help](https://help.github.com/articles/github-flavored-markdown), [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
An exception are the screenshots (folders: entries/screenshots and docs/screenshots). They are taken from the respective
projects and scaled down, just acting as thumbnails. Their use is considered fair use. However, for that reason they
are excluded from the content license here.

## Background
### Background

I love open source projects and games and I am interested in learning more about building systems.
I see the following benefits of having this database.
Expand All @@ -87,15 +53,6 @@ I see the following benefits of having this database.
- Revival of abandoned games that do not build anymore
- Conversion of old repository formats like CVS to Git

## Disclaimer
### Disclaimer

No warranty whatsoever of the information presented herein for any purpose. There could (will) be errors in here.

## License

See [LICENSE](LICENSE). This work is dedicated to the public domain by waiving all rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.

Additionally, the content is also licensed (multi-licensed) under the following other licenses: [WTFPL](http://www.wtfpl.net/txt/copying/), [CC-BY-3.0](https://creativecommons.org/licenses/by/3.0/),
[GFDL 1.3](https://www.gnu.org/licenses/fdl-1.3.txt) and given to the Public Domain (wherever it exists and to the maximum possible extent).

I hope that this does the trick. But really, just use the content however you like.
No warranty whatsoever of the information presented herein for any purpose. There can (and will) be errors in here.
69 changes: 43 additions & 26 deletions code/html/contribute.jinja
Original file line number Diff line number Diff line change
@@ -1,36 +1,53 @@
{% extends "base.jinja" %}
{% block content %}
<section class="section">
<div class="container">
<div class="box">
<h1 class="title is-size-4">Contribution guide</h1>
<p>Please help improve the content of this site. The preferred way to contribute or give feedback is:</p>
<div class="container content">
<div class="box">
<div class="block">
<h1 class="title is-4">Contribution guide</h1>
<p class="subtitle is-6">Improve or add entries, give feedback.</p>
</div>
<div class="block">
<p>Please help improve the content of this site or give feedback. The preferred actions are:</p>
<ul>
<li>Open an <a href="https://github.com/Trilarion/opensourcegames/issues">issue at the Github page</a>.</li>
<li>Fork the Github project and create a <a href="https://github.com/Trilarion/opensourcegames/pulls">pull request</a> (if you are familiar with that).</li>
<li>Send an email to ...</li>
<li>Create an <a href="https://github.com/Trilarion/opensourcegames/issues">issue at the GitHub page</a>.
Recommended for smaller changes.</li>
<li>Fork the GitHub project and create a <a href="https://github.com/Trilarion/opensourcegames/pulls">pull request</a>.
Recommended for larger changes and if you are familiar with pull requests on GitHub repositories.</li>
</ul>
<p>See also the <a href="https://github.com/Trilarion/opensourcegames/blob/master/CONTRIBUTING.md">Contribution guidelines</a> on GitHub.</p>
</div>
<div class="box">
<div class="block">
<h2 id="games">Improving games/frameworks/tools information</h2>
<p>Entries for open source games, gaming engines and gaming tools are stored as human readable text version in a markdown format (<a href="">example</a>).
For each entry, the database content can be seen when clicking on "Raw entry" below the entry. You can suggest corrections or updates to an entry or a list of entries in one of the following ways:</p>
</div>
</div>
{#- Improving entries #}
<div class="box">
<div class="block">
<h2 id="games" class="is-size-5">Improving games/frameworks/tools information</h2>
<p>Entries for open source games, gaming engines and gaming tools are stored as human readable text version in a
markdown format (<a href="https://raw.githubusercontent.com/Trilarion/opensourcegames/master/entries/0_ad.md">example</a>).
For each entry, the database content can be seen when clicking on "Raw entry" below the entry. You can suggest
corrections or updates to an entry or a list of entries in one of the preferred way specified above (issue at the issue tracker
or GitHub pull request).<br>
Please refer to the <a href="https://github.com/Trilarion/opensourcegames/blob/master/CONTRIBUTING.md">Contribution guidelines</a>
before. For suggesting screenshots, please add a message to <a href="https://github.com/Trilarion/opensourcegames/issues/327">this issue</a>.</p>
</div>
<div class="box">
<div class="block">
<h2 id="developers">Improving developers information</h2>
<p>The developer information is stored in a single big file (<a href="">developer database</a>) and relates developers to open source games they have participated in. Additionally, developer profiles on GitHub, SourceForge or BitBucket are linked on
a developer information and again on the game entries, in the developers field, all developers are listed. The relation between developers and games is stored twice to allow for both search directions, i.e. find all developers of a game or all games of a developer.
A consistency check will run regularly on the content and will give precedence to the developer names stored in the games entries (the games list stored in the developer information will be overwritten).</p>
</div>
</div>
{#- Improving developer information #}
<div class="box">
<div class="block">
<h2 id="developers" class="is-size-5">Improving developers information</h2>
<p>The developer information relates developers to open source games they have participated in. Developer profiles
on GitHub, SourceForge or BitBucket are linked on a developer information and also on the game entries in the developers field.
Please suggest changes or additions to the developer section within an issue at the issue tracker (see above).</p>
</div>
<div class="box">
<div class="block">
<h2 id="inspirations">Improving inspirations information</h2>
</div>
</div>
{#- Improving inspiration information #}
<div class="box">
<div class="block">
<h2 id="inspirations" class="is-size-5">Improving inspirations information</h2>
<p>Inspirations are short pieces of information that collect links to inspirations website or Wikipedia websites
and also link to all entries that have this game as inspiration. Please only edit entries "Inspiration" fields to
indicate that a game has a certain inspiration. If not sure, suggest changes or additions to inspirations within
an issue at the issue tracker (see above).</p>
</div>
</div>
</section>
</div>
{% endblock %}
Loading

0 comments on commit c84f7b2

Please sign in to comment.