Version 4 "Berries and Weeds" - Detailed Release Notes
1 October 2024 (release published on 13 May)
You can also consult a shorter summary.
UI overhaul: fonts
- Integrated a third-party library for arbitrary font rendering (FreeType).
- Added support for scalable, non-monospace fonts in standard file formats. WOFF2 file format support, including Brotli encoding.
- Added support for synthetic bold rendering.
- Fonts are pre-rendered specifically for each screen or window resolution. The fonts reload automatically whenever the viewport size changes.
- Added three new fonts: Cinzel, Oxygen, and Oxygen Mono (the latter used for the console).
- Better multi-line splitting (for non-monospace fonts).
- Better cursor positioning (for non-monospace fonts) for multi-line and horizontally scrollable controls.
- Implemented SDF font rendering.
- Dynamic SDF/regular rendering selection (finer fonts do not work well with the SDF technique).
- Sub-pixel font positioning.
- Support for outlines (not used yet).
- Support for shadows (used in the HUD text).
- Implemented the foundations for generic UTF-8 support.
- Full low-level UTF-8 decoding and encoding. Support in some internal functions.
- Added UTF-8 support in displaying UI elements.
- Still missing the actual rendering of non-ASCII glyphs.
UI overhaul: menu design
- Reworked the menu design:
- Menu background is now yellow with a very slight texture. Added support for tiled textures in the UI.
- Added page borders and central separation, so that the inventory menu now looks like a book.
- Reworked the widgets:
- Added widget borders and background.
- New styles for buttons: slim and regular, arrow- and flat-ended. New buttons are also used in the spinner widgets.
- Smart horizontal scaling of the buttons, with the borders always rendered the same way, and the central part getting progressively darker, without stretching.
- Introduced menu title decorations. The titles now use a different font, too.
- Introduced the horizontal lines.
- Introduced the scroll bars.
- Many menu sections now feature the scroll bars and can contain a large number of items.
- The scroll bars show the position of the scroll and react to the mouse wheel. However, one can not interact with them via the drag-and-drop mechanism (yet).
- Reworked menu layouts (now using the scroll bars, decorated titles, and horizontal lines).
- Added nice-looking tabs (colored vertical text).
- The object enchantment menu and the inventory menu now look very similar, both featuring the "book" visual and identical tabs.
- Moved the hotbar into a separate "sheet of paper". It is rendered behind "the book" of the inventory menu. It is not shown anymore when examining an object.
- Some HUD elements are now hidden when a menu is open, to simplify the screen a little.
- The spell editor now opens on the "definition" page.
- Better calculations of the maximum allowed width for elements.
- The application window now has a minimal size.
- Added the main menu background image.
UI overhaul: icons and the HUD
- Changed all existing icons, and added new ones:
- Entities.
- HUD icons (keys and status effects).
- Menu icons (hands, body, the "around you" icon, the "add spell" icon, the "unknown" icon).
- Spell icons for known spells.
- Spell editor icons for fragment categories and all fragments (including variables and labels).
- Changed the order and slightly adjusted the position of the key icons in the bottom left corner of the HUD.
- Changed the color for the "running" label and the key helpers in the bottom left corner.
Importing 3D models, new grass, bushes, and berries
- Added support for the GLB 3D model format (via a third-party library, TinyGLTF).
- Both GLB and legacy model formats are supported.
- Support for multiple nodes and multiple meshes.
- Support for multiple textures.
- Modified internal data structures to be based on triangles instead of quads.
- Added support for child anchors:
- All nodes with names "Fruit*" will be treated as child anchors, with their node translation vector being the anchor coordinates.
- The textures and the vertices of these nodes are ignored. However, they are still present in the model for better visualization.
- This mechanism is used for determining where the berries can appear on the bushes.
- Updated the grass model(s):
- Removed old grass and added 3 new grass models (normal, small, and large) in the GLB format.
- The new models do not use the "pixelated" style anymore.
- Added 2 types of bushes and 2 corresponding types of berries in the GLB format:
- Bush types: Yew and white currant.
- Both berries can be eaten, but the yew is poisonous while the white currant is not.
- Bushes have no collision, like grass.
- When bushes are spawned, berries are created at child anchors now. The number of spawned berries per bush is random.
- All new GLB format 3D models are now prepared in Blender.
- Modified landscape generation to include bushes & new grass.
- Low grass is very frequent. High grass not so much.
- Yew bushes are much less frequent than the trees, and white currant bushes even less.
- Also added loose branches to simplify fire starting.
The "Health" tab
- Added a third tab to the inventory menu: the "Health" tab.
- It shows hunger, sleepiness, stamina, and magical energy on the left side ("Condition"), and wounded and poisoned status effects on the right side ("Afflictions"). Afflictions are only shown when present.
- The Health tab is also shown in the "Examine" menu for other objects. Its content is dynamic, depending on the object and its state. This is the default tab now for the "Examine" / "Enchantment" menu.
- This tab also shows the temperature, and various wet / cooked / charcoal / burning information when appropriate.
- This tab also shows the "On fire" and "Sleeping" mentions when appropriate.
- Added shortcuts for the "Inventory", "Health", and "Magic" tabs (I, H, and K, respectively). They work from both inside and outside the menu.
- Renamed sickness to "poisoned".
- Added a "poisoned" status icon.
Gameplay
- Yew berries and uncooked meat now add the "poisoned" status.
- Removed damage on hunger. Instead, added direct death when maximum hunger or maximum poisoning are reached.
- Renamed aspects to elements (or magic elements) everywhere.
- It is now possible to activate / deactivate spells for the player. Activated spells are now shown by a "*" mark.
- Renamed a lot of spell fragments to more user-friendly names (new names: "get pitch", "get yaw", "set element", "manifest", "cubic expansion", "spherical expansion").
- New name and description for the spell fragment "select subject", used in the event-triggered enchantments.
- Renamed "slab of meat" to "cut of meat".
- Renamed "block of grass" to "soil".
- Replaced the Alt key for "lie down" by C.
Customer feedback
- Created a simple feedback menu, accessible anywhere in the game by pressing F1.
- The feedback is sent to the Arcs of Magic backend server via https.
- Separated installation_id (to be used for customer feedback) and anonymous_id (to be used for analytics).
Video mode selection
- Fullscreen toggle (F11) is now available in the release builds.
- The game starts in fullscreen by default. The recommended fullscreen mode (on the first run) is determined based on the desktop resolution, aspect ratio, and other parameters.
- Added fullscreen, resolution, and frequency selection to the "Options" menu.
- The video modes are grouped by resolution, with frequencies listed at the same time. Aspect ratios are also shown.
- Video modes that match the desktop aspect ratio are listed first.
- When choosing a video mode, the fullscreen is automatically set to "Yes".
- When choosing a video mode, a recommended frequency is set automatically.
Bug fixes
- Fixed: containers showed as "contained" the items they touched but that were actually outside.
- Fixed: the textures for the fire and the trees are now correctly wrapped.
- Fixed: an issue with some "sticky" keys when leaving a running application with a key pressed.
- Fixed: incorrect "center" and "right" alignments for buttons and labels.
Behind the scenes
- Integrated a third-party library for the secure web communication (libcurl). It uses native Windows certificate APIs.
- Added support for the PNG image format (via a third-party library, libspng).
Future versions
Interested in the future versions? Remember to visit the Roadmap section.