From 37491c7d6b0afaca5c1529d8b98cd02a76bf1764 Mon Sep 17 00:00:00 2001 From: Phil Morrell Date: Sun, 13 Feb 2022 00:52:15 +0000 Subject: [PATCH] Publish --- 2021-08-07/index.html | 87 ++++++ 2022-01-30/index.html | 98 +++++++ 404.html | 3 + chat-with-us/index.html | 105 ++++++++ game-launcher-concept/index.html | 371 ++++++++++++++++++++++++++ index.html | 159 +++++++---- play-libre-games/index.html | 130 +++++++++ robots.txt | 3 + sitemap.xml | 21 ++ style.css | 444 +++++++++++++++++++++++++++++++ 10 files changed, 1365 insertions(+), 56 deletions(-) create mode 100644 2021-08-07/index.html create mode 100644 2022-01-30/index.html create mode 100644 404.html create mode 100644 chat-with-us/index.html create mode 100644 game-launcher-concept/index.html create mode 100644 play-libre-games/index.html create mode 100644 robots.txt create mode 100644 sitemap.xml create mode 100644 style.css diff --git a/2021-08-07/index.html b/2021-08-07/index.html new file mode 100644 index 0000000..6d0fc71 --- /dev/null +++ b/2021-08-07/index.html @@ -0,0 +1,87 @@ + + + + + + + LibreGaming + + + + +
+ + +

Libre Gaming meeting minutes #1

+

Attending

+

hribhrib, TtotheORY, emorrp1, Rampoina, infrared, seabass, f-a, poVoq, freem, Felix, Myrrdin, pkill9, franzo2, ericxdu, tofu

+

Agenda

+

Get to know people and their background +This meetings should be for: Setting a deadline for decisions; talking about the topics that came up; setting future goals. +I think for opensource-focused communities like this it would be great to have like a "council" of people who WANT to take responsablities and make decisions BASED on the discussion of the community. +What are the goals? What problems are we solving? What is Libre Gaming not about? What do we want to do differently this time around? +Mechanism to send money around to share small one-off or ongoing costs. Currency? +Writing content +Improving the matchmaking bot - iterate on the current one, or write into a bot framework? +LibreGames launcher?

+

What is Libre Gaming about

+

Development +Multiplayer games? +Discussing singleplayer games? +Bringing together developers and play-testers +Highlighting Libre games to play with +Making it easier to people to play the games (Launcher / auto-updater)? +GameDev/GameTest, PlayTogether, Communities, Games, Projects

+

Matrix, XMPP

+

New user familiarity (emorrp1: IRC and XMPP hard for new users, povoq; disagreed) +Large public rooms +Guest access +Matrix has benefit of nested spaces, bridging and rich content +recommend tchncs.de if you have no account yet +hribhrib would delete, poVoq noticed people use IRC +TBD +TBD Get rid of this horrible Matrix stuff :p

+

Working Groups / Projects

+ +

Domain Name

+ +

Any Other Business

+

Game server hosting? +Tutorials for easy game server hosting from home or a VPS? +Matchmaking, organized tournaments? +Host a reddit alternative? https://join-lemmy.org ? teddit.net (only a frotend for reddit) +Project room to highlight gaming projects by members inside libregaming. Project owners could benefit from call-for-help announcements, where advertising for volunteers/job positions is possible. For example, Derby Game by Open source_gaming is looking for an environment designer.

+

Actions

+ +

Comments

+ + + +
+ + + diff --git a/2022-01-30/index.html b/2022-01-30/index.html new file mode 100644 index 0000000..19d7e8b --- /dev/null +++ b/2022-01-30/index.html @@ -0,0 +1,98 @@ + + + + + + + LibreGaming + + + + +
+ + +

Libre Gaming meeting minutes #2

+

Attending

+

artchad, Cesar, DeathByDenim, emorrp1, Felix, Livio, poVoq, SeanCJ, sm2n, ThinkSome, vvbudh, franzo, OptimusDU, spongy, Rampoina, freem, infrared

+

Agenda

+ +

Any Other Business

+ +

Actions

+ + + +
+ + + diff --git a/404.html b/404.html new file mode 100644 index 0000000..f8414f0 --- /dev/null +++ b/404.html @@ -0,0 +1,3 @@ + +404 Not Found +

