Quantcast
Channel: HaxBall News

Update: Custom team colors

$
0
0
image

Changes:

  • Added a /colors chat command which lets room admins override the way in which the red and blue teams look.
  • Added “Disable custom colors" to the options menu, enabling this makes the game ignore the custom team colors. (Useful if the admin has bad taste ;)

/colors explained:

To set a team color you must have admin rights. Use it by typing the following command in the chat box:

/colors <Team> <Angle> <AvatarColor> [Color1] [Color2] [Color3]

Team: Should be either “red" or “blue", it specifies which team you are overriding.

Angle: Should be a number in the range 0…360. It specifies the angle in which the color stripes will be drawn.

AvatarColor: Should be RGB in hexa (ie: FF0000 for red), it specifies the color of the avatars.

Color1, Color2, Color3: Should be RGB in hexa (ie: FF0000 for red), they specify the colors of the team’s discs. The number of colors is optional, discs will have evenly sized stripes for each color specified.

And you can clear a team’s custom colors by using:

/colors <Team> clear

Examples:

  • White background with red avatar for red team:
    /colors red 0 FF0000 FFFFFF

  • Red and white background with black avatar for red team in a 45 degree slope:
    /colors red 45 000000 FFFFFF FF0000

  • Argentina’s flag colors for blue team:
    /colors blue 90 FCBF49 75AADB FFFFFF 75AADB

  • Clear red team custom colors:
    /colors red clear


Enjoy!


Update: Country selection menu

$
0
0

HaxBall now lets you change your country and location, to do so go to the options menu and click the “Change Country” button.

The way in which HaxBall detects your location is not infallible and often results in a wrong country. This change will let players correct it when it’s wrong (Or whenever they feel like it).

Enjoy!

Edit: Changing countries from inside a room is now disabled, to access the menu you can open the options menu from the rooms list.

Update: Better room security

$
0
0

Changes: Improved player banning and implemented automatic banning of spammy users. These changes address the room DoS attacks that have been happening.

HTML5 HaxBall update coming soon

$
0
0

Ive been working on it for a long time and it’s very close to being ready.

I’ve been silent in this blog about it since I wasn’t particularily sure I’d be able to finish it and I wouldn’t like to announce vaporware. However, I’m now pretty confident it’s gonna be released so here is the official teaser/announcement.

You can expect it to be released this year. (Hopefully november, but no hard promises)

