Jump to content
newborn

Welcome to our new UI subforum.

Recommended Posts

So, as anyone who has read the development roadmap will know, this next big update contains a completely rewritten UI system and it's fuckin' awesome. It's so fuckin' awesome that it's going to require a brand new forum to support it. "But newborn!" I hear you say, "we've had game developers slightly-less-swearily promise awesome things to us before but delivered nothing but broken dreams and paid DLC". Well, let me tell you a bit about how the UI system is shaping up.

 

Technical details: 

 

Drawing is all handled by the NanoVG library and we expect to support everything it does. We've also incorporated a SVG loader to make some of the more complex drawing a lot easier. Since all of this is vector based, it means the UI scales nicely across all resolutions -- from 480p and below to 4K and above, all without requiring any additional art or configuration. It also means no more blurry fonts or weirdly shaped icons with different aspect ratios. 

 

Less technical details:

 

Driving all of the stuff mentioned above is a whole bunch of Lua script that you'll be completely free to customize. You could make a clock that takes up half your screen like the pros use. You could make custom health bars that have custom colors for custom damage ranges. You can make a little readout that calculates how many direct rockets you can survive without dying (and I already have). You'll be able to customize the server browser and options menu if you really want to. You could create a crosshair that changes to a random color every frame and give yourself a seizure. You could stick black bars down either side for the old school 4:3 experience on a widescreen monitor. You could add motivational messages to yourself when you're killed. If you're a decent programmer, you could create pong to play while you wait for a game or a complete HUD editor for the fame and.. fame.. that it would bring. You could create a HUD that automatically ragequit you from the game if you fell 20 frags behind (but don't). You could create giant pie-graphs of player performance for use on your brand new stream (as well as moving a whole lot of your OBS overlays into the game itself). Or you could make your HUD play death metal music every time you were moving over 500ups.

 

So, although almost all of those ideas are completely stupid, the point is that the new UI scripting tools are extremely powerful. Just edit the Lua and save (you'll see the changes in Reflex immediately, without having to restart or type in any console commands). 

 

Of course, this power comes with a cost. Changing things may not always be as easy as just typing in a couple of console commands (although creating your own HUD from scratch should be easier than most games). We're pretty confident that this will be addressed by the community being awesome though and where possible, we're designing the scripts so there's some easy to customize variables at the top. 

 

The other problem, which is likely going to cause the most rage, is that preventing people from having on HUD item timers is now borderline impossible (at least without doing some really unpleasant things to our nice new system). While this isn't ideal, it's a minor sacrifice for an incredibly powerful system and only a short step from the external tools and HUDs with big lists of numbers - 25 seconds that many players already use. So in the interest of keeping everything fair for all players, we'll probably be adding these timers to the default HUD and preparing ourselves for the accusations of "noobing up the game for noobs". 

 

But don't worry about that, because the system really is fuckin' awesome.

 

Share this post


Link to post
Share on other sites

Seems quite cool. Still wondering why you chose this over html5 + css + javascript?

As UI designer & front-end developer I still find it to be the best and the easiest way to make interface functionable, easily customizable and responsive for different screen sizes.

Share this post


Link to post
Share on other sites

Seems quite cool. Still wondering why you chose this over html5 + css + javascript?

As UI designer & front-end developer I still find it to be the best and the easiest way to make interface functionable, easily customizable and responsive for different screen sizes.

 

Performance mostly. Web rendering libraries are generally neither small nor fast and with a 125fps target, we've only got 8ms to render a frame. If you're comfortable with html5 / css / javascript though, you'll have no problem doing everything you want to with the Lua.

Share this post


Link to post
Share on other sites

The other problem, which is likely going to cause the most rage, is that preventing people from having on HUD item timers is now borderline impossible

Man, I've lost all my faith with this project...

 

Or you could make your HUD play death metal music every time you were moving over 500ups.

.. omfg!! :wub:  nononono, forget what I said! I take my words back!

Share this post


Link to post
Share on other sites

It will require you to redefine cheating.

 

If we're going to get timers and shit because the devs are dead set on noobing it up for noobs (/s) then the important thing is that it's done in an easy, accessible way that anyone can choose to use or not, and it sounds like that's what they're doing.

 

There was a discussion in another thread about how Reflex needs to mine successful games for ideas and translate them to the arena FPS space in order to be successful, and an accessible UI scripting language like lua is a great example.

Share this post


Link to post
Share on other sites

The onscreen timers is an interesting one, I've never decided if timing items really adds to the depth or if it's actually just one of those annoying things you have to learn to get beyond a certain level of skill and at the top everyone can time items easily so it's not really adding much to the game. 

 

I'm assuming that even with LUA scripts you couldn't time the other player picking up items as your client shouldn't be receiving any input from the server that they now have mega/red. So you'd still need to time against their pickups, however this seems to favour the in control player more? 

 

Beyond that I love customizable UI's. I love even more, ones you can script for yourself. No doubt some people will come up with really awesome UI scripts. I can't wait for the update!

Share this post


Link to post
Share on other sites

This is amazing but I can't help but think how difficult it's going to be to prevent cheating with these scripting abilities.

 

The other problem, which is likely going to cause the most rage, is that preventing people from having on HUD item timers is now borderline impossible (at least without doing some really unpleasant things to our nice new system). While this isn't ideal, it's a minor sacrifice for an incredibly powerful system and only a short step from the external tools and HUDs with big lists of numbers - 25 seconds that many players already use. So in the interest of keeping everything fair for all players, we'll probably be adding these timers to the default HUD and preparing ourselves for the accusations of "noobing up the game for noobs". 

 

But don't worry about that, because the system really is fuckin' awesome.

 

Cant you just deny usage of events such as do something every frame and do something within certain time interval?

 

You could distinguish your own UI scripts from custom UI scripts. Custom UI scripts would run on certain time interval which would be randomized to some point. Say that the interval would be randomly chosen between 1-4ms which would mean that its impossible to code any sort of scripts for timing stuff, because counters based on frame / time interval would always output data in a bit randomized manner? In addition to this you should just block the access from custom scripts to every variable that contains something that can be used in some custom function to estimate time passed. 

 

One "hardcoded" option would also just detect on fly if some function has a relation to time being passed or items being spawned and just detect that as "cheat" and block the usage.

Share this post


Link to post
Share on other sites

Cant you just deny usage of events such as do something every frame and do something within certain time interval?

 

You could distinguish your own UI scripts from custom UI scripts. Custom UI scripts would run on certain time interval which would be randomized to some point. Say that the interval would be randomly chosen between 1-4ms which would mean that its impossible to code any sort of scripts for timing stuff, because counters based on frame / time interval would always output data in a bit randomized manner? In addition to this you should just block the access from custom scripts to every variable that contains something that can be used in some custom function to estimate time passed. 

 

One "hardcoded" option would also just detect on fly if some function has a relation to time being passed or items being spawned and just detect that as "cheat" and block the usage.

 

The translation of all of this is they should shit up their UI code with obfuscation and random lag, and block out functionality for the sake of artificially limiting something that isn't that big a deal in the first place.

 

Let them release the UI code as it is, let's see what it can do without guessing and hyperbole and "sky is falling" scenarios, and if it causes problems they'll fix it.

Share this post


Link to post
Share on other sites

The other problem, which is likely going to cause the most rage, is that preventing people from having on HUD item timers is now borderline impossible (at least without doing some really unpleasant things to our nice new system). While this isn't ideal, it's a minor sacrifice for an incredibly powerful system and only a short step from the external tools and HUDs with big lists of numbers - 25 seconds that many players already use. So in the interest of keeping everything fair for all players, we'll probably be adding these timers to the default HUD and preparing ourselves for the accusations of "noobing up the game for noobs".

 

Can't quite grasp why would you be willing to sacrifice something as important as timing because it conflicts with your UI scripting.

First of all, having the multiplication table next to you does not make you good at maths, multitasking, timing, or any of the sort under pressure. You can't compare that to the game automatically counting for you.

Yes, people put stopwatches on their desks, they could even be having someone coach them in person. This doesn't mean you should legitimise such behaviour, use it as justification or a bargaining point, or base your game around it. Especially when you yourself said you consider it something bad.

Here you were saying precise timing would wholly imbalance the risk and reward of timing items. What made you change your mind so quickly?

Many players also use scripts in other games. Would you suggest we make strafing automatic because gazhud exists? Or bunnyhopping automatic because people make macros that count one scroll notch as ten counts? We could even move towards the logical endpoint which is proper cheats.

That you would even consider integrating something that most would consider an unfair advantage or even cheat as a feature because it conflicts with your scripting engine says enough on it's own.

You can only put it out there and use the tools at your disposal to do your utmost for your vision to be realised. You don't go "Oh well, some people were cheating or gaining unfair advantages in bad faith anyway". Especially in something as uncontrollable as an online game.

 

A HUD is a means to an end, not an end in itself.

Share this post


Link to post
Share on other sites

I'm pretty sure for tourney play you could submit your UI to the organiser to prove you have no timers. Then create a hash from your current LUA UI script which gets sent to the server to the server at regular random intervals when playing. Then simply compare it against the UI you sent in prior to the cup to ensure that you're using a script that has no timers displayed. 

 

Not exactly an elegant solution but if your absolutely desperate to play in a competitive environment without timers it should work. 

Share this post


Link to post
Share on other sites

The other problem, which is likely going to cause the most rage, is that preventing people from having on HUD item timers is now borderline impossible (at least without doing some really unpleasant things to our nice new system). While this isn't ideal, it's a minor sacrifice for an incredibly powerful system and only a short step from the external tools and HUDs with big lists of numbers - 25 seconds that many players already use. So in the interest of keeping everything fair for all players, we'll probably be adding these timers to the default HUD and preparing ourselves for the accusations of "noobing up the game for noobs". 

 

But don't worry about that, because the system really is fuckin' awesome.

 

Yeah lets all have timers and eliminate one of the main KEYS in ANY duel/fps game. What kind of nonsense is this I am truly confused... They need to have a feature or 'mode' where you CAN play with a timer if both players agree and a normal 1v1 'mode' where you need to time your damn selves. This is a huge drastic change and ridiculous, but hey ITS OKAY GUYS this system is really cute and awesome, we can put metal music and have the timer actually voice out the seconds remaining on an item like a fcking GPS. woooo

Share this post


Link to post
Share on other sites

Allowing people to do math in their HUD using game info is pretty extreme, just look at all the automated shit WoW has with a Lua-scripted UI. But, you know what? I'm glad Turbo Pixel is willing to do something radical and new with the genre and I'm all for it. Let's buckle up and see how it goes.

Share this post


Link to post
Share on other sites

The translation of all of this is they should shit up their UI code with obfuscation and random lag, and block out functionality for the sake of artificially limiting something that isn't that big a deal in the first place.

 

Let them release the UI code as it is, let's see what it can do without guessing and hyperbole and "sky is falling" scenarios, and if it causes problems they'll fix it.

1-4ms randomness is nothing for scripts this is meant to be used. They stated themselves that hud will be drawn at 8ms pace so you cant even see the difference anyway. Its two different things to run scripts to generate data for hud and actually draw hud to screen.

Share this post


Link to post
Share on other sites

First of all let me say that this seems like an incredibly powerful system and I'd love to see what can be done with it.

 

But, I need to speak on the issue of how these on-HUD timers are going to be implemented.

 

1.) Will you be able to see the timers for all items on the map regardless of whether or not you picked up the item yourself?

2.) Will it be based on whether or not you had line-of-sight vision on the item being picked up which will trigger the HUD timer?

