Skip to content

Latest commit

 

History

History
306 lines (280 loc) · 17 KB

CHANGES.md

File metadata and controls

306 lines (280 loc) · 17 KB

gplayengine fork v1.0

  • Reorder sources files by category.
  • Drop support for visual studio and Xcode projects.
  • Adds cmake support for Linux, Windows and Emscripten.
  • Remove OpenGL and use BGFX api.
  • Update shaders for bgfx support (WIP).
  • Adds support for SDL2 and set as default platform.
  • Adds support for SPARK particle engine.
  • Adds new samples.
  • Adds support for ImGui.
  • Adds file watcher system for hot reloading.
  • Adds event system.
  • Adds shaders for deferred rendering.

v3.0.0 (gameplay)

  • Adds support for Visual Studio 2015.
  • Adds support for FBX SDK 2016.1.2
  • Adds support for 2D Sprite, TileSet and Text.
  • Adds support for node instance scripts.
  • Adds support for C++11.
  • Adds support for MacOSX 64-bit.
  • Adds support for iOS 8+.
  • Adds support for XCode 6+.
  • Adds support for QTCreator for Linux and MacOSX.
  • Adds support for Eclipse for Linux.
  • Adds support for Eclipse for Android.
  • Adds support for Bullet Physics 2.82
  • Adds support for cubemap textures.
  • Adds support for font kerning.
  • Adds support for Android x86.
  • Adds support for CMake on MacOSX.
  • Adds support for gamepads on Android.
  • Adds supoprt for Android extensions through custom native activity.
  • Adds water sample to browser.
  • Adds audio player sample to browser.
  • Adds GamePlay-deps repository for cross-platform Cmake dependency builds.
  • Adds map/unmap buffer for Mesh and MeshPart.
  • Fixes to Scene Graph for merging Drawables on Node.
  • Fixes from setUserPointer to setUserObject(Ref*)
  • Fixes for virtual gamepad scaling.
  • Fixes Image to support grayscale PNGs.
  • Fixes Android to build with arm instead of thumb.
  • Fixes Android crash when gamepads disconnected.
  • Fixes for lua script bindings.

v2.0.0 (gameplay)

  • Adds support for Visual Studio 2013.
  • Adds support for iOS 7, MacOS X 10.9 and XCode 5.
  • Adds support for BlackBerry NDK 10.2.
  • Adds support for CollisionObject group mask filtering.
  • Adds support in shaders for multiple lights using shader defines.
  • Adds various improvements to Material binding support.
  • Adds support for array MaterialParameter's.
  • Adds support for encoding distance field based fonts.
  • Adds support for multiple sizes of fonts encoded into single bundle.
  • Adds improvements for simplified layout for forms and theming.
  • Adds ControlFactory to instantiate core controls and support users registering custom controls.
  • Adds support for percentage based layout definitions for controls in forms.
  • Adds password mode on Textbox controls.
  • Adds improvements to Textbox key repeat and cursor jump modifiers.
  • Adds FileSystem::displayFileDialog on all desktop platforms.
  • Adds Terrain support for material definition for user customization.
  • Adds support to RenderState FrontFace.
  • Adds Node::setActive, getActive and getActiveInHierachy.
  • Adds ETC compressed texture support.
  • Adds gameplay::strcmpnocase as a platform-independent case-insensitive string compare function.
  • Adds new gestures for Long Tap, Drag and Drop.
  • Adds support for Android pinch gestures.
  • Adds version number to encoder output files.
  • Adds support for variables like ${my_variable} in any Properties file formats.
  • Fixes to specular and bumped shader for spot lights.
  • Fixes to UI rendering quality from FrameBuffer usage which is no longer used.
  • Fixes to Texbox focus related issues.
  • Fixes to Label clipping and Labels to automatically re-size around their text.
  • Fixes in Camera related to invalid project() and setActiveCamera() issues.
  • Fixes for Linux VSYNC and mouse capture and mouse wheel values.
  • Fixes various logging and warning problems and annoyances.
  • Fixes bitmap font rendering quality in gameplay-encoder and Font class.
  • Fixes Mesh CollisionShape's.
  • Fixes for destroying CollisionObject that does not notify CollisionListener.
  • Fixes to PhysicsVehicle where wheels detach and may collide with body.
  • Fixes to encoder spotlight for properly extracting inner and outer angle from FBX.
  • Fixes encoder computed Light falloff attenuation values.
  • Fixes to invalid assertion in AnimationClip.
  • Fixes for FrameBuffer width/height goeing out of date.
  • Fixes for incorrect RenderState Type specifier.
  • Fixes to FileSystem for Windows file paths.
  • Fixes to improve speed of installation of binaries via install.sh/.bat scripts.
  • Fixes related to disable and non-visible controls not receiving input.
  • Fixes to Bundle, Font, Properties and SceneLoader to use GP_WARN and improve locations of errors.
  • Fixes to encoder related to Material generation.

