Knights 016 Released

Knights version 016 has been released!

Download it from: http://www.knightsgame.org.uk/download.html

The main new feature is the addition of a new mouse-and-keyboard control system. The idea behind this is to try to make the game a bit more user-friendly for newbies. Although I think there is still more work to do in this area — e.g. a better tutorial might be nice — I think the new controls are a good start and hopefully will allow more players to enjoy the game.

If you have any comments on the new controls, or ideas for improvements, please feel free to comment below.

The old control system is, of course, still available. You can select which control system to use from the Options screen.

Enjoy the release 🙂

Next on the agenda is improving modding support (including Lua scripting) so that people can make their own mods for Knights.

Working on release

Has it really been 6 months since the last release? I hadn’t realised it was that long. It seems that with real life, job, etc, getting in the way, I just don’t have as much time to work on Knights as I would like. Oh well… I do what I can…

Anyway this is just a quick note to say that I’m working on the next release. This is being slightly held up by documentation — I need to update the manual to describe the new controls, and the new settings on the options screen. (This means taking some new screenshots as well as updating the text.) This is a slightly boring job but hopefully should get it done fairly soon. Then it’s just building the code and packaging it up for release. I’m aiming to complete this by Saturday or Sunday if all goes well.

Controls finished. Yay!

Finally I’ve got the new “action bar” control system finished. I have spent quite a lot of time polishing things, fixing bugs etc., and I’ve even drawn a couple of new icons for things that didn’t have icons in the original Knights, as you can see in the screenshot below (click to enlarge).

actionbar2

Note the new skull-and-crossbones icon (for suicide; there is no separate suicide key in the new system) and also the “Throw Axe” icon. As you can see, when you mouse-over an icon, it highlights in red and a text description appears telling you what the icon does. (OK, well, you can’t actually see the mouse pointer in the screenshot, but never mind.)

One thing I haven’t done is got rid of the “approaching” system. I did do some experiments in this area but decided to leave approaching in for the moment. This is mostly for reasons of time — I want to get a release out soon and I haven’t had time to finish off the “approach-less” controls yet. I might have another go at this in a future release though.

So the next priority is to get a release out so that people can test the new controls. After that, the next major step is going to be Lua scripting — both documenting what has been done so far, and then pushing to make much more of the game scriptable, so that meaningful mods can be created.

Look out for a release soon 🙂

Controls, again

I have now implemented a prototype action bar (as explained in my previous post). Here is a screenshot:

Action bar screenshot (click to enlarge)
Action bar screenshot (click to enlarge)

As you can see there is a little row of action icons that can be clicked on. (Please ignore the red square on the left, that is a graphical glitch that will go away in the final version.)

After trying this out for a while, I’m reasonably happy with it. Using the mouse along with the WASD keys feels very natural (no doubt because of its familiarity from other games). On the negative side, the pure action bar system feels a bit slow to use, especially for common actions like attacking or opening doors where you don’t really want to hunt along the action bar every time.

The best system is probably some sort of hybrid, using keys (or mouse buttons) for common actions, and reserving the action bar for more rarely used actions. For example:

  • WASD = move
  • E = pick up, open door, etc
  • Right mouse button = attack

Alternatively, we could use the left mouse button (when the mouse pointer is outside the action bar area) as a “pick up” function, instead of the E key.

I tried this out briefly and it seemed to work quite well. Unfortunately I didn’t get time to go any further this weekend (I’ve had to spend some time installing anti spam measures on the forum unfortunately) but I will keep playing with it and report back on how it goes.

Controls

As I’ve mentioned before, I’m working on a new control system for Knights.

Right now, I have set up a system where you have the four movement keys, plus three separate “action” keys: one for melee combat, one for ranged combat (daggers, thrown axes, or crossbows), and one for interacting with the dungeon (which means opening or closing doors, picking up items, and the like). There is also a separate key to open the menu, which is still needed for the lesser-used actions (like setting chest traps or picking locks).

This works reasonably well, but I found it a bit confusing, especially when combined with the “approach” feature of Knights (i.e., where you have to approach a chest or door, by holding down the movement key, before you can open it).

So, I tried removing the approach feature completely. For example, to pick up an item from a chest, you now just face towards the chest, and press the interact button; you don’t have to “approach” the chest first. Similarly for opening doors. This does seem to have improved things, and is also probably simpler to explain to new players. It does lead to one or two quirks (like picking up an object in front of a door: if you’re facing the door, you can’t pick up the object, because pressing “interact” will open the door instead); but on balance, I think the advantages outweigh the disadvantages.

