Blacken
Blacken | |
---|---|
Library project | |
Developer | Steven Black |
Released | 2011 (1.0) |
Updated | 2012-09-11 (1.1) |
Status | In Active Development |
Licensing | Apache 2.0 |
P. Language | Java |
Platforms | Unix, Linux, Mac OS X, Windows |
Dependencies | Java 7, slf4j |
Official site of Blacken |
Release Announcement for Blacken 1.1
In time for the Annual Roguelike Release Party, we're proud to announce Blacken 1.1, the next major revision of Blacken, a Java library for Roguelike development.
Blacken now uses the Apache 2.0 license.
We now have a user-focused site which includes tutorials you can try out via Java WebStart: https://sites.google.com/site/blackenlib/try-it-out
We're now in Maven Central, so use of Blacken is a matter of adding a few lines to your pom.xml:
<dependency> <groupId>com.googlecode.blacken</groupId> <artifactId>blacken-core</artifactId> <version>1.1</version> </dependency>
The full release notes are online at: https://sites.google.com/site/blackenlib/current-version/release-notes
Improvements over Blacken 1.0
License change: We used to be GPLed, but now we use the Apache 2.0 license. It can be hard to change licenses on a project. This was done before we accepted any contributions to the codebase. That is, it was the project of a single individual when we changed licenses.
Significant performance improvements: Our display updates were sluggish, though we did our best to work-around it so the response time was okay. With Blacken 1.1 the performance itself is good.
Simpler interface: The native programming interface is no longer so similar to Curses. There is a "CursesLikeAPI" wrapper that adds back the functions that were taken out, but by default the class is smaller and simpler. In particular, the management of the cursor is much simpler.
Some features
Originally Blacken was aiming purely for the user-interface. That's still where it is most complete.
Palette support: Indexed and named colors; mixing indexed colors from the palette with arbitrary 24-bit colors; palette rotation; load custom palettes from files using either our own format or GIMP palettes.
Arbitrarily resizing the window: maintains a "preferred size" changing the font size as needed; Alt-Enter for full screen mode; supports the visually impaired (as long as they can see something) by making it easy to make the font very large.
cell walls: Any cell can have walls on any of the four edges; use it for menus; use it for buttons; use it for zero-width walls where zombies can pull you through windows.
Unicode support: A cell contains a sequence of codepoints; codepoints may be outside of the Basic Multilingual Plane; some of the code-points may be zero-width accents.
Curses-style key input: all key input consists of valid Unicode codepoints; special keys are handled by codepoints in "private use" planes; modifier keys are handled through a prefix character (like Unix systems handle Alt via the Escape character).
Growing support for general Roguelike development: We now have BSP Tree support and Perlin noise.
Focus of next release
The 1.2 release will feature a full featured tutorial including a coffee-break-length Roguelike.
The reason that there's going to be another release, instead of just a tutorial is that we'll be resolving the nits and annoyances that crop up during the creation of the Roguelike. The goal is to shake out the last of the issues that would inconvenience a 7DRL developer.
The goal for the tutorial and the accompanying minor release is Jan 2013.