404 Not Found

diff --git a/chat-with-us/index.html b/chat-with-us/index.html new file mode 100644 index 0000000..8a40dde --- /dev/null +++ b/chat-with-us/index.html @@ -0,0 +1,105 @@ + + + + + + + LibreGaming + + + + +
+ + +

About us. (WiP)

+

Chat with us!

+

We try our best to let people use their favorite chat client to join us. +Currently, we use native Matrix rooms which are also accessible via Jabber/XMPP and IRC. +For pre-existing projects, their official chatrooms are bridged where possible, even if they're on the non-libre Discord platform. +New projects should take advantage of FreeGameDev's cross-platform integration.

+

Official chatrooms

+ +

To join one such room called ROOM, configure your client according to the instructions below.

+

Communities

+

For on-topic chat about Libre Gaming, these are the active communities we are aware of.

+ +

Matrix

+

Room name: #libregaming-ROOM:freedombox.emorrp1.name

+ +

Jabber/XMPP

+

Room name: #libregaming-ROOM#freedombox.emorrp1.name@matrix.org

+ +

IRC

+

Room name: #libregaming-ROOM on irc.libera.chat

+ + + +
+ + + diff --git a/game-launcher-concept/index.html b/game-launcher-concept/index.html new file mode 100644 index 0000000..288085d --- /dev/null +++ b/game-launcher-concept/index.html @@ -0,0 +1,371 @@ + + + + + + + LibreGaming + + + + +
+ + +

Libre launchers

+

This document is a brainstorming around FLOSS games launchers. The rationale is:

+ +

Table of Contents

+

[ToC]

+

Ecosystem review

+

Existing projects

+

There's already quite a few projects in this field, so let's try to make a comparison table:

+ + + + + + + + + + + +
ClientMulti-platformSocialMultirepo ⁽⁰⁾Native UICompiledOverlayTranslationsRunners ⁽¹⁾
Athenaeum
MacOS, GNU
⚙️❌ ⁽²⁾
Flathub

Qt
❌ ⁽²⁾
Lutris⚙️
GoG, Steam, Humble Bundle

Qt
GNOME Games
Flatpak

GTK
Gameshub
Steam, GoG, Itch Humble Bundle

GTK
AppImagePool✅ AppImages~
Flutter
Plei? ⁽³⁾❌ ⁽⁴⁾
Steam, uPlay, Origin, Epic

Tkinter
itch
MacOS, GNU, Windows

Itch

ElectronJS
retroarch
MacOS, GNU, Windows

Custom
❌ ⁽⁵⁾
Spring
MacOS, GNU, Windows
❌ ⁽⁶⁾
SpringRTS

wxwidgets
?❌ ⁽⁶⁾
KODI
MacOS, GNU, Windows
?
Custom⁽⁷⁾
??
+

⚙️ means the feature is planned but has not been implemented. Ideally, we'd have links to issues describing plans/ideas about said feature.

+

⁽⁰⁾ Multirepo means the launcher can download games from multiple sources, potentially with different protocols. +⁽¹⁾ Runners are different programs to run the games (eg. emulators) on the same platform. Games obtained on the same repository can leverage different runners. +⁽²⁾ Athenaeum technically has different repositories and runners, but only one per platform (flathub.org on free systems, homebrew on MacOS) +⁽³⁾ Plei runs on Windows, not sure about other platforms +⁽⁴⁾ Plei supports multiple repositories, but only non-free centralized stores (Origin/UPlay/Steam..) +⁽⁵⁾ Retroarch supports multiple runners, but there is currently no runner for native games +⁽⁶⁾ SpringLobby only supports games from the SpringRTS engine. +⁽⁷⁾ OpenGL based fullscreen app (windowed mode possible)

+

The following clients were not included in the comparison because there's a simple frontend for a single store (eg. Epic Store), but could be forked:

+ +

The following clients were not included because they're a simple frontend for a single game, but show that there is a demand for such an updater/launcher even in FOSS games:

+ +

Feature wishlist

+

In this section, we make a detailed wishlist for features an ideal libre games launcher should have.

+

Games setup

+ +

Social features (optional)

+ +

Game library

+ +

