Swarm 0.5 release
The Swarm development team is pleased to announce the latest (alpha) release of the game.
Much work since the last release has gone into making Swarm even more contributor-friendly, spanning CI, documentation, and code quality. For full details, see the release notes. If you just want to try it out, see the installation instructions.
What is it?
As a reminder, Swarm is a 2D, open-world programming and resource gathering game with a strongly-typed, functional programming language and a unique upgrade system.
Scenario authoring improvements
Swarm can be played in an “open-world” mode or with self-contained “scenarios” as stand-alone challenges.
The JSON schema that describes scenario files has been revamped and also now serves as the authoritative source of human-readable documentation, rendered to markdown (#1441).
All scenarios are verified against the schema as part of CI
(#1475),
and the schema itself has an enforced structure, e.g.
requiring "additionalProperties": false
for all object
s.
All this together means that online documentation stays up-to-date, and authors get hover-documentation and instant feedback about misspelled or misplaced fields in their scenario files. Setting up VS Code for this is now (#1478) merely a matter of installing an extension.
Code quality
- Partial functions are now restricted via
hlint
(#1503). - Huge records are decomposed (#1510)
- Richer internal API types (#1604)
- Haddocks, wiki, and README improvements (e.g. #1512, #1527, #1529, #1493, #1488, #1472)
Give it a try!
To install, check out the installation instructions: you can download a binary release (for now, Linux only, but MacOS binaries should be on the horizon), or install from Hackage. Give it a try and send us your feedback, either via a github issue or IRC!
Future plans & getting involved
We’re still hard at work on the game. Fun upcoming things include:
- Saving and loading games
- New world features like aliens and cities
- New language features like recursive types,
arrays, inter-robot communication, and a
proper
import
construct
Of course, there are also tons of small things that need fixing and
polishing too! If you’re interested in getting
involved, check out our contribution guide, come join us
on IRC (#swarm
on Libera.Chat), or take a look at the list of
issues marked “low-hanging fruit”.
Brought to you by the Swarm development team:
- Brent Yorgey
- Karl Ostmo
- Ondřej Šebek
With contributions from:
- Alexander Block
- Brian Wignall
- Chris Casinghino
- Daniel Díaz Carrete
- Gagan Chandan
- Huw Campbell
- Ishan Bhanuka
- Jacob
- Jens Petersen
- José Rafael Vieira
- Joshua Price
- lsmor
- Noah Yorgey
- Norbert Dzikowski
- Paul Brauner
- Ryan Yates
- Sam Tay
- Steven Garcia
- Tamas Zsar
- Tristan de Cacqueray
- Valentin Golev
…not to mention many others who gave valuable suggestions and feedback. Want to see your name listed here in the next release? See how you can contribute!