3.) Will it be a timer which trips only on items you have personally picked up yourself?

 

The issues I see with implementations 2 and 3 are that with this scripting capability it will be trivial to trigger your own timer to count-down for the item either when the game registers the pickup sound effect or by simply binding a key to each of the armors + mega which I can press when I hear the audio cue in game.

 

So, assuming we end up with the first option...

Essentially what is happening is exactly as you have described it, a "noobification" of the game mechanics by removing timing almost entirely. I've witnessed similar systems in games do this with quad which results in players bombarding the item spawn as soon as the timer begins to count down from 10 and I think similar implications can be made for this timing change with the armors.

 

Any experienced player will tell you that timing is painfully important as you increase in skill level and is a deciding factor in 1v1 between players with roughly the same movement and aiming capabilities. Removing this doesn't seem to introduce a new mechanic or strategy into the existing duel meta but merely subtract what has been built up as probably the most difficult core skill to master and one which is essentially what separates lower tier players from the middle tier ones (or at least this was the case when I began Quake Live).

 

Consider a situation where the out-of-control player is avoiding an engagement with the in-control player who is stacked with the red armor and mega. You've managed to build up the 150 yellow armor and some additional health from health bubbles that you need to properly contest the next red armor, and you deliberately leave one of the yellow armors up so you can fall back on it after taking damage from contesting the red armor. With this system, the player controlling red armor will see that the armor is still up and can then anticipate this strategy and counter it effectively through no further thought of his own other than seeing that the HUD timer for it hasn't started counting down yet. This has removed the large amount of tactical forethought required to check the yellow armor spawn after not hearing the pick-up sound and observing the enemy positioning himself to retreat to that area of the map.

 