Video streaming support

+ +

Alternative user interface

+

It would make sense to develop a backend-first games launcher, on top of which different UI frontends can be prototyped. Some features could be:

+ +

Games integration

+

In addition to providing features for games from the outside, some games could integrate with free launchers using a specified free protocol:

+ +

With a such protocol, it becomes possible (in addition to switching windows and/or an overlay UI) to have games integrate social interactions directly within their UI. This means that:

+ +

Libre games repository

+

Should we provide a new repository for games, or reuse an existing one? There is already a number of games on Flathub/Snapstore, however:

+ +

So we consider whether to serve a repository of our own.

+

Upsides:

+ +

Downsides:

+ +

PROPOSAL 1: 0install repository

+

Note: Maybe distributing AppImages on GNU/Linux and *BSD via 0install would be interesting, so that the games can be copied around when there is no network. On Windows and Mac, .exe and .app should do that already.

+

Since we aim to support multiple platforms, we need a cross-platform packaging format. The only candidate so far is https://0install.net/:

+ +

In order to reduce server storage/network costs, we should serve files over IPFS or Bittorrent. IPFS has a clear advantage, in that IPNS enables us to have a stable "feed" address with a corresponding PGP key.

+

On a high-level, the build system could operate like this:

+ +

In case a release build has failed, it is expected that either our repository's build steps will be updated. In that case, all manifests for the current release should be unpublished, and the release process for that version starts anew. If the problem was upstream and they have to publish a new tag, a normal release process ensues and the previous version will only have the previously-successful builds published.

+

TODO: When updating our repository's build steps, should it rebuild all packages? Should we run a git diff to see which application's build steps have been altered, and trigger a rebuild for the last release for those? (probably the second option)

+

In addition, a nightly cron job should run to publish nightly releases:

+ +

PROPOSAL 2: AppImageUpdate repository

+

TODO: Does someone want to make a detailed proposal based on that?

+

NOTE: This package format is not cross-platform, so the proposal needs to account for that.

+ +

PROPOSAL 3: Flatpak repository

+

TODO: Does someone want to make a detailed proposal based on that?

+

NOTE: This package format is not cross-platform, so the proposal needs to account for that.

+

PROPOSAL 4: GNU/guix repository

+

TODO: Does someone want to make a detailed proposal based on that?

+

NOTE: This package format is not cross-platform, so the proposal needs to account for that.

+

Additional considerations

+

GUI toolkit

+

What GUI toolkit to use determines how easy it will be to implement further features. Here's a comparison table:

+ + + + + +
FrameworkCross-plat.LightweightSocialUI OverlayImplementations
Qt❌ ⁽¹⁾athenaeum
GTK~❌ ⁽¹⁾gamehub
ElectronJS✅ ⁽²⁾❌ ⁽³⁾heroic, itch
Flutter~~ ⁽⁴⁾?AppImagePool
+

⁽¹⁾ Not impossible to implement, but harder than just embedded a 3rd party client +⁽²⁾ Via a web-based XMPP/matrix client + build in WebRTC for audio/video. +⁽³⁾ Until proven otherwise, it's assumed an electronJS application can't hijack focus from a running full-screen application +⁽⁴⁾ Flutter/Dart libraries for exist for XMPP and Matrix. Also see FluffyChat for Matrix.

+

Also worth mentioning, Electron functionality of desktop web applications could in fact be replaced by:

+ +

Social protocol

+

In order to provide excellent social features, we need to ues a social networking protocol. Here's a comparison chart:

+ + + + + + +
ProtocolFederationEasy selfhostingTextVoiceVideoFriendslistExtensible ⁽⁰⁾Guest accounts ⁽⁵⁾Spaces ⁽⁸⁾
IRC❌ ⁽¹⁾~
XMPP✅ ⁽²⁾✅ ⁽²⁾✅ ⁽⁷⁾✅ ⁽⁴⁾
Matrix❌ ⁽³⁾❌ ⁽³⁾
Mumble~
Spring✅ ⁽⁶⁾✅ ⁽⁶⁾
+

