Cave Engine 0.9.9 Release Notes!

Welcome to the "Production Ready" Cave Release!

A Personal note from the Dev

Dev Note 1: First of all, I apologize the lack of "BADASS" well-written Release Notes. But I usually spend 2-3 full time days crawling the commits to create a compilation of new features and explaining them for every new release, and since Cave is NOT my full time job at the moment (but you can help it to be by donating, btw), it's very hard to me to keep that pace.

So I'm trying to figure out a faster and better way to do the new Releases, since this part is exactly what delays the new versions more. I hope that y'all comprehend. :)

Dev Note 2: But the TLDR is: This new release is pretty much focused in one thing: Stability and being "Production Ready". Because I myself can't wait to start actively using Cave in new, badass, complete and complicated Video Games (and watch y'all do the same), so I came to a conclusion this year that if I wanted to see that becoming a thing, I had to stop desperately adding new "bleeding edge" features on every release and to focus on making the current feature-set production-proof. And that's what I've been doing so far.

The plan is to take some time now to start making some good games in Cave. I had to sacrifice some cool features such as Visual Scripting and Backward/Forward project saves compatibility for now, but I believe that releasing Cave 1.0.0 with a lot of cool games made with it is far more important and cooler than that, so let's hope for the best and do it!

So get ready to Start Making Games with Cave right NOW! :)

Oh...

And who is ready to the world's first Cave Engine Game Jam?

Join our discord servers to get notified when the Jam finally happens!

Best Regards, Guilherme Teres (the dev behind Cave).


Main Highlights:

Cave is way more Stable, Usable and Runs better:

There is not a lot of "new features" in this release, most of them, are for usability, stability and portability. Meaning that you'll now have a better UX experence, with less issues and a smoother development time in general. We did tons of fixes to ensure that the engine will work just fine in as many computers possible (including AMD cards!).

Improved Asset Importer:

Asset importing in cave was previously sort of bad and that's why I've been working hard to fix it. Now it's considerably better and FBX Animations are finally a thing! :)

Pick the Project Location:

On every new Cave Release, people where always mad at me in our discord server because there was no way to select the project save location. Well, now that's possible, so enjoy it!

Enhanced Lighting Effects:

The ambient occlusion and many other rendering features in Cave Engine has been improved, resulting in better lighting effects in your scenes. This creates more realistic and immersive visuals.

Smoother Camera Control + High DPI Editor:

The mouselook functionality in the viewport has been fixed, ensuring smoother camera control. The high DPI monitor users will not have a better experience using cave as well. It's still work in progress, but way clear to see and read the texts now.

Third-Person Camera Component:

A new third-person camera component has been added, offering more flexibility in camera options. This allows you to achieve different perspectives and camera behaviors in your games or simulations.

Top-Down Camera Component:

Another new camera component, the top-down camera, has been introduced. This allows you to create top-down views of your scenes, perfect for strategy games or overhead views.


Full Commit Log:

Cave Engine 0.9.8 was released on Oct 1, 2022 and since them (today is Jul, 12, 2023), the engine received 137 new commits. So you might imagine that there is a lot to talk about and it will be impossible to highlight and talk about everything. So I'll share the entire commit log here, so y'all will be able to at least have a glance on everything I've worked for 0.9.9 (and the Work in Progress new features).

Features and Improvements:

  • Updated Cave Engine Version to 0.9.9!
  • Improved the Asset Importer Layout
  • Improved Cave's Ambient Occlusion
  • Increased the Project Manager Window size
  • PM: Option to pick Project Folder Location
  • Updated SDL2 and statically linked it instead
  • Moved the graph.ini inside the data folder
  • Added more useful links to the engine info/help
  • Changed imgui.ini location
  • Replaced SDL_Mixer with cmixer
  • Removed more unused DLLs
  • Dropped glew and glut (replaced with glad)
  • Droppped CubeTexture support (this was not used at all)
  • New Merge options to Mesh's Vertices
  • Improved Animation Debugging (and MeshComponent)
  • Serialization no longer relies on typeid (This will allow the engine, in the future, to export to multiple platforms)
  • Improved FBX Anim importer + Armature Properties
  • Allow High DPI for high res monitors
  • Added Ambient Occlusion
  • Restored Blur!
  • Option to Disable Mist when editing the Scene
  • Option to Sort Assets by Name
  • Disabled: Standalone Play when editing template
  • Renamed the player component
  • Replaced all backslashes from include paths
  • Better "New Assets" options to right menu
  • Update Cave Demo##1666799984.cavePkg (this is the Goblin Demo)
  • Improved Mouselook: Use F3 to toggle mouse relative
  • Added some Default Cave Packages
  • New Third Person Cam Component
  • BitMask: new [Enable|Disable]All method
  • New BitMask option to Physics Scene queries
  • New First Person Camera Component
  • PythonAPI: Exposed the RenderGraph Config
  • WIP: Logic Bricks Codegen
  • New API: Scene's SphereCast!
  • Python API + Docs: New useful Math functions
  • Docs: Updated the roadmap Tasks
  • Docs: removed free question from FAQ
  • Docs: Added the Patreon links
  • Added Discord and Doc links in the engine's UI
  • Small Fixes in the Cave Docs
  • Updating the Python API Docs (Finished)
  • Updating the Python API Docs (WIP)
  • Cave now uses AppData dir to store Projects
  • New: Cave Engine PRO Configurations
  • Disabled Debug Grid by default
  • Added the missing locale file
  • Asset Browser: Header + Zoom
  • Show ProfilerTab by clicking in the FPS counter
  • Better Thumbnail Generator + Bounding Box
  • Changed the Default Material Rough value
  • Profiler Improvements
  • ImGuizmo: Do not flip the arrows...
  • Copy/Paste Entity or Component to Clipboard
  • Bring Viewport to focus when Playing + more
  • SceneGraph: Double Click Templated Ent to edit it
  • Drop Meshes to Viewport now also adds the RigidBody
  • Editor: Show FPS count in a better place
  • Exposed the ParticleCmp to the Python API
  • New SceneTimer + Timer refactor
  • New Scene's CheckContact and RayCast methods!
  • Exposed the AnimationHandler to Python!
  • New TopDown Camera Component!
  • Viewport: button go back to scene (when editing a template)
  • Created a bunch of Scene queries APIs
  • Exposed the UIElement Default Quad Color to Python
  • Some Text Editor visual tweaks
  • Save/Load and Edit Scene Properties in the UI
  • Small PythonCmp UI fix
  • Template properties can now be overwritten by ent

