diff --git a/blog/2025-06-04-swarm-0.7-release.md b/blog/2025-06-04-swarm-0.7-release.md new file mode 100644 index 0000000..e350cca --- /dev/null +++ b/blog/2025-06-04-swarm-0.7-release.md @@ -0,0 +1,109 @@ +--- +title: "Swarm 0.7 release, and Swarm at ZuriHac!" +author: "Brent Yorgey" +--- + +The [Swarm](https://github.com/swarm-game/swarm/) [development team][contributors] is +pleased to announce the latest alpha release of the game. + +[contributors]: https://github.com/swarm-game/swarm?tab=readme-ov-file#contributors + +It's been quite a while since our last release, and the pace of +development has been slower this year---but development continues nonetheless! + +Read on for a more in-depth discussion of some of the new features, or +see the [CHANGELOG](https://github.com/swarm-game/swarm/blob/main/CHANGELOG.md) or even the [complete list of git +commits](https://github.com/swarm-game/swarm/commits/main/?since=2024-07-14&until=2025-06-04). + +## 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. + +## ZuriHac! + +Several of us will be at [ZuriHac](https://zfoh.ch/zurihac2025/) in person. If +you're at ZuriHac in person too, come say hi, try out the game, and maybe +hack on some [low-hanging fruit][low-hanging]! + +If you won't be at ZuriHac in person but still want to try hacking on +Swarm, come join our [Discord server](https://discord.gg/kp8MuSgkPw) or [The Swarm Hive on Gather.town](https://app.gather.town/app/SpqG1ic5pNKM7YqS/The%20Swarm%20Hive)! + +## New challenge scenarios + +There are a number of new challenge scenarios included in this +release, with example screenshots shown below. + +![](/gallery/flowers.png) + +![](/gallery/dna.png) + +![](/gallery/exterminator.png) + +## Tutorial improvements + +There have been a bunch of improvements to the in-game tutorial: from +small things like making sure choosing `Tutorial` from the menu +automatically takes you to the first *unsolved* tutorial level, to big +things like level redesigns and prose rewrites. + +## Language improvements + +The Swarm language itself hasn't changed too much in this release. `return` +has been renamed to `pure` +([#2285](https://github.com/swarm-game/swarm/pull/2285)), and we have +retired `fst` and `snd` in favor of a pair elimination form called `match` +([#2407](https://github.com/swarm-game/swarm/pull/2407)). As usual, +you can automatically convert 0.6 code to 0.7 with `swarm format --v0.6`. + +There are also a few new commands: + +- The `print` and `erase` commands allow printing values on `paper` ([#2245](https://github.com/swarm-game/swarm/pull/2245)). +- There is also a new `read` command, which can parse values from + their textual representations ([#2224](https://github.com/swarm-game/swarm/pull/2224)). + +## Other enhancements + +There were a ton of other small improvements, like fixing several +space leaks, adding some achievements, adding a few hints to classic +mode, adding a feature to render contiguous walls, and a number of +small UI tweaks. + +## Give it a try! + +To install, check out the [installation instructions][install]: you +can download a [binary release][release] (Linux only, for now), or +[install from Hackage][hackage]. Give it a try and send us your +feedback, either [via a GitHub issue][issue] or [Discord][discord]! + +[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: + +- More fully fleshed-out [tournament server](https://github.com/swarm-game/swarm/pull/1798) +- [Saving and loading games][saving] +- New world features like aliens and [cities][cities] +- New language features like [arrays][arrays], [inter-robot communication][robot-comm], and [a + proper `import` construct][import] + +[cities]: https://github.com/swarm-game/swarm/issues/1944 +[saving]: https://github.com/swarm-game/swarm/issues/50 +[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 Discord][discord], 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 +[discord]: https://discord.gg/kp8MuSgkPw diff --git a/gallery/dna.png b/gallery/dna.png new file mode 100644 index 0000000..3fe95e8 Binary files /dev/null and b/gallery/dna.png differ diff --git a/gallery/dna.png.metadata b/gallery/dna.png.metadata new file mode 100644 index 0000000..3f0c139 --- /dev/null +++ b/gallery/dna.png.metadata @@ -0,0 +1 @@ +caption: DNA copying scenario \ No newline at end of file diff --git a/gallery/exterminator.png b/gallery/exterminator.png new file mode 100644 index 0000000..a3ee84c Binary files /dev/null and b/gallery/exterminator.png differ diff --git a/gallery/exterminator.png.metadata b/gallery/exterminator.png.metadata new file mode 100644 index 0000000..a770426 --- /dev/null +++ b/gallery/exterminator.png.metadata @@ -0,0 +1 @@ +caption: Exterminator scenario \ No newline at end of file diff --git a/gallery/flowers.png b/gallery/flowers.png new file mode 100644 index 0000000..b61ffba Binary files /dev/null and b/gallery/flowers.png differ diff --git a/gallery/flowers.png.metadata b/gallery/flowers.png.metadata new file mode 100644 index 0000000..4c65313 --- /dev/null +++ b/gallery/flowers.png.metadata @@ -0,0 +1 @@ +caption: Flower count scenario diff --git a/installing.md b/installing.md index 4b54916..0939cd1 100644 --- a/installing.md +++ b/installing.md @@ -49,7 +49,7 @@ able to install with cabal install swarm -Currently Swarm builds with GHC 9.2 through 9.8. +Currently Swarm builds with GHC 9.6 through 9.12. If you don't already have the `cabal` tool, first [install `ghcup`](https://www.haskell.org/ghcup/), then run `ghcup install