PUCK RUSH - WHAT CHANGED
========================

Newest first. Dates are when the version was built.


1.2.5
-----

  * Everyone needs this version to play online. Every copy before it carries
    an updater that quietly fails, so there is no way to fix it from inside
    the old one - download this once from kl-productions.xyz and updating
    works normally from here on.
  * The sound pack was given a fresh key, so this is a whole download rather
    than a patch.


1.2.4
-----

The updater actually updates now
  * The game asks about a new version every time it opens, and offers it
    there and then. You had to go and look in the menu before, which is no
    use at all when the version you are on is the one with the fault you are
    updating to get away from. It asks while the title screen is still
    playing, so it costs you nothing, and says nothing unless there is
    something new. It can be turned off in the settings.
  * It did not install. It wrote a small script that waited three seconds and
    then copied the new files over the old ones - but three seconds was a
    guess at how long you would take to press a key at the "please restart"
    message, and anybody listening to that message takes longer. The copy
    then ran while the game was still open, Windows refused to overwrite a
    running program, and the error went nowhere. The game carried on as
    though nothing had happened.
  * There is no script any more. The new version is put in place there and
    then, and the game restarts itself into it.
  * It also never restarted itself even when the copy did work, because it
    checked for something the build does not set.

  * You no longer see a black window running "ping" during an update. That
    was the script's way of waiting three seconds, and it looked - reasonably
    enough - like the game was doing something it should not have been.
  * Nothing else speaks over an update either. The keys that work everywhere
    are held back until it is finished, so a stray keypress or a timed-out
    check cannot announce something alarming halfway through.


1.2.3
-----

Lobby keys
  * F1 says who is online, from the lobby or from inside a room. Help has
    moved to F2.

Chat
  * Pressing the match chat key in a match against the computer, or against
    somebody on the same keyboard, now tells you there is nobody to chat to.
    It used to do nothing at all, which is impossible to tell apart from a
    key that is not working.


1.2.2
-----

Fixed: the game had no sound at all
  * The built game worked out the wrong folder for itself. A one-file build
    unpacks into a temporary folder and runs from there, and the game took
    that to be its own folder - so it went looking for its sound pack
    somewhere the player has never seen, did not find it, and came up
    completely silent. It now finds its real folder whichever way the build
    was made.
  * The same mistake meant that updating from inside the game unpacked the
    new version into that temporary folder, so the update appeared to work
    and then was not there. Downloaded sound packs went the same way. Both
    now land in the game folder.
  * If the sounds ever fail to load again, the game says so and names the
    file it went looking for, instead of just being quiet.

Two chat keys, not four
  * Slash is the public chat: the lobby, or the room you are in. Apostrophe
    talks to your opponent during a match, and can be rebound. That is all
    of them.
  * Semicolon and T no longer open chat. T was the match chat key as well as
    a lobby one, so a single keystroke meant the lobby chat in one place and
    the match chat in another - the two chats the game has, on the same key.
  * If you had already rebound your match chat key, it still works. The old
    default keeps going for anybody who had saved it.

Arcade, online
  * In an online arcade match, the guest was rolling its own shields and
    disappearing pucks instead of being told about the host's. It would
    announce that the puck had vanished when it had not, or hand out a shield
    the host had never given anybody. The host's state put it right a
    thirtieth of a second later, but you had already heard it. Only the host
    rolls now, and the guest is told.
  * A shield landing while one is already up no longer says "shield up" a
    second time.

Ping
  * F3, from anywhere in the game, times the round trip to the server. A
    sound goes out with the question and another comes back with the answer,
    so you hear the length of the delay before it is read out in
    milliseconds. If the server does not answer within ten seconds it says
    so.

What is new, in the game
  * /changes opens a list you can arrow through, a line at a time, saying
    what has changed. It comes from the server, so it can be updated without
    a new build - and if the server has nothing to say, you get the
    changelog that came with your copy instead.

Chat
  * Pressing slash to chat no longer puts a slash in the box for you. It
    used to, on the reasoning that anybody reaching for that key wanted a
    command - but slash is simply where a lot of people expect the chat key
    to be, so they typed a sentence and sent "/hello everyone", which is not
    a command, and their message went nowhere. The box opens empty now. To
    send a command, type the slash yourself.
  * The chat box says what it is for and reads back what is already in it,
    or says blank. So does every other text box in the game.

Fixed
  * The downloaded game opened a window and then said nothing at all. The
    screen reader libraries were being left out of the build, so every way
    the game had of speaking failed at once, and with no console there was
    nothing to print the problem to either. They are in the build now, the
    build refuses to package itself without them, and a copy that still
    cannot speak says so in a message box instead of sitting there silently.
  * If the game does fail to start, it now writes what happened to
    error.log in your Puck Rush folder and shows it, rather than leaving
    you with a blank window.

