
New Inks, new Virtual Devices, and more!
The
0.3 update is live introducing several new inks, a Virtual Input device for keyboard interaction, a Virtual Display, and more! Check out the full list of changes below.
[hr][/hr]
Highlights
- It is now possible to build very
compact circuits using the newly introduced
Bus, Tunnel, and Mesh inks. These Space Optimization inks enable us to build more things on the board using less space. And, speaking of saving space, with the new
Virtual Display we can attach a
customizable screen directly
on top of our circuits!
-
Keyboard interaction with circuits,
time synchronization independent of simulation speed, and
random number generation are now all possible through the Virtual Input device, Timer ink, and Random ink, respectively.
- Debugging circuits has been made a little more convenient with the ability to
step back the simulation during step mode. Along with the introduction of a
Breakpoint ink, the option to simulate only the visible portion of the board, and proper support for toggling multiple latches when the game is paused.
[hr][/hr]
Simulation
- Circuit compilation times reduced, especially for large projects.
- Simulation optimized. Most circuits have a moderate increase in performance, some may run up to twice as fast.
- Overall responsiveness of the game improved when simulating large projects.
- Added support for stepping the simulation backward. During Step Mode (when the simulation is paused) the simulation state is saved each time the player steps it forward, making it possible to step back to any saved tick since the simulation was paused.
- Added option to compile only the visible portion of the board. This can be useful to view the statistics of a specific area of the board.
- Added support for mouse interaction with multiple latches when the simulation is paused.
- Added immediate visual update to latches toggled when the simulation is paused.
- Mouse interaction now updates the simulation, introducing instant feedback when toggling or pressing latches at low TPS rates, and preventing them from staying enabled when using the Press interaction mode within the span of one tick.
- Fixed the latch bug that was triggered when a latch received multiple events in the same tick.
- Fixed bug that inadvertently allowed mouse interaction with non-latch components, which resulted in undefined behavior in the simulation.
- Fixed components that are automatically toggled by the simulation (like the Clock) inadvertently being able to toggle on input from traces.
Inks
- Added several new inks. The Tunnel, Bus, Mesh, and Wireless inks allow circuits to be much more compact, while the Timer and Random components make it easier to create interactive projects that trigger events based on time and randomness. A breakpoint ink was also implemented to aid in debugging projects.
- Added Tunnel ink. Behaves similarly to a cross ink but based on the concept of a pair of entrance and exit points that can be placed further apart.
- Added Mesh ink, a more versatile alternative to the Wireless inks. Works similarly to the tunnel by allowing traces, buses, and components touching meshes in different locations of the board to merge together.
- Added Bus ink, with 6 color variants. Allows multiple gates and traces to overlap the same space on the board.
- Added 4 Wireless inks. Each of the four variants behaves like a single OR gate spread out throughout the board.
- Added Timer ink. Toggles based on real life time and its interval can be defined in the order of milliseconds.
- Added Random ink. Toggles randomly on the rising edge of inputs based on an user-defined or time based seed.
- Added Breakpoint ink. Pauses the game on the rising edge of inputs, and registers the event on the Event Log.
- Added the ability to set the clock interval in ticks.
Virtual Devices
- Added a Virtual Display with eight indexed color modes to render images based on a customizable palette, and a RGB mode to render 16M+ colors. The several modes makes it possible to choose the best balance between color depth and memory footprint. The VDisplay can have any resolution as long as it fits inside the board and has a total of 2 pixels or less. Additionally, it does not occupies board space, and its buffer pointer can be modified during simulation.
- Added a Virtual Input device to allow interaction with circuits using the keyboard.
- Fixed VMem only partially loading the external memory file (vcbmem).
UI/UX
- Added an Event Log to inform the player about relevant game events, like incorrect VMem usage and breakpoint occurrences, and to report problems in the circuit found during compilation, such as the existence of unmatched tunnels. Some event cards can be pressed to focus the camera on the component that triggered them.
- Added option to toggle ink symbols for traces (accessible by right-clicking the Symbols Overlay button).
- Important compilation and simulation events now are also communicated with an alert displayed at the interface header.
- Added a label to the right-click menu of the LED ink indicating the current and maximum amount of colors for the palette.
- Added support for entering hexadecimal and binary values in number fields.
- Added a subtle autosave indicator that briefly appears beside the menu for recently saved and autosaved projects (clock icon).
- Added tooltip to the Mouse Interaction Mode buttons.
Circuit Editor
- Added axis constraint for the selection tool.
- Added a button to invert the selected inks on the Filter.
- Adjusted the appearance of the Trace Color popup to match the Ink Switch menu and Filter.
- Added Statistics card. Available during simulation, the panel shows the total area drawn and the cell count of each ink present in the board. The card also displays how many unique entities the circuits has and the quantity per trace or type of component. The data can be exhibited in absolute values or percentages, sorted by the order that inks appear in the editor, or based on their amounts.
- Fixed Array tool drawing only crosses if the repeat value is greater than one while the offset for both axes is zero and auto-cross is enabled.
- Fixed LED palette not being parsed correctly when it contained newline characters.
- Fixed the right-click menu for picking the trace color not showing any variant selected until the trace color is changed at least once.
Graphics
- Fixed incorrect rendering of the depth effect for inks placed on the top and right edges of the board.
- Fixed circuit rendering artifacts that appeared for some players.
[hr][/hr]
Update Notes
The previous build (0.2.1) is still available through an opt-in branch, in case you wish to keep playing in the old version and update later.
What's Next?
In the last changelog I mentioned that the Blueprint Library and VMem Viewer were going to be added in 0.3, but I ended up prioritizing other mechanics for this update. Both features are still in the roadmap for future releases. You can read more about plans for future updates in
this topic.
[ 2023-05-19 21:01:26 CET ] [ Original post ]