Releases: knivier/Activerse
Release list
1.4.2 - Monotonic Clolcks
Activerse v1.4.2 — Timing, Interpolation & Runtime Hardening
Released: July 30, 2026
Changelogs are AI assisted but quality checked by humans
v1.4.2 unifies the simulation clock, interpolates rendering between fixed ticks, and hardens asset loading for both filesystem and classpath (java -jar) packaging. The TLDR is that if you're a game developer, you're not going to notice unless you tinker with the engine a lot. Backwards compatibility is expected for down to v1.0.7 with minor porting, but is untested.
Game Loop & Rendering
- Unified internal clock — update and render share one monotonic schedule; the render loop samples the main clock instead of drifting on a separate timer
- Epoch-based tick scheduling — timing drift no longer accumulates across long sessions
- Spiral-of-death protection — missed ticks are skipped rather than burst-processed under heavy load
- Actor state snapshots — each tick stores prior position/direction so paint can interpolate between simulation states
- New render helpers —
getRenderX(),getRenderY(),getRenderPreciseX/Y(),getRenderDirection(),getRenderBoundingBox() - World render alpha —
World.getRenderAlpha()/setRenderAlpha()drive smooth visuals while simulation still uses integer coords - Camera interpolation — interpolated offsets, visibility checks, and
worldToScreenInterpolated()
Performance & Assets
- BufferedImage collision cache — soft-referenced
WeakHashMapcache for Image→BufferedImage conversion in pixel-perfect collision - Reusable lighting buffer — dynamic lighting composites through a reused off-screen buffer sized to the world
ResourcePathsutility — resolves paths from filesystem first, then classpath (IDE runs and packaged jars)- Safer image/sound loading — MediaTracker uses a shared Canvas peer; sound streams close cleanly; deprecated
finalize()removed fromActiverseSound
Input, Lifecycle & Utilities
- KeyboardInfo helpers —
isKeyDown(char), letter helpers, multi-key checks,justPressed/justReleased, alphanumeric append/sync helpers for text entry UIs - World switching — GameLoop starts after the world is attached on the EDT;
setWorldteardown/setup is EDT-safe - ConfigPuller — synchronized property loading
- ActiverseMouseInfo — volatile component reference for safer cross-thread reads
- New / expanded utils —
PanelPainter,TextRenderUtils, expandedErrorLogger,DaemonExecutors,DelayScheduler - JDK compatibility — deprecated API cleanup and concurrency hardening
Documentation
- Full JavaDoc regenerated for the v1.4.2 API surface
- Published at https://knivier.com/Activerse/
- Instance window and class
@versiontags updated to 1.4.2
Compatibility
Backwards compatible with the v1.4.* series. Prefer the new render helpers for drawing; simulation code should continue using getX() / getY().
1.4.1 - Major Patch Time
v1.4.0 - Full Year Update
The First Year Update
On behalf of the development team for Activerse v1.4.0 (Knivier), I'd like to thank contributors and users of Activerse. I've learned so much developing this game engine and I'm happy to bring the biggest update to it yet. I hope you enjoy 😄
🛠️ Activerse Changelog
🆕 New Features
- 🌍 Random World Generation: Introduced Perlin Noise-powered procedural world generation via a new helper class.
- 🧲 Physics Helper Tools: Added utilities to simplify physics-related interactions and simulations.
- 💡 Dynamic Lighting Overhaul: Lighting engine has been significantly enhanced for realism and performance.
- 🔀 Multithreading Support: Game loop now supports advanced multithreaded computation for smoother performance.
- 🧱 Collision Detection Revamp: New system enables more accurate and responsive collisions.
⚙️ Systems & Utilities
- 🧰 Timer Helper Class: Simplifies management of time-based actions and delays.
- 📁 File Utility (Time Class): New class for easier property file read/write operations.
- 📦 Item System:
Itemsubclass introduced, supports storage and usage in Actor/World systems. - 📦 Inventory System: Fully integrated inventory per Actor with item management capabilities.
- 🧮 ActorVector Helper Class: A custom vector math utility optimized for Actor-based operations.
- 🎵 Audio Interface Update: Expanded with new functionality and cleaner integration.
- 🧍♂️ Static Actor System: Actors marked static now skip debug updates for performance optimization.
🧪 Debug & Tooling
- 🐞 Debug Menu Fixes: Improved stability, formatting, and usability of the debug UI.
- 📊 Accurate FPS Tracker: Enhanced frame rate tracking for better diagnostics.
🧑💻 Development & Refactor
- 🧼 Project-Wide Refactoring: General codebase cleanup and architecture improvements.
- 📘 JavaDocs Updated: All classes now include up-to-date and properly formatted JavaDocs.
- 🗂️ Example Code Externalized: Example projects removed from main repo; distributed as separate binaries.
🎨 UI/UX
- 🖥️ GUI Centering: Main Activerse GUI is now centered and screen-locked for consistent user experience.
🚀 General
- ⚡ Performance Improvements: Numerous backend enhancements lead to smoother gameplay and better memory usage.
- 🧱 Stability Boosts: Addressed several bugs and edge cases for increased robustness.
Download Information
To download v1.4.0, download the cleaned ZIP of v1.4.0 which only contains files and documents for v1.4.0 without any additional configurations (file: v1.4.0.Activerse.Engine.Cleaned.zip)
To download an example game with the v1.4.0 engine, try the breakout game which has been updated significantly for v1.4.0 (Breakout.v1.4.0.Activerse.zip).
v1.3.2 - The Half Year Update!
🎉 Activerse v1.3.2 Update 🎉
Welcome to Activerse v1.3.2! This release brings an exciting addition—a fully functional Breakout game demo, along with performance improvements, audio features, and better debugging tools. Here’s what’s new in this version:
🛠️ Changes
-
Breakout Game Demo:
- Added a fully playable Breakout game as an example project, showcasing Activerse’s capabilities.
- Includes mechanics for paddle movement, ball physics, and brick destruction with audio-visual feedback.
- This demo is provided for testing and learning purposes but is not included in the official NSI install.
-
Volume Controls:
- Implemented
setVolume()andgetVolume()methods for all sound objects, allowing volume control between 0 (mute) and 1 (max).
- Implemented
-
World Enhancements:
- Added pause and resume functionality for the game world, accessible during gameplay.
- Updated World ticks now displayed in the debug menu for better performance monitoring.
-
Improved Logging:
- Log dumps now include system tick monitoring, heap memory usage, and garbage collection times, all formatted for readability.
-
Default FPS:
- Standardized default frame rate to 60 FPS for smoother gameplay and simulations.
-
Compatibility:
- Backwards compatible with Activerse v1.0.7, with minor porting required for older projects.
🚀 Additional Notes
- All comments across the codebase have been updated. However, Javadocs are NOT updated and will be revised in v1.3.3.
Enjoy the enhanced functionality, demo game, and performance upgrades in Activerse v1.3.2! As always, we’re committed to making Activerse accessible for both beginners and experienced developers. If you have any questions, please let me know via a contact method on my portfolio. Also, thanks for sticking around for six months for this project.
Full Changelog: v1.3.1...v1.3.2
Executable Installer Notes
This will automatically install a bland version of Activerse v1.3.2 to your documents and create a VSCode shortcut. If you want to look at the .NSI code, check the NSI script in the binaries. Otherwise, only download the .exe (Win10 & Win11 Checked).
v1.3.1
🎉 Activerse v1.3.1 Update 🎉
Welcome to Activerse v1.3.1! This release focuses on improving stability, enhancing error handling, and ensuring compatibility with the latest Java updates. Here’s what’s new in this version:
🛠️ Changes
- Lots of Null Safety: Added extensive null safety checks to prevent unexpected issues.
- Enhanced Concurrent Error Handling: Implemented more specific handling systems to manage concurrent errors effectively.
- ACEHS (Activerse Concurrent Error Handling System): Our new system for managing concurrent errors with detailed error codes, all explained here in the README!
- JDK20+ Lambda Compatibility: Lambda expressions are now JDK20+ friendly, while the minimum suggested JDK version remains JDK23.
- Tick Variable Update: Changed the tick variable from
inttolongfor greater flexibility.
Enjoy the smoother and safer experience with Activerse v1.3.1! 🚀 We hope to continue improving the v1.3 lineup to be significantly more friendly towards beginners while ushering a more simple yet complex-ready experience!
12/14/2024 update: v1.3.1 now comes with an installer! This was made with the NSIS installer creator; it attempts to scan for a VSCode setup under code.exe and create a shortcut with Activerse hardwired into the setup. By default, the ActiverseEngine goes into the current users documents file.
The NSI Code: https://pastebin.com/m1hVyRKx
v1.3.0 - Previously v1.2.2
🚀 Activerse v1.3.0 - A Bigger Than Expected Update! 🎉
Originally v1.2.2, a continuation of the v1.2 line
Hello Activerse coders! 👋 We're back with another update that we didn't quite expect to be this big. However, this is much more than a continuation of the v1.2 line, as I bring 3 big changes (1 critical) to the table! 💥
What's New in This Release? ✨
-
📝 Added JavaDoc Documentation: Viewable at Activerse Java Docs, then clicking the Java Ref button! The Javadocs are web-viewable documents generated by Java’s own systems.
-
💬 Commenting Overhauls: Because of our documentation update, we've strongly updated all our classes to include significantly better commenting. Nearly each method is now detailed and clearly commented, even the most basic ones! 🗂️
-
🖱️ Updated Mouse Inputs: We realized that the mouse wasn't really a desired choice of input due to broken functionalities. I (Knivier) apologize for this major issue, and we've completely overhauled how mouse inputs work. Expect better reliability and accuracy with mouse inputs! 🔧
-
🔄 Code Reformats: Methods have been reorganized and refactored. We promise to do this in every update more consistently from now on. 📜
-
⚠️ Error Message Details: Previously, we would only catch some errors and print a messy stack trace. This time around, we've detailed many of the error messages while also providing the stack trace, ensuring better understanding for beginners and advanced programmers alike! 💡 -
🔒 Fixed a Security Bug Related to Constructors: We've addressed a potential security issue where a constructor in world subclasses could leak information. This wasn't too big of a bug, but we squashed it to ensure future workability! 🐛
-
📖 Updated the README: We now have more information in the README, including the reedition of the research profilers during update v1.1.2. I promise to update this soon! ⏳
-
🔍 Updated Null Safety Systems: This is a CRITICAL update that ensures the best bug resolve practices. Previously, not including images and using your own graphics could cause the entire game to crash in a never-ending loop with a never-ending stack trace. This has been overhauled, and while you still require an image per actor (a bug we'll work on in later versions along with default images), it's significantly easier to use your own graphic shapes in place of images! 🌈
-
📏 Added the getWidth Method to Actors: This was an essential update that was missing for many iterations, and we've finally added this much-needed method! ✔️
-
🤖 Added A- Path Finding!*: Via the
useAStar(Actor toFollow, int iterations)method, this new extremely smart pathfinding feature is baked into Activerse. I haven't had time to test it, so this is still a beta (but extremely cool) feature! A* pathfinding can be considered a generic form of AI as well, so this means Activerse has a small bit of AI! 🚀 -
🔍 Debug Information Changes on Screen: Debug information via the debug button has changed to be more readable. 📊
-
📝 Debug Information on Logging: Now, when a new log session is created, it shows the date only there. Each log note only includes the time instead of the full date and time. ⏰
-
🌟 Instance Window Update: Each instance now shows v1.3.0. 🎉
We hope you continue playing and enjoy this absolutely massive update! 🎮
v1.2.1 - Minor Grievances Fixed
🚀 Activerse v1.2.1 - Minor Grievances Fixed🎉
What's New in This Release?
-
🛠️ Enhanced Error Handling
- Improved error handling inside
ActiverseEngine/Activerse.javafor a smoother experience. - Added property file error handling to catch and log issues efficiently.
- Improved error handling inside
-
📊 Debugging & Performance Enhancements
- Heap Usage Monitoring: Added methods for heap usage tracking, helping debug memory usage and optimize performance for future builds.
- FPS Timing Fixes: Updated FPS timing to address slight variance issues, resulting in more consistent performance.
-
🖱️ Advanced Mouse Detection (Experimental)
- Introduced advanced mouse detection with better modification capabilities (note: this feature is untested and unverified).
-
📝 Documentation Updates
- Detailed Docs: Added high-detail documentation within
ActiverseEngine/GameLoop.java, providing better insights into game loop mechanics. - Code Reformat: Multiple files have undergone code formatting improvements for consistency and readability (see individual commits for specifics).
- Detailed Docs: Added high-detail documentation within
-
📜 Licensing TLDR
- Added a concise TLDR of licensing terms directly in the
ReadMEfor easy access and understanding.
- Added a concise TLDR of licensing terms directly in the
🎮 Hopping Game Demo Included
- This release comes with the Hopping Game demo as an example, showcasing the engine's new capabilities and providing a reference for developers. Try it out to see the advanced mouse detection, performance tweaks, and error handling in action!
As always, thank you for using Activerse. We'll see you for the next version release.
For more information regarding that entire debacle, follow my X via https://x.com/AtomicKniv
v1.2.0: The Illumination Update (Dynamic lighting)
🎉 Activerse v1.2 Release Notes 🎉
Full Changelog: View the complete changes
🌟 Hello Activerse Coders!
A lot has changed, and while we didn't initially plan on a minor release, we felt it was necessary as we've introduced (optional via properties) Dynamic Lighting! 💡 While the implementation isn't fully complete, this rudimentary system paves the way for future mods to build on.
🚀 What's New?
- 📝 Updated the License
- 📚 Updated the ReadMe
- 🗑️ Removed Base Files (example world files) to keep things simple
- 🆙 Updated the Header
- ⚙️ Property File Modifications
- 💡 Implemented Dynamic Lighting (optional via properties)
- 📦 Added Inbuilt Class to
World.java - 📜 Logging Format Changes
- 🧹 Code Formatting & Added Git-Related Files
- 🐞 Bug Fixes: Resolved issues with variables that could cause data leaks or rounding errors
📌 Key Highlights
This update is quite significant but remains backward compatible as always. We've packed more features while reducing unnecessary clutter. We hope you enjoy this latest update and the new features it brings! 🚀
Thanks for being part of the Activerse community! 🌌
Visit the website at https://knivier.com/activerseinfo
v1.1.2
Hello Activerse Coders!
Full Changelog: v1.1.1...v1.1.2-fixed
The changes:
Formatting changes to logging including:
- New log session started
- Log parts are number tracked
- FPS is logged actively
- TargetFPS included with activeFPS
- MB/s instead of MB/sec for consistency
- Fixed bug where FPS logging only occurs when debug menu is open (it now doesn't need debug menu to be open to run FPS calculations, FPS calcs are handled independently)
Debug menu:
- MB/s instead of MB/sec for consistency
Engine:
- Optimized World class for better RAM usage
- Optimized some of Actor class for better RAM usage
- Fixed calculation issues for FPS by resolving using GameLoop.java to calculate FPS
- TargetFPS is now a lock FPS which the game cannot exceed
- Fixed collisions in Actor
Other changes:
- Code formatting, optimized imports, changing some variables
- Fixed potential issues regarding variable limits (long to double casting)
These are a lot of QOL updates, but we've also ran research on the Engine after optimizations to see if memory leaks are present in the program and if CPU usage is consistent. The PDF is attached below with conclusions.
v1.1.1
Hello Activerse coders!
v1.1.1 brings some QOL changes to the v1.1 update. Below is the changelog explained in a human readable format:
- file_writing in Activerse.properties is now logging
- Debug menu changes to formatting (showing target FPS now, MUPS to MPS (Memory Per Second))
- FPS is now logged alongside MPS
- Added velocity methods
- Added height changes
Velocity and height methods were incorporated to allow you to create your own gravity system using the update() method in subclasses of World.
As always, this version is backwards compatible with previous versions. We're keeping this streak as long as we can!
You should check out the website: https://knivier.github.io/KnivierWeb/activerseinfo.html
Full Changelog: v1.1.0...v1.1.1