When this kind of a change is applied to duels the interesting effect is that you'll see vastly different outcomes depending on the skill of the participating players, where the lower to middle tier duelers may play slower in response to being able to know exactly when an item will be up and will position themselves for much longer amounts of time waiting for it, and contrarily middle to high tier players will use this level of exact timing to deal much more damage effectively by abusing the knowledge of knowing their opponent will be within the area of the major items when the timers reach zero, causing more emphasis to be placed on aim and movement rather than more advanced planning which this game in its current state already favours considerably.

 

I have no problems with this being added as a separate server option to be tested and tried out for balance since this is the ultimate test of the concept anyway, but adding it in not as a balance experiment but a "necessary evil" because of the type of system you're designing makes doubling back on this almost impossible without wasting your own development time refactoring an entire UI system for what is as of now an untested and major gameplay change. Having the technological choices directly influence the game-design goals isn't a trend we should begin following in a game so early in its infancy.

 

 

*Note: Portions of this post rely upon key conclusions drawn from QuakeWorld player [DP]BLooD_DoG's wildly popular statistical reasoning knowledge base built up on over a decade of raw duel metadata.

Share this post


Link to post
Share on other sites

 

Since all of this is vector based, it means the UI scales nicely across all resolutions

 

That's going to be cool for UI designs.  Sounds like you're really happy with how it's shaping up.  If you're excited then I'm excited.  Arguing about timer scripts is pointless guys.  They've made the decision they are the wielders of the flame.  Deal with it.  Yes it will lower the skill ceiling but that's a good thing for a new game trying to get players interested.  It's the one reason why I never cared to play duel.  The skill separation is too high unless you want to spend months practicing on like 3 specific maps just to have fun.  It's why I stuck with CTF and TDM where teams even that out naturally.  Just goes to show that developers have hit a home run again and people don't even realize it because they're too engrained in old habits from Quake.  This isn't Quake and this is another thing that will help separate it.  The more things that can be different from Quake then perhaps the more people will stop comparing it to Quake.  If I wanted to play Quake then I'd go play Quake.  I say Kudos and brav-frickin-O.

 

