Releases: Andy16823/GFX
Version 1.5.0
The wait is over! Version 1.5.0 is here, bringing a host of exciting new features and improvements—especially for 3D game development. This update marks a significant milestone, and I’m thrilled to share it with you all.
As a solo developer, it’s been a lot of work, but I’m proud of how far the framework has come. I can’t wait to see what you’ll create with the new tools and features!
🆕 What's New in v1.5.0?
3D Rendering & Visuals
- Shadows: Dynamic shadow support for more immersive and realistic scenes.
- Specular Shader: Reflective surfaces to add depth and polish to your materials.
- New Sphere GameElement: Spherical objects are now fully supported.
Physics & Collisions
- Collision Behavior Overhaul: Improved performance and flexibility in handling collisions.
- CompoundMeshCollider: Support for multi-mesh models with precise physics.
- New Rigidbodies: Added Sphere, Capsule, and Box Rigidbodies for enhanced physics interactions.
- Collision Groups: Manage and filter collisions with greater control.
Performance Improvements
- Instanced Rendering: Better performance for Qubes, Spheres, and Element3D through instancing.
- Raycast Enhancements: More accurate and versatile raycasting functionality.
New Resources
Example 3D Project: A fully working 3D example project to help you hit the ground running.
📂 How to Upgrade
- Download the v1.5.0 release from the Releases Page.
- Replace your existing framework files with the new version.
- Review the example project for a quick guide on using the new features.
🚀 What’s Next?
This update lays a strong foundation for even more features in future versions. I’m already planning additional tools and improvements, so stay tuned!
If you run into any issues or have ideas for further improvements, feel free to open an issue or start a discussion.
Thank you for your support—this wouldn’t be possible without the feedback and encouragement of this awesome community! 💖
Happy developing!
Full Changelog: v-0-1-4-3...v-0-1-5-0
Version 1.4.3
Improvements in GLRenderer
- Integrated new features from the Beta Renderer into GLRenderer.
- Removed the Beta Renderer.
- Support for virtual resolutions: Allows rendering with different camera and window resolutions (e.g., window 1280x720, camera 1920x1080).
Changes in Model GameElement
- GetAnimationLength: Added new function.
- GetCurrentAnimationFrame: Added new function.
- AddAnimationCallback: Added new function.
- StopAnimation: Added new function.
Changes in Animation (3D) Class
- AnimationLength: Added new function.
- GetKeyFrameIndex: Added new function.
These updates enhance the functionality and flexibility of GLRenderer and animations.
Release 1.4.1
Release Notes
New Features:
- SpriteSheets: Implemented SpriteSheets to support sprite sheet functionalities.
- Sprite Constructor for Spritesheets: Added a new constructor in Sprite for creating sprites from sprite sheets.
- Ray2D: Introduced Ray2D to enhance 2D raycasting capabilities.
- Raycast2D: Added Raycast2D for performing 2D raycast operations.
- Aabb Constructor for Game Elements: Created a new constructor in Aabb for initializing game elements with axis-aligned bounding boxes.
- HasTag in GameElement: Included the HasTag feature in GameElement to enable tagging of game elements for better management and identification.
- AnimationCallback: Introduced AnimationCallback to handle animation events and responses.
- Animation Hook in AnimationBehavior: Added an animation hook in AnimationBehavior to allow custom behaviors during animations.
These updates bring significant improvements to sprite handling, raycasting, game element initialization, and animation management, enhancing the overall game development experience.
Full Changelog: v-0-1-3-1...v-0-1-4-1
Update 1.4
Patch Notes
Physics Adjustments:
- The Collide event of the Collider behaviors now returns the GameElement instead of the Bullet element. If the Bullet element is needed, it can be obtained from the PhysicsBehavior.
- The GetBehavior function has been adjusted to also return base types. A cast is no longer necessary; the returned element is of type T.
Other Changes:
- The rotation property of the sprite is now specified in degrees instead of radians.
Full Changelog: v-0-1-3-1...v-0-1-4-0
Update 1.3
Changelog
Input System
- Added Keys enum.
- Updated the GetRefMousePos function to utilize native functions instead of WinForms functions.
Camera System
- Introduced the CalculateScreenCorrection function to support virtual resolutions.
- Added the ConvertScreenToWorldOrtho function to convert screen positions to world positions in 2D space.
New Features
- Added the Window class for creating a Win32 window.
- Introduced the BetaRenderer class, a copy of the GL Render Device, enabling the use of virtual resolutions.
Physics
- Added abstract classes: ColliderBehavior2D, TriggerBehavior2D, ColliderBehavior3D, TriggerBehavior3D, and RigidBodyBehavior3D.
- Reworked existing collider behaviors to be compatible with the new templates.
Update 1.2
Release Notes: Update 1.2
We are excited to announce the latest update, which merges the beta branch with the main branch. This update includes many new features and improvements:
New Features
-
New GameElement:
Model
- Contains the possibility to use 3D animations.
-
New Scene Type:
Scene2D
- Includes the possibility to create 2D lighting.
-
New Game Element:
NavMesh
- Provides features for 2D pathfinding using the A* algorithm.
- Includes some asynchronous functions to improve performance.
-
SRGB Usage and Gamma Correction
- Improved color accuracy and rendering quality through SRGB usage and gamma correction.
Improvements
-
UI Enhancements
- Various improvements to the user interface for a more intuitive and user-friendly experience.
-
Render Improvements
- Enhanced rendering performance and visual quality.
Additional Information
- Project Website
- We now have an official website for the project: https://gfx-engine.org
- We now have an forum for the community: https://forum.gfx-engine.org
We hope you enjoy the new features and improvements. Thank you for your continued support!
3D Animation & Phyiscs Update
Introducing a new GameElement called Model, which currently supports models with animations. For static models without animations, continue using the old Element3D.
So, what can you do with this model? Simply put, you can play animations with this Element. Within the model, there is a property called Animator which also has some basic options like Play. If this value is set to false, no animation will be played. Loop is another option; if set to true, the animation will play in a loop. Both of these values are set to true by default.
You can change the animation using the PlayAnimation function within the Model class. The parameter is the name of the animation you want to play.
Adding the Model to your scene is done the same way as with other GameElements:
var model = new Model("Vampire", new Vec3(-1f, -1f, -1f), modelspath + "\\Vampire\\vampire.dae");
model.AnimationSpeed = 0.02f;
model.Size = new Vec3(0.7f);
model.PlayAnimation("Armature|idle");
baseScene.AddGameElement("BaseLayer", model);
The file formats currently tested are .FBX and .DAE. Please note that this is currently in beta, and some features might not work as expected. In such cases, feel free to post your concerns on Discord and I will look into them!
Added character controller for 2D games
- added an character controller for 2D games
Release version 1.0.3
- Added a collider for the BufferedSprite
Release with finished documentation
- Finished XML Documentation