Skip to content

Commit 06290c2

Browse files
committed
removed @see notation
1 parent be96e7b commit 06290c2

File tree

173 files changed

+115
-217
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+115
-217
lines changed

code/backlog.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ http://antongerdelan.net/blog/ (other projects besides TestDrive)
44
http://cdetect.sourceforge.net/
55
http://circularstudios.com/
66
http://cyxdown.free.fr/bs/
7+
https://projects.tuxfamily.org/ (all of them)
8+
https://www.artsoft.org/rocksndiamonds/
9+
https://web.archive.org/web/20171228172756/http://www.oletus.fi/static/whichwayisup/
710
http://cyxdown.free.fr/f2b/
811
http://dead-code.org/home/
912
http://e-adventure.e-ucm.es/login/index.php (games of eAdventure)

code/generate_static_website.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@
2121
# TODO contribute.html add content
2222

2323
# TODO more icons - (categories, stars, forks)
24-
# TODO rename fields (Home to Homepage, Inspirations to Inspiration)
2524
# TODO replace or remove @notices in entries (maybe different entries format) ??
2625
# TODO SEO optimizations, google search ...
2726
# TODO sitemap
2827
# TODO Google search console
2928
# TODO <a> rel attribute https://www.w3schools.com/TAGS/att_a_rel.asp
30-
# TODO naming: improve or send feedback?
31-
# TODO menu (before On Github, Blog)
29+
# TODO naming: improve or send feedback? or edit? or contribute?
30+
# TODO menu (before On Github, Blog) or just in the footer
3231

3332
# TODO everywhere: style URLs (Github, Wikipedia, Internet archive, SourceForge, ...)
3433
# TODO everywhere: singular, plural (game, entries, items)
@@ -42,7 +41,7 @@
4241
# TODO statistics: with nice graphics (pie charts in SVG) with matplotlib, seaborn, plotly?
4342
# TODO statistics: get it from common statistics generator
4443

45-
# TODO footer: last updated with lower precision + link to license
44+
# TODO footer: clean up, link to Github project
4645

4746
# TODO frameworks: icons
4847

@@ -131,8 +130,8 @@
131130
'Library': 'library'
132131
}
133132

134-
plurals = {k: k+'s' for k in ('Assets license', 'Contact', 'Code language', 'Code license', 'Developer', 'Download', 'Inspiration', 'Game', 'Keyword', 'Home', 'Organization', 'Platform', 'Tag')}
135-
for k in ('Media', 'Play', 'State'):
133+
plurals = {k: k+'s' for k in ('Assets license', 'Contact', 'Code language', 'Code license', 'Developer', 'Download', 'Inspiration', 'Game', 'Keyword', 'Home', 'Homepage', 'Organization', 'Platform', 'Tag')}
134+
for k in ('Media', 'Play', 'Play online', 'State'):
136135
plurals[k] = k
137136
for k in ('Code repository', 'Code dependency'):
138137
plurals[k] = k[:-1] + 'ies'
@@ -373,6 +372,7 @@ def make_url(href, content, title=None, css_class=None):
373372
url['class'] = css_class
374373
return url
375374

