Category Archives: SquidLib

SquidLib 2.0 on the Way!

SquidLib 2.0 alpha 1 is out!

This means the newest, sexiest, and most used Java roguelike library can be yours today!

This release is self-stable and feature-complete. It is the recommended version to use until a newer one comes along as it reduces the complexity of SquidLib 1.95 considerably while adding new features. The only two features removed from 1.95 are highlighting and libgdx support. It is the first SquidLib release to use Java 8.

This version is an alpha as many sections may move or have method names and signatures modified. For example all “character” placement methods now accept code points internally rather than char types. At the end user level however the overload with a char parameter still exists for convenience purposes.

For most projects conversion from 1.95 to 2.0a1 should be fairly painless. I’ve converted all of the example code projects and for the most part it was a matter of simply replacing the placeFoo() calls with put(), which is the new universal grid placement method name.

Again, this is a self-stable and feature-complete version and can be used without being required to switch to a later version when one becomes available unless a desired feature has been added to the newer version.

Posted in SquidLib | Tagged , , , | Leave a comment

SquidLib Version 1.95 Released!

Lots of fancy new features in this version of SquidLib!

But first, a picture of FOV in action:

On an island in a lake in the mountains south of the marshlands.

On an island in a lake in the mountains south of the marshlands.

There are a variety of Field of View algorithms built in, along with an assortment of wrappers to really allow customization of their output. My personal favorite is the TranslucenceWrapperFOV with a ShadowFOV base, which is what you see in the image above.

Other FOV algorithm options include a water-like spread, outward rippling, and Elias-based ray casting.

There are currently two Line of Sight algorithms, Bresenham which draws a direct line, and Elias which draws an anti-aliased line. The following two images display the differences.

Bresenham LOS can't see around corners if the "drop" is the wrong direction.

Bresenham LOS can’t see around corners if the “drop” is the wrong direction.

Elias LOS can see around corners as naturally expected due to checking an anti-aliased line.

Elias LOS can see around corners as naturally expected due to checking an anti-aliased line.


Get the newest version at the github repository, including a convenient zip of this release! Also check out the demo applications, there’s a lot of usage scenarios laid out in them.

Posted in SquidLib | Tagged , , , , , , , , | 3 Comments

SquidLib Gets Even More Colorful

The newest version of SquidLib is live!

This version features a large bundle of new named colors, along with pallets for them. The new set includes all of the colors from The Traditional Colors Of Japan on wikipedia. Each of the series are included as an array for your use.

The SColorFactory class has been expanded with new options, including shortcut methods to get varying degrees of dimness/lightness of a given color. A demo for that functionality is live at the GitHub repository.

The colors in this image use the SColorFactory adjustment methods in the following order from left to right:

  • desaturated
  • desaturate [at 80%]
  • lightest
  • lighter
  • light
  • [the original color]
  • dark
  • darker
  • darkest

The demo allows you to work with any of the preconfigured pallets and features a tooltip that tells you what method and color name are under the cursor during use.

Posted in SquidLib | Tagged , , , , , , | Leave a comment

SquidLib is alive!

Want to have a convenient grid world display in Java?


Freshly streamlined, SquidLib is the successor to SquidGrid, MonoSpaceDisplay, and libjcsi. With three great display libraries as ancestors, SquidLib has the refinement and tools to make any text grid work easy.

This library is meant to be an answer to ncurses for Java Swing, but goes beyond the tools of ncurses.

Current features include:

  • Place characters on grid arbitrarily
  • Set foreground and background colors for each cell individually
  • Place strings on grid arbitrarily
  • Place blocks of characters on grid arbitrarily
  • Dynamic resizing of grid
  • Dynamic changing of font
  • Arbitrary fonts stay monospaced
  • Select specifically what characters must fit in the cells


SquidLib is under active development, so please add any comments or suggestions to the issues tracker on the GitHub site.

Posted in SquidLib | Tagged , , , , , , | Leave a comment