v1.7.0 (gameplay)

  • Adds -m parameter to encoder to support exporting Material from FBX scenes.
  • Adds encoder animation grouping arguments for auto grouping and disabling grouping via -g:auto and -g:off
  • Adds UI ImageControl
  • Adds UI control events for enter and leave.
  • Adds UI and theme support for focus state on controls.
  • Adds Gamepad support in UI.
  • Adds smooth interial mouse scrolling.
  • Adds keyboard event handling code that was missed on some UI containers and controls.
  • Adds Game accelerometer and gyro improvements.
  • Adds XBox 360 controller support to MacOS X.
  • Adds RenderState enum for supporting cull side definition for front, back and front-back culling.
  • Adds a lua function "convert(object, className)" that will convert a gameplay userdata object to another class type by changing the metatable. (For example: This lets you convert Control to Button in lua)
  • Adds gesture events to script.
  • Adds script friendly verions of Camera:project(..)
  • Adds support for defining lights in .scene file.
  • Adds MaterialParameter setter that are script friendly.
  • Adds methods to FrameBuffer for querying render target info.
  • Adds FileSystem::getDirectoryName()
  • Adds support so that Properties can be loaded relative to .property files.
  • Adds methods on ScriptController for registering and unregisering global script callback functions.
  • Adds Game::resizeEvent(..)
  • Adds Game::getArguments()
  • Adds Scene::load() so it can load from ".gpb" files.
  • Adds some additional operators overloads for Vector classes.
  • Adds RenderState::clearParameter method to allow existing material parameter values/bindings to be cleared.
  • Adds loopBlendTime property for animation clips to support interpolating between the end points of an animation clip when looping.
  • Fixes Xcode support to be up to date to version 6.1
  • Fixes Form::projectPoint for forms that are scaled.
  • Fixes Bullet NEON build problems.
  • Fixes problem with static rigid bodies attached to nodes.
  • Fixes problems with ghost objects and kinimatic rigid bodies.
  • Fixes userData pointer that was not cloned properly when cloning a node.
  • Fixes bug in createChannel with keyCount = 1.
  • Fixes encoder to ignore 1 frame animations caused by FBX export on Blender.
  • Fixes buggy tab order in UI.
  • Fixes touch event problems not propagating up on mobile touch platforms.
  • Fixes parent relationship on cloned Technique and Pass.
  • Fixes Node to include light contribution for bounding volume computations.
  • Fixed issue where multiple samplers pointing to the same texture would share the same state instead of using sampler-specific filter and wrap state.
  • Fixes calculation of the transform matrix in FBX encoder for lights properly considering vectors like pre and post rotation scenarios.
  • Fixes blurry borders on UI forms by using proper texture filtering.
  • Fixes lua dofile on Windows.
  • Fixes in colored shader when using spot ligts.
  • Fixes issue in encoder which was converting point lights into ambient lights when they had no decay.
  • Fixes to CMake projects on different platforms.
  • Cleans up Platform by moving commong platform code to Platform.cpp
  • Cleans up and changes Gamepad APIs.
  • Cleans repo directory restructure dropping gameplay- prefix on many folders and files.
  • Removes bin and external-deps folder/contents to external server with new install scripts that are now required to be run after cloning the repo.
  • Removes pre-compiled api/html docs to reduce repository bloat.
  • Removes support for COLLADA DAE and now support FBX.
  • Removes middle mouse button simulated desktop accelerometer.

