Note: Numbers in square brackets refer to Trac
<http://www.knightsgame.org.uk:8000/>.


Release 021
===========

Released 10-Sep-2012

[#70, #94, #162, #183] New Lua scripting system added.

[#80] "Tutorial Mk II" added.

[#197] Changes made to bring gameplay closer to the original Knights:

  * Chance of healing potion reduced from 60% to 40%.

  * Chance of "Sense Items" scroll effect now increases steadily as
    the game progresses.

  * Creatures hit by crossbow bolts are now stunned for a short time.

[#142] (Scripting) Monster sound effects can now be defined on a
  per-monster basis.

[#161] (Scripting) ai_fear now accepts a list of items.

[#193] (Windows) Fixed full screen resolution issue (resolution
  changes weren't being detected until Knights was restarted).

[#184] (Windows) Support Unicode path names for knights_config.txt.

[#190] Fixed incorrect starting point in "Run for the Freedom" quest
  (when playing in single player mode).

[#201] Fixed bug: Quest requirements box was blank for observers.

[#186] "Gems Needed" message now displayed when striking book with
  wand.

[#188] "Time Limit" setting can no longer be changed by observers.



Release 020
===========

Released 7-Jul-2012

New features:

[#160] Team games can now be played for any quest type, not just Duel
  to the Death. (The House Colours determine whether a game is a team
  game or not; if two or more knights share a colour, then they play
  on the same team.) Also, five new House Colours were added.

[#170] Invisible knights are now shown with a transparency effect.
  Also, invisible knights can now be seen by other players on the same
  team.

[#28] Added a Quest Requirements display to the in-game screen. (This
  can be minimized, if you wish, by clicking on its title bar.)

[#159] The ` key (this is above TAB on most keyboards) can now be used
  as a shortcut to start typing a team chat message. Also, the chat
  keys can now be re-defined on the Options screen.

[#57] On Windows, Knights now uses DirectX 11 for drawing (if
  available). This results in lower CPU usage and (potentially)
  smoother animation. If DirectX is not available, or is not up to
  date enough, then SDL is used as a fallback (the Options screen will
  tell you whether this happened on your system).


Bug fixes:

[#155, #179] Fixed some dungeon generator bugs, including: switches in
  gnome room not always working; switches firing bolts out of the
  wrong square or in the wrong direction; inaccessible areas in some
  Ring dungeons.

[#175] When swinging an axe at the special pentagram, the axe was being
  swung, instead of thrown as usual. This has been fixed.

[#158] Fixed bug where you could sometimes walk through a flying axe
  or bolt if you were moving straight towards it.

[#167] If you set a trap on a chest that already had a dart trap, then
  the dart was firing out from the wrong square. Now fixed.

[#160] In Duel to the Death quests, if the black team used a wand of
  securing, the entry point was marked by a dark grey rectangle on a
  black background, which was very difficult to see. This has been
  changed to light grey.

[#119] Following some changes to the mini-map code (a couple of
  releases ago), the "closed gate" tiles had started appearing as
  walls on the mini-map. This has now been reverted.

[#100] Fixed bug where sounds were sometimes not played correctly (for
  example, if a knight in an adjacent room opened a door into your
  room, then the "door opening" sound was not being played.)

[#172] The in-game player list is now sorted so that players on the
  same team are grouped together.

[#151] The "team chat is available" message is no longer shown if you
  are the only player on your team.

[#77] Chat from the quest selection screen is now carried through into
  the game.


Other changes:

[#152] Zombies can no longer instantly respawn after they die. There
  is now a minimum time of five seconds after a zombie dies before it
  can respawn.

[#20] Added one more guarded exit room (with three locked doors
  instead of the usual two).

[#169] Knights now opens in windowed mode by default. (Full screen
  mode can be selected from the Options screen, as usual.)

[#130] Traceback added to Lua error messages. This should make it
  easier to debug any Lua related problems in the future.

[#171] "Frags" renamed to "points" in Deathmatch mode.

[#163] Pressing Enter with nothing typed will now exit chat mode
  (instead of doing nothing).



Release 019
===========

Released 8-Jan-2012

New features:

[#131] New "Deathmatch" quest type. Knights compete to score the
highest number of frags before the time runs out.

[#135] New entry point setting: "Different every time", in which your
entry point is randomized every time you respawn.

[#41] The dungeon generator can now randomly reflect and/or rotate the
predefined rooms. This introduces a bit more variety into the
generated dungeons.

[#128] Friendly fire is now disabled for team games. Note this applies
to direct weapon hits (e.g. sword hits or thrown daggers), but not
"indirect" hits (e.g. if you press a switch which fires a bolt into a
team mate, then they will still be harmed).

[#122] Team chat is now available.

[#123] More than two teams can play in team games.

[#121] Fixed bug where knights could not use an entry point if it had
been secured by another knight on the same team.

[#126] You can now map a room if a team mate is in it.

[#47] A message is displayed if the dungeon type had to be expanded
(this can happen e.g. if you choose a "Tiny" dungeon for a very large
quest).


Bug fixes and other improvements:

[#139] Fixed bug where zombies were walking down pits, and also
vampire bats were not being generated from pit tiles when they were
supposed to.

[#140] Increased the range of the zombie-raising effect that occurs
when the Necronomicon is first picked up.

[#127] It is now possible to throw axes over barrels.

[#143] Fixed "Stack overflow error" that was happening in the room
with eight pentagrams around a crystal ball.

[#132] Fixed bug where daggers would sometimes drop onto the wrong
square after being thrown.

[#118] Prevented game from crashing if full screen mode fails to open
for any reason. The game now falls back to windowed mode if full
screen mode is unavailable. (Reported by Stugol.)

[#44] Fixed bug where pressing up/down keys in dropdowns moves up/down
by 2 items, not 1.

[#120] Fixed incorrect display of "Please press key for X" on the
change controls screen.


Server side changes:

[#46] The command line server no longer depends on SDL.

[#116] Server config file now supports "OldMOTDFile" once again.


Internal code changes:

[#138, #141, #144] Monster code has been refactored. This makes it
possible to define new monsters from the text config files, and paves
the way for Loki's "ogre quest" to be added in the future.

* Updated "Coercri" library to the latest version. (The interface for
keyboard handling has changed somewhat.)



Release 018
===========

Released 17-Sep-2011


New features:

[#29] Added "Random Quest" button.


Bug fixes and other improvements:

[#3] Fixed bug: "Stuck" red dots appear on mini map.

[#67] Entry/exit squares are no longer shown as "floor" on the mini
  map.

[#4] Fixed bug: Gems can be dropped "through" a closed door.

[#115] Fixed bug: Incorrect items would sometimes appear on the screen
  when observing a game.

[#76] Removed the "Entry Point" setting for single player mode.

[#36] Reduced message spam when a player is eliminated (in duel to the
  death quests).

[#71] Timestamps are no longer printed if a message line is completely
  blank.

[#113] Fixed build error with latest gcc version: "ptrdiff_t does not
  name a type".

[#109] Changed the way broadcast messages are handled; this means the
  Windows Firewall dialog will no longer appear when you are joining a
  game (although it will still appear if you want to host a game).

[#42] Upgraded to the latest version of ENet.


Server-side changes:

[#114] The server now flushes its log files after each log message.
  This means that messages will show up in the log files more
  promptly.




Release 017
===========

Released 2-Aug-2011

[#107] Fixed crash when time limit runs out.

[#108] Fixed server crash when observers join the game.



Release 016
===========

Released 16-Feb-2011

[#102] A new control system has been added. This uses a combination of
  keyboard and mouse controls. For details, see the manual, or have a quick
  look at the Tutorial which covers the new control system.

  Also, you now have to press TAB before typing a chat message
  in-game. This is to free up the keyboard keys (in particular WASD)
  for use with the new control system.

[#99] Added BinaryLog and Replay options to the server. This allows
  games to be saved to a file, and replayed. Unfortunately it does not
  work that well at the moment, so it is mostly useful for debugging
  purposes.

NOTE: All games played on the official Knights server are now being
  recorded using this feature. If someone reports a bug, I will go
  back through the logs and try to work out what happened. Hopefully
  this should make it much easier to track down obscure bugs in the
  future.

[#96] Fixed a bug when running your own server. The bug was that first
  game would start OK, but there would be an error message when trying
  to join the second or subsequent game.

[#98] Fixed wrong message when player quits (it used to say "<Name> is
  no longer observing this game" when it should have said "<Name> has
  left the game").



Release 015
===========

Released 5-Aug-2010

[#2] Potions and scrolls now respawn after a certain time. This is
  controlled by the new "Stuff Respawning" option, which can be set to
  Slow, Medium, Fast or None.

[#21] Added a "Team Duel to the Death" quest type.

[#79] Single player games can now be played on the server.

[#11] A speech bubble icon now appears above a knight's head while
  they are typing a chat message.

[#68] Your knight's position will now appear on the mini-map even when
  you are in an unmapped room (although not after a teleport).

[#89] The Knights window now pops to the front if you get
  disconnected.

[#75] Changed the Total Random exit so that it is never the same as
  someone's entry point.

[#93] Initial support for Lua scripting has been added. (Nothing
  interesting can be done with this yet, but the foundations are now
  in place for allowing mods to be made in future versions.)



Release 014
===========

Released 10-Mar-2010

[#72] Fixed bug where the menu screen gets into an infinite loop with
  lots of "quest changing" messages being printed.

[#86] Added some command line options to Knights. Type "knights
  --help" for details.

[#82] Fixed Boost linker option in Makefile. If you had an error
  "cannot find -lboost_thread" or similar when compiling Knights on
  Linux, this should now be fixed.

[#83] Changed switches format in knights_rooms.txt. Specifically, the
  "activate" flag is no longer required as an input, it is instead
  inferred from the tile type. This change is for the benefit of the
  map editor.

[#87] Added "random_respawn" entry point type. This is for the benefit
  of the map editor (and its "test" mode).



Release 013
===========

Released 7-Feb-2010

This release includes new tutorial and single player modes, as well as
several bug fixes.

[#33] Fixed "disappearing stuff" bug. If quest-critical items are
  destroyed (for example by dropping them down a pit) they will now
  automatically be respawned.

[#1] Added Tutorial mode.

[#52] Added Single Player mode.

[#56] Added optional time limit setting.

[#38] Closed gates (portcullises) now block bolts twice as often than
  they did before. This makes one of the gnome book rooms somewhat
  easier to complete.

[#5, #59] Daggers now do slightly less damage than they did before.
  Also, you now cannot throw daggers while holding a weapon (other
  than the standard sword).

[#24] Fixed bug where you cannot respawn when someone is standing on
  your entry point. If your entry point is blocked, you now respawn on
  the nearest available square.

[#8] It is no longer possible to place a bear trap directly underneath
  another knight or zombie.

[#10] The game now automatically goes into observer mode when you are
  dead / eliminated.

[#17] Added time stamps for chat and system messages.

[#58] Added a "welcome" screen that appears the first time you start
  Knights.

[#18] Fixed bug when the game was started when the house colour
  dropdown was open.

[#25] Fixed bug where the game didn't start if all players except one
  were "ready", then the final player left the game.

[#64] Fixed error 'display number out of range' when joining game as
  observer.

[#7] The Winner/Loser screen now indicates who has and has not yet
  clicked mouse to continue.

[#22] "Ready to Start" is deactivated when a quest setting is changed.

[#26] The names of observers are now shown on the in-game player list.

[#37] Book/wand information added to the quest description window.

[#55] Quest duration (mins/secs) is shown after the quest ends.

[#12] Chat text is no longer lost when going from in-game screen to
  quest selection screen.

[#13] Can no longer send empty chat messages on the Quest Selection
  screen.

[#66] Fixed bug when using mouse wheel or arrow keys to change quest
  settings.



Release 012
===========

Released 25-Nov-2009

This is the first release with Multiplayer support (i.e., more than
two knights are allowed in the dungeon at once).


New Features:

* Games with more than two players are now supported, in both LAN and
  Server modes.

* In-game screen layout changed. A player list has been added
  (containing player names and house colours, numbers of deaths and
  kills, and ping times), and the chat window has been moved to the
  right-hand side.

* Observer mode improvements. In multiplayer games, you can now
  observe different players by pressing the left/right arrow keys.
  There is also now an "Observe" button on the Quest Selection screen.

* Wand of Securing changed. The "stun" effect has been removed and
  instead the wand does a small amount of damage when used in combat
  (similar to the sword, but slightly weaker).

* The maximum number of wands in a quest is now eight (instead of
  two). More than two wands are useful in multiplayer quests.

* When a poison chest gets you, a message "Poison" is flashed up on
  the screen (this should hopefully make it clearer to new players why
  they sometimes die when they open chests!).

* Player names are now displayed above enemy knights so you can see who you
  are fighting against.

* On the Quest Selection screen, a message is now displayed whenever
  the quest settings are changed, indicating who made the change.
  (This is important for multiplayer games.)


Bug Fixes:

* Fixed bug where you could hit your own crossbow bolts.

* Fixed "writeUshort: out of range" bug.

* Fixed bug with bogus "this player has been eliminated" messages at
  the start of the game.

* Fixed bug where certain scrolls would not be disappear after use.

* Sometimes parrying was occurring when it shouldn't (for example,
  sometimes two knights would be hitting each other and always
  parrying the blows so no damage would ever occur). Parrying
  now occurs only when the knight is not moving or otherwise acting
  (as it was in the original Knights).

* Fixed: Bear traps sometimes weren't making the "clang" sound. (This
  was happening when the knight actually died from the trap, instead
  of just being wounded from it.)

* Dungeon generator failures now put you back onto the quest selection
  screen (with an error message being displayed there) rather than
  disconnecting everyone.

* Fixed bug where numbers of players/observers, and/or game status,
  were sometimes not updating correctly on the lobby screen.

* Disabled Other's Entry exit points for >2 players, and Close to
  Other / Away from Other entry points for >4 players, as the dungeon
  generator cannot currently handled these cases.

* You can now press ESC to get out of the Winner/Loser screen.
  (Previously there was no way to get out of that screen if someone
  decided not to click their mouse for any reason!)



Release 011
===========

Released 23-Sep-2009

* Knights is now licensed under the GPL.

* When waiting in the lobby, the Knights window will now pop to the
  front as soon as somebody connects to the server. (Windows only.)

* "Observer" support is now fully working -- games on the server can
  now be watched as they are being played.

* Pressing ESC in game no longer quits immediately. Instead it brings
  up the quest information (which used to be obtained by pressing TAB)
  and you can then press Q to quit, or ESC again to return to the
  game.

* Controls can now be set separately for split screen and network
  games. In the latter, it is no longer allowed to set "alphabetic"
  keys as knight controls. This is to prevent conflicts between knight
  control keys and keys used for typing chat messages.

* Fixed a bug where your knight's location appeared on the minimap
  even when you were in an unmapped room. (This was introduced in
  009.)

* The player name (used on the "Connect to Server" screen) is now
  saved between sessions.

* Chat messages are no longer cleared from the screen when the game
  ends.

* Added "OldMOTDFile" setting to the server config.

* Dungeon generator improvement. The previous version could sometimes
  generate "unwinnable" quests, where all keys were behind locked iron
  doors. (This seemed to be happening about 0.5% of the time.) The new
  dungeon generator checks for this situation and adds extra lockpicks
  if necessary.

  Note that the new check is not perfect and some "unwinnable"
  dungeons may still slip through. This should be very rare though.
  Even if it does happen, the game will start randomly dropping
  lockpicks into the dungeon after a few minutes, which should make
  any quest completable (if you wait long enough!).

* Bug fix: In split screen mode, starting a new game (i.e. quitting
  then pressing Start) while the game was paused failed (the next game
  started with a black screen).

* Adjusted the timing of the "sleep" calls in knights_app.cpp. (Not
  sure if this made much difference, but the code definitely seemed
  wrong before.)



Release 010
===========

Released 5-Jul-2009

* Fixed bug where controls would sometimes not work properly when
  playing online.

* Fixed error "writeUbyte: out of range" when non-ASCII characters
  were typed into the chat box.

* It's now possible to join a game that already has two players in it.
  You won't be able to play or watch the game, but you will be able to
  chat with the existing players.

* Errors from the game thread (knights_game.cpp) are now recorded in
  the server log file.

* Fixed some HTML markup errors in the Knights manual.



Release 009
===========

Released 14-Jun-2009

* Improved support for Internet games. Players can now click "Connect
  to Server" from the main menu and be presented with a list of all
  currently available Knights servers. Players can also run their own
  servers if they wish. Servers can be password protected.

* Chat feature added for LAN and Internet games.

* New graphics option "Allow non integer scaling" added to options
  screen.

* Quest descriptions added to the quest selection screen.

* Knight House Colours can be selected (only available in network
  games currently).

* The bear trap sound can now be heard from outside the current room.

* Zombies no longer make the "click" sound when they step on
  pentagrams.

* Keys, lock picks and gems can no longer be generated inside barrels.

* In windowed mode, the window size is now saved when the program
  exits (Windows only).

* In windowed mode, if the GUI is too big to fit inside the window,
  scroll bars will be displayed.

* Unselectable menu options on the quest selection screen are now
  greyed out.

* Menu screen drop downs are slightly wider, this prevents some quest
  titles being clipped at the right-hand end.

* The "change facing delay" has been reduced slightly when you have
  quickness -- this should make quickness feel slightly faster.

* Changes to rendering code: FPS is now adjusted dynamically instead
  of being fixed in the config file. (The value in the config file is
  now a maximum.)

* Changed the way the LAN broadcasting code works. We can now detect a
  LAN game running on the same machine (useful for testing). Also,
  interval between broadcasts is now increased in proportion to the
  number of clients detected, which should reduce network load if
  there are a lot of clients.

* Source code has been substantially refactored, and reorganized into
  separate directories.

* Manual has been updated and is now presented as separate pages
  instead of a single large HTML page.



Release 008
===========

Released 30-Dec-2008

* Added auto-discovery of LAN games. IP addresses of all found LAN
  games will appear automatically in the Join Game window.

* Fixed various crashes / errors in the network game mode.

* Game can now be paused by pressing TAB in-game. This will also
  display the current quest. The game also pauses automatically when
  minimized. (Note: pausing is not available in network games.)

* In network games, can now press Escape to quit on both machines
  (previously this only worked on the host).

* "Number of Keys" option changed to be more like the original
  Knights. If you ask for less than 3 keys you will now find that only
  a fraction of iron doors are locked (previously all iron doors would
  have been locked, albeit with a reduced number of keys).

* Winner and Loser images now displayed after the game ends.

* Build process changed. The Windows binary is now built using MS
  Visual Studio (the free Express Edition is sufficient). For Linux
  there is now a streamlined Makefile; make && make install should
  work for most users (as long as all required dependencies are
  installed!).

* Code fixed to be compatible with the latest version of Boost
  (1.37.0).

* On Windows, unhandled exceptions now cause an error dialog to
  appear, rather than just terminating the program.

* When using lock picks, the menu is automatically closed after the
  door is unlocked. This allows you to react quicker if there are
  monsters on the other side of the door.

* Reduced duration of the "Sensing" scroll effect slightly.

* Fixed "Unknown mouse button" error when a horizontal mouse wheel was
  used.

* Fixed problem where game might stop running if insufficient CPU time
  was available.

* Mouse pointer now hidden when running in full screen mode.



Release 007
===========

Released 13-Jul-2008

* Brand new GUI system for title screens, menus etc.

* Added Options screen. This can be used to customize the keyboard
  controls, toggle full screen / windowed mode, and tweak graphics
  settings. Options are saved when the game exits.

* Fixed bug where vampire bats were respawning too quickly.

* Fixed small bug with wands of securing (your home was sometimes
  randomly changing after using the wand on another home).

* Fixed rare bug where guarded exit would sometimes not work properly.

* Some internal refactoring. Now using "Coercri" subsystem to handle
  graphics, sound and networking.



Release 006
===========

Released 23-Mar-2008

* Forgot to include an essential DLL in the previous release (for
  Windows), so the game wouldn't run! Now fixed.

* For network games, you now enter the host's IP address in-game,
  instead of having to edit a config file.

* Can now switch between network and local games without having to
  restart Knights.

* Game no longer crashes if you try to "Join" a network game before
  the "Host" has started.



Release 005
===========

Released 30-Dec-2007

* Added graphics rescaling - game window can now be resized or
  maximized, and the graphics will be rescaled accordingly.

* Changed the in-game font.

* Fixed crash when playing network games.

* Dungeon generator was placing doors incorrectly sometimes (fixed).

* Switch-operated doors can no longer be opened by keys / lock picks.

* Fixed speed of bolts shot from skulls (they were slightly too slow).

* Items now respawn (very slowly) after a time, as in the original
  Knights.

* Some tweaks to vampire bat behaviour.

* Tweak to Super (you now don't lose your Strength while
  regenerating).

* Some locked chests now require lock picks (i.e. they cannot be
  opened with any of the keys and only lockpicks will work).

* In-game screen layout changed (e.g. gems now displayed at the
  bottom, instead of in a vertical line).

* Fixed problem with window refresh on Linux build.

* Some minor graphical / sound fixes (blood splats were appearing at
  wrong depth; control box on menu now flashes; bear trap sounds were
  wrong; boundary wall no longer appears on mini-map).

* Added a Windows icon for Knights.exe.

* Switched to Inno Setup instead of NSIS for the installer.



Release 004
===========

Released 19-Sep-2007

* Removed -fomit-frame-pointer from the Makefile on Linux - this was
  causing Knights to crash on startup, on my machine at least.

* Starting Gear on the main menu now works.

* Fixed: wand of open ways + strength now destroys furniture.

* Some changes to controls, e.g. can now start an attack while still
  moving.

* Adjusted timing of missiles to be closer to original Knights, and to
  prevent bolts missing you completely if you have quickness.

* Performance improvements - game should now perform better if limited
  CPU time is available.

* If trying to attack with an empty crossbow, you now drop the
  crossbow and draw your sword automatically.

* Can now fire crossbow when immediately facing a barrel or gate.

* Traps can no longer be set on gates.

* Wand of open ways can no longer open gates, crystal balls.

* We now try harder to place thrown daggers and axes back into the map
  (instead of letting them disappear if there is no square to put them
  on).

* Can no longer throw daggers while approached. Dagger throw icon no
  longer appears uselessly on the controls menu.

* Screen now flashes when Necronomicon picked up for the first time.

* Axe throwing made slightly more intelligent (no longer throws the
  axe when you are 1 square away from a wall).

* Improved random number generator (now uses Mersenne Twister).



Release 003
===========

Released 25-Mar-2007

Mostly a bug fix release - no major new features were added.

* Fixed bug (introduced in 002) which stopped the destroy book with
  wand quest from working.

* Improved the knight movement system slightly (in particular the
  "turning around while halfway between squares" rules).

* Knights now no longer drop their crossbows after firing.

* You can no longer open treasure chests from behind.

* Some minor graphical improvements (e.g. vampire bat corpses are no
  longer drawn over treasure chests or open pits).

* Fixed: securing homes did not quite work correctly in quests with an
  exit point.

* Fixed: game would not start if the dungeon was too small. (The
  dungeon size is now automatically increased if necessary.)

* Zombies can no longer set off pentagrams.

* Reduced sound volume slightly. Also, added missing sound effect when
  axe is thrown.

* Fixed bug where Zombify would drop your stuff bag a couple of
  squares away.

* There is now a slight delay between picking up a potion, and the
  effects being granted.

* Fixed small bug in uninstaller (some files weren't getting deleted).


Release 002
===========

Released 28-Jan-2007

* Added sound effects.

* Fixed bug where you would sometimes drop your weapon when trying to
  pick up an item.

* Vampire bats no longer set off pressure plates.

* Switches that open/close iron doors now work properly (and no longer
  flash up a LOCKED message).

* Added the ability to turn around halfway through a move. (Note: this
  has made it too easy to escape from falling down pits... will fix
  this in a future release.)

* "TeleportTo" action is now implemented (this is used by the room
  with 8 pentagrams and a crystal ball).

* Wands now only flash the screen if they actually hit something.

* Output now all directed to stdout, instead of some to stdout and
  some to stderr.


Release 001
===========

Released 30-Dec-2006

* Initial release.