⁽⁰⁾ Extensibility is needed to develop new features, such as matchmaking +⁽¹⁾ Federation in the context of IRC means something else, it's a closed federation to provide redundancy across servers, but does not enable users to communicate across networks +⁽²⁾ Audio/Video in XMPP ecosystem is provided by Jingle and/or multimedia bridges; Jitsi implementation is not standard, but some clients are working on interop (Conversations/JSXC/Gajim) +⁽³⁾ Audio/Video in Matrix is provided by third-party clients/protocols such as Jitsi +⁽⁴⁾ Guest accounts are provided via "anonymous login" +⁽⁵⁾ Guest accounts with limited privileges (can't send friend invites) could be useful to start a multiplayer game on a specific game without having to create an account first +⁽⁶⁾ Spring uses a customized IRC protocol with support for sharing current "matches" (servers) +⁽⁷⁾ XMPP supports basic presence information, but it's trivial to build advanced presence via the PubSub extension; see User tune for an example extension +⁽⁸⁾ Spaces are a sort of collective namespace, where permissions can be defined for the entire group/team, and some chatrooms can be affiliated to the space

+

Package/Repository standards

+

Maybe it would be useful to support several types of repositories? Or a single cross-platform format? Here's a comparison chart:

+ + + + + +
FormatCross-platformReproducibleBootstrappableSignaturesRepositoriesDelta upgradesImplementations
AppImage❌ ⁽¹⁾AppImagePool
Flatpak✅ ⁽³⁾athenaeum, GNOME Games
0install
nix/guix❌ ⁽²⁾guix
+

⁽¹⁾ AppImagePool uses a custom upstream feed, as well as a custom featured applications feed +⁽²⁾ Technically, guix and nix can build Windows application, however there is currently no support for Windows as foreign distro +⁽³⁾ Flatpak repositories are signed

+

The following packaging systems were considered, but not added to the comparison table:

+ +

Platforms/architectures to support

+

Below, we consider a list of platforms to support:

+ +

Below, we consider a list of architectures to support:

+ +

Anti-features (to avoid)

+ +

Priorities

+

This document is not exatly a specification for a future client project. However, if it must be interpreted like that, some features should probably be prioritized over others:

+ +

Some features described in the wishlist may appear to be less important to some people:

+ + + +
+ + + diff --git a/index.html b/index.html index c7a29ea..fc8e799 100644 --- a/index.html +++ b/index.html @@ -1,68 +1,115 @@ - - - - - - Libre Gaming - - - -
-

Libre Gaming

-
-

About us. (WiP)

-

Chat with us!

-

We try our best to let people use their favorite chat client to join us. Currently, we use native Matrix rooms which are also accessible via Jabber/XMPP and IRC. For pre-existing projects, their official chatrooms are bridged where possible, even if they’re on the non-libre Discord platform. New projects should take advantage of FreeGameDev’s cross-platform integration.

-

Official chatrooms

+ + + + + LibreGaming + + + + +
+ + +

LibreGaming community - Introduction

+

We are a community dedicated to playing and developing libre games, that is videogames and board games with free/libre software and algorithms, and free/libre artistic assets (models, musics). We believe software and culture should be free as part of a global struggle for freedom and equality online and offline. We aim to become a meta-community that can bring closer smaller communities. We don't want to become a big central organization, but rather a network of organic initiatives scattered throughout cyberspace.

+

For example, we'd like to bring players alongside game developers and designers, as well as contributors to libre games launchers like Athenaeum and GameHub. We believe this approach can enrich and empower the entire libre gaming ecosystem.

+

We are just getting started. Feel free to contribute new ideas and feedback by contacting us. Check out the preliminary notes to our first meeting, as well as the first and second meeting's minutes.

+

We are

-

To join one such room called ROOM, configure your client according to the instructions below.

-

Communities

-

For on-topic chat about Libre Gaming, these are the active communities we are aware of.

