Skip to content

Oak v3.0.0

Compare
Choose a tag to compare
@200sc 200sc released this 18 Sep 22:15
· 332 commits to master since this release
314b923

This release marks the final, stable release of oak v3.

The below changelog notes the delta between this release and the previous oak v3 beta release. For a complete changelog since 2.5.0, see this link.

Changelog
audio

  • The FontManager type has been removed. It was not frequently used and can be trivially introduced as a standalone package.
  • The Cache type has been introduced to handle file loading and caching. Several loading functions have changed to work with this new type and the DefaultCache global variable.
  • GetSounds has been removed.

oak

  • Assets no longer contains an AssetPath or a FontPath.
  • The Font config type has been removed. Non-default fonts must be manually loaded outside of a base oak config, with a full asset path. This change emphasizes the built in nature of the default font and the reality of font configuration that the color, dpi, and hinting of a font is not often customizable from an end user's perspective.
  • Screen.Scale is now a float64 instead of an int.
  • Most Window methods are now exposed as package level functions on the default window.
  • SetBinaryPayload(func(...), func(...)) is now SetFS(fs.FS)

debugtools

  • New package, contains common debug helper functions like rendering collision trees and printing mouse position

dlog

  • Logger.GetLogLevel has been removed. Its hard to imagine a scenario where you would want to query the current log level other than to update it to be more or less verbose-- just set the desired verbosity.
  • Log strings used by oak are now exposed as constants in this package.

physics

  • All Vector methods now modify Vectors in place. (#115)

entities/x/mods

  • Adds the Lighter utility to return a lighter version of a color.

entities/x/shake

  • shake.ShakeScreen has been renamed shake.Screen

fileutil

  • This package has been stripped down to just be an exposed FS fs.FS, a couple configuration options, and the Open, ReadFile, and ReadDir functions.

oakerr

  • Language constants have been expanded from two characters to three, matching ISO 639-2 (#53)

scene

  • Context now contains the current key.State.

render

  • ParseSubSprite has been removed.
  • LoadSprites has been removed.
  • SetFontDefaults has been removed.
  • LoadSpriteAndDraw has been removed.
  • Font.DrawString has been privatized.
  • Fonts now more accurately determine which elements of a font are undefined runes, e.g. a kanji character in a roman alphabet font.
  • Font and FontGenerators have had their interface significantly adjusted to simplify creation and reduce accidental persistence of one font's qualities or pointer to secondary fonts.
  • The Cache type has been introduced to handle file loading and caching. Several loading functions have changed to work with this new type and the DefaultCache global variable.
  • Batch loading has been rewritten. Alias json files are no longer supported. Individual file names can now hint to the batch loading system that they are a sheet with a particular sheet size, and this will supercede a hint coming from their containing directory. Directories and files now must end in explicitly %dx%d e.g. window64x64.png or /tiles32x32/ to be caught and automatically cached as sheets.

shiny

  • The default OSX driver has improved feature parity with windows and linux and is substantially more stable.