# emacs-slime-volleyball

> an SVG Slime Volleyball Game

**Wikidata**: [Q130459509](https://www.wikidata.org/wiki/Q130459509)  
**Source**: https://4ort.xyz/entity/emacs-slime-volleyball

## Summary
emacs-slime-volleyball is a free, SVG-based Slime Volleyball video game that runs inside GNU Emacs. Written in Emacs Lisp by Red Hat programmer Thomas Fitzsimmons, it is distributed as an official GNU ELPA package under the GNU Project.

## Key Facts
- Current stable version: 1.2.0 (released 2021-07-04)
- Creator & maintainer: Thomas Fitzsimmons (Red Hat programmer)
- License: GPL-compatible free-software license (Q27016754)
- First public release: v1.0 on 2014-07-18
- Available in GNU ELPA since 2020-11-23
- Programming language: Emacs Lisp (dialect dating from 1985)
- Package names: slime-volleyball (ELPA), emacs-slime-volleyball (Guix), slime-volleyball (NixPkgs)
- Source repositories: GitHub mirror and GNU Savannah ELPA branch
- Platforms: GNU Emacs on any operating system Emacs supports
- Wikidata ID: Q106818171

## FAQs
### Q: How do I install slime-volleyball in Emacs?
A: Type M-x package-install RET slime-volleyball RET inside a recent GNU Emacs that has GNU ELPA enabled. The package is signed and hosted on elpa.gnu.org.

### Q: Does slime-volleyball work outside Emacs?
A: No. It is an Emacs Lisp package that renders the game as SVG inside an Emacs buffer; the editor itself is the runtime environment.

### Q: Is the game libre software?
A: Yes. It is copyrighted by the Free Software Foundation and released under a GPL-compatible license, satisfying the four freedoms of free software.

## Why It Matters
Slime Volleyball began as a casual browser game in the early 2000s; emacs-slime-volleyball proves that even lightweight pastimes can live inside the GNU ecosystem without proprietary dependencies. By implementing the arcade classic entirely in Emacs Lisp and SVG, Fitzsimmons created a portable, hackable demo that showcases Emacs’ capacity as a multimedia platform. Because the package is part of GNU ELPA, every Emacs user can audit, modify, and redistribute the code, turning a coffee-break distraction into a teaching tool for functional graphics, event loops, and free-software distribution. The project also keeps the “slime” meme alive inside the very editor that hosts the SLIME Common-Lisp environment, bridging two playful corners of hacker culture.

## Notable For
- First Slime Volleyball implementation distributed as an official GNU package
- Entire game engine and graphics fit into a single Emacs Lisp buffer using inline SVG
- Achieves 60 fps gameplay without external libraries by leveraging Emacs’ built-in timer system
- Packaged for both Guix and Nix, demonstrating cross-ecosystem portability
- Version history preserved across GitHub and GNU Savannah for full public auditability

## Body
### Origin and Releases
Thomas Fitzsimmons released v1.0 on 2014-07-18 through GitHub. After polishing game-play and packaging, he submitted the code to GNU ELPA; version 1.1.3 appeared on 2020-11-23, followed by rapid point releases (1.1.6 two days later, 1.1.7 on 2020-12-01). The current recommended snapshot, 1.2.0, shipped on 2021-07-04 and is the first version marked “preferred” in Wikidata.

### Technical Details
The game is a single Emacs Lisp file that creates an SVG buffer, spawns two slime blobs, and uses Emacs’ timer mechanism to advance physics every 16 ms. Collision detection, net physics, and scoring mirror the original Java applet. Users can rebound the ball with head or body hits; the first player to score six points wins. Because Emacs is cross-platform, the identical Lisp file runs on GNU/Linux, *BSD, macOS, or Windows.

### Governance and Licensing
Copyright is assigned to the Free Software Foundation, aligning the project with the wider GNU Project. The package carries license ID Q27016754, a GPL-compatible free-software license. Contributions must include a copyright assignment to the FSF, a requirement for all GNU ELPA packages.

## References

1. [Source](https://elpa.gnu.org/packages/slime-volleyball.html)
2. [[GNU ELPA] slime-volleyball version 1.1.3. 2020](https://lists.gnu.org/archive/html/gnu-emacs-sources/2020-11/msg00023.html)
3. [[GNU ELPA] slime-volleyball version 1.1.6. 2020](https://lists.gnu.org/archive/html/gnu-emacs-sources/2020-11/msg00027.html)
4. [[GNU ELPA] slime-volleyball version 1.1.7. 2020](https://lists.gnu.org/archive/html/gnu-emacs-sources/2020-12/msg00000.html)
5. [[GNU ELPA] Slime-Volleyball version 1.2.0. 2021](https://lists.gnu.org/archive/html/gnu-emacs-sources/2021-07/msg00004.html)
6. [Release 1.0. 2014](https://github.com/fitzsim/slime-volleyball/releases/tag/v1.0)
7. [Release 1.1. 2014](https://github.com/fitzsim/slime-volleyball/releases/tag/v1.1)