- Code cleanup, stability improvements.
- Updated GitHub workflow to use actions/download-artifact@v4
- Improved thread creation for baking lighting.
- Added
CameraComponent::IsUsed()
,CameraComponent::GetForwardFromScreenPosition()
,CameraComponent::WorldToScreenPos()
- Fixed an issue where Windows 10 immersive dark mode wouldn't apply when the application launches.
- Fixed an issue where having an empty scene open would display it as ".jscn" in the app title bar.
- Added support for compiling with CMake (On Windows and Linux). It is now the default on Linux.
- Slightly reworked the settings page in the editor.
- Fixed an issue where UI would be placed above the debug console.
- Removed
Project::UseNetworkFunctions
. To enable network functions now, load theNetworkSubsystem
subsystem. - Enabled
u8char_t
again, addedStrUtil::UnicodeToAscii
andStrUtil::AsciiToUnicode
functions to convert betweenu8char_t
andchar
. - Made the title bar dark when using dark mode using
DWMWA_USE_IMMERSIVE_DARK_MODE.
The engine now requires the Windows 11 SDK (Build 22000 or higher)
because of this, since the
DWMWA_USE_IMMERSIVE_DARK_MODE
enum value didn't exist before.
- Replaced some instances of
int
withint*_t
orsize_t
. - Fixed an incorrect compare function for the shader map.
- Fixed the engine failing to compile with
KLEMMGINE_NO_CSHARP
. - Fixed an issue where the UI wouldn't be redrawn entirely when it should've been.
- Networking fixes and improvements.
- Updated all dependencies to their latest versions.
- Added a lot more documentation.
- Moved everything in CSharpCore.dll into the
Engine.Core
namespace. - Added PointLightComponent to C#.
- Added
CollisionComponent::SetActive()
. - Added
Engine.SceneObject.New<T>()
to C#. - Added
Engine.NativeObject.New()
to C#.
- Fixed missing arguments for
Texture::CreateTexture()
. - Fixed a hardcoded max lights value.
- Moved all window functions from
Application::
toWindow::
inAppWindow.h
. - Moved many functions from
Application.cpp
into other files. - Code cleanup.
- Renamed Renderable to Drawable.
- Fixed a crash related to saving editor panel layouts.
- Fixed some incorrect padding.
- Removed all
UIBox::SetPadding(0)
calls because they're unnecessary after 1.11.0. - Fixed
OS::GetMemUsage()
returning incorrect values on Linux. - Fixed spamming empty console commands when using some Linux terminals.
- Added the option to save the editor layout.
- Added more documentation. (Subsystems, Sound, Editor documentation)
- Improvements to the performance graph.
- Added a constructor to Sound::SoundBuffer which constructs sounds from a byte array.
- Fixed issues with nested objects in save files.
- Fixed the server creating an empty .keproj file if no .sln file exists.
- Fixed the server not working with the file structure of release builds.
- Renamed WorldObject to SceneObject in both C++ and C#.
- Added a performance graph to the debug UI that can be toggled with Right Shift.
- Set default padding value to 0.
- The server port is no longer a constant.
- Added an error message to the crash handler if it crashes.
- Added
Sound::Enabled
.
- Fixed auto complete being in reverse alphabetical order.
- Fixed a server crash if the current port was already in use.
- Removed some unused #include-statements.
- Fixed
RenderSubsystem.h
being considered as a ClCompile item by msbuild.
- Code cleanup.
- Improved console auto complete.
- Updated some documentation.
- Fixed some spelling mistakes in the source code.
- Removed an unused function from Build.cpp.
- Fixed a bug introduced by the changes to text wrapping in 1.10.12.
- Brought over
UIBox::SizeMode::AspectRelative
andUIBox::SizeMode::PixelRelative
from KlemmUI. - Changed the way text wrapping works.
- Renamed some variables to have clearer names.
- The
save
console command now has an optional parameter for the scene file name,
- Ran VC++ code analysis on entire project, fixed all found issues that weren't from 3rd party libraries.
ToUnicodeString()
now reserves the string length to increase the speed of the function.
- Added EditorSubsystem class.
- Added a list of matching commands to the console in Editor and Debug builds.
- Moved
UICanvas.h
. - Renamed some console commands to be more consistent with the rest.
- Fixed some spelling mistakes in the source code.
StrUtil::Format()
can now accept format arguments with unlimited size.- When loading a new scene, if it didn't have a lightmap the lightmap of the previous scene would remain active.
- Turned off warnings as errors for JoltPhysics dependency since that would cause the build to fail.
- Merged some namespaces into the
Stats
namespace.
- Fixed the error handler crashing.
- Renamed game build output folder to
GameBuild
- Improved how builds on Linux work.
- Fixed some bad/incorrect math related to rotations.
- Fixed an issue where materials wouldn't be saved correctly.
- Fixed a
GL_INVALID_VALUE
error with UI rendering.
- Fixed some issues that appeared with 1.10.5
- UI performance improvements. Only the necessary areas of the screen will be redrawn.
- Rewritten save format parser.
- Changed some getters/setters to properties in C#.
- Lightmap format is now binary instead of text-based.
- Exposed camera FOV functions to C#.
- Fixed issues where sometimes a scene wouldn't auto-save when running it.
- Fixed a memory leak with instanced meshes.
- Fixed leaking the formatted string in StrUtil::Format().
- Networking stability improvements.
- Fixed crashes on Linux.
- Many small stability improvements.
- Improved build tool will now not assume class declarations from header file names but scan header files for class declarations.
- Added
Subsystem
interfaces. - Log files will now be written to disk in {WorkingDirectory}/Logs/
- Improvements to text fields.
- Added FXAA anti aliasing. (
aa_enabled
convar to enabled/disable) - Removed "C#" toolbar option on projects that don't use C#.
- Added filtering options to the billboard component.
- Fixed issues with more than 8 lights at once.
- Fixed an issue with shadows in framebuffers that aren't the main one.
- Fixed an issue with Boolean editor properties.
- Fixed an issue with occlusion culling with meshes that have a center position that isn't 0.
- Networking stability improvements.
- Fixed a crash related to lists in object properties.
- Fixed a crash with the physics system in certain conditions.
- Fixed scaling for some shape types for collision visualization.
- Fixed glitchy behavior of MoveComponent when colliding with multiple polygons at once.
- Fixed sound falloff being too abrupt.
- Changed behavior of ResolutionScale.
- Added editor graphics settings.
- Added editor display settings.
- Text is now culled when not visible in a scroll area.
- Added a grid display in the editor.
- Added collision visualization.
- Improved how baked point light shadows are calculated.
- Fixed the MovementComponent sometimes letting the object to go through walls.
- Fixed a crash when a MeshComponent has no mesh loaded.
- Fixed a crash when reloading the C# assembly.
- Added
bool PhysicsComponent::Attached
. - Mesh object performance optimizations.
- Better sound falloff.
- Fixed some dialogs not appearing.
- Added a new physics/collision system, using Jolt physics.
- Removed most of the old collision system.
- Completely rewrote MoveComponent.
- Fixed an issue where release builds on Linux would fail to load any C# assembly.
- Fixed a crash with rebuilding C# in the editor.
- Fixed an issue with public EditorProperties.
- Fixed an issue where C# UICanvases would be garbage collected.
- Fixed some incomplete/incorrect documentation.
.tar.gz
files for Linux builds.- Added UIButton C# bindings.
- Added UICanvas C# function.
- Added C#
Engine.Stats.EngineConfig
. - Added more documentation and updated README.md to mention the Linux version.
- Multiple small fixes to the editor.
- Linux builds can now properly create releases.
- Large editor UI rewrite.
- Added documentation using Doxygen.
- Moved engine functions into
KlemmgineCSharp
project. - Renamed some C# functions to match their C++ equivalent.
- Added Enum
Input::GamepadType
andInput::GetGamepadType(Input::Gamepad* From)
. UIButton
andUITextField
now inherit fromUIBackground
.- Added
Engine.NativeObject
and a few more utility functions to C#. - Added C#
EditorProperty
attribute and functionality. - Upgrade to new KlemmBuild version.
- Added
setup.sh
for Linux builds.
- Fixed a crash with the server.
- When adding a C# class, the path will now default to the path opened in the class browser.
- Fixed the
Mem
display in the editor being broken on Linux. - Fixed server not launching on Linux when pressing
Run
in the editor.
- Added controller input support. (Engine/Gamepad.h)
- Added C# bindings for controller input.
- Added Linux support.
- Added pre-built binaries for Linux (maybe?)
- Fixed some issues with point lights.
- Fixed issues with shadows.
- Fixed an issue with the default movement.