-- Leo's gemini proxy

-- Connecting to transjovian.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

To play the game, go here:

Play Ijirait


To stream the game in addition to that, go here:

Stream Ijirait


More on streaming below.


Client Certificate


You need a permanent client certificate because the character you get when you connect is tied to your client certificate’s fingerprint.


This means that if you create a new client certificate using a different client, or a different device, you'll get a different character! In order to play the same character from different clients and different devices, you need a way to share your client certificate.


Caching (Elpher and other clients)


If your client caches all the pages it sees, you will have a strange experience playing this game, since every command is an URL, but it does make a difference whether you use the "look" command in this room or that room. Client-side caching is a problem.


Elpher


Then again, if you’re using Elpher, you might want to give this config a try:


;; Do not cache Ijirait!

(defvar asc:elpher-no-cache-prefixes '("gemini://campaignwiki.org/play")
  "Prefixes of URLs not to cache.")

(advice-add 'elpher-cache-content :around #'asc:elpher-cache-content)

(defun asc:elpher-cache-content (oldfun address content)
  "Do not cache Ijirait URLs."
  (let ((url (elpher-address-to-url address)))
    (when (catch 'found
	    (dolist (prefix asc:elpher-no-cache-prefixes)
	      (when (string-prefix-p prefix url)
		(throw 'found t))))
      (funcall oldfun address content))))

An Ijirait Client


There is dedicated Ijirait command-line client in the Phoebe repository.

ijirait


There's a screenshot on this blog post, if you're interested:

2021-06-14 Jirait is a Gemini-based MUSH


Quickstart:


git clone https://alexschroeder.ch/cgit/phoebe
cd phoebe

Generate client certificates, not answering most of the questions OpenSSL asks:


make client-cert
.
.
.
.
.
Ijirait
.

Now you have “client-cert.pem” and “client-key.pem”, both valid for five years.


Invoke the script to play:


script/ijirait --url=gemini://campaignwiki.org/play/ijirait \
  --cert=client-cert.pem --key=client-key.pem

For streaming (see below):


script/ijirait --stream --url=gemini://campaignwiki.org/play/ijirait/stream \
  --cert=client-cert.pem --key=client-key.pem

Streaming


If you client allows it, you can also connect to the streaming URL. Use the same client certificate as when you play the game. You'll get notifications on the stream in real time!


Stuff like this:


Anbeinis arrives.
Anbeinis says: “Hello, Didia!”
Anbeinis examines pebble.
Anbeinis changes appearance.

-- Response ended

-- Page fetched on Sun May 19 00:13:34 2024