Reflex Changelog 0.33.x
Reflex Changelog 0.33.x - Fancy UI stuff
After a month of late nights, it's finally time to release our new UI update to the world. Although its still a work in progress, HUD and menus have been dramatically improved and we're excited to see what the community comes up with using the new UI scripting system.
To gather all of these custom HUDs into one place, we've set up a new UI forum over at the reflexfps.net forums: the UI Scripting where (if it ends up anything like our mapping scene) you'll soon be able to find a masses of info and custom widgets.
We've also started sneaking in a few bits of art that you can check out in the "envtank" map. Stay tuned for some new weapon concept art and more information about the direction we're going in!
This is definitely not the end of our 0.33 updates. In the upcoming point release, we'll be expanding the UI system further, making some changes to knockback and weapon balance and squashing a few bugs.
0.33.1, April 7th 2015
Mapping
- Added fullclip
- Added
envtank
map to demonstrate current art usage examples. - Fixed slime functionality.
Engine
- Added new Lua based UI system (which despite being a single bullet point, was a month of work).
- Asset hotloading now included in public builds (for live-updating of HUD scripts).
- Added SSAO via r_ssao.
- Crash report now detect spinlocks & fires off a crashreport if it occurs (implemented on both dedicated server & clients).
- Key \ is now bindable.
- Fixed lightmapping bug on maps with multiple texture pages with
r_shader_quality 2
. - Fixed bug where probes were incorrectly not being calculated inside player clip.
- Server now reports location to steam (in gametags), client decodes this and it's used to display flag on server browser.
-
bind
command now has states, for example "bind game mouse1 +attack" "bind me mouse1 +editorprimary" - All configuration is now in
game.cfg
(no moreeditor.cfg
). - Bind command now supports ; for multiple commands on one key.
- Renamed game.cfg to
game_default.cfg
-- game.cfg is now created on first load if it doesn't exist. - Renamed dedicatedserver.cfg to
dedicatedserver_default.cfg
-- dedicatedserver.cfg is now created on first load if it doesn't exist.
Known Issues
- If you've deleted your menu music, the game will crash on start. To fix, verify your game cache in Steam. Fixed in 0.33.1.
- Armor timers occasionally wrong on connect. Correct time is shown once the item is taken.
- UI can get stuck in a loop changing resolution / refresh rate from the menu. To fix, either close the options menu or adjust your resolution using console commands instead.
0.33.2, April 9th 2015
Game
- Updated UI scripts to respect
cl_show_hud 0
, i.e. turns off widgets. - Server browser now has a "join server" button (rather than joining on first click).
- Options menu now has an apply button for resolution / window mode / refresh rate.
- Hopefully fixed a collision routing bug causing client to freeze at 99% connected.
- Added sorting by ping/map/mode/players to the server browser.
- Added
ui_reset
command to restore the default UI config. - The
saveconfig
command now saves to game.cfg if no filename is given, regardless of any previousloadconfigs
. - Added SVG versions of
cl_crosshair
s6
to16
. - Scoreboard has been moved to the new UI system.
Bug Fixes
- Fixed bug where pressing delete in the console would start deleting command history too.
- Fixed HUD being shown when freecam-spectating.
- Fixed FRAGGED message being shown when spectating.
- Fixed UI crash in options menu when cl_playercolorX was set to something invalid.
- Fixed bug causing UI colours to occasionally be wrong.
- Fixed bug with enemy health being incorrectly exposed/restricted to lua scripts.
- Fixed bug with team selection from in-game menu.
- Fixed game clock being off centre with default config.
- Fixed crash for people who delete their menu music.
UI Scripting
- Exposed more NanoVG functions to Lua:
nvgTranslate, nvgRotate, nvgSkewX, nvgSkewY, nvgScale, nvgArc, nvgElipse
. - Added Lua variables
world.mapName
andshowScores
. - Exposed Lua table library.
- The
player.team
Lua variable is now 1 or 2 (instead of 0 or 1).
Server
- Added sv_country command for dedicated servers. We try and automatically determine this, but it doesn't seem to be working for dedicated servers.
Art
- Added clock.
- Added alarm.
- Added cables.
- Added new style downward spot.
- Updated girder meshes to cast shadows.
- Optimised grate_128x128x8 mesh.
- Updated
envtank
with new assets.
0.33.3, April 15th 2015
Fixes
- Fixed collision bug when players were outside of world bounds.
- Fixed SVG rasterize crash bug
Improvements
- Improved the way kick votes are handled.
- Dedicated server no longer auto-saves configs.
- SVG texture atlas is now purged if SVG asset is updated.
- Added
NVG_CCW
andNVG_CW
constants toreflexcore.lua
. - Clients must now be not responding for 120 seconds before the crash reporter kicks in.
Art
- Added fan mesh.
- Updated
envtank
map.
Gameplay
- IC damage increased from
7 to 8
. - IC knockback increased from
0.25 to 1.3
. - Item pickup radius increased from
16 to 20
. - Changes to global knockback rules to prevent IC cripple (among other things).
- Player movement should now be more responsive when exiting teleporters.
0.33.4, April 17th 2015
User Interface
- Added a Options / Widgets menu.
- This gives a list of all widgets in the game and allows you to adjust their position/anchor from the menu (rather than using the console).
- This menu will also call an optional drawOptions() function for each widget, allowing widgets to draw their own options menu for players.
- See the Crosshairs options panel for an example.
- Added a PlayerSpeed widget.
- Added
ui_list_widgets
andui_set_widget_zindex
commands. - Truncated various slider results in options menu to 2 decimal places.
Scripting
- We now pass self parameter into widget.draw()/show()/hide().
- Updated options menu to use self. rather than looking up global table each time.
-
ui_show_widget
/ui_hide_widget
now lists all the widgets if you pass in no param. - Added Lua functions
saveUserData()
andloadUserData()
. This allows widgets to save any lua object across application launches. - Exposed widgets table to Lua so scripts can see registered widgets.
- Added special "ui_define" command. This is used to persist lua objects to
game.cfg
. - Added zIndex variable to widget, for controlling the draw order of your widgets.
- Replaced lua's internal "require" function with our own. This removes the capability of loading DLLs into Lua.
- Exposed new Lua variable
world.hostName
. - Exposed new Lua player variables:
position, velocity, anglesDegrees, jumpTimer, weapon[n].maxAmmo
. - Exposed ALL pickups to lua (to spectators only).
- Exposed pickup world position to lua (to spectators only)
- Cleaned up spacing/tabs in
Healthbar.lua
.
Art
- Added hanging chain meshes
- Added chain hook mesh
- Added chain pulley mesh
- Added pipe booster valve mesh
- Added fan vent frames
- Updated light_wall_sml to a small blue arc-lamp
- Updated light_wall_sml to cast shadows
- Updated envtank
Bug Fixes
- Fixed bug where always visible widgets wouldn't have their show() function called.
- Fixed "
unbindall
" being written to dedicated server. - Fixed "
addbind
" command. - Renamed vent_128x64x4 to vent_128x48x6
Known Issues
- Armor timers occasionally wrong on connect. Correct time is shown once the item is taken.
0.33.5, April 27th 2015
UI
- If you encounter any UI bugs, we suggest doing a
ui_reset
/ rebuilding your config. - Chat / Death messages have been moved to the new UI system.
- Added Movement Keys widget (thanks PHGP.tv!)
- Fixed order of item timers to correctly sort by Y position.
- Exposed some of the ArmorBar options through the widgets options menu (more soon!)
- Added scrollbar to widget options menu.
- Fixed round countdown ticks being inaudible if game messages were not visible.
- Fixed PlayerStatus' mode name having horizontal padding applied for no particular reason.
Gameplay
- Shotgun changes
- Fires 14 pellets (down from 16).
- Spread for both inner and outer rings has been reduced.
- Upped knockback multiplier from 1.2 to 2.
- These will probably need a nerf next update, but we'll see how they play for this week.
- Movement tweaks
- Ground is now less slippery.
- Players can now corner slightly sharper when bunny hopping.
- Bolt Rifle reload is now 1500ms (up from 1250)
- Players now spawn with 200RA in Arena modes (up from 150).
- Updated thc* maps in preparation for the tournament.
Game
- Fixed spec chat to only go to spectators when spectating.
- Fixed team chat to only go to team.
- Added notifications for players entering spec/editor/game/queue.
- Fixed issues with player color not working in UI and & game.
- Removed
cl_crosshair_*
commands -- useui_crosshairs_*
instead. - Fullclip now has it's own special collision mask rather than just using solid. This was required to differentiate between clip & solid when placing probes in world.
Scripting
- Added widget cvars.
- These are saved to
game.cfg
inside the widget object. - These can be created / queried via
widgetCreateConsoleVariable()
andwidgetGetConsoleVariable()
. - These are automatically prefixed with
ui_widgetname_
.
- These are saved to
- Added widget
initialize()
andfinalize()
functions, this will be called when widget is loaded, regardless if it's visible or not. This is a better place to callloadUserData()
-- i.e. crosshair can be not visible, but still drawn in the options menu, so it needs to be initialised. - Removed bogus param 'r' from
nvgIntersectScissor(x, y, w, h, r)
. - It's now possible to hide the following widgets:
Crosshairs, GameMessages, PlayerStatus, Scoreboard
. - After widget persistent data is written, we now push that back to the widget to see our changes. (Note, yes this will stomp user data, this is expected, we've loaded user data from the config).
- Added color picker control to reflexcore (thanks Bonuspunkt!).
- Renamed
uiComboxBox()
->uiComboBox()
, scripts need to update to corrected function name :). - Added lua convenience function
widgetSetConsoleVariable(varname, value)
, same asconsolePerformCommand("ui_<widgetname>_<varname> <value>")
. - Added Lua function
callWidgetGetOptionsHeight()
. This is used to determine the height required for widget options menus, so we can automatically add a scrollbar.
Configs
- Set
game_default.cfg
to show crosshair (now that it can be set not visible). - Configs now have a version number so we can automatically adjust cvars / add default cvars when we update.
Bug fixes
- Fixed potential crash in dedicated server.
- Fixed bug where you couldn't change sky color.