Among other things will feature:

  • Unchanged physics, true to the flash version gameplay.
  • Improved but still user hosted peer to peer netplay using WebRTC.
  • Better use of the screen space, no longer constrained to a small window.
  • New bugs! Which will be fixed as they are reported.
  • Some missing features! Which will be implemented soon.
  • Survive Flash death. RIP :’(

Sadly only Firefox, Chrome and Chromium-based browsers fully support the technology needed (WebRTC). So HTML5 HaxBall will not work in Safari or Edge for now.

HTML5 HaxBall is here!

$
0
0

Give it a try html5.haxball.com

Found something wrong with it? Dont panic! This is an alpha version, it’s bound to have bugs and lack features. My top priority is reaching feature parity with the flash version and new features may come after that. If you find a bug please report it here.

The flash version and html5 versions will coexist until feature parity is reached.

Screen/Viewport size

One notable difference with flash version of haxball is the bigger use of the screen. This is something I always wanted to do, but since flash was not hardware accelerated it wasn’t possible to do it at a reasonable framerate.

However, a bigger viewport can make the game look really tiny (specially if your screen is 1080p or above). For this reason I’ve added camera-zoom feature. You can change between 3 different zoom levels using number keys 1 to 3.

Some people have expressed to me that they would rather have the restricted viewport size that the flash version had, this is something I’m considering as an option. If this matters to you too let me know.

Netplay

The netplay works very similarly to the flash version but uses WebRTC instead of RTMFP.

If you have issues connecting to room hosts but were able to do it in the flash version you should report it here.

You will notice ping will be a bit lower than usual, this is mainly because in flash network events were handled 60 frames per second while in html5 the events are handled immediately and independent of the screen refresh rate. This meant that flash could add about 32msec of latency depending on how close to the frame updates the network packets would arrive.

Another nice improvement is that the game will no longer lag if the host changes tabs. (flash would lower it’s frame rate and thus handle network events even less frequently)

HTML5 update:

$
0
0

Changes:

  • Implemented arrows pointing to players outside of the view.
  • Probably fixed the bug that causes the host to randomly kick players with “bad actor” as reason. (It is hard to reproduce so I’m not 100% certain, I’ll be keeping an eye out for it to see that it is truly fixed.)
  • Disabled gamepad input support for now. It was causing problems to players that had been playing with gamepad using key mapping software.
  • Default player name is now empty, forcing players to actually pick a nick.
  • Default value for max players changed to 12.

More updates to come soon.

HTML5 Update:

$
0
0

Changes:

  • Implemented /avatar and /clear_avatar commands
  • Implemented restricted view size mode (selected with Number 4 for now)
  • The game will now remember your prefered viewmode/zoom level.
  • The game will now automatically try reverse connection if forward connection fails, this should fix improve the connection success chance for a number of people. (This is related to the reverse_setting that was available already, it will try using that setting automatically now)
  • Implemented a shorter timeout for players that have disconnected but didn’t properly leave the room. It’s 30 seconds now.
  • Fixed bug where players would become invisble and unable to move when starting a game.
  • A bunch of other smaller bug fixes.

HTML5 Update:

$
0
0

Changes

  • Implemented a new “maxViewWidth” custom stadium property, this property allows custom stadium authors to specify the maximum width players should be able to see regardless of their viewport size. This should be useful for stadiums where having a bigger viewport than other players provides you with too much advantage.
  • Implemented crowd cheers sounds.
  • Implemented Settings menu.
  • Implemented settings to mute all game sounds, chat sounds and crowd cheer sounds.
  • Implemented country selection setting.
  • Implemented FPS limit setting.
  • Renderer optimizations
  • Fixed bug where players would desynchronize when they join a room.
  • Fixed player discs rendering on top of other stadium discs, this was breaking some maps that relied on on players being able to hide behind other discs.
  • Fixed a bunch of smaller bugs and memory leaks.

HTML5 Update:

$
0
0

Changes:

  • Implemented custom team colors.
  • Implemented setting to locally disable custom team colors.
  • Implemented /colors /set_password /clear_password /checksum and /handicap commands
  • Made custom stadiums names appear as yellow text in the room menu.
  • Non player chat messages in the chat log are now a different color.
  • Added log messages for most admin actions. They all say which admin produced the action.
  • Fixed bug were some custom stadiums had their background broken.
  • Fixed bug where transparent discs would only work for the player that loads the custom stadium.

HTML5 Update: Replays

$
0
0

Changes:

  • Replay recording and playing.
  • Some bugfixes.

Because these new replay files are incompatible with the ones created with the flash version the extension has changed to “.hbr2”.

There’s currently no way to link directly to a replay file, I’ll implement that feature soon. For now the only way to load a replay is from the room list “Replays” button.

I wish you all a happy new year!

HTML5 Update: Headless Host

$
0
0

The html5 version of haxball does a lot of things that are unnecesary when trying to host on a VPS (rendering, audio, GUI / menus).

To improve this situation I’ve implemented a “headless” version which does no rendering audio or GUI and is controllable through a javascript API.

Read the documentation here.

Also, starting today creating a room will require passing a recaptcha test.

Enjoy!

Update: HTML5 no longer Alpha

$
0
0

HTML5 version of HaxBall is now default HaxBall and drops the alpha tag.

Flash version is now in http://www.haxball.com/flash/, it will probably remain up until chrome no longer supports flash.

Update: Expanded Headless Host API and other things.

$
0
0

The Headless Host API has been expanded, check the full changelog here.

Also a few small changes to the haxball client:

Changes:

  • Fixed bugged /handicap feature. (This was only working correctly if you were the room host, now it should work for clients too.)

  • Added chat log notifications for when a player is given admin rights.

  • Very minor improvements to netcode.

What I’ll be working on next:

I’ve spotted a small bug in the netcode which is basically disabling a fairly significant optimization I had made. Unfortunately fixing this bug seemed to cause new bugs to pop up elsewhere that actually break the game and not just make it less optimal.

So until next update, I’ll be focusing on getting these bugs fixed.

Update: Netcode Improvements

$
0
0

As mentioned in the last update, netcode bugs have now been fixed and the game will now be more robust in the face of packet loss.

You might also notice red bars appearing in the ping graph, these red bars signify a ping packet being lost. Packet loss is bad mkay, but not so bad now thanks to the netcode improvements.

Update: Configurable Keys and more Headless API

$
0
0

Changes:

  • Expanded headless host api, changelog is here.
  • Implemented configurable key bindings, accessible from the Input tab in the settings menu.
  • Added higher zoom level options accessible through the Video tab in the settings menu.
  • When you are kicked or banned from a room the game will now tell you who did it.
  • New /extrapolation command which could be useful for players with input lag.
  • And a few miscellaneous bugfixes.

Update!

$
0
0

Game changes:

  • Implemented an indicator that shows when a player is typing in the chat.
  • The /extrapolation command is now saved as a setting and persists between games.
  • Added a new zoom option called Dynamic, which dynamically changes the zoom according to the window height. This is now the default zoom option that users see if they load haxball for the first time.
  • Improved error reporting when loading a stadium file fails. If there’s a syntax error it will tell the line and column where the problem is. It will also say in which vertex, segment, plane or disc an error happened if the data is invalid.
  • Added goal markers to HaxBall replay files. They appear as vertical lines in the replay time bar.
  • A few miscellaneous optimizations and bugfixes.


Headless Host API changes:

The full list is here but there’s two notable changes:

1 - Added headless room opening token for solving recaptcha in a different machine, it will help when trying to start a room using a headless browser.

2 - Implemented player auth functionality that lets players identify themselves when joining a room. The id is validated by using cryptographic signing.

The game will now automatically generate a unique Public ID and a Private Key for every player. You can see your own public id and private key here.

This id and key are stored in local storage and reused every time you join a room.

You can use this auth id to make sure that a player is who he says he is, as long as he keeps his private key safe there’s no way to impersonate someone elses id.


Stadium File changes (.hbs)

  • Added a Background color property.
  • Added a cameraFollow property that now lets you make stadiums where the camera will center on the player and ignore the ball. Probably useful for obstacle courses or racing maps.
  • Added a bias property to segments that lets you make one-way walls with configurable thickness. Useful for making bounds of maps with small and fast moving balls that would usually go through normal thin segments.

Stadium File documentation can be found here.

Update: Nickname Autocompletion

$
0
0

Typing ‘@’ in the chat will now open a list of all players. You can then select a player with the arrow keys and press TAB to autocomplete. Continuing to type will also filter the list, making it easier to quickly find the player you are looking for.

If someone mentions your nick using this system you will get a highlighted text and a different chat sound (Which can be disabled in the settings). This feature will probably be useful when trying to call the attention of players that are perhaps distracted browsing a on a different tab.

Also, pressing # will do a similar thing but the TAB key will autocomplete using the player’s id number. This should be helpful for referring players when issuing commands to headless room scripts since the id will be unambiguous and easy to parse by the headless room’s script.

Flash Stored Stadium Exporter

$
0
0

The flash version allowed you to store stadiums and some people had their favourite stadiums stored there but didn’t have the original .hbs file.

You can now extract the stadiums that you have in flash storage using this tool.

Update: Stadium Store And Export

$
0
0

The /store chat command is back! With it you can store the currently loaded stadium in your hard drive, it will then become available in the stadium list.

You can now also export stored stadiums as .hbs files using the export button in the stadium selection menu.

Enjoy!

Update: Resolution Scaling Setting

$
0
0

A resolution scaling setting has been added. By selecting a value lower than 100% the game will be drawn at lower resolutions and then the resulting image is scaled up by the browser. This could improve the performance of the game for some people.