Skip to content

Commit

Permalink
Merge pull request #3 from swarm-game/posts/0.5-release
Browse files Browse the repository at this point in the history
blog post for 0.5 release
  • Loading branch information
kostmo authored Nov 2, 2023
2 parents c2dad38 + e773cf1 commit 86885c4
Showing 1 changed file with 121 additions and 0 deletions.
121 changes: 121 additions & 0 deletions blog/2023-11-02-swarm-0.5-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
---
title: "Swarm 0.5 release"
author: "Karl Ostmo"
---

The [Swarm](https://github.com/swarm-game/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](https://github.com/swarm-game/swarm/releases/tag/0.5.0.0). If
you just want to try it out, see the [installation
instructions][install].

## 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](https://github.com/swarm-game/swarm/blob/main/data/scenarios/doc-fragments/SCHEMA.md) ([#1441](https://github.com/swarm-game/swarm/pull/1441)).

All scenarios are verified against the schema as part of CI
([#1475](https://github.com/swarm-game/swarm/pull/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](https://github.com/swarm-game/swarm/blob/main/data/scenarios/README.md) 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](https://github.com/swarm-game/swarm/pull/1478)) merely a matter
of installing an [extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml).

## Code quality

- Partial functions are now restricted via `hlint` ([#1503](https://github.com/swarm-game/swarm/pull/1503)).
- Huge records are decomposed ([#1510](https://github.com/swarm-game/swarm/pull/1510))
- Richer internal API types ([#1604](https://github.com/swarm-game/swarm/pull/1604))
- Haddocks, wiki, and README improvements (e.g. [#1512](https://github.com/swarm-game/swarm/pull/1512), [#1527](https://github.com/swarm-game/swarm/pull/1527), [#1529](https://github.com/swarm-game/swarm/pull/1529), [#1493](https://github.com/swarm-game/swarm/pull/1493), [#1488](https://github.com/swarm-game/swarm/pull/1488), [#1472](https://github.com/swarm-game/swarm/pull/1472))

## Give it a try!

To install, check out the [installation instructions][install]: you
can download a [binary release][release] (for now, Linux only, but
MacOS binaries should be on the horizon), or [install from
Hackage][hackage]. Give it a try and send us your feedback, either
[via a github issue][issue] or [IRC][irc]!

[install]: https://github.com/swarm-game/swarm#installing
[release]: https://github.com/swarm-game/swarm/releases
[hackage]: https://hackage.haskell.org/package/swarm
[issue]: https://github.com/swarm-game/swarm/issues/new/choose

## Future plans & getting involved

We're still hard at work on the game. Fun upcoming things include:

- [Saving and loading games][saving]
- New world features like aliens and [cities][cities]
- New language features like [recursive types][rectypes],
[arrays][arrays], [inter-robot communication][robot-comm], and [a
proper `import` construct][import]

[cities]: https://github.com/swarm-game/swarm/issues/112
[saving]: https://github.com/swarm-game/swarm/issues/50
[rectypes]: https://github.com/swarm-game/swarm/issues/154
[arrays]: https://github.com/swarm-game/swarm/issues/98
[robot-comm]: https://github.com/swarm-game/swarm/issues/94
[import]: https://github.com/swarm-game/swarm/issues/495

Of course, there are also [tons of small things that need fixing and
polishing][low-hanging] too! If you're interested in getting
involved, check out our [contribution guide][contrib], come [join us
on IRC][irc] (`#swarm` on Libera.Chat), or take a look at the list of
[issues marked "low-hanging fruit"][low-hanging].

[contrib]: https://github.com/swarm-game/swarm/blob/main/CONTRIBUTING.md
[low-hanging]: https://github.com/swarm-game/swarm/issues?q=is%3Aissue+is%3Aopen+label%3A%22C-Low+Hanging+Fruit%22
[irc]: https://web.libera.chat/?channels=#swarm

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!][contrib]

0 comments on commit 86885c4

Please sign in to comment.