However, even with that change, I am still finding the new controls a bit confusing. Sometimes I press “interact” when I meant to press “attack”, or vice versa. No doubt this is just because I’m not used to it, but it’s still a bit annoying.

My brother has suggested a World of Warcraft style “action bar”. In other words, we would use WASD for movement, and then have little icons that you click on to perform actions (like attacking, opening doors, and so on). We would also allow players to map keyboard shortcuts to the actions if they wish.

I’m going to try to this out and see how it feels. If it works then it could be quite a nice system, because it means new players can use a friendly mouse-based interface, while experienced players can still use keyboard controls if they wish. It also means we can get rid of that irritating 4-way menu once and for all 🙂

Controls are an important thing to get right, so I’m going to keep experimenting until I get something that feels right. I don’t know how much more time that is going to take; but I’ll try to keep people informed via this blog.

Lua Scripting

I’ve been busy adding Lua scripting to Knights. This has involved quite a few changes to the code (and plenty of debugging!) but I think it’s been worth it. Most of the in-game scripts (such as switch effects, gnome book puzzles etc) are now using Lua instead of my old text file based configuration system. Although the new Lua scripts don’t really let you do anything new yet (they basically replicate what the old system could do), the general framework is now in place; all that remains now is to add a few new functions and things that can be called from the Lua side. This should allow plenty of possibilities for mods.

The next thing I need to do is to write some documentation of how the Lua scripting works. I might use the Trac “wiki” section for this (as it’s not being used for anything else currently and it will be easy for me to update it as development continues).

After that I want to start work on the new control system which I promised a while ago. I have planned out how I am going to do this, it is just a case of doing the work now 🙂

Hopefully, I should be able to get a release out with this stuff in it by the end of the year.

Forum is back online

The forum is now back online.

The problem was that I was getting some strange spam-like emails being sent to me from the forum. I never found out why this was happening – maybe it was someone trying to hack into the forum, maybe it was just a bug in SMF. But I have upgraded to the latest SMF version (2.0 RC4) and this seems to have solved the problem, for now at least.

I also took the opportunity to delete the spam user accounts (that have been building up again!) and also tweak the forum settings a bit. I have disabled the ability for guests to view user profiles. This means that if spammers sign up fake accounts and then put links in the profiles, then no-one (apart from regular forum users) will be able to see those links. It probably won’t stop the spammers, but at least they won’t be getting any benefit from spamming my forum any more.

Logging

First some good news: after a break of about 2 or 3 months, I have started working on Knights again, as of today 🙂

The first thing I wanted to do was have a look through the backlog of bug reports. Unfortunately there are a couple of bugs I can’t reproduce at my end, such as #74. This is a bit of a problem since you can’t really debug something if you can’t reproduce it. So what I’ve decided to do is start logging all Knights games played on the server: this means saving all the network packets received, with timestamps, as well as the random number seed used for the game. Then, if I set up a test server on my machine (with the same random number seed) and replay all the packets to it, the game should (in theory) play out exactly as it did on the real server — and bingo, we have a reproducible test case.

So the first thing I will do is set up some logging; hopefully this should be done by next weekend.

After that, I want to have a look at controls – lots of people on moddb complained about the “strange” control system, so we need to do something about that. Also, I want to continue the work to add Lua scripting to the game (which is quite a big task). So there is lots to keep me busy for the moment 🙂

Knights 015 Released

Knights version 015 has been released. Get it from http://www.knightsgame.org.uk/download.html

New features include:

  • Potion and scroll respawning (called “Stuff respawning” on the quest selection screen). This makes potions and scrolls respawn a certain time after they are used. This should be useful for multiplayer games where the potions and scrolls run out very quickly if there are a lot of knights. (Originally suggested by dukey, back when we had the first multiplayer games of Knights…)
  • Team Duel to the Death mode. This works like a normal duel to the death, except that knights divide into teams (based on their house colours) and the team that kills all the other team’s knights is the winner.
  • Single player games can be played on the server. Other players can observe, so this is useful if one player wants to show other players how to play the game. (Requested by Moo.)
  • A speech bubble icon now appears above a knight’s head while they are typing a chat message. (Requested by K9.)

There are also a few bug fixes (see download page for full details). I have also added initial support for Lua scripting but you can’t do very much with this yet — I’m really just laying the foundations for future releases at the moment.

For the next version (016) I want to make some improvements to the control system (this has been discussed here a few times, and also some people on moddb mentioned it), and also continue working on the Lua scripting.