Now how about the group select for mappers? :)

Share this post


Link to post
Share on other sites

That's going to be cool for UI designs.  Sounds like you're really happy with how it's shaping up.  If you're excited then I'm excited.  Arguing about timer scripts is pointless guys.  They've made the decision they are the wielders of the flame.  Deal with it.  Yes it will lower the skill ceiling but that's a good thing for a new game trying to get players interested.  It's the one reason why I never cared to play duel.  The skill separation is too high unless you want to spend months practicing on like 3 specific maps just to have fun.  It's why I stuck with CTF and TDM where teams even that out naturally.  Just goes to show that developers have hit a home run again and people don't even realize it because they're too engrained in old habits from Quake.  This isn't Quake and this is another thing that will help separate it.  The more things that can be different from Quake then perhaps the more people will stop comparing it to Quake.  If I wanted to play Quake then I'd go play Quake.  I say Kudos and brav-frickin-O.

 

Now how about the group select for mappers? :)

 

That's cute because QuakeLive, keyword QUAKE has timers as well high five.

Share this post


Link to post
Share on other sites

First of all let me say that this seems like an incredibly powerful system and I'd love to see what can be done with it.

 

But, I need to speak on the issue of how these on-HUD timers are going to be implemented.

 

1.) Will you be able to see the timers for all items on the map regardless of whether or not you picked up the item yourself?