Fixes:

  • Fix: Compilation errors
  • Fix: Wrong Armature Animation Interpolations!
  • Fix: Project Settings Crash
  • Fix: Viewport's Mouselook was Bad
  • Fix: Do not duplicate removed DLLs when exporting
  • Fix: FrameBuffer Error checking was wrong
  • Fix: Import Package Window Height was too smal
  • Fix: AMD issues with cave Shaders
  • Fix: Some uninitialized fields
  • Fix: Add Player Cmp crash
  • Fix: UICanvas using wrong Window Size...
  • Fix: Some CameraCmp crashes
  • Fix: AMD card bugs... again...
  • Fix: Asset loading crash
  • Fix: Wheel with wrong startup axleAxis value
  • Fix: VehicleCmp's apply offset to wheel
  • Fix: Typo in the doc
  • Fix: Roll and Yaw were inverted!
  • Fix: Selected Entity can't Reload while in game!
  • Fixing Compilation + disabled bricks for now...
  • Fix: Wrong VersionStr (always showing PRO)
  • Fix: Some stuff for the python API
  • Fix: Project load crash when asset file is missing
  • Fix: SceneGraph's right click was not working
  • Fix: That Ancient Montserrat folder bug
  • Fix: AudioComponent + Preview in the Editor
  • Fix: Bug: Adding infinite animations in the stack!
  • Fix: GetForwardVec was actually facing backwards.
  • Fix: Crash when creating a new project
  • Fix: Duplicate Asset was not working (editor)
  • Fix: TopDownCam not working as a child Entity...
  • Fix: CharAnimator looking on Y...(not supposed to)
  • Fix: CharAnimator with local lookAt (wrong)
  • Fix: ui::PropRange with floats (was not working)
  • Fix: It was not possible to select Python Cmps
  • Fix: MeshCmp copy ctor was missing the Tint
  • Fix: Text Editor: Wrong Mouse X pos picking

Internal Stuff:

If you're a nerd, there is a lot of internal stuff in the commit log and I decided to keep them here just for fun. It means that the end user (aka everyone using the engine) will not be able to directly see this in action, since they are internal stuff (as the name suggests), but it's still cool to see them. So enjoy it (if you want):

  • WIP: DCC Bridge (disabled for now)
  • Update BasicRenderer.cpp
  • Added nlohmann's json lib to the project
  • New ui::TextInfo(...) function
  • New dialogs::SelectFolder(...) function
  • Small VS Project organization
  • Update AudioTrackInstance.cpp
  • Update Game.vcxproj
  • Changed Intermediate directories to avoid issues
  • Added a Bone::GetChildren() method
  • Editor ui: Option to set TreeNode as leaf
  • Some serialization improvements
  • Scene: Don't create the entity if the given template don't exist
  • Update .gitignore
  • Visual Studio doing his thing (LOL)
  • Attempt to build it for Linux (Spoiler: Failed :P )
  • Making the code NOT Windows/MSVC specific (This will allow the engine, in the future, to export to multiple platforms)
  • New: utils:OpenWebLink(url) function
  • Added more Python API macros
  • WIP: CodeGen Pre Build step (to gen PythonAPI)
  • Added the proper CodeGen macros
  • PyAPI: Component::SetEntity... changed
  • Refactor: Changed the Event registry (Py) location
  • WIP: Python Bricks (disabled for now)
  • New ui::PyProp(...) method
  • Restored my custom ImGui Slider
  • Upgraded to: ImGui v1.89 + Freetype
  • New Scene::AddDebugArrow method
  • Method: Transform::SetScale(float scalar)