v1.6.0 (gameplay)

  • Adds file Stream interface for reading/writing files instead of using fread/fwrite.
  • Adds Terrain class to support for heightmap based terrains featuring LOD, multiple surface layers, loading from PNG, RAW8/16, full transform, physics, patch culling and verticle skirt for cracks.
  • Adds object-space normal map generation to gameplay-encoder for terrain normal map generation.
  • Adds scene support for loading .terrain files in .scene files.
  • Adds scene support for inline cameras to .scene files.
  • Adds suppoft for defining .scene files without 'path' to gpb. New node can not be create in .scene file.
  • Adds static Scene::getScene(const char*) to query currently active scenes in a game, helpful for script access.
  • Adds support for multiple translate, rotate and scale commands in a single node entity within .scene files, processed in-order they are defined.
  • Adds scene support for material auto binding scene ambient color, light color and light direction.
  • Adds support for setting the depth compare function on materials.
  • Adds support for texture/sampler arrays being passed to materials.
  • Adds support for loading uncompressed DDS textures for the following formats: R8G8B8, A8R8G8B8, A8B8G8R8, X8R8G8B8, X8B8G8R8
  • Adds improvments to prefer higher quality mipmap generation.
  • Adds improved Gamepad API support for button enumeration, triggers and some mobile Gamepad support on BlackBerry.
  • Adds additional gameplay-tests for billboards, forms, gamepads and lights.
  • Adds support for launching the browser via launchURL(const char*).
  • Adds physics support for setLinearFactor and setAngularFactor on rigid bodies.
  • Adds methods to PhysicsCollisionObject to allow conversion to subclass types (i.e. PhysicsRigidBody, PhysicsCharacter, etc) from script.
  • Adds option for fullscreen without width/height config to use native desktop resolution.
  • Adds Linux support for OpenAL PulseAudio back-end.
  • Adds support for latest Bullet Physics 2.81 with NEON optimizations for mobile targets.
  • Adds support for preprocessor directive NO_LUA_BINDINGS in the gameplay project to omit inclusion of generated lua bindings in compilation for developer mode value.
  • Adds optimizations to Lua generator to only write generated files if they differ from existing files, reducing both build times and committing of unchanged script binding files.
  • Adds changes to Slider for setValueTextVisible, setValueTextAlignment, setValueTextPrecision and getters.
  • Adds Microsoft Windows 7 64-bit support.
  • Adds Apple iOS 6 support.
  • Fixes to external-deps to reduce the size of the libraries on Windows.
  • Fixes for Android to no longer need to copy files to the SD card before reading them. None of the Android samples require an SD card.
  • Fixes for animation of opacity on UI and fonts.
  • Fixes in UI for removing controls and also setVisible(bool).
  • Fixes for UI controls missing on MacOSX.
  • Fixes for setting UI alignment programmatically.
  • Fixes for lighting shaders.
  • Fixes to the texture minification mode from GL_LINEAR_MIPMAP_LINEAR to GL_NEAREST_MIPMAP_LINEAR for newly created textures with mipmaps.
  • Fixes minor memory leaks and possible access violations when calling Game::exit() from script.
  • Fixes physics debug drawing for large scenes causing the internal MeshBatch to grow to an enormous size.

v1.5.0 (gameplay)

  • Linux support. (tested on Ubuntu 12)
  • CMake support for makefile generation for Linux.
  • Gamepad API support for desktops.
  • Touch gesture support for tap, swipe and pinch.
  • Vehicle physics support via new PhysicsVehicle and PhysicsVehicleWheel classes.
  • Adds new racer sample (sample06-racer).
  • Adds gameplay-tests project as a test app for various basic engine features with some initial tests.
  • Adds support for Scene files for wildcard identifiers.
  • Adds Visual Studio Plug-in support for BlackBerry PlayBook and BlackBerry 10.
  • Adds configurable multi-sampling anti-aliasing support.
  • Adds updates to latest FBX SDK 2013.3.
  • Adds file formats documentation for game.config .scene, .material, .animation, .physics, .particle
  • Adds Game/Platform::canExit for testing device capabilities to quit. (only ios)
  • Web community forums at http://www.gameplay3d.org/forums.
  • Changed keyTimes from unsigned long[] to unsigned int[]. (breaks compat. in AnimationTarget and Animation::Channel)
  • Fixes inconsistencies from Bundle::getObjectID() to Bundle::getObjectId() (breaks compat. in Bundle)
  • Fixes the texture coordinates of Mesh::createQuad(float x, float y, float width, float height).
  • Fixes line-wise distortion when loading RGB png's into textures that are non-power of two.
  • Fixes inconsistencies in createXXXX methods. (breaks compat. in Scene)
  • Fixes Rectangle::contains.
  • Fixes Lua print logging.
  • Fixes Lua errors to be treated as runtime warnings.
  • Fixes setVertexData to pointers instead of constant data.
  • Fixes AudioSource so that it doesn't loop by default.
  • Fixes minor UI scrolling issues.

