LISP GAME SOFT CONS
A downloadable lisp game console
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?
- 2.1. Screwtape's initial outline and takes
- 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 console | 0..* game controllers | |
---|---|---|
0..* video screens | ||
1 debug terminal | ||
0..* game cartridge slots | ||
0..1 virtual chaosnet packet | 0..* 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
Status | Canceled |
Category | Tool |
Author | screwtape |
Code license | GNU General Public License v3.0 (GPL) |
Asset license | Creative Commons Attribution_ShareAlike v4.0 International |
Average session | Days or more |
Inputs | Keyboard, Mouse |
Links | YouTube |
Download
Click download now to get access to the following files:
Development log
- Install the-cons, game cartridges using git now plzJun 25, 2024
- Turning Robots Into Life with the LOOP facilityJun 17, 2024
- PAINSTAKING SOURCE COMPARISON vidak's robots vs screwlisp'sJun 16, 2024
- What I learned from example and tictactoeJun 13, 2024
- 40min copy+paste video example-game to make tictactoeJun 13, 2024
- Lisp soft console example game #firstJun 11, 2024
- livecode videos for days. hotloading clim gui deltas.Jun 09, 2024
- Cautionary Tales: Incompatible ECL SFFI SDL2 C/C++ LISPJun 06, 2024
Leave a comment
Log in with itch.io to leave a comment.