The computer opponent no longer cheats
  * Its paddle was wider than yours - noticeably so from level 3 up. It is
    the same width as yours now, on every level.
  * It never had to time a return; it got one for free every time the puck
    came within reach. It presses like you do now, and it can be early or
    late.
  * It knew exactly where every puck would land, bounces and all, the
    instant it left your paddle. It now reads the flight as it comes, can
    only follow so many bounces, and the harder the level the better it
    reads. A shot banked twice will genuinely fool the lower levels.
  * On the top levels it also moved faster than your paddle can. The hardest
    computer opponent now crosses the board at exactly your speed.
  * It misses because it was out of position or mistimed the return, both of
    which you can hear happening - not because a dice roll said so.

Physics
  * How you are moving when you return the puck now goes into the return.
    Plant the paddle and it goes back the way it came; sweep across it and
    you cut an angle. Moving into the puck puts pace on it too.
  * Wall bounces keep nearly all of their angle. They used to lose up to
    three quarters of it on the easier levels, which meant bank shots did
    not really exist. They do now.
  * Returns are far less random. Where the puck goes is mostly what you did
    with it.


1.2.1
-----

Fixed
  * Chatting in the lobby looked dead. Your own line was only spoken when the
    server echoed it back, so if the echo never arrived you heard nothing at
    all. You now hear it the moment you send it, once, and you are told if it
    could not be sent.
  * A match against the computer, chosen from the lobby menu, walked you
    through the setup and character menus first. It now starts straight away
    on the settings you last used. The full setup is still on the main menu.


1.2.0
-----

Message buffers
  * Everything the game says in passing now lands in a buffer you can read
    back: everything, chat, games and server.
  * Bracket keys move between buffers, comma and full stop move through the
    lines, shift with them jumps to the first or last, backslash says where
    you are, and control C copies the line.
  * They work anywhere, including mid-match - except while you are typing,
    where a comma is just a comma.

Chat keys
  * Apostrophe and slash open chat as well as semicolon and T. Slash puts
    the slash in the box for you, since a line starting with one is a
    command.

Everyone on the same version
  * The server turns away builds older than it accepts, and says which
    version is needed. The game offers to fetch it there and then.
  * A saved login cannot sneak an old copy past that.
  * The game also refuses a server older than itself, and says so plainly -
    that one is the server's problem, not yours.


1.1.1
-----

The lobby is a room now
  * Signing in puts you in a room you can walk around with the arrow keys
    while you wait, instead of sitting in a menu.
  * You hear your own footsteps and everyone else's, from wherever they are
    walking. The walls stop you.
  * Enter opens the menu from anywhere in the room - there is nothing you
    have to walk to.
  * C says where you are standing, P who else is in the room and how far off.
  * Going into a game takes you out of the room, so nobody hears you pacing
    while you play.

Fixed
  * Online play could not connect at all if you had run an earlier build: the
    saved settings kept pointing the game at your own computer.
  * Text boxes said "not available" when you pressed up on an empty one, and
    answered a bare number when you pressed down. They now say "blank" and
    "13 characters".
  * Capital letters are announced when you type or read back a box, so you
    can tell what you actually typed.
  * No box starts with a name already in it.


1.0.0
-----

First release.

The game
  * Two players, a paddle each, a puck between them. You hear the puck as a
    rolling sound: left and right by ear, near and far by volume, and the
    wall it bounced off by its pitch.
  * Serve with space, hold left or right as you serve to angle it. Every
    paddle hit makes the puck faster and the angles wider.
  * First to the chosen score, two clear points ahead. Sit on a serve for
    fifteen seconds and the point goes to your opponent.
  * Six difficulty levels, five match lengths, five character voice packs,
    a full announcer, and an optional echo location ping.
  * Arcade mode: a shield can appear behind either player for ten seconds,
    and the puck sometimes turns invisible until the next hit.

Playing other people
  * Against the computer, two players on one keyboard, over the local
    network, or online.
  * Local network games find each other by themselves - no typing an address.
  * Online: accounts with a verified e-mail, a lobby that is a chat room,
    games you create and host, passwords on games if you want them, live
    spectating, Elo ranking and statistics.
  * The host of a game picks who plays and starts the match when everyone is
    ready.

Getting around
  * Everything is spoken. Arrows, enter and escape, and that is the whole
    interface.
  * Text boxes are properly editable: arrows walk the line, ctrl with them
    moves by word, and every character is read as you go.
  * Page up and page down set the music volume from anywhere, and it is
    saved.
  * F7 says how long the server has been up, and the record for its longest
    run.
  * Semicolon chats, in the lobby, in a game, and during a match.
  * English and Polish, and every key can be rebound.

Under the hood
  * Physics run at a fixed 120 times a second, so the puck moves the same on
    any machine, and goal lines are crossed exactly - a fast puck can never
    slip past a paddle.
  * Menus are built from local state and never wait for the server, so a bad
    connection can annoy you but cannot freeze the game.