v1.4.0 (gameplay)

  • Lua script bindings for all gameplay interfaces.
  • Lua script binding generator tool (gameplay-luagen) for generating gameplay Lua bindings from doxygen xml output.
  • AIController, AIAgent, AIStateMachine, AIState and AIMessage classes for scripted AI support.
  • Sample for sample05-lua to demonstrate basic Lua with AI scripting.
  • Gamepad class with virtual gamepad support.
  • Pre-built versions gameplay-encoder added to bin folder with TTF, DAE and FBX support built-in.
  • Improved modular shaders with support for #include in shaders. (breaks compat. for shaders)
  • LightMap support into colored-unlit.frag and textured-unlit.frag shaders.
  • Adds cloning and wireframing features to sample03-character.
  • Adds kick the ball on the sample03-character to demonstrate 2 buttons and more physics.
  • Fixes missing mouse events on UI controls.
  • Fixes to gameplay-encoder to prompt user for font size if not specified.
  • Fixes to add "-g" as short form argument for grouping animations.
  • Fixes node cloning.
  • Fixes to gameplay-encoder for output file path when encoding fonts.
  • Fixes to FrameBuffer, RenderTarget and DepthStencilTarget.
  • Fixes user switching in MacOSX to other applications with Apple-Tab.
  • Fixes measureText with empty string to be proper size.
  • Fixes for aliased text by applying linear filtering by default on Fonts.
  • Fixes RenderState::StateBlock::bindNoRestore() issue where blend function was not restored to the proper defaults.
  • Fixes some inconsistencies in Game event method names for menuEvent. (breaks compat. in Game)
  • Fixes some inconsistencies with AnimationClip::getID() to be same as Node::getId() and other classes. (breaks compat. in AnimationClip)
  • Fixes to gameplay-encoder and PhysicsRigidBody for heightmaps which adds height precision into generated heightmap png's.

v1.3.0 (gameplay)

  • Portrait mode games on mobile platforms.
  • Fullscreen and configurable game resolutions on desktop platforms.
  • User Interface support for scrolling with scrollbars on Container.
  • PVRTC, ATC and DXT texture compression support.
  • Performance improvements in user interface forms and text.
  • Performance improvements in animations on transforms.
  • Performance improvements using NEON math for BlackBerry and iOS.
  • Fixes for improvements in error handling throughout all systems.
  • Fixes supporting built-in Maya COLLADA exporter via DAE_FBX export.
  • Fixes for latest FBX SDK 2013 support.
  • Fixes for loading from some WAV files that were crashing.
  • Fixes for From/By animations.
  • Fixes allowing all inline properties loaded within .scene files. (breaks compat. for .scene)
  • Fixes in .scene files for collisionObject definitions (breaks compat. for .scene)
  • Fixes for depth/z-ordering of controls.

v1.2.0 (gameplay)

  • BlackBerry 10 support.
  • iOS 5.1 support.
  • Android 2.3+ support.
  • User interface system with declarative forms and themes.
  • Bluetooth keyboard/mouse support on BlackBerry platform.
  • Developer guide.
  • Sample/tutorial for sample03-character.
  • Sample for sample04-particles to demonstrate particle emitters.
  • Fixes for loading properties from URL.
  • Fixes on Win32/MacOSX for when mouse pointer leaves the window and returns.
  • Fixes to accelerometer for Android.
  • Fixes in animation blending.
  • Fixes to GPB for loading from single node and parent node. (breaks compat. for .gpb)

v1.1.0 (gameplay)

  • FBX support in gameplay-encoder.
  • MacOSX platform support using XCode.
  • Off-screen rendering functionality using FrameBuffer.
  • Loading 3D scenes using declarative .scene files.
  • Loading audio from .ogg files using vorbis.
  • Loading AudioSources from .audio files.
  • Loading Animations from .animation files.
  • AnimationClip support for cross fading.
  • Physics support using Bullet Physics.
  • Cross-platform new project generator.
  • Overloaded operators in Math classes.
  • Font improvements for justify, clip, wrap and scaling.
  • Fixes for Font::drawText to use point size and not float scalar.
  • Fixes for memory leaks in and fixes to AnimationTarget.
  • Fixes for bumped and parallax shaders.
  • Fixes to simplify folders for resources in samples.
  • Fixes to the material/shader system.
  • Fixes to the ParticleEmitter.

v1.0.0 (gameplay)

  • Initial release.