2.) Will it be based on whether or not you had line-of-sight vision on the item being picked up which will trigger the HUD timer?

3.) Will it be a timer which trips only on items you have personally picked up yourself?

 

The issues I see with implementations 2 and 3 are that with this scripting capability it will be trivial to trigger your own timer to count-down for the item either when the game registers the pickup sound effect or by simply binding a key to each of the armors + mega which I can press when I hear the audio cue in game.

 

So, assuming we end up with the first option...

Essentially what is happening is exactly as you have described it, a "noobification" of the game mechanics by removing timing almost entirely. I've witnessed similar systems in games do this with quad which results in players bombarding the item spawn as soon as the timer begins to count down from 10 and I think similar implications can be made for this timing change with the armors.

 

Any experienced player will tell you that timing is painfully important as you increase in skill level and is a deciding factor in 1v1 between players with roughly the same movement and aiming capabilities. Removing this doesn't seem to introduce a new mechanic or strategy into the existing duel meta but merely subtract what has been built up as probably the most difficult core skill to master and one which is essentially what separates lower tier players from the middle tier ones (or at least this was the case when I began Quake Live).

 

Consider a situation where the out-of-control player is avoiding an engagement with the in-control player who is stacked with the red armor and mega. You've managed to build up the 150 yellow armor and some additional health from health bubbles that you need to properly contest the next red armor, and you deliberately leave one of the yellow armors up so you can fall back on it after taking damage from contesting the red armor. With this system, the player controlling red armor will see that the armor is still up and can then anticipate this strategy and counter it effectively through no further thought of his own other than seeing that the HUD timer for it hasn't started counting down yet. This has removed the large amount of tactical forethought required to check the yellow armor spawn after not hearing the pick-up sound and observing the enemy positioning himself to retreat to that area of the map.

 

When this kind of a change is applied to duels the interesting effect is that you'll see vastly different outcomes depending on the skill of the participating players, where the lower to middle tier duelers may play slower in response to being able to know exactly when an item will be up and will position themselves for much longer amounts of time waiting for it, and contrarily middle to high tier players will use this level of exact timing to deal much more damage effectively by abusing the knowledge of knowing their opponent will be within the area of the major items when the timers reach zero, causing more emphasis to be placed on aim and movement rather than more advanced planning which this game in its current state already favours considerably.

 

I have no problems with this being added as a separate server option to be tested and tried out for balance since this is the ultimate test of the concept anyway, but adding it in not as a balance experiment but a "necessary evil" because of the type of system you're designing makes doubling back on this almost impossible without wasting your own development time refactoring an entire UI system for what is as of now an untested and major gameplay change. Having the technological choices directly influence the game-design goals isn't a trend we should begin following in a game so early in its infancy.

 

 

*Note: Portions of this post rely upon key conclusions drawn from QuakeWorld player [DP]BLooD_DoG's wildly popular statistical reasoning knowledge base built up on over a decade of raw duel metadata.

 

This is a very great post!

Share this post


Link to post
Share on other sites

 

As always, your feedback and input is valuable to us.  I'm simply asking for you to put

some thought into your opinions before raising them.  I think many of your concerns can

be laid aside once you realize that this customizability is a boon for all.

Regards,

ModicumAnalysis

 

ModicumAnalysis, being a developer and working for the dev team I would hope you look into the community a little more and ACTUALLY listen and talk to the community to get more insight, because so far with what you are saying I do not agree with.

 

newborn edit: This person is not a developer but just likes to pretend his is to troll. He has since been banned.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×