Skip to content

Beta 10 for 3.0.0

Compare
Choose a tag to compare
@tommyettinger tommyettinger released this 19 Jul 00:16
· 947 commits to master since this release

This release is just a relatively-more-stable mark in the seemingly-indefinite sequence of JitPack commit-releases, but it's an important mark to make because this release is the first commit to depend on the new libGDX 1.9.10 release, and some things have changed in 1.9.10 (libGDX was able to update to GWT 2.8.2, which is a worthwhile improvement, so setup stuff will need changes). The last beta release was almost 2 years ago, so... it's time.

If you only use stable/beta versions, a ton will have changed or have been added since b9. A recent breaking change was DijkstraMap.Measurement and virtually-identical copies to that enum in other classes getting consolidated into Measurement in the squidpony.squidgrid package; this just reduces repetition of incompatible enums. An earlier, non-breaking change is the suggestion to use FilterBatch instead of libGDX's SpriteBatch, since FilterBatch adds features, keeps compatibility with SpriteBatch from libGDX 1.9.8 and earlier, and is a little faster. The usage of packed floats to encode colors has increased, and they're a main way of using the API for the newer, faster SparseLayers and related classes. If you don't want to deal primarily with floats for colors, SColor constants have a very simple toFloatBits() method that doesn't need to recalculate the packed float value if the SColor hasn't been modified (so you can keep using SColor constants from the huge list in that file, and only get their float encoding when necessary). The term "YCwCm" sometimes shows up in color-related code now; this is a way of handling colors and modifications to those colors that represents a color as a Y value for brightness (from 0 for black to 1 for white), a Cw value for color warmth (green or blue near -1, yellow or red near 1), and a Cm value for color "mildness" (red or blue near -1, yellow or green near 1). YCwCm edits to colors are a handy new way of increasing or decreasing the aesthetic warmth of colors when certain effects in a game may change the actual warmth of an area. There's MSDF fonts in the assets and in DefaultResources now, which are very crisp when resized. Noise code has been somewhat consolidated into SeededNoise and FastNoise, both of which are fairly fast, but SeededNoise uses a long seed and natively produces double results (it ties in well to the Noise nested classes), while FastNoise uses an int seed by default, natively produces float results, and has features within itself to choose different noise options that would need things like Noise.Ridged3D otherwise. The default random number generator and hashing code has changed, so any seeds given to RNG are likely to result in different values, but the current code is very high-quality and, in particular for the hashing code in CrossHash, passes stringent tests that earlier versions didn't, while also being a little faster. Data structures have gotten some attention; OrderedMap and OrderedSet now can be sorted given a Comparator, which is a very reasonable feature considering they already could be reordered. There's a few new primitive-backed Maps and Sets, and even though there are UnorderedMap and UnorderedSet, you probably only want to use those if you need a custom IHasher (such as for array keys), since they aren't as fast as HashMap and HashSet. World map generation has had a lot of additions, and you can get a rotating view of a planet now, among other features.

There's a lot of new additions, so I hope you enjoy this release!