Skip to content

Alpha Release 0.8.0

Pre-release
Pre-release

Choose a tag to compare

@JamesHoltom JamesHoltom released this 30 Mar 17:59
· 14 commits to master since this release
4b3553d

Changes from 0.7.0:

This release adds support for opening multiple windows at once.

Lua Changes:

  • Added an optional parameter for specifying the name of a GameScene a GameObject/EventListener belongs to. This also applies to BoxObject, MenuObject and TextObject.
  • Added LineObject, which draws lines of characters on the screen.
  • Added utility functions to translate between data indices, row/column and pixel position.
  • The timestep in Loop is now given in milliseconds (ms).

C++ Changes:

  • Removed object proxies in favor of using unique_ptr for owning objects, and raw pointers for references in Lua.
  • Amended Audio, EventListener, GameObject and TimedFunction classes to derive from a BaseObject class, which are stored in a singular list.
  • Added debug information to all classes that derive from BaseObject, and to the application. This currently includes the time taken to update the objects.
  • Added a GameScene class that encompasses a Window, FontAtlas and Background. This allows multiple windows to be created.
  • Changed shaders/Shader into the ShaderProgram class, which is stored in a GameScene and now supports uniforms.
  • Changed views/View into the CharacterMap class, which is stored in a GameScene.
  • Extracted the texture-related features of FontAtlas and Background into a Texture class.
  • Added a TexturePacker, to pack font bitmaps and other images into a single texture.
  • Moved the static PlaySound function in objects/Audio into it's own file.
  • Added Seek and Rewind functions to object/Audio.
  • Removed Resume, and Play no longer rewinds to the start of the audio in objects/Audio.
  • Removed GetIntervalElapsed from timing/Timer.
  • Added the option to decide if a Window should hide itself, close or quit the program when a user closes it.
  • Added the option to set a Window's title.
  • Amended the following parameters to be stored as a vec4:
    • CharacterParams colours
    • Background colours
    • Window clear colours
  • Fixed EventListeners possibly being inactive upon creation.
  • Added TimedFunctions, used to delay/repeat code execution by a set amount of time.
  • Amended Object:set to require a Character as a return value, rather than having to set through code.
  • Rearranged some files to (hopefully) make more sense. See below for details.

Other Changes:

  • Removed MS Visual Studio build support.

File re-arrangement:

The primary reasons for rearranging files are for a couple of reasons:

  1. There really isn't a distinction between objects and resources.
  2. I dislike having folders that will only have 1 file/class in them. The shaders folder is an exception, as it will contain more shader-related code in a later release.

Rearranged files include:

  • Moving application/Application into the root folder.
  • Splitting the EventListener class from events/Listener into objects/EventListener.
  • Renaming logging/Logger into utility/SpdlogUtils.
  • Moving resources/Audio into the objects folder.
  • Renaming objects/Object into objects/GameObject.
  • Moving objects/Character, resources/Background, resources/FontAtlas and resources/Window into the rendering folder.
  • Moving shaders/ShaderProgram into rendering/ShaderProgram.
  • Renaming system/DebugFunctions into utility/DebugUtils.
  • Moving system/miniaudio.cc and system/stbi.cc into the vendor folder.