375+
376376
def make_icon(css_class):
377377
return {
378378
'type': 'icon',
@@ -389,11 +389,13 @@ def make_text(content, css_class=None):
389389
text['class'] = css_class
390390
return text
391391

392+
392393
def make_nothing():
393394
return {
394395
'type': 'nothing'
395396
}
396397

398+
397399
def make_enumeration(entries, divider=', '):
398400
enumeration = {
399401
'type': 'enumeration',
@@ -402,6 +404,7 @@ def make_enumeration(entries, divider=', '):
402404
}
403405
return enumeration
404406

407+
405408
def make_tags(entries):
406409
return {
407410
'type': 'tags',
@@ -526,11 +529,18 @@ def convert_entries(entries, inspirations, developers):
526529
if field == 'Inspiration':
527530
e = [make_url(inspirations_references[x], make_text(x, 'has-text-weight-semibold')) for x in e]
528531
elif field == 'Developer':
529-
e = [make_url(developer_references[x], make_text(x, 'has-text-weight-semibold')) for x in e]
532+
if len(e) > 10: # many devs, print smaller
533+
e = [make_url(developer_references[x], make_text(x, 'has-text-weight-semibold is-size-7')) for x in e]
534+
else:
535+
e = [make_url(developer_references[x], make_text(x, 'has-text-weight-semibold')) for x in e]
530536
elif field in c.url_fields:
531537
e = [make_url(x, shortcut_url(x, name)) for x in e]
532538
else:
533539
e = [make_text(x) for x in e]
540+
if field == 'Home': # Home -> Homepage
541+
field = 'Homepage'
542+
elif field == 'Play': # Play -> Play online
543+
field = 'Play online'
534544
namex = make_text('{}: '.format(get_plural_or_singular(field, len(e))), 'has-text-weight-semibold')
535545
entry[field.lower()] = [namex, make_enumeration(e, divider)]
536546

@@ -556,7 +566,7 @@ def convert_entries(entries, inspirations, developers):
556566
if isinstance(e[0], osg.osg_parse.ValueWithComment):
557567
e = [x.value for x in e]
558568
if field == 'Code language':
559-
e = [make_url(code_language_references[x], make_text(x, 'is-size-7')) for x in e]
569+
e = [make_url(code_language_references[x.value], make_text(x, 'is-size-7')) for x in e]
560570
elif field == 'Code license' or field == 'Assets license':
561571
e = [make_url(c.license_urls[x], x, css_class='is-size-7') if x in c.license_urls else make_text(x, 'is-size-7') for x in e]
562572
elif field in c.url_fields:
@@ -636,7 +646,7 @@ def generate(entries, inspirations, developers):
636646
# base dictionary
637647
base = {
638648
'title': 'OSGL',
639-
'creation-date': datetime.datetime.utcnow()
649+
'creation-date': datetime.datetime.now(datetime.timezone.utc).strftime('%Y-%m-%d %H:%M')
640650
}
641651

642652
# copy css

code/html/base.jinja

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<a class="navbar-item{% if 'genres' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['games', 'genres.html']) }}">{{ macros.render_icon('price-tag') }}<span>By category</span></a>
2222
<a class="navbar-item{% if 'code language' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['games', 'languages.html']) }}">{{ macros.render_icon('language') }}<span>By code language</span></a>
2323
<a class="navbar-item{% if 'platforms' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['games', 'platforms.html']) }}">{{ macros.render_icon('laptop') }}<span>By OS support</span></a>
24+
<a class="navbar-item{% if 'top-50' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['games', 'top50.html']) }}">{{ macros.render_icon('star') }}<span>GitHub Stars Top 50</span></a>
2425
</div>
2526
</div>
2627
<a class="navbar-item{% if 'frameworks' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['frameworks', 'index.html']) }}">{{ macros.render_icon('wrench') }}<span>Frameworks/Tools</span></a>
@@ -43,7 +44,7 @@
4344
<div class="block">
4445
Disclaimer: The content on this site is the result of voluntary work and may be outdated or incorrect.
4546
The content is licensed <a href="https://github.com/Trilarion/opensourcegames/blob/master/LICENSE">CC-0</a>. Icons and ... <br>
46-
Last updated on {{ base['creation-date'] }}
47+
Last updated: {{ base['creation-date'] }}
4748
</div>
4849
</div>
4950
</footer>

code/html/listing_entries.jinja

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
{%- if 'developer' in item %}{{ macros.render_element(item['developer']) }}{% endif -%}
3636
</div>
3737
<div class="block">
38-
{%- for field in ('home', 'media', 'download', 'play') -%}
38+
{%- for field in ('homepage', 'media', 'download', 'play online') -%}
3939
{%- if field in item -%}{{ macros.render_element(item[field]) }}<br>{%- endif -%}
4040
{%- endfor -%}
4141
</div>

code/maintenance_entries.py

Lines changed: 43 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -863,38 +863,50 @@ def special_ops(self):
863863
print('entries not yet loaded')
864864
return
865865

866-
# collect statistics on git repositories
867-
created = {}
868-
stars = []
869-
forks = []
866+
# remove download urls that are also in home
870867
for entry in self.entries:
871-
repos = entry['Code repository']
872-
comments = [x.comment for x in repos if x.value.startswith('https://github.com/') and x.comment]
873-
for comment in comments:
874-
comment = comment.split(',')
875-
comment = [c.strip() for c in comment]
876-
comment = [c for c in comment if c.startswith('@')]
877-
if comment:
878-
try:
879-
comment = [c.split(' ') for c in comment]
880-
comment = [c[1] for c in comment if len(c) > 1]
881-
except Exception:
882-
print(comment)
883-
raise
884-
created[comment[0]] = created.get(comment[0], 0) + 1
885-
stars.append(comment[1])
886-
forks.append(comment[2])
887-
888-
for key, value in sorted(created.items(), key=lambda x: x[0]):
889-
print("{} : {}".format(key, value))
890-
891-
import numpy as np
892-
np.set_printoptions(suppress=True)
893-
stars = np.array(stars, dtype=np.float)
894-
forks = np.array(forks, dtype=np.float)
895-
q = np.arange(0, 1, 0.1)
896-
print(np.quantile(stars, q))
897-
print(np.quantile(forks, q))
868+
homes = entry['Home']
869+
downloads = entry.get('Download', [])
870+
downloads = [download for download in downloads if download not in homes]
871+
if downloads:
872+
entry['Download'] = downloads
873+
if not downloads and 'Download' in entry:
874+
del entry['Download']
875+
876+
877+
# # collect statistics on git repositories
878+
# created = {}
879+
# stars = []
880+
# forks = []
881+
# for entry in self.entries:
882+
# repos = entry['Code repository']
883+
# comments = [x.comment for x in repos if x.value.startswith('https://github.com/') and x.comment]
884+
# for comment in comments:
885+
# comment = comment.split(',')
886+
# comment = [c.strip() for c in comment]
887+
# comment = [c for c in comment if c.startswith('@')]
888+
# if comment:
889+
# try:
890+
# comment = [c.split(' ') for c in comment]
891+
# comment = [c[1] for c in comment if len(c) > 1]
892+
# except Exception:
893+
# print(comment)
894+
# raise
895+
# created[comment[0]] = created.get(comment[0], 0) + 1
896+
# stars.append(comment[1])
897+
# forks.append(comment[2])
898+
#
899+
# for key, value in sorted(created.items(), key=lambda x: x[0]):
900+
# print("{} : {}".format(key, value))
901+
#
902+
# import numpy as np
903+
# np.set_printoptions(suppress=True)
904+
# stars = np.array(stars, dtype=np.float)
905+
# forks = np.array(forks, dtype=np.float)
906+
# q = np.arange(0, 1, 0.333)
907+
# print(q)
908+
# print(np.quantile(stars, q))
909+
# print(np.quantile(forks, q))
898910

899911
# # cvs without any git
900912
# for entry in self.entries:

code/utils/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def get_config(key):
4242
generic_comment_string = '[comment]: # (partly autogenerated content, edit with care, read the manual before)'
4343

4444
# these fields have to be present in each entry (in this order)
45-
essential_fields = ('File', 'Title', 'Home', 'State', 'Keyword', 'Code repository', 'Code language', 'Code license')
45+
essential_fields = ('File', 'Title', 'Home', 'State', 'Keyword', 'Code language', 'Code license')
4646

4747
# only these fields can be used currently (in this order)
4848
valid_properties = ('Home', 'Media', 'Inspiration', 'State', 'Play', 'Download', 'Platform', 'Keyword', 'Code repository', 'Code language',

code/utils/osg.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def read_entries():
235235
entries = []
236236

237237
# iterate over all entries
238-
exception_happened = False
238+
exception_happened = None
239239
for file, _, content in entry_iterator():
240240

241241
if not content.endswith('\n'):
@@ -248,14 +248,14 @@ def read_entries():
248248
entry = check_and_process_entry(entry)
249249
except Exception as e:
250250
print('{} - {}'.format(file, e))
251-
exception_happened = True
252-
# raise RuntimeError(e)
251+
exception_happened = e # just store last one
253252
continue
254253

255254
# add to list
256255
entries.append(entry)
257256
if exception_happened:
258-
raise RuntimeError('errors while reading entries')
257+
print('error(s) while reading entries')
258+
raise exception_happened
259259

260260
return entries
261261

@@ -354,7 +354,7 @@ def check_and_process_entry(entry):
354354
message += 'URL "{}" in field "{}" does not start with a valid prefix'.format(value, field)
355355

356356
# github/gitlab repositories should end on .git and should start with https
357-
for repo in entry['Code repository']:
357+
for repo in entry.get('Code repository', []):
358358
if any(repo.startswith(x) for x in ('@', '?')):
359359
continue
360360
repo = repo.value.split(' ')[0].strip()

developers.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42817,6 +42817,7 @@
4281742817
## Philip Dorrell [1]
4281842818

4281942819
- Games: PrimeShooter
42820+
- Home: http://thinkinghard.com/index.html
4282042821

4282142822
## Philip Dubé [1]
4282242823

@@ -45686,6 +45687,7 @@
4568645687
## Richard T. Jones [1]
4568745688

4568845689
- Games: Bouncy the Hungry Rabbit
45690+
- Home: http://www.mechanicalcat.net/richard, https://pyweek.org/u/richard/
4568945691

4569045692
## Richard Turner [1]
4569145693

entries/2moons_browsergame_engine.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- Download: https://github.com/jkroepke/2Moons/releases
66
- Platform: Web
77
- Keyword: framework, simulation, strategy, space
8-
- Code repository: https://github.com/jkroepke/2Moons.git (archived, @archived, @created 2015, @stars 133, @forks 102), https://github.com/steemnova/steemnova.git @add (@created 2018, @stars 50, @forks 49)
8+
- Code repository: https://github.com/jkroepke/2Moons.git (@archived, @created 2015, @stars 133, @forks 102), https://github.com/steemnova/steemnova.git @add (@created 2018, @stars 50, @forks 49)
99
- Code language: PHP, JavaScript
1010
- Code license: MIT
1111
- Developer: Adam Jordanek, bergi9, Casey Parker, donpepe0, Flugschwein, Gregario Mansa, Hilarious001, IntinteDAO, Jan-Otto Kröpke, louis88, Martin, mys, Ozan Kurt, Pope19, Ravikin, Roberto, sarmaticus, tatarysh, z3ll1337

entries/3d_pong.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
- Home: http://www.newbreedsoftware.com/3dpong/
44
- State: beta, inactive since 2004
5+
- Download: http://www.newbreedsoftware.com/3dpong/download/
56
- Platform: Linux, macOS
67
- Keyword: arcade, 3D, online
7-
- Code repository: @see-home
88
- Code language: C
99
- Code license: GPL-2.0
1010
- Developer: New Breed Software

entries/3dc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
- Home: https://packages.debian.org/sid/3dchess, http://www.ibiblio.org/pub/Linux/games/strategy/3Dc-0.8.1.tar.gz
44
- State: mature, inactive since 2000
5+
- Download: https://packages.debian.org/source/sid/3dchess
56
- Keyword: board, puzzle, 3D, chess, content open
6-
- Code repository: @see-home
77
- Code language: C
88
- Code license: GPL-2.0
99
- Code dependency: libx, libxpm, xaw3dg

entries/4d_maze_game.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
- Home: http://www.urticator.net/maze/
44
- State: mature, inactive since 2008
5+
- Download: http://www.urticator.net/maze/download.html
56
- Platform: Windows, Linux, macOS
67
- Keyword: educational, puzzle, 4D, content none, maze
7-
- Code repository: @see-home
88
- Code language: Java
99
- Code license: Public domain
1010
- Developer: John McIntosh

entries/54321.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
- Home: http://old.nklein.com/products/54321/
44
- State: mature, inactive since 2001
55
- Keyword: puzzle, content open
6-
- Code repository: @see-home
76
- Code language: C++
87
- Code license: Custom (a very simple copyleft see http://old.nklein.com/etc/copyright.php)
98
- Code dependency: libpng, SDL, zlib

entries/a7xpg.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
- State: beta, inactive since 2005
55
- Download: https://sourceforge.net/projects/a7xpg/files/a7xpg/
66
- Keyword: arcade, flight, space
7-
- Code repository: @see-home
87
- Code language: D
98
- Code license: 2-clause BSD
109
- Code dependency: libvorbis, SDL

entries/acm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
- Home: https://packages.debian.org/sid/acm, https://web.archive.org/web/20130114223737/http://www.websimulations.com/
44
- State: mature, inactive since 2000
5+
- Download: https://packages.debian.org/source/sid/acm
56
- Keyword: action, simulation, content open, flight
6-
- Code repository: @see-home
77
- Code language: C
88
- Code license: GPL-2.0
99
- Assets license: GPL-2.0

entries/adagate.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
- Download: https://github.com/fastrgv/AdaGate/releases
77
- Platform: Windows, Linux, macOS
88
- Keyword: puzzle, 3D
9-
- Code repository: @see-download
109
- Code language: Ada
1110
- Code license: GPL-3.0
1211
- Code dependency: OpenGL, SDL2

entries/adanaxis.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
- Home: https://web.archive.org/web/20180818173613/http://www.mushware.com/, https://packages.qa.debian.org/a/adanaxisgpl.html
44
- State: mature, inactive since 2007
5+
- Download: https://packages.debian.org/sid/adanaxisgpl
56
- Keyword: action, 4D, content open, first-person, shooter, single-player, space
6-
- Code repository: @see-home
77
- Code language: C++
88
- Code license: GPL-2.0 (non-free file in the commercial version)
99
- Code dependency: GLUT

entries/afternoon_stalker.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
- Download: http://perso.b2b2c.ca/~sarrazip/dev/afternoonstalker.html#download
77
- Platform: Linux
88
- Keyword: action, remake, clone
9-
- Code repository: @see-download
109
- Code language: C++
1110
- Code license: GPL-2.0
1211
- Code dependency: SDL

entries/airstrike.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
- State: beta, inactive since 2014
55
- Platform: Windows, Linux
66
- Keyword: arcade, 2D, content open
7-
- Code repository: @see-home
87
- Code language: C
98
- Code license: GPL-2.0
109
- Assets license: GPL-2.0

entries/aklabeth.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
- State: mature, inactive since 2004
66
- Download: https://sourceforge.net/projects/aklabeth/files/aklabeth/
77
- Keyword: remake
8-
- Code repository: @see-download
98
- Code language: C
109
- Code license: GPL-2.0
1110
- Developer: kantharos, Paul Robson

0 commit comments

Comments
 (0)