A downloadable lisp game console

Download NowName your own price

LISP GAME SOFT CONS 0.0.3

By popular request, pressing f1 now evolves the game field's wreckage according to the mazecetric cellular automata https://en.wikipedia.org/wiki/Mazecetric.

Now featuring the classic game, robots! The #o10 test game implementations are happily underway ;)


Table of Contents

  • 1. Purpose
    • 1.1. Participation
  • 2. This document
    • 2.1. Screwtape's initial outline and takes
      • 2.1.1. Physical Intuition
      • 2.1.2. The CLIM spec front-end as the host of this spec
      • 2.1.3. Game Engines Must Provide CLIM Middlewares
      • 2.1.4. If Available Networking Is Provided As A Chaosnet packet
      • 2.1.5. Text adventure support
      • 2.1.6. 2D art
      • 2.1.7. 3D art
      • 2.1.8. ASCII art
      • 2.1.9. MIDI Player
      • 2.1.10. Music MIXING
      • 2.1.11. Screen readers
      • 2.1.12. Climate Crisis
      • 2.1.13. Sunshine and reconciliation
      • 2.1.14. Language support
      • 2.1.15. What Is A Game Cartridge?
  • 3. Links
 L I S P
 G A M E
 S O F T
 C O N S

I choose LAFS as the acronym. You may choose your own. (What about GLIMPSE?). There is a lisp tradition of freestyling new backronyms from accepted acronyms. Love Is So Powerful.

1. Purpose

Form a committee to define a lisp software video game console specification.

1.1. Participation

Let me know during any show live, via MOOmail, via itch.io or via Mastodon publically (it will be public, after all) if you want to be on the subcommittee for any of the below topics, and/or a different topic that should be there.

2. This document

What I have written here is a starting point intended to be changed and grown, since I am drafting this from my own initial take.

Hypothetically, we will form a committee with different members appointed to different areas. One hopes we kind of do good enough that KMP might mentor us.

Another way to read this is a list of things I'm going to personally do anyway if no-one else wants to be involved.

On one hand, I want to write this in the context of conformant common lisps however one topic should also be sunshine and reconciliation with others in the lisp games community.

2.1. Screwtape's initial outline and takes

2.1.1. Physical Intuition

It's meant to be like having a console plugged into your TV, inserting a game cartridge, plugging in controllers, powering on and pressing start.

The scary sounding virtual chaosnet packet minimally is just a mandate that the game cartridge doesn't know anything about networking, the console just exposing an array of bytes identified as a chaosnet packet for the game to read-sequence from and write-sequence to the data field of for networking (there may be a real conformant chaosnet bridge). I say virtual packet rather than virtual ether to refer to softening of conditions to having a single array as the network communications abstraction.

1 Game console0..* game controllers 

  0..* video screens  
  1 debug terminal  
  0..* game cartridge slots 
  0..1 virtual chaosnet packet0..* Chaosnet bridge

2.1.2. The CLIM spec front-end as the host of this spec

CLIM can be used without a backend loaded. This implies using application frames for objects that have commands with present and accept structured communication. It's very nice and pre-solves infinitely many future problems.

There is one major libre CLIM implementation and two major proprietary clim implementations. CLIM is specified as an extension to the ANSI common lisp 2e standard. It's much better than qt corporation's C++ framework in every single dimension.

2.1.3. Game Engines Must Provide CLIM Middlewares

There is a structured way for an engine to become a clim backend, which is to implement the clim middleware using that engine's tools. Refer to jackdaniel's SDL2 experimental backend for McCLIM clim.

This allows Lisp Game Soft Cons "cartridges" to be portable between game engines, an exciting proposition.

While game engine backends must provide the clim middleware, they may provide a non-portable extension package. This is anticipated for game engines providing 3D acceleration.

2.1.4. If Available Networking Is Provided As A Chaosnet packet

I guess this is controversial. Instead of punting low level networking protocols at game developers, Lisp Game Soft Cons conformant implementations may provide one chaosnet packet. All network communication must take place through the chaosnet packet. Minimally, the data bytes of the chaosnet packet can be used for otherwise arbitrary networking. The implementation may provide a fully featured virtual ether and chaosnet gateway.

2.1.5. Text adventure support

Must be provided. =+textual-view+= is the fundamental view of clim.

2.1.6. 2D art

May be provided and are strongly encouraged

2.1.7. 3D art

May be provided and are strongly encouraged

2.1.8. ASCII art

May be provided and are strongly encouraged

2.1.9. MIDI Player

May be provided and are strongly encouraged

2.1.10. Music MIXING

May be provided and are strongly encouraged

2.1.11. Screen readers

May be provided and are highly encouraged. Since graphics and sound in clim are understood as contextual transformations of textual-view presentations, a screen reader can be implemented as a general case textual-view transformation. WIP for me.

2.1.12. Climate Crisis

An open ended discussion of the roles of the Lisp Game Soft Cons spec in drastically reducing resource consumption and waste, while enabling portable awareness and visibility of the climate.

2.1.13. Sunshine and reconciliation

Including lisps that are not conformant common lisps as viable hosts for this specification. ,Spritely goblins, interlisp, chicken/rnrses.

Edit: Removed TIC80 after learning more about what it is/n't.

2.1.14. Language support

veer66 told me McCLIM doesn't support Thai (I think) characters. Since lisp programs are incrementally written and  hot-compiled while running, keyboard and non-ANSI character support is highly encouraged. ANSI Common Lisp mandates ANSI support but every compiler added UTF8.

2.1.15. What Is A Game Cartridge?

I basically don't think the game cartridges should be ASDF systems. They should not be system artifacts of the host language. But they need to be portable and accessible to creation by new game programmers. If you let me choose, they will be Leonardo Entity Files. Be involved.


3. Links

CLIM spec http://bauhh.dyndns.org:8000/clim-spec/index.html
CHAOSnet packet https://tumbleweed.nu/r/lm-3/uv/amber.html#packets_002dsection
McCLIM https://mcclim.common-lisp.dev/
Itch https://lispy-gopher-show.itch.io/lisp-game-soft-cons
screwlisp mastodon https://mastodon.sdf.org/@screwtape/
jackdaniel's site https://turtleware.eu/

Author: Screwlisp

Created: 2024-06-03 Mon 12:03

Validate

Download

Download NowName your own price

Click download now to get access to the following files:

lisp-game-soft-cons.tar.gz 5.9 kB

Development log

View all posts

Leave a comment

Log in with itch.io to leave a comment.