libreplanet-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Libre web front-end


From: Paul Fernhout
Subject: Re: Libre web front-end
Date: Sun, 10 Nov 2019 20:12:22 -0500
User-agent: Roundcube Webmail/1.3.8

Hi Mary-Anne,

There are so many options for web front ends that your question has no easy answer. And many (but not all) web UI libraries these days have free licenses (often MIT or BSD) so there are a lot of possible choices. If you ask a dozen different web developers you may get a dozen different answers for preferred libraries or frameworks or tools. Related satire:
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f

I personally prefer Mithril+Tachyons (both MIT licensed) for web UI development for technical reasons explained at the following link -- and also because Mithril is supported by a few well-meaning individuals who use it themselves and not a big privacy-invading corporation like Facebook (React) or Google (Angular):
https://github.com/pdfernhout/choose-mithril

But in my day job I usually still get stuck using Angular and React as they are more popular -- in part from being pushed by big companies.

Here is an example of a (AGPL'd) Interactive Fiction authoring tool and player I ported to the web from Delphi in my spare time using Mithril:
https://storyharp.com/v3.0/

But Mithril is oriented more towards general UIs and not specifically games. So, you might want a more game-specific library for JavaScript depending on what you wanted to develop. Here is one starting place for JavaScript game libraries, but no doubt you could find more each with various pros and cons:
"Top 15: Best open source [sorry] javascript game engines"
https://ourcodeworld.com/articles/read/308/top-15-best-open-source-javascript-game-engines

Or if you were willing to consider learning other languages than JavaScript, here are some game libraries and related articles for Elm -- which is a great functional web UI language that compiles to JavaScript, and itself is under the Revised BSD license, and might be more fun to learn and use than JavaScript:
https://github.com/rofrol/awesome-elm-gamedev

In the end though you'll just have to do due diligence of evaluating the licenses of whatever you choose from so many options -- including making sure they are compatible with however you want to license your project (e.g. GPL perhaps). For example, in the past for a GPl'd project, I considered using the otherwise awesome Clojure language and ClojureScript (which can create web apps) and the related ecosystem of libraries, but unfortunately the language is under the Eclipse Public License 1.0 which is not GPL-compatible and some libraries for Clojure also unfortunately tend to choose the same license which prevent their inclusion in a GPL'd application.

Issues about privacy and such usually have mostly to do with how and where you setup the server to host the content and what the server records related to access and use -- so they are not so much about the front end UI library. Much of that has to do with how you configure logging for whatever server software you use. But whatever choices you make, at a minimum a user's ISP and the server's web hosting service will know the IP addresses involved.

As with UI front ends, there are so many options for server software and hosts. But perhaps you might consider making a project on GNU Savannah and hosting it there (using whatever front end libraries you choose)?
https://en.wikipedia.org/wiki/GNU_Savannah
https://savannah.gnu.org/

Good luck with your game.

--Paul Fernhout (pdfernhout.net)
"The biggest challenge of the 21st century is the irony of technologies of abundance in the hands of those still thinking in terms of scarcity."

On 2019-11-09 14:08, MARY-ANNE WOLF wrote:
If I wanted to write a game that people could play in their browser.
and I wanted people who were concerned about libre software and their
   privacy to be able to play, what technology could I use?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]