+
  • a loose collective rather than a formal organization
      -
    • FreeGameDev.net: bring players and developers together like the old #freegamer on Freenode matrix xmpp irc archive
    • -
    • Libre Game Night: play and discuss libre games such as Hedgewars, Mindustry, Freedoom matrix xmpp irc
    • -
    • onFOSS-LAN: online LAN-Party event day matrix xmpp
    • -
    • opensource_gaming: twitch channel to bring attention to a lot of great Open Source projects matrix xmpp
    • -
    • SMAC: чат без смысла и цели matrix xmpp
    • -
    • Free, Libre, and Open Source Gaming matrix xmpp
    • +
    • feel free to invite new people and share permissions with people you know
    • +
    • don’t ask permission to improve things, just go ahead and see where it goes, then let it be known so that others can review what you did
    -

    Matrix

    -

    Room name: #libregaming-ROOM:freedombox.emorrp1.name

    +
  • +
  • supportive of accessibility: everyone should be able to play games, no matter their physical or hardware/network capabilities
  • +
  • encouraging existing libre games communities to join us and help improve the overall ecosystem
  • + +

    We are not

    -

    Jabber/XMPP

    -

    Room name: #libregaming-ROOM#freedombox.emorrp1.name@matrix.org

    +

    Communication

    -

    IRC

    -

    Room name: #libregaming-ROOM on irc.libera.chat

    +

    If you would like to take part in the community, please see contacting us.

    +

    Services

    +

    For now, we do not provide any services as LibreGaming collectives. Below you will find a list of services we would be interested to maintain.

    +

    Internal use

    - +

    Public use

    + +

    Resources

    + +

    External resources

    + +

    TODO: below are leftovers from the previous pad, what are they for? do they work?

    + +
    +

    Below hasn't been updated yet

    +

    TODO: maybe move to the meeting minutes this last part?

    + + + +
    + + diff --git a/play-libre-games/index.html b/play-libre-games/index.html new file mode 100644 index 0000000..52c8392 --- /dev/null +++ b/play-libre-games/index.html @@ -0,0 +1,130 @@ + + + + + + + LibreGaming + + + + +
    + + +

    Play libre games!

    +

    What are they?

    +

    Libre games are fun games owned by the community, including everyone who plays the game, develops it, and shares it.

    +

    What does it mean for a game to be owned by the community?

    +

    It means everyone should be able to do anything they want with it, like:

    + +

    How is this achieved?

    +

    By sharing everything needed to make the game with its players. This includes code, music, art, 3d models, documentation - with full permission to share and remix (and even make a new game from it).

    +

    Authors can still get credit for the achievement, get paid by users installing the game via stores like itch.io, Steam or Google Play and require that any changes are made available under the same terms.

    +

    Examples

    +

    The games below are libre games meant to exemplify their advantages. For a large list of libre games to play, check out libregamewiki.

    +

    Battle for Wesnoth

    +

    Battle for Wesnoth is a turn based strategy libre game.

    +

    Wesnoth gameplay image

    +

    Mods:

    +

    Battle for Wesnoth has a wealth of mods. Some of them drastically change the gameplay like:

    + +

    Given that the art assets are widely available, shareable and modifiable they can be reused in completely different projects such as:

    + +

    Community translations

    +

    Battle for Wesnoth is translated to multiple languages including minority languages like Basque that wouldn't get translated in non-libre games.

    +

    Community development

    +

    The development of Battle for Wesnoth has been highly influenced by the community, especially in the early stages. There were many artists who contributed to the game, people that contributed new campaigns to it, etc. Much of that development happened on the main forums where people would propose and discuss the additions.

    +

    The game has been refined over the years thanks to the countless contributors and people who reported issues and gave feedback on the game.

    +

    Platform support

    +

    Battle for Wesnoth is available on every main platform (Linux, MacOS, Windows, Android, iOS). +Not only that but it runs on homebrew consoles like the Pyra and Pandora.

    +

    Forever alive

    +

    The first development release of Wesnoth 0.1 happened on June 18, 2003. It has been fully playable for a number of years, and runs today on all the platforms above. Like many libre games, it is constantly being updated, with more features, fixes and content being produced.

    +

    Mindustry

    +

    Mindustry is an original game bringing together elements of tower defense and factory building. It can be bought on Steam, or downloaded from GitHub and Itch.io.

    +

    Mndustry gameplay image

    +

    Community development

    +

    Although the game is libre and the community makes many contributions, its author has a clear and strong vision and keeps control of how the game is developed. At the same time, you can edit the copy of the game code on your computer to make it work however you want, and share those modifications freely.

    +

    Modding

    +

    Mindustry supports modding, and many player-made maps are available that were created with the built-in map editor.

    +

    0ad

    +

    0 A.D. is a real time strategy game about ancient warfare, where players take charge of different civilizations and lead them into battle.

    +

    0 A.D. gameplay image

    +

    Community development

    +

    The list of contributors to 0 A.D. includes dozens of names, spanning everything from art through audio through community management and balancing.

    +

    Forever alive

    +

    0 A.D. was released as open source in 2009, though it started life in 2001 as a concept for a mod of Age of Empires II. It is still receiving updates to this day.

    +

    Endless Sky

    +

    Endless Sky is a 2D space exploration, combat and trading sim. It features many types of ships and upgrades, a large and detailed galaxy, and an optional main storyline along with various randomized events.

    +

    Endless Sky gameplay image

    +

    Community development

    +

    When the main developer of the game took a break in mid-2018, members of the community forked the game and continued work on it. Following this, the main developer gave access to those members to make modifications to the main code repository, meaning the official version of the game was again active.

    +

    Forever alive

    +

    As of May 2020, there have been 4 releases since the game "changed hands", and the main developer hasn't yet returned to a lead role. He says "I'm glad to be able to take a break, work on creative writing and other random projects, and not feel duty-bound to spend all my weekends keeping up with issues..."

    +

    This shows the power of a community owning its own game and being able to work on it independently, and its benefit to the creator as well.

    + +

    Since the source code for Doom's engine was released under the GPL in 1999, so many mods and conversions have been made for it that it's hard to count them all. Freedoom is a complete game based on this engine.

    +

    Freedoom gameplay image

    +

    Modding

    +

    Freedoom is compatible with mods for the original Doom.

    +

    In general, the spread of Doom source ports since the engine code was released meant that developers were soon fixing old bugs and adding new features. Those include CTF mode, jumping, an inventory system, friendly monsters and more.

    +

    Platform support

    +

    One of the source ports of Doom, Odamex, states: "ODAMEX is designed with portability in mind. From PCs to netbooks, consoles to handhelds, Amiga to Windows - our goal is for any device to run multiplayer Doom." It has been confirmed to run on Intel x86, PowerPC, and SPARC systems.

    +

    Other ports of the Doom source code listed in doomwiki.org cover platforms from DOS through BeOS through Atari systems to Nokia cell phones.

    +

    Forever alive

    +

    Source ports like Odamex and GZDoom are actively used to play Doom today, and are still receiving updates. Two decades is not bad for a game.

    +

    FAQ

    +
    I already own the games I buy!
    +

    Many games you buy are not exactly owned by you. In fact, some newer games and "game streaming" services work under a license model where they never claim that you own the game.

    +

    If you own your game, can you:

    + +

    If there is an item on that list you can't do legally, can you really say you own the game?

    +
    Why 'Libre'?
    +

    'Libre', originally from Spanish/French, means having liberty/freedom. It means that everyone has the freedom to access, modify and share the game. The game is free from any ownership: everyone (the community) owns it. It is one of several similar terms used to avoid any confusion with 'free of charge'.

    +
    How can the game have a common vision if everyone can make any changes they wish?
    +

    Each game project has a main trusted community that makes the decisions. Anyone is able to change the game locally, and to create a derivative project (usually called a fork), but this doesn't mean those changes will get accepted into the main project.

    +
    I'm a game developer and I'm concerned that my game will be stolen!
    +

    You can't steal a game owned by everyone!

    +

    It's important to realize that releasing your game as libre is a trade-off. You give away some of your control, but you gain something bigger: a game that you started, that will live forever, through everyone who will ever play or develop it. A piece of it will also live in every derivative.

    +

    Also, when you release your code or assets as libre, you keep on being the copyright owner, and no one can take that away - your name will always be on your art. This is true even when someone forks your game.

    +
    I downloaded a game for free, is it libre?
    +

    There are many free of charge (gratis) games, but many of them are not libre. (In fact, you can buy some libre games.) To know if it's libre, ask yourself: does it have all the benefits described above? If it doesn't, it's not libre.

    +

    These are some commonly used, overlapping definitions you can refer to if you want to know more detail about determining if a game's license is libre: Debian Free Software Guidelines, Free Software Definition, Open Source Definition, Free Cultural Works (see also Creative Commons), SPDX short identifiers

    +
    If anyone can change a game, people will cheat!
    +

    Cheating is a problem in all multiplayer games, and the best antidote isn't preventing the community from owning the game - it's to let the community police its own game. Hackers will always find ways around clever protections, and then distribute their hacks. So the key is to play with those you trust, and compete with those you respect.

    + + +
    + + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..3ed7109 --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Allow: / +Sitemap: https://libregaming.org/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..c6af5cb --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,21 @@ + + + + https://libregaming.org/ + + + https://libregaming.org/2021-08-07/ + + + https://libregaming.org/2022-01-30/ + + + https://libregaming.org/chat-with-us/ + + + https://libregaming.org/game-launcher-concept/ + + + https://libregaming.org/play-libre-games/ + + diff --git a/style.css b/style.css new file mode 100644 index 0000000..e416030 --- /dev/null +++ b/style.css @@ -0,0 +1,444 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/*!**************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/responsive-nav/responsive-nav.css ***! + \**************************************************************************************************/ +/*! responsive-nav.js 1.0.39 by @viljamis */ + +.nav-collapse ul { + margin: 0; + padding: 0; + width: 100%; + display: block; + list-style: none; +} + +.nav-collapse li { + width: 100%; + display: block; +} + +.js .nav-collapse { + clip: rect(0 0 0 0); + max-height: 0; + position: absolute; + display: block; + overflow: hidden; + zoom: 1; +} + +.nav-collapse.opened { + max-height: 9999px; +} + +.nav-toggle { + -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +@media screen and (min-width: 40em) { + .js .nav-collapse { + position: relative; + } + .js .nav-collapse.closed { + max-height: none; + } + .nav-toggle { + display: none; + } +} + +/*!*******************************************************************************************************************************************!*\ + !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/scss/styles.scss ***! + \*******************************************************************************************************************************************/ +* { + box-sizing: border-box; +} + +html, body { + margin: 0; + padding: 0; +} + +html body { + background-color: #1c1b22; +} + +body { + font-size: 1.25rem; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + line-height: 1.4; + color: #dee2e6; +} + +h1, h2, h3, h4, h5, h6 { + font-family: inherit; +} + +h2 { + font-size: 2rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +a { + text-decoration: none; + color: #ff8f23; + text-decoration: underline; +} +a:hover { + color: #daf2ee; +} +a:visited { + color: #ff820a; +} +a:active { + color: #fff; +} + +.text-lightblue { + color: #b6e2ee; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 5px; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-weight: 900; + line-height: 1.4em; + color: #dee2e6; +} + +h1, .h1 { + font-size: calc(1.4375rem + 2.25vw); +} +@media (min-width: 1200px) { + h1, .h1 { + font-size: 3.125rem; + } +} + +h2, .h2 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2.5rem; + } +} + +h3, .h3 { + font-size: calc(1.34375rem + 1.125vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 2.1875rem; + } +} + +h4, .h4 { + font-size: calc(1.3125rem + 0.75vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.875rem; + } +} + +h5, .h5 { + font-size: calc(1.28125rem + 0.375vw); +} +@media (min-width: 1200px) { + h5, .h5 { + font-size: 1.5625rem; + } +} + +h6, .h6 { + font-size: 1.25rem; +} + +.lead { + font-size: calc(1.28125rem + 0.375vw); + font-weight: 300; +} +@media (min-width: 1200px) { + .lead { + font-size: 1.5625rem; + } +} + +.container { + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} +@media (max-width: 78.75em) { + .container { + margin-left: 15px; + margin-right: 15px; + } +} + +.full-width-container { + max-width: 100%; + margin-left: 15px; + margin-right: 15px; +} + +.header { + width: 100%; + height: 56px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); + background: #212529; + color: #FFF; + display: flex; + flex-direction: row; + align-items: center; + padding: 0 16px; +} +.header .brand { + margin-left: auto; + padding-left: 1em; + padding-right: 1em; + text-decoration: none; +} +.header .brand > h1 { + color: #4fbad5 !important; + display: inline-flex; + align-items: center; + font-size: calc(1.2875rem + 0.45vw); + margin: 0; +} +@media (min-width: 1200px) { + .header .brand > h1 { + font-size: 1.625rem; + } +} +.header .brand .brand-img { + margin-right: 0.5rem; +} +.header .brand .second { + color: #ff8f23 !important; +} +.header .lang-select { + display: inline-flex; + vertical-align: middle; + margin-left: auto; +} + +.header__menu-toggle { + background: none; + border: none; + width: 24px; + height: 24px; + padding: 0; + margin: 0 24px 0 0; + color: #FFF; +} + +.side-nav__content { + padding-top: 32px; + flex: 1; + list-style: none; + padding: 0; + margin: 0; + overflow-x: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} + +.side-nav__content li { + min-height: 48px; + line-height: 48px; +} + +.side-nav__content li a:hover { + background: #343a40; +} + +.nav-collapse a { + color: #dee2e6; + text-decoration: none; + width: 100%; + background: rgba(0, 0, 0, 0.7); + border-bottom: 1px solid #212529; + padding: 0.7em 1em; + float: left; +} + +.hero { + border-radius: 12px; + background: linear-gradient(to right, #159957, #155799); + min-height: 300px; + width: 100%; + color: white; + justify-content: center; + flex-direction: column; + flex-grow: 1; + padding: 1.25rem; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + align-items: center; +} +.hero > h1 { + margin: 0; +} +.hero .message { + display: -webkit-flex; + display: flex; + -webkit-justify-content: center; + justify-content: center; + -webkit-align-items: center; + align-items: center; + letter-spacing: 5px; +} + +.posts ul li { + list-style: none; + margin-bottom: calc(1.525rem + 3.3vw); +} +@media (min-width: 1200px) { + .posts ul li { + margin-bottom: 4rem; + } +} +.posts ul li a { + display: -webkit-flex; + display: flex; + text-decoration: none; +} +.posts ul { + border-top: 1px solid #495057; + padding-left: 0; + padding-right: 0; + padding-top: calc(1.625rem + 4.5vw); +} +@media (min-width: 1200px) { + .posts ul { + padding-top: 5rem; + } +} +.posts .left { + line-height: 1em; + display: -webkit-flex; + display: flex; + flex-direction: column; +} +.posts .date { + color: #4fbad5; + margin-bottom: 0.3125rem; + margin-right: 1em; + text-transform: uppercase; + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + .posts .date { + font-size: 1.5rem; + } +} +.posts .year { + color: #fff; +} +.posts .title { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + .posts .title { + font-size: 2rem; + } +} +.posts .right { + line-height: 1.15em; +} +.lg-title span { + background-color: #f8f9fa; + padding-top: 0.2rem; + padding-bottom: 0.2rem; + padding-left: 1rem; + padding-right: 1rem; + border-radius: 22px; + color: #343a40 !important; + border: 3px #6c757d solid; + display: inline-flex; +} +.lg-title .icon { + margin: 0; + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.lg-title .icon:before { + position: relative; + top: 0; + left: 0; + bottom: 0; + content: ""; + margin-top: -3px; + margin-bottom: -3px; + width: 64px; + margin-right: calc(1.2625rem + 0.15vw); + margin-left: -30px; + border-radius: 100%; +} +@media (min-width: 1200px) { + .lg-title .icon:before { + margin-right: 1.375rem; + } +} + +#description { + width: 100%; + display: -webkit-flex; + display: flex; + flex-direction: row; + padding: 2em; + column-gap: 20px; + border-width: 0.5em 0 0; + border-style: solid; + align-items: center; + justify-content: center; + border-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff) 3; + background-color: #29008a !important; + background: linear-gradient(180deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0)); +} +#description .tile { + border-left: 7px solid #adb5bd; + width: 20em; + padding-left: 1.4em; + padding-right: 1.4em; + padding-bottom: 2em; + background-color: rgba(0, 0, 0, 0.9); +} +#description .tile .content { + margin: 0 auto; + max-width: 280px; +} +#description .tile .content p { + margin: 0 auto; +} + +#footer { + display: -webkit-flex; + display: flex; + justify-content: end; + margin-top: 3em; + padding: 2em 1em; +} +#footer ul li { + list-style: none; + display: inline-block; + margin-right: 0.3em; +} + +img { + height: auto; + max-width: 100%; +}