Hello everyone Open Hexagon 2.1.7 is now officially released! This update adds three new ranked packs, significantly optimizes various aspects of the game's performance, and finally provides a native Linux build that works great out of the box on Steam Deck, Ubuntu, and Arch Linux. Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Changelog
- The "Open Hexagon League 2" workshop pack is now available for ranked play. - The "Open Hexagon League 3" workshop pack is now available for ranked play. - The "Open Hexagon League 4" workshop pack is now available for ranked play. - Various performance optimizations, including: ---- Greatly optimized Lua file loading (can also be cached via new setting); ---- Greatly optimized collision detection for regular walls; ---- Slightly optimized collision detection for custom walls; ---- Slightly optimized curving wall logic; ---- More efficient communication between client and server. - Added an official controller layout for Steam Deck, works great out of the box. - Updated the native Linux buiild, tested on Ubuntu, Steam Deck, and Arch Linux.
Reminder
- If you are interested in getting updates and development sneak peeks, follow @Open_Hexagon on Twitter.
[ 2023-04-06 23:49:50 CET ] [ Original post ]
Hello everyone Open Hexagon 2.1.6 is now officially released! This minor update adds a new ranked pack, fixes a variety of different bugs, and brings some minor improvements for replays and level creators. Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Changelog
- Make the Delta pack by NDigger available for ranked play - A replay is now saved when exiting even if the player hasn't died (thanks Baum) - Replays are now saved in per-level per-difficulty subfolders (thanks PKPenguin) - Allow restarting a replay while watching it (thanks Baum) - Display level author instead of pack author in level info (thanks Baum) - Added fragment shader support for text (thanks Baum) - Added onPreUnload core Lua function (thanks Baum) - Added mFrameTime parameter to onRenderStage (thanks Baum) - Added the l_forceSetPulse and l_forceSetBeatPulse Lua functions to immediately change the pulse or beatpulse values (thanks Baum) - Fixed a bug where the Lua debug console would be available in official mode (thanks zX) - Fixed replays sometimes being saved twice (thanks Baum) - Fix shader dependencies not being searched in the right folder (thanks Baum) - Fix replay file paths having characters not supported on Windows (thanks Baum)
Reminder
- If you are interested in getting updates and development sneak peeks, follow @Open_Hexagon on Twitter.
[ 2023-03-06 15:42:52 CET ] [ Original post ]
Hello everyone Open Hexagon 2.1.5 is now officially released! This minor update enables pack developers to use shaders in order to spice up the looks of their levels using the full power of a GPU. Also, make sure to check out the brand new OHL 2 championship here on YouTube: [previewyoutube=jMMZbRAqlm4;full][/previewyoutube] Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Changelog
- Added the ability to create and control "fragment shaders" in custom levels. Please refer to the Lua Reference for more information.
Reminder
- If you are interested in getting updates and development sneak peeks, follow @Open_Hexagon on Twitter.
[ 2022-06-26 23:38:01 CET ] [ Original post ]
Hello everyone Open Hexagon 2.1.4 is now officially released! I really hope you had some fantastic holidays. This update enables a few more levels for ranked play, and also brings minor improvements and bug fixes. Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Changelog
- The following Steam Workshop levels are now enabled for ranked play: ---- Rotationality (Remastered) - Dragon Mayhem ---- Rotationality (Remastered) - Sky Fasion ---- Travel - Ti-84 ---- Travel - Super Plausible Level - Show some particles when swapping (can be disabled in the options menu). - Show some particles when swap comes off cooldown (can be disabled in the options menu). - Added a sound cue that plays when swap comes off cooldown (can be disabled in the options menu). - A sound cue is now played when an objective is completed in Baby Steps. - Fixed a bug where text could overlap in Baby Steps. - Fixed music playing after unpausing the game (in debug mode), even if music was disabled. - Fixed a bug where the death screen overlay camera offset was calculated incorrectly after resizing the game window. - Updated internal libraries to newer versions. Please contact me in case of any performance degradation or other issues.
Reminder
- If you are interested in getting updates and development sneak peeks, follow @Open_Hexagon on Twitter.
[ 2022-01-08 14:33:41 CET ] [ Original post ]
Hello everyone Open Hexagon 2.1.3 is now officially released! This update enables the "Vanity" level pack by Vipre for ranked play, and also fixes a small bug. Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Changelog
- Many of the levels in the "Vanity" level pack by Vipre are now available for ranked play. This pack can be obtained through the Steam Workshop. This is the first community-created content to be officially enabled for ranked play -- congratulations, Vipre! More levels will follow soon. - Fixed an issue with `u_setFlashEffect` not working properly between game sessions. `u_setFlashColor(255, 255, 255)` is now automatically called at the beginning of each level so that any subsequent `u_setFlashEffect` call works properly. - Fixed Lua errors in the menu related to `u_setFlashColor` and `u_setFlashEffect`
News
- You might have noticed that the Open Hexagon's promotional graphics on Steam and its executable icons are now much different (and better). This is the work of Synth Morxemplum -- many many thanks! I am currently working on implementing GLSL shaders in-game, so that the in-game graphics will become powerful enough to more closely look like the promotional material. Check out our official Discord for sneak peeks. - I have created an official Twitter account for Open Hexagon. If you are interested in getting updates and development sneak peeks, follow @Open_Hexagon.
[ 2021-11-17 22:25:41 CET ] [ Original post ]
Hello everyone Open Hexagon 2.1.2 is now officially released! This is a small update containing some new visual effects for the player triangle, and some bugfixes. Enjoy! (For any question or feedback, please get in touch on our official Discord.) (Apologies for re-posting this announcement, but for some reason the first one was accidentally scheduled as a timed event.)
Player Visual Effects
- The player triangle now has a cute trail following it around, mostly to improve the aesthetics of the game, but also to make replays/videos easier to understand for viewers.
- The player triangle also slightly tilts when rotating. - All the new visual effects are customizable in the options menu. They can also be completely disabled.
- Slightly improved the blinking color effect on the player when a 180 swap is available.
Other Changes
- Added `l_[get/set]ShowPlayerTrail` Lua function to control player trail visibility on a per-level basis. Note that this cannot force the player trailer to be enabled, but it can force it to be disabled. Useful in levels that hide the player triangle or do something fancy with 3D effects. - Added a new executable (`SSVOpenHexagon-Console.exe`) to game folder, which runs with a separate console window. Useful for debugging or Lua scripting. - Fixed a typo in one of "Baby Steps"'s messages. - Fixed a bug where the level name text in level info box was not using the `"text_color"` JSON property. - Fixed a bug that allowed greyed out buttons to be pressed with the mouse. - Compressed all executables and DLLs with UPX for smaller file sizes.
[ 2021-11-12 22:26:00 CET ] [ Original post ]
Hello everyone Open Hexagon 2.1.1 is now officially released! This is a minor update containing various QoL improvements and bugfixes. Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Changelog
- Fixed a bug where the player would be displayed in the wrong position after death due to a 180 swap. - Replay file names have been improved: they are now a lot shorter, and a timestamp was added to them. The new extension is `ohr.z`. - Added an option to tweak the strength of the camera shake effect in the "Visual FXs" menu, under graphics. It can be set to `0` to completely disable the effect. - Slightly decreased the default strength of the camera shake effect. - The Windows console (terminal) will now be hidden on game startup. - Added an icon to the game executable and to the game window.
[ 2021-11-04 22:12:09 CET ] [ Original post ]
Hello everyone Open Hexagon 2.1.0 is now officially released! This is a minor polish update in preparation of Open Hexagon finally leaving the "Early Access" program. Open Hexagon will officially leave its "Early Access" status tomorrow. Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Changelog
- Increase thickness of spiral walls in Apeirogon 0.35x in response to a Steam review report. - After death, the player triangle will now be visually pushed out of the wall it collided with. This purely graphical change will make the location of impact more clear. Similarly to above, this was in response to a probably erroneous Steam review report regarding hitboxes, likely caused by the player triangle overlapping the wall after death. - Fixed a bug where the `u_rndReal`, `u_rndIntUpper`, `u_rndInt`, and `u_rndSwitch` functions used to always return `1` on their first invocation. - Fixed the `getRandomDir` Lua function (from `base/Scripts/common.lua`) being slightly biased towards one direction. - Improved the Lua Reference by adding a category dedicated to custom timelines. - Added a new `u_setFlashColor` Lua function which allows customization of the flash effect's color.
[ 2021-11-02 01:12:25 CET ] [ Original post ]
Hello everyone Open Hexagon 2.0.7 is now officially released! Version 2.0.7, among other things, features a re-balanced Hypercube with ranked levels. This is the final Early Access update of Open Hexagon. The next update, 2.1.0, will be a very minor polishing one that will finally take the game out of Early Access! Enjoy! (For any question or feedback, please get in touch on our official Discord.)
Hypercube Rework
- The "Hypercube" level pack has been reworked. Levels have been re-balanced, and might feature new mechanics. (Thanks, Synth!) - The "Hypercube" level pack is now enabled for ranked play. Get your records up on the leaderboards! - A new special achievement, "Hypercube God", has been added. It requires completing new nine achievements challenging the player on "Hypercube" level at the highest difficulty multiplier. (Thanks, Maniac!)
Custom Timelines
- Level creators can now create an arbitrary number of independent timelines which support the same operations as the classic level timeline and event timeline. - The following Lua functions have been added: `ct_create`, `ct_eval`, `ct_kill`, `ct_stopTime`, `ct_stopTimeS`, `ct_wait`, `ct_waitS`, `ct_waitUntilS`. - Please refer to the Lua Reference for more information.
Minor Changes
- Added achievements for "Bipolarity". - Added an option to remember the last saved login username for faster login. - Added an option to immediately show the login dialog box when the game is started. - Added the JSON `"wall_color"` style color override for walls, which does not affect the player's color. (Thanks, Synth!) - Previously-loaded workshop levels are now cached, so that will keep being loaded even if not connected to Steam. (Thanks, Synth!) - Files can now be opened in Lua scripts in binary mode ("rb"). (Thanks, MultHub!) - Open Hexagon now uses a new font created by Synth Morxemplum. (Thanks!)
Lua Debug Console Improvements
- Using the `!ff` command in the Lua debug console now also skips the music forward. - Added the `!advt
Bug Fixes
- Fixed initial speedup/desync when viewing replay files via drag-n-drop. - Fixed bug requiring the "enter" key to be pressed twice in a row after selecting a menu item with the mouse. - Fixed bug failing to update Steam statistics and achievements on certain platforms (Thanks, MultHub!)
Lua Deprecations
- The `u_isKeyPressed` and `u_isMouseButtonPressed` Lua functions are now deprecated and will be removed in a future version of the game, please update your levels to use `onInput` instead.
[ 2021-10-29 00:44:12 CET ] [ Original post ]
This is an internal networking protocol update done in preparation for the release of the upcoming 2.0.7 beta release (soon to be 2.1.0, out of early access).
[ 2021-10-21 16:37:44 CET ] [ Original post ]
Hello everyone Open Hexagon 2.0.6 is now officially released! This is a minor update that rebalances Bipolarity (in the Orthoplex level pack) and makes it eligible for ranked play. Enjoy! (For any question or feedback, please get in touch on our official Discord.) [hr][/hr]
Official Levels
- Rebalanced Bipolarity and added it to the ranked level pool (eligible for online leaderboards).
Other
- Added a secret achievement.
[ 2021-05-19 00:18:26 CET ] [ Original post ]
Hello everyone Open Hexagon 2.0.5 is now officially released! Version 2.0.5 sets a milestone in Open Hexagon development, as it introduces a widely requested feature that brings new life into the game and its community: online leaderboards. NOTE: At the moment, only levels from the official "Cube" pack are eligible for online leaderboards, as they have been rebalanced and fine-tuned for competitive play. More levels, including high-quality custom levels, will be enabled for online leaderboards over time. Enjoy! (For any question or feedback, please get in touch on our official Discord.) [hr][/hr]
Major Changes
- Added online leaderboards to the game. See "Online Leaderboards" for more information. - Rebalanced the "Cube" level pack and added a new set of achievements, "Cube God", which challenges players to tackle higher difficulty multipliers. - Added mouse support to the main menu and level selection screen. See "Menu Mouse Support" for more information. - Game configuration does not depend on an external file anymore. See "Config Improvements" for more information. - Greatly improved loading speed of assets (packs, levels, sounds, music, etc...) on game start-up.
Online Leaderboards
- Open Hexagon now communicates with a server that can receive and validate replays in order to keep track of the best times. - The top scores for each level are displayed in the level selection screen. - In order to view and submit scores to the server, Open Hexagon players must now register with a unique name and password. - Only one online account per Steam ID can be registered. - Registration and login is performed directly from the new "Online" in-game menu. - Scores will only be sent to the server when all of the following apply: ---- The player is registered and logged in. ---- Official mode is enabled. ---- The server supports the level you want to play. For now, only official levels are supported. Curated workshop packs will be chosen and added to the list of supported levels in the future. ---- The player stays connected to the server for the full duration of the gameplay session. Replays recorded offline or losing connection during a playthrough will invalidate the score submission. ---- The level files are untempered with. Modifying Lua or JSON files related to a level will invalidate the score submission. - After hitting a wall on a ranked level (i.e. supported by the server), the generated replay will be encrypted and sent to the server. The server will then execute the replay internally, verifying its correctness. If everything goes well, the final score will be added to the official leaderboards. - Scores retrieved from the server are cached for 6 seconds to avoid excessive load. - Timestamps in the online leaderboard are displayed in the UTC timezone. - Despite the presence of multiple security mechanisms to prevent cheating, any "unusual" scores will be manually checked and -- in the presence of cheating evidence -- the submitting Steam ID will be *permanently* banned from Open Hexagon online services. No exceptions. No ban removals. ---- Any security vulnerability or cheating avenue discovered should be privately reported to Vittorio Romeo via email (vittorio.romeo@outlook.com) or as a private message to "vee" on the official Discord server (http://discord.me/openhexagon). Please help keep the Open Hexagon community safe and cheater-free.
Menu Mouse Support
- Menu items can now be selected and clicked with the mouse. - If your mouse cursor is not visible, ensure that `"mouse_visible"` is set to `true` in your `config.json`. - Double-clicking on a level in the level selection screen will start the game. - Using the mouse wheel in the level selection screen will smoothly scroll the available levels and packs up and down.
Config Improvements
- Removed the `default_config.json` file. Default configuration values are now hardcoded in the Open Hexagon executable. - Starting Open Hexagon with missing configuration values in `config.json` will result in those being filled in from the hardcoded configuration values.
Other Improvements
- The game window can now be seamlessly resized by dragging when in windowed mode. - Level packs with missing dependencies will be displayed on the main menu screen.
Bug Fixes
- Fixed an issue where custom walls would be spawned without collision. - Fixed sounds not playing when many level packs are loaded due to an internal limitation of the sound player. There is now no explicit limit for loaded assets. - Fixed an integer overflow issue related to 3D alpha and falloff values during 3D rendering. Some levels might look slightly different and the aforementioned values might have to be adjusted by pack developers to retain the original look. - Fixed a minor graphical issue with the text "ROTATE TO START" appearing even if the corresponding option was disabled.
Official Levels
- Tweaked pulse settings to ensure that the pulse effect matches the beat in "Aperoigon", "Flattering Shape", "Second Dimension", and "G-Force". - Tweaked 3D effects in most official levels to reduce visual noise. - Improved the tutorial ("Baby Steps") further by tweaking the text messages and objectives. - Rebalanced and fine-tuned all "Cube" levels.
Internal (C++)
- Added automated testing system that generates random replays and verifies their integrity. - Added the new following JSON configuration options: ---- `"server_ip"` -- IPV4 address of the Open Hexagon server. ---- `"server_port"` -- port of the Open Hexagon server. ---- `"server_control_port"` -- control port of the Open Hexagon server. Used to send special control messages to the server for debugging. - Major compilation time improvements: ---- Greatly refactored the game's codebase to avoid physical dependencies between components. ---- Added PCH support (pre-compiled headers) to the CMake build. ---- Added unity build support to the CMake build. - `hg::HexagonDialogBox` now supports keyboard input (used for login and registration). - Removed dependencies on `SSVU_ASSERT`, `ssvs::AssetManager`, and `ssvs::MusicPlayer`. Custom-made solutions have been written from scratch instead. - Added dependencies on the following libraries (for the online leaderboard feature): `libsodium`, `sqlite3`, `sqlite_orm`, `boost::pfr`. - Removed many obsolete or unused library functions, especially related to JSON. - Improved performance of file reading and JSON parsing. - Added an implementation of a thread pool, currently unused. - Added new `OHServerControl` tool to communicate with the server directly.
[ 2021-05-03 00:33:44 CET ] [ Original post ]
Hello everyone the beta for Open Hexagon 2.0.5 is now publicly available! This beta sets a milestone in Open Hexagon development, as it introduces a widely requested feature that brings new life into the game and its community: online leaderboards. The system should be fully-functional, but bugs and issues are expected. This is your chance to contribute to the development of the game by settings some new high scores and reporting anything that goes wrong in the process, or suggest any improvement for the future! Enjoy! (For any question or feedback, please get in touch with me on our official Discord.) [hr][/hr]
Opting Into The Beta Branch
- You can switch to the beta branch of Open Hexagon directly through Steam. Right-click on "Open Hexagon", go to "Properties", then "Betas", and you will be able to opt-in. - Your feedback is greatly appreciated and will help make Open Hexagon a better game for the entire community. Please do not hesitate to report bugs, provide suggestions, or ask any question on our official Discord. [hr][/hr]
Major Changes
- Added online leaderboards to the game. See "Online Leaderboards" for more information. - Added mouse support to the main menu and level selection screen. See "Menu Mouse Support" for more information. - Game configuration does not depend on an external file anymore. See "Config Improvements" for more information. - Greatly improved loading speed of assets (packs, levels, sounds, music, etc...) on game start-up.
Online Leaderboards
- Open Hexagon now communicates with a server that can receive and validate replays in order to keep track of the best times. - The top scores for each level are displayed in the level selection screen. - In order to view and submit scores to the server, Open Hexagon players must now register with a unique name and password. - Only one online account per Steam ID can be registered. - Registration and login is performed directly from the new "Online" in-game menu. - Scores will only be sent to the server when all of the following apply: ---- The player is registered and logged in. ---- Official mode is enabled. ---- The server supports the level you want to play. For now, only official levels are supported. Curated workshop packs will be chosen and added to the list of supported levels in the future. ---- The player stays connected to the server for the full duration of the gameplay session. Replays recorded offline or losing connection during a playthrough will invalidate the score submission. ---- The level files are untempered with. Modifying Lua or JSON files related to a level will invalidate the score submission. - After hitting a wall on a ranked level (i.e. supported by the server), the generated replay will be encrypted and sent to the server. The server will then execute the replay internally, verifying its correctness. If everything goes well, the final score will be added to the official leaderboards. - Scores retrieved from the server are cached for 6 seconds to avoid excessive load. - Timestamps in the online leaderboard are displayed in the UTC timezone. - Despite the presence of multiple security mechanisms to prevent cheating, any "unusual" scores will be manually checked and -- in the presence of cheating evidence -- the submitting Steam ID will be *permanently* banned from Open Hexagon online services. No exceptions. No ban removals. ---- Any security vulnerability or cheating avenue discovered should be privately reported to Vittorio Romeo via email (vittorio.romeo@outlook.com) or as a private message to "vee" on the official Discord server (http://discord.me/openhexagon). Please help keep the Open Hexagon community safe and cheater-free.
Menu Mouse Support
- Menu items can now be selected and clicked with the mouse. - If your mouse cursor is not visible, ensure that `"mouse_visible"` is set to `true` in your `config.json`. - Double-clicking on a level in the level selection screen will start the game. - Using the mouse wheel in the level selection screen will smoothly scroll the available levels and packs up and down.
Config Improvements
- Removed the `default_config.json` file. Default configuration values are now hardcoded in the Open Hexagon executable. - Starting Open Hexagon with missing configuration values in `config.json` will result in those being filled in from the hardcoded configuration values.
Other Improvements
- The game window can now be seamlessly resized by dragging when in windowed mode. - Level packs with missing dependencies will be displayed on the main menu screen.
Bug Fixes
- Fixed an issue where custom walls would be spawned without collision. - Fixed sounds not playing when many level packs are loaded due to an internal limitation of the sound player. There is now no explicit limit for loaded assets. - Fixed an integer overflow issue related to 3D alpha and falloff values during 3D rendering. Some levels might look slightly different and the aforementioned values might have to be adjusted by pack developers to retain the original look. - Fixed a minor graphical issue with the text "ROTATE TO START" appearing even if the corresponding option was disabled.
Official Levels
- Tweaked pulse settings to ensure that the pulse effect matches the beat in "Aperoigon", "Flattering Shape", "Second Dimension", and "G-Force". - Tweaked 3D effects in most official levels to reduce visual noise. - Improved the tutorial ("Baby Steps") further by tweaking the text messages and objectives.
Internal (C++)
- Added automated testing system that generates random replays and verifies their integrity. - Added the new following JSON configuration options: ---- `"server_ip"` -- IPV4 address of the Open Hexagon server. ---- `"server_port"` -- port of the Open Hexagon server. ---- `"server_control_port"` -- control port of the Open Hexagon server. Used to send special control messages to the server for debugging. - Major compilation time improvements: ---- Greatly refactored the game's codebase to avoid physical dependencies between components. ---- Added PCH support (pre-compiled headers) to the CMake build. ---- Added unity build support to the CMake build. - `hg::HexagonDialogBox` now supports keyboard input (used for login and registration). - Removed dependencies on `SSVU_ASSERT`, `ssvs::AssetManager`, and `ssvs::MusicPlayer`. Custom-made solutions have been written from scratch instead. - Added dependencies on the following libraries (for the online leaderboard feature): `libsodium`, `sqlite3`, `sqlite_orm`, `boost::pfr`. - Removed many obsolete or unused library functions, especially related to JSON. - Improved performance of file reading and JSON parsing. - Added an implementation of a thread pool, currently unused. - Added new `OHServerControl` tool to communicate with the server directly.
[ 2021-04-16 02:07:43 CET ] [ Original post ]
Hello everyone Open Hexagon 2.0.4 is now available! This is the third official update since the Steam release, and it focuses on engine and performance improvements, and empowering level creators with a new in-game Lua console, pack dependencies, and many new Lua functions. Enjoy! (For any question or feedback, please get in touch with me on our official Discord.)
Major Changes
- Changed ticks per second from 120TPS to 240TPS, improving the game's precision during collision detection and movement
- Level packs can now depend on other packs in order to promote code reuse and avoid repetition
-
Change Lua runtime to LuaJIT, having 20x better performance on average
- Caveat: supports features only up to Lua 5.1
-
Added in-game debugging and experimentation tools in Debug Mode:
- (F1): toggle Lua console, allowing to run code on demand and track variables in real-time
- (F2): pause and un-pause the game -- Lua console is usable when the game is paused
New Levels
- Added a new work-in-progress official level pack, Orthoplex, containing:
- Arcadia: an unusual level with wavy patterns made out of custom walls
- Bipolarity: fast-paced barrages and forced 180 player swaps
Level Improvements
-
Perfectly synchronized pulse and beatpulse with the music for all built-in levels
- Exceptions: Golden Ratio and Acceleradiant, as they will be reworked in the future
- Moved Baby Steps to a new pack, Tutorial, making its role more clear to new players
- Added a graphical transition effect to the player's triangle when focusing/unfocusing
Minor Improvements
- Added a few milliseconds of ignoring input after death to avoid accidental restarts
- Added new Show Level Info option that displays information about the current level in the bottom-left corner of the screen, useful for streaming/recording
- Added options to hide the timer and status text, useful for cinematic recordings
- Added -printLuaDocs command line argument to print out Lua documentation
Bug Fixes
- Fixed crash when attempting to change keyboard bindings
- Fixed broken antialiasing menu setting, now supports up to 16x
- Fixed t_eval crashing the game on Lua error
New Lua Functions
(Please refer to the Lua reference on the official wiki for a more detailed explanation.)
-
u_execDependencyScript: to load a script from one of the pack's dependencies
- As opposed to u_execScript, which loads a script from the current pack
-
l_[set/get]ManualPulseControl: when set to true allows Lua scripts to manually control pulse values
- l_[set/get]Pulse
- l_[set/get]PulseDirection
- l_[set/get]PulseDelay
-
l_[set/get]ManualBeatPulseControl: when set to true allows Lua scripts to manually control beatpulse values
- l_[set/get]BeatPulse
- l_[set/get]BeatPulseDelay
- l_[get/set]pulseInitialDelay: control initial delay before any pulse effect starts, useful to sync up a level with the song's beat or to wait until the music reaches a certain point
-
Custom wall optimized functions
- cw_createDeadly: more optimized way of creating a deadly custom wall and getting back an handle
- cw_createNoCollision: more optimized way of creating a no-collision custom wall and getting back an handle
- cw_moveVertexPos: more optimized way of moving a custom wall's vertex by a specified offset
- cw_moveVertexPos4Same: very optimized way of moving all vertices of a custom wall with the same offset
- cw_[set/get]VertexPos4: more optimized way of controlling all vertex positions of a custom wall
- cw_[set/get]VertexColor4: more optimized way of controlling all vertex colors of a custom wall
- cw_setVertexColor4Same: very optimized way of setting all vertex colors of a custom wall to the same color
- u_inMenu(): returns true if a Lua script is being executed from the menu screen, false otherwise
- s_getMainColor, s_getPlayerColor, s_getTextColor, s_get3DOverrideColor, s_getCapColorResult, s_getColor: return a RGBA tuple of the current style's corresponding color
Lua Function Cleanup
- Removed unused pulseDelayHalf and related Lua functions
Miscellaneous
- Added a pulseHelper.html JavaScript tool in the GitHub repository to help level makers calculate pulse values that are in sync with the music's BPM
- Beatpulse delay should be set to 3000/BPM (or one of its multiples)
- Pulse values can be calculated through the tool -- the displayed equation should be as close to 3000/BPM (or one of its multiples) as possible
Community Spotlight
-
Check out the Open Hexagon - Custom Level Aesthetics video, showcasing levels from two excellent packs
- Polygonal Cubics, by Babadrake
- The Travel Pack, by Syyrion
- https://www.youtube.com/watch?v=h4Jfj3lzWD4
[ 2021-03-29 01:37:35 CET ] [ Original post ]
Hello everyone Open Hexagon 2.0.3 is now available! This is the second official update since the Steam release, and it mostly focuses on revamping the UI, improving collisions, and providing many new tools for level developers. Hope you enjoy!
Update Highlights
- Completely new menu and level selection UI, with special thanks to Ivory Duke. See New UI for more details.
- Improved collision fidelity with walls again, special thanks to Ivory Duke.
- Completely revamped the sound palette, replacing and adding completely new sounds. Special thanks to LukeMans.
- Replays are now saved to files that can be shared and viewed at will. See Replays for more details.
- Major changes to the Lua scripting side of things. See Lua Changes for more details.
- Rebalanced some levels from the Cube pack, to make them more fair and approachable. See Level Balancing for more details.
New UI
A brand new UI has been contributed by Ivory Duke, which greatly modernizes the look and feel of the game, and also introduces some nice new features:
- Levels and level packs can be browsed more quickly and in a more organized manner.
- Keyboard, mouse, and joystick controls can now be re-bound in the options menu.
-
Added a "favorite level" system!
- Levels can be favorited with the F1 key.
- Favorite levels can be filtered with the F2 key.
- Brand new intro screen showing loaded assets, scripting errors, and tips for new players.
Replays
- Local best scores are now automatically saved to a .ohreplay file, under the Replays folder in the games directory.
- .ohreplay files can be drag and dropped onto the Open Hexagon executable to view them immediately, or can be shared with other players.
Other Changes
- The Open Hexagon executable can now be started with -p -l command line arguments to immediately start a level.
- Added first-timer tip dialog boxes for players who boot up the game for the first time.
- Added a new personal best screen, with basic particles and congratulation text. Just to make your new records feel more special.
- Discord Rich Presence has been rewritten to be more smooth and legible.
- Added out of bounds checking for standard walls, determined by wall spawn distance any walls that go out of bounds will be deleted.
- Removed Dynamic FPS setting altogether.
- Added ability to fully reset all settings to the default settings.
-
Made styles slightly more customizable.
- Colors now support negative pulse values.
- Player color and text color can now be overridden (player_color and text_color).
- The version format for the game has now changed to a Major.Minor.Micro format.
Level Balancing
- Most spiral patterns are a bit thicker in order to avoid gaps between spiral segments.
-
Rebalanced most levels in the Cube pack:
- Removed mirror patterns when the number of sides is not even.
- Ensured that barrage spirals (pDMBarrageSpiral) are always safe when spinning in the same direction (no need to stop) and reduced their length.
-
The tutorial level Baby Steps is now interactive, requiring the player to perform tasks in order to proceed.
- The tutorial also evaluates a players performance, providing feedback on whether they have been successful at avoiding all the walls or not.
Lua Changes
- Added asset refreshing. Pressing F5 with Debug Mode on level selection will now reload all assets (including .json files) for the selected level.
- Optimized Lua engine quite a bit, performance should be improved in Lua-intensive levels.
- Added useful Lua utilities and constants to the default level packs. You can find them in utils.lua. Special thanks to Synth Morxemplum.
- Added onPreDeath Lua callback that is invoked when a wall is hit even in tutorial or invincibility mode.
- Added onInput Lua callback that allows players to gather input in a replay-safe manner.
- Hardcoded Lua callback onLoad now runs when the level starts (i.e. at every restart) instead of level initialization.
-
There is now a new a_ prefix! This prefix is specifically dedicated to everything audio. Special thanks to Synth Morxemplum.
- Added a_playPackSound to play sounds specifically in a packs Sounds folder.
- Added a_setMusicPitch to alter the pitch of the music
- Added a_syncMusicToDM to toggle the music pitch being linked to the difficulty multiplier
- Added a_overrideBeepSound to override beep.ogg with a level pack sound
- Added a_overrideIncrementSound to override increment.ogg with a level pack sound
- Added a_overrideSwapSound to override swap.ogg with a level pack sound
- Added a_overrideDeathSound to override death.ogg with a level pack sound
- Removed u_playSound to a_playSound. CHANGE THIS IMMEDIATELY.
- Added t_eval to execute arbitrary Lua code as part of the main timeline.
- Added t_clear to clear the main timeline.
- Added e_eval to execute Lua code on the event timeline.
- Added e_messageAddImportantSilent to make messages that dont play beep.ogg.
- Added l_clearTracked Lua function, which removes all currently tracked Lua variables.
- Added l_resetTime Lua function, which completely resets the game timer.
- Added l_setPlayerSpeedMult, allowing the player speed to be changed.
- Added l_setWallSpawnDistance(int) to change the wall spawn distance. Be careful with your patterns.
- Added l_overrideScore(string luaVariableName) to override the game timer with a custom scoring system.
-
Custom Walls now have a collision attribute, allowing for players to clip through custom walls.
- Can be performed with the Lua function cw_setCollision(bool).
- Added cw_[get|set]Deadly functions to choose whether a custom wall kills the player on collision or not, with no safety.
- Added cw_[get|set]KillingSide function to choose a single side that kills the player on collision.
-
Added a warning system to warn users and pack developers of the use of deprecated functions.
- Warnings are raised once per unique deprecated function call per level session. Unlike Lua errors, they do not kick you back to the menu and will show up as a message in the status. You cannot suppress this message at the moment, so if you want it to go away, the pack developer should fix their code.
- Seriously, dont wait last minute to make the changes. We added the warning system to lessen the impact of future incompatibility.
- The m_ prefix is now deprecated. All message functions should move to the e_ prefix. Special thanks to Synth Morxemplum.
-
Several more functions have been deprecated to have more concise and logical naming: Special thanks to Synth Morxemplum.
- u_kill is now t_kill.
- u_eventKill is now e_kill.
- e_eventStopTime is now e_stopTime.
- e_eventStopTimeS is now e_stopTimeS.
- e_eventWait is now e_wait.
- e_eventWaitS is now e_waitS.
- e_eventWaitUntilS is now e_waitUntilS.
- Check the Lua Reference for an updated reference (https://github.com/SuperV1234/SSVOpenHexagon/wiki/Lua-Reference).
Bug Fixes
- Fixed player dying when rotating into a custom wall.
- Hidden Mouse config property now works as intended.
- Rotation Speed now inverts even when the rotation has reached the cap
- Fixed hues not revolving properly after 360 degrees.
- Camera shaking now uses float values instead of just integers.
- Lua callback onUnload now works as intended
-
Death visual effects have been improved:
- The death animation no longer lingers after dying in Invincibility Mode or Tutorial Mode.
- The death animation plays and overrides the swap animation.
- The death animation is not FPS-dependent anymore.
- Fixed some crashes related to loading replay files.
- Revamped collision system, should have no more unexpected deaths.
- Fix achievements not being unlocked correctly.
- Player collision no longer screws up after dying in Tutorial Mode.
[ 2021-03-04 23:00:16 CET ] [ Original post ]
Hello everyone -- Open Hexagon 2.02 is now available! This is the first official update since the Steam release, and it includes some nifty new features and changes. Keep on reading to discover what's new!
Update Highlights
https://www.youtube.com/watch?v=cr519sn4pSA
- Curving walls no longer kill when hit from the side - they push the player instead
- Implemented new "immediate replay" feature
- Implemented achievements for the Hypercube level pack
Full Changelog
- Implemented achievements for Hypercube pack
- Fixed bugged "Cube Master" achievement
- Added some new functions for beat pulse
- Improved beat pulse in every "Cube" level (it should now match the music beat more closely)
- Fixed mouse cursor being visible in fullscreen mode
- Improved Steam/Discord rich presence performance and formatting, now displaying difficulty multiplier
- Greatly improve pack development online documentation (https://openhexagon.org/workshop)
- Implemented reproducible random number generation, prerequisite for online leaderboards (pack developers, you might have to update your levels!)
- Implemented "immediate replay" feature, which allows you to watch a replay of your last run; prerequisite for full replay system and online leaderboards
- Tweak the difficulty some Hypercube achievements, they're easier now
- Fixed some potential security vulnerabilities in Lua scripts
- Added hidden achievement regarding swap
- Curving walls no longer kill when hit from the side - they will push the player instead
- Tone down Commando and Labyrinth achievements (now require level 7 instead of 8)
- Add new `l_getSwapCooldownMult` and `l_setSwapCooldownMult` Lua functions
- Rebalance Reppaws and Slither
- Automatically synchronize `config.json` with Steam Cloud
- Add "key icons" overlay feature that displays pressed keys during gameplay, useful for videos
- New Lua get/set functions: BGRotationOffset, BGColorOffset, and BGTileRadius
- Add 3D Required as a toggleable requirement for score eligibility on 3D-reliant levels
- Add "Timescale" debug setting which allows to speed up or slow down the game simulation speed (useful for testing feasibility of hard levels)
- Strip some less commonly played or impossible difficulty multipliers from "Cube" levels
For Pack Developers
Pack developers need to update their script to remove any call to `math.randomseed`. See https://github.com/SuperV1234/SSVOpenHexagon/commit/abb07adf19592674735647803eb2abc58049319f#diff-8f9005dd80876b671987e8979111a337 for an example. Feel free to ask on Discord for help! The level packs published on the workshop will have to be uploaded. Apologies for the inconvenience, but while we still are in Early Access you should be prepared for this to happen. The new changes are necessary to improve the game and eventually enable leaderboards with server-side score validation.
Growing The Community
Open Hexagon is a game that shines with a large community of players and content creators. Let your friends and family know about the game, especially if they are "creative" people who are looking for a warm community eager to try out their creations. If you are a content creator or if you know any content creator that might be interested in streaming/playing/reviewing Open Hexagon, please get in touch with @vee on the official Open Hexagon Discord: https://discord.me/openhexagon Also, if you have been playing Open Hexagon for a while, please leave a honest review on Steam! It improves the visibility of the game and provides important information to possible new players -- thanks!
Public Beta Branch
Do you want to keep up with the game's development and provide feedback and bug reports on upcoming features? You can now switch to a beta branch on Steam. Right-click on "Open Hexagon", go to "Properties", then "Betas", and you will be able to opt-in. You can provide your suggestions, bug reports, and/or criticism on the official Discord: https://discord.me/openhexagon
Workshop Highlights
The game has not been out for long yet, but there are some really cool levels on the workshop already. Some of them are using the new Lua scripting features to build really creative experiences. I personally like Newxagon. (https://steamcommunity.com/sharedfiles/filedetails/?id=2168730663) and Babagon (https://steamcommunity.com/sharedfiles/filedetails/?id=2174131954) by Baba -- some really interesting ideas in there. Troll's Experiments, by trollbreeder, (https://steamcommunity.com/sharedfiles/filedetails/?id=2167356935) also has some novel concepts. For more "classic" levels, check out Rotationality Remastered by Morxemplum (https://steamcommunity.com/sharedfiles/filedetails/?id=2169170656) or Hardcore Hexagon Classic by TheQuantumMadness (https://steamcommunity.com/sharedfiles/filedetails/?id=2173700108) -- they're fun levels. Thank you so much for contributing to the workshop!
Try Out Heptagon!
If you haven't seen it already, there's yet another game for polygon-lovers. Heptagon, created by CORE Games, is a brand new twist on the genre that introduces changes in perspective throughout a level, while keeping the gameplay simple and tight.
If you like Super Hexagon and Open Hexagon, you'll like Heptagon as well! The 3D mechanics are definitely a fresh twist on the formula. Absolutely worth the price!
Acknowledgements
Many thanks to the following open-source contributors, who contributed immensely to this (and prior) builds of the game:
- John Kline
- Zly
- AlphaPromethium
- Misa "Info Teddy" Elizabeth
[ 2020-07-27 18:32:47 CET ] [ Original post ]
Hello! Hope you are enjoying Open Hexagon!
New Beta Build
A new build of Open Hexagon v2.02 is now available on the public beta branch on Steam. In order to opt-in, right-click on "Open Hexagon", go to "Properties", and then "Betas". Here is the changelog for this new beta:
- Implemented achievements for Hypercube pack
- Fixed bugged "Cube Master" achievement
- Added some new functions for beat pulse
- Improved beat pulse in every "Cube" level (it should now match the music beat more closely)
- Fixed mouse cursor being visible in fullscreen mode
- Improved Steam/Discord rich presence performance and formatting, now displaying difficulty multiplier
- Greatly improve pack development online documentation (https://openhexagon.org/workshop)
- Implemented reproducible random number generation, prerequisite for online leaderboards (pack developers, you might have to update your levels!)
- Implemented "immediate replay" feature, which allows you to watch a replay of your last run; prerequisite for full replay system and online leaderboards
- Tweak the difficulty some Hypercube achievements, they're easier now
- John Kline
- Zly
- AlphaPromethium
- Misa "Info Teddy" Elizabeth
Workshop Highlights
The game has not been out for long yet, but there are some really cool levels on the workshop already. Some of them are using the new Lua scripting features to build really creative experiences. I personally like Newxagon. (https://steamcommunity.com/sharedfiles/filedetails/?id=2168730663) and Babagon (https://steamcommunity.com/sharedfiles/filedetails/?id=2174131954) by Baba -- some really interesting ideas in there. Troll's Experiments, by trollbreeder, (https://steamcommunity.com/sharedfiles/filedetails/?id=2167356935) also has some novel concepts. For more "classic" levels, check out Rotationality Remastered by Morxemplum (https://steamcommunity.com/sharedfiles/filedetails/?id=2169170656) or Hardcore Hexagon Classic by TheQuantumMadness (https://steamcommunity.com/sharedfiles/filedetails/?id=2173700108) -- they're fun levels. Thank you so much for contributing to the workshop!
Heptagon
If you haven't seen it already, there's yet another game for polygon-lovers. Heptagon, created by CORE Games, is a brand new twist on the genre that introduces changes in perspective throughout a level, while keeping the gameplay simple and tight.
If you like Super Hexagon and Open Hexagon, you'll like Heptagon as well! The 3D mechanics are definitely a fresh twist on the formula. Absolutely worth the price!
[ 2020-07-24 21:29:52 CET ] [ Original post ]
Hello folks! Hope you are enjoying Open Hexagon!
Public beta branch
Do you want to keep up with the game's development and provide feedback and bug reports on upcoming features? You can now switch to a beta branch on Steam. Right-click on "Open Hexagon", go to "Properties", then "Betas", and you will be able to opt-in. You can provide your suggestions, bug reports, and/or criticism on the official Discord: https://discord.me/openhexagon
Development road map
These are the next priorities for Open Hexagon development:
- Replay system (will serve as a way to share and replay records, and - most importantly - as a base for online leaderboard score validation)
- Hypercube pack balancing (tweak difficulty multipliers, patterns, and level scaling)
- More achievements (achievements for Hypercube levels, 'fun' achievements, and bug fixes)
Growing the community
Open Hexagon is a game that shines with a large community of players and content creators. Let your friends and family know about the game, especially if they are "creative" people who are looking for a warm community that will try out their creations. Thanks!
[ 2020-07-16 12:23:13 CET ] [ Original post ]
🕹️ Partial Controller Support
- Linux Content [93 M]
Open Hexagon is easy to learn but extremely hard to master. There are only four actions: spin clockwise, spin counter-clockwise, swap by 180° degrees, and focus (slow down). If you want to beat the hardest levels, you'll need impeccable timing and precision.
Simplicity and minimalism are key features of Open Hexagon. While some levels have special quirks and mechanics, the goal is always the same: survive as long as possible. Challenge your friends and family (or yourself) for the best survival times!
Headbang your way through polygons by listening to the absolutely amazing chiptune and bitpop tracks by BOSSFIGHT, Dunderpatrullen, and Fantomenk. You'll want to keep listening even after you're done playing -- 100% guaranteed.
Open Hexagon's main concept originates from the excellent Super Hexagon by Terry Cavanagh, who fully endorses Open Hexagon -- thanks! However, Open Hexagon expands on the formula by introducing a 180° swap mechanic, curving walls, accelerating walls, scriptable levels, and much more. Whether you're a veteran of arcade games or new to the genre, you'll find something fresh to spike up your adrenaline.
Open Hexagon was developed with the goal of being open. Players can create their own levels by using the simple yet powerful Lua scripting language. The amount of freedom that level designers have is unprecedented: keep your levels simple, or go wild and implement brand new mechanics and even entire new games! If you have never coded before, Open Hexagon can be a great (and fun) introduction to programming.
Open Hexagon features secure online leaderboards, backed up by a replay system and a cheat-prevention server. Are you brave enough to climb the ladders and claim the top scores?
Play the game the way you want to. Speed up or slow down levels. Change the colors and the way the environments are rendered. Open Hexagon gives players the freedom to customize their game just the way they like to. Or take it one step further and modify the game engine itself, as it is fully open-source.
Open Hexagon has been around for a while. Many players have spent countless hours becoming masters of the game or building incredibly creative custom levels. Become part of a growing community by sharing your achievements or by turning your crazy level ideas into reality. Join us on Discord!
[ 6132 ]
[ 2625 ]