Activity Report - July 2019

Published on Aug 10th 2019 by Erlend Sogge Heggen

If you’re new to Amethyst, now is a great time to get better acquainted with our project, developed by a global collective numbering in the double digits. The engine is settling into more frequent releases, making it easier for gamedevs to keep up with our incremental improvements. We’ve added a second showcase game to teach by example whilst demonstrating what Amethyst is currently capable of. And best of all for the newcomers, we’ve introduced the “2D quickstarter”, a simple game template that gets you up and running with a working Amethyst game as quickly as possible.

v0.12 is quietly released

We released Amethyst v0.12 (click for changelog) without much fanfare. The significance of this milestone is deeply understated, as it delivers on our commitment to shipping much more regular releases. We don’t ever again want to endure the pains that came with a 6+ month release cycle between v0.10 in December 2018 to v0.11
in June 2019.

We’re still not fully settled into the 2-week release cycle which we aspire to, but we’ve already achieved a release cadence that makes life easier for everyone involved.

Breaking changes

  • Float newtype removed, moved back to f32 primitive for all values (#1747)
  • TextureProcessor and MeshProcessor systems are now separated from RenderingSystem (#1772)

A new showcase game

2D action platformer Space Menace partnered with Amethyst to become an official showcase project.

Original announcement here.

Evoli releases v0.2

Our first showcase game Evoli released a major v0.2, going from 2D to 3D. The transition has been quite meticulously journaled in the form of video snapshots. (note: big topic with lots of videos & images! may slow down constrained devices)

Quickstarter and sheep: New tools for 2D game development

The v0.2 release of the sheep spritesheet packer gave way to amethyst-starter-2d, a type of game template project that we’ve begun referring to as a “quickstarter”. With the help of current and new contributors, it is just the first of many such quickstarter projects made from the same mould.

2D game development in Amethyst is much easier thanks to the introduction of a “2D starter” for quick project setup and the Sheep spritesheet packer.

Original announcement here.

Scripting support edges closer

Our scripting story has made great leaps in the last few weeks. Here’s most of the discussion & development in chronological order:

Most recently this movement has led to new explorations in ECS design, which we’ll cover in the next headline.

Those interested in scripting & modding features are also encouraged to check out this discussion about WebAssembly as a scripting platform for Amethyst. This is an alternative approach to what’s covered above, but equally interesting in its own right. We’d love to hear from anyone interested in taking this on.

ECS design discussion – Learning from Legion

We had a lengthy discussion on chat and the forum about the implications of our ECS story as it stands, primarily driven by a comparison between specs and the new arrival Legion.

Discussion topic here.

One of the paths forward is an ECS benchmark suite that emulates real Amethyst use cases. Early WIP here: https://github.com/katharostech/amethyst-ecs-benchmarks

Arsenal

A project called Arsenal was started by Katharos Technology to create a Blender game engine built on top of Amethyst. The project is in early stages of development, but an initial proof-of-concept release has been made. The original announcement can be found on the amethyst forum.

Scripting support is the next priority for Arsenal so the aforementioned development effort being put into ECS benchmarking and scripting support is chiefly driven courtesy of these fine folks.

imgui integration

amethyst-imgui has been steadily keeping up with latest Amethyst and was recently moved into the org since it’s being developed by one of the core members anyhow. Anyone using amethyst-imgui should also check out its close relative amethyst-inspector.

Rendy and OpenGL/WebGL

Rendy is well on its way towards web and OpenGL support.

Laminar

Since it’s last release a month ago, Laminar has benefited from many contributions in the form of code and troubleshooting from both Amethyst users as well as users of other engines. It’s very useful to hear use case stories from outside our bubble!

We also started an experimental branch of Space Menace that aims to implement networked multiplayer support with Laminar.

Atelier Editor

The editor underwent some visual planning.

Atelier Assets

Now almost ready to be integrated into Amethyst core, Atelier Assets has been in active development for a year already. It’s a “compiler framework for data” aimed at efficiently processing assets for game engines. You might say it’s like LLVM, but for game assets.

Like many of our other flagship libraries it is in fact engine-agnostic and we would love to hear from other engine developers interested in this project.

Official GameDev WG

Lastly we wanna give a shoutout to the newly established Rust GameDev Working Group! It’s really heartening to see the Rust team share our excitement for Rust as a top-tier language for game development.