New Zircon Release: 2018.12.25-XMAS

  Written by:

Zircon is an extensible, multiplatform and user-friendly tile engine.

If you are not yet familiar with the project take a look at our Project Page.

You can grab this release from Jitpack here. Maven Central synchronization will come soon as well.

Highlights of this release

This release contains numerous usability upgrades and the introduction of new Component types like Modals and the Icon Component. We also worked on fleshing out the inner workings of the GameArea based on feedback from our users.

We also started working on Caves of Zircon which is a tutorial project which has the goal to get you started with writing roguelike games! The project is almost complete and when it is ready a series of tutorial articles will follow. Take a look at some game footage here.

Apart from a tutorial project there is now also a Java and a Kotlin skeleton project which you can download to get started with Zircon without the need to manually set up a project. The Java skeleton can be found here and the Kotlin one is here.

What’s also important to mention is that now we have a LibGDX Renderer for Zircon! It is in beta right now, but we’ll get it to production-ready state for the next release. Thanks for @Ender_L for contributing it to the project! With this it is now possible to run Zircon in the browser. We’ll put up an example with this soon.

New Features

  • #1: LibGDX rendering support Yea, this was the first issue in our issue tracker and now we have it in BETA. Thanks for the contribution, @Ender_L! These screens are rendered using the new LibGDX renderer. CP437 fonts are supported now together with Input handling. Animation, Modifier and the remaining tileset support will come in the next release!
  • #24: Modal (dialog) support This one was on the Road map for quite some time, but it is ready now! Take a look at this example.
  • #121: Programmatic focus for Components Now it is possible to programmatically focus Components. Take a look at an example here.
  • #153: Implement Ellipse Factory Now you can draw not only triangles, rectangles and boxes, but also ellipse shapes! Thanks for @Milo for this contribution!
  • #156: Databinding Iteration 1 Zircon now supports databinding. It looks like this. This feature might be familiar from JavaFX or some other UI framework. The basic premise is that you can create Property instances which you can bind to other properties and their values will change together. Databinding is possible uni-, and bidirectionally and it is implemented for the basic Components in Zircon.
  • #171: Fragment Support A Fragment is a re-usable Component container which contains a root Component (which can also be a Container and can be added to either a Container or a Screen.
  • #172: Implement the Icon Component An Icon Component is a regular Component which has a size of 1x1 and holds a single GraphicTile. It looks like this and can be used to put icons on your UI.

Enhancements

  • #132: TextAreas now can be enabled and disabled once again. This feature was removed previously because of some technical limitations, but now it is fixed.
  • #133: Layers are now clearable
  • #145: Component alignment is now easier with the new alignment functions. Take a look here.
  • #152: Borders now support custom width and also custom color like in this example.
  • #154: Handling Inputs are now easier with some new convenience features like whenInputTypeIs and whenCharacterIs.
  • #155 GameArea now supports adding overlays. This is useful for creating things like Fog of War effects as seen in this example.

Bug fixes

  • #122: Weird effect if label has FadeIn modifier
  • #158: When different tilesets are set only one of them is used.
  • #128: Bug in README.md document example

Roadmap

There are some things which did not make it into this release, but will be present in the next release, like the Group Component and Event Bubbling.

Apart from those we have some things which are quite interesting:

  • Browser support with Pixi.js
  • Floating windows
  • Toolbars
  • Drag’n drop support
  • Concurrency / parallelism refactoring to use Kotlin Coroutines
  • Scrollable Components
  • Slider widget
  • Drop down menus
  • Custom Component support
  • Layout support

Contribute

If you think that you can contribute or just have an idea feel free to join the discussion on our Discord server.

Do you have questions? Ask us on our Discord Server.

If you like what we do and want to support us consider becoming a Patron.