Posts on Apr 2012

Fixes Galore

We’re doing a fix cycle at the moment because we’re unhappy with the state of things bug-wise. There are some more drastic measures that we might take, but we’re not certain which way some of those will go. Either way I’ll likely just be fixing bugs this week and next.

The list of stuff that’s already been fixed/tweaked this cycle:

  • Removed cc_valign 0 from config.gm to prevent it being reset every time the game updates.
  • Added shownames behaviour for spectators
  • Changed u_shownames to use the smaller labels with hearts (more consistent and easier on the eyes)
  • Fixed #304, unit counters for spectators
  • Fixed #151, full name not showing on linux/mac when someone changes teams
  • Fixed #237, username is not cased correctly after successful authentication (still some work to do here)
  • Fixed #148 and #1 “Connect To” patchy functionality (now works cross platform and reliably)
  • Dropped the materials counter display (was confusing far too many people, who thought it prevented you from using the items etc before the counter drained in and other strange things)
  • Fixed #254 looks like red builder is going to build blue tiles (you wouldn’t believe how tricky it was to find a proper fix for this…)
  • Fixed #253 breaking a shop on background tiles doesn’t give materials
  • Fixed #266 Setting high ban duration results in 0 second ban.
     – large bans and negative time bans are now permbans (/ban Henry -1 to ban henry forever)
  • /listbans now gives expiry time for ban (hard to read at the moment, might need to make a more human-readable format…)
  • Made bans case insensitive: ban Rayne, ban rAyNe and ban rAYNE now all ban the same user and can be unbanned reliably (using any casing).
  • Refactored ban system to ease maintenance

We’ll be working on more fixes tonight and tomorrow, while we continue to do a bunch of design work and get the automated build system working.

A heap of the fixes for the UI, Auth and connect to stuff is FliesLikeABrick’s work, good to have him on board to ease the load as we go through the (large) backlog of issues.

The latter is going to save us an incredible amount of time and will make getting patches to both the public and the closed testing group about a hundred times easier and faster. This means more testing, quicker patches and less “file got patched to the wrong directory because it was 2AM when the build went public and some mistake was made”.

MM is currently at a games conference in Berlin, he’ll likely write a post about it tonight or tomorrow.

In short, progress all ‘round!

Discussion thread here

Geti

Build 370 Released!

Last week was a monster in terms of productivity. We had this ready Friday but then I was too tired to release and fell asleep. During the weekend Geti was doing the Ludum Dare and I strained my neck for some crazy reason and couldn’t move (I’d like to say it was in a swordfight but it’s probably related to sitting in front of a monitor :D).

So we have a massive list of fixes and changes. Some are zombie related but we are perfectionists and still won’t release this officially. We don’t want to just make multiplayer working but add some elements that we feel are missing from Zombie Fortress.

We now have Spectator mode [BACKSPACE].
 

Resource counter works a bit differently. It takes a few mins to get used to but then you’ll see that it is awesome. The way it works now is it says how much you’ve added recently and only updates the resource count after a while.  So if you’ve just mined for 50 stone it will say 0 +50 stone in green. After a while the green +50 will merge with the white 0 and say 50. It’s pretty cool, check it out.

Geti moved nearly all player class variables into the Rules files. Server admins prepare for some fun! Be sure to make a copy of your Rules files instead of modifying the existing ones because they get overwritten in autoupdates.

Networking should be improved very much. I optimized the server code to make it less CPU intense, but this will result in more bandwidth usage unfortunately. Admins, report back if you prefer it this way.

Other than I have started a whole new scriptable components system that was mentioned in previous posts and FliesLikeABrick will be working full-time with us for a while. So you can count him as a 3rd coder now.

Changes 360-370:

The numbers in the changelog are bug tracker report numbers.

– fixed builders pick up catapult stone in mid air (#250)

– add per-gamemode modding of archer variables

– fixed crash where lightmap was null

– fixed some hud readout bugs (thick stone)

– fixed some issues with #164’s fix and tree chopping

– fixed trees heal when reaching the bottom of the trunk (#164)

– fixed crash in menu when no player exists

– backspace menu when not playing game is the same as when playing game

– Added previous bitstream compatibility through  *force_bool methods

– fixed zombie mode order crash

– fixed no spawn as zombie when changed team to red

– fixed disconnecting from server when launched server browser

– singleplayer gamemodes get paused when in ESC menu

– fixed crash after launching zombie mode after deathmatch mode

– zombie/migrant bodies collide in air with players and hurt them

– added sound when zombies fall or hit walls

– added random pitch variation for most sounds

– added resource drop amount on hud

– fixed migrant-player colliding

– fixed big particles not spawned when in solid block

– tweaked zombie network syncing

– added spectator mode

– fixed bot archers not shooting arrows

– fixed wraith explosion on net

– fixed wall hugging on ladder

– added “killed by zombie message”

– builder only stays close to buddy and defends himself from zombies

– synced migrant bubbles on net

– creative/Sandbox servers are also add to beginner servers now

– fixed disconnecting player message

– fixed crash when closed ingame browser at a wrong time

– fixed zoom out from editor affecting other games (#246)

– fixed arrows going through walls (#125)

– workshop blocks cost 2 wood now

– all CTF workshops cost 50 wood (no stone required) (+30 gold siege workshop)

– migrants now say hello on network

– backwall on spikes gives materials resolved (#208)

– moved body throw offset a bit to avoid self collision

– archer can’t hurt others when stomping

– fixed shield adding velocity on ground

– made inventory counters 50x more awesome (and they read the correct numbers for more cases too)

– fixed coins from frozen players (#16)

– dropped amount of coins from shooting catas (IRC request)

– fixed custom heads for non-admins

– made guard hat only apply to builder head and class default head

– added custom head check in player (checks if name matches a custom head player or if is guard or admin)

– added class modding to CTF rules

– bound runner variables to rules

– added falldamage vars to rules config (-> balancing ahoy)

– fixed crash in starter caused by autoupdate not initialised

– nerfed sheild push to help with desync and wall damage

– fixed wall sliding + fixed notch jumping (related)

– added server_setup_info.txt and readme.txt

– modified readme.txt and server_setup_info.txt for nicer formatting

– added stats format info to server_setup_info.txt

– added /listbans function to list all currently active bans

– fixed bug in bans (time was in seconds not minutes)

– made bans more user friendly with their output

– stats updated to more easily parsable format

– fixed some stats/counting bugs (#191, #225)

– fixed typo in tutorial (#197)

– fixed typo in builder menu (#264)

– added curl license to distribution (#295)

– fixed u_shownames not showing enemy names/health (#142)

– fixed fall screaming at wrong time

Post-Birthday Developments

So, after the smoke cleared and we cleaned up the cake crumbs, we got straight back into development.

(Note that a build with these changes hasn’t been released yet)

Some things that have been fixed:

  • Fixed bot archers not shooting arrows in multiplayer
  • Fixed wraith explosion over network
  • Fixed zombie position desync
  • Fixed particles not spawning when inside a solid block (important for kegs/wraiths)
  • Wall hugging doesn’t occur on ladder
  • Builder AI doesn’t rambo quite as hard (still needs a lot of work…)
  • Fixed build tutorial typo
  • Fixed some HUD readout bugs
  • Fixed trees heal when they get to the base (no more double-harvesting arrows)
  • Fixed crash in menu when no player exists
  • Fixed arrows going through walls
  • Fixed body throwing sometimes killing the thrower
  • Fixed archer stomping people (sorry archers)
  • Fixed shield adding velocity on ground
  • Fixed coins from frozen players
  • Fixed (I think) custom heads for non-guard non-admins (basically just pawel)
  • Reduced amount of coins from shooting catas

Some things that have been added:

  • Spectator mode (still has some issues and needs the underlying mechanic reworked to not affect gameplay balance)
  • Synced Messages + Bubbles on net (Migrant says hello and frowns when getting eaten by zombies)
  • Workshops now cost 2 wood per tile in CTF and making them into actual shops costs 50 wood (no stone required) to leave more building mats.
  • Lots of game variables bound to rules file

The last one is fairly important for server owners and people interested in game balance – you can change how long attacks take, how much stun they give, how long building takes, the thresholds for fall damage… lots of things. Be sure to bug me about things that are missing (damage from attacks and arrow speed among them) – I’m considering opening up what tiles each class can attack in the class config file as well (so people can try games with knights that cant break anything or knights that can break everything, or even archers breaking through solid stone).

There’s some other stuff going on behind the scenes but zombies mode is becoming more stable over the internet – we’ve still got to add migrants as a respawn option (because its a massive pain as it stands to die and be stuck spectating for 15 mins as the last 2 players cling to life).

Our server guys, Joe and Ryan are still working on getting the build server up which would allow us to push changes to testers as soon as they’re complete (no tiresome multiple building and uploading, hurrah!) – we’re hoping it’ll be done next week. As it stands testing is still relatively up to date (testers, get your asses ingame) and bug hunting has been refined to use mantis properly (thanks to Ryan again for getting that in gear and overseeing it).

In short, its been a pretty productive week. Hopefully we can iron out the major kinks and release this build tonight (no promises though)

Discussion here

Geti

Happy Birthday King Arthur’s Gold!

Exactly one year ago on a sunny April afternoon I took what I call the Crimson Engine. Something that I have been developing for the last 4 years. I scratched the game code I have been mainly working on (Link-Dead) and a prototype I made in 3 days and officially started work on something that I called King Arthur’s Gold.

It was a direct twist on the name King Arthur’s World, a SNES 2D RTS game. I found that game one day when I typed “2D Side-Scrolling RTS” in Google. I can admit that I never actually played the game. I only saw videos and wondered about its design. Just watching, I knew it was brilliant.

The idea for “KAG” was really simple – design the game as an RTS but make a Player vs Player game out of it (because these are my roots). KAW had excellent design of classes and a map that needs cooperation to conquer. I wanted to have that but in a massive multiplayer game where people play as a single unit with dozens of other players. Knights flood the terrain and conquer by force, archers darken the sky with thousands of arrows and builders see the big picture – strategize like in an RTS game, but have to do the work instead of point-click. That’s King Arthur’s Gold – one year later. Personally my current favorite game ever.

Happy Birthday and Thank You everybody that makes this possible.

MM

Developments of the last week

This week we covered a bunch of bugfixes really, and some movement towards a completely scriptable underlying entity system for the full version. I think I’ve finally convinced MM that forking Classic and Full is a good idea, which means classic will keep the current codebase and mechanics intact and the full version will have a different underlying system.

The bonus of this is that we wont have to make considerations for classic every time we want to write a new feature, which will speed up development a whole lot.

In addition, if we get the systems we’re hoping to in place, every single object in the full version will be modifiable serverside, down to the logic controlling animation and physics. Creating new objects will be trivial. This means that KAG will be usable as a modding platform and that server owners wont be confined to the cardcoded logic of the current system.

Making new entities will be very much like programming, as we’re currently implementing AngelScript, which has C++ syntax and strongly typed objects, but we believe this is better for us as the game is coded in C++, and better for you because it’ll give you a crazy amount of control over ingame objects (you could potentially rewrite soldat in the scripting language – don’t tell MM 😉

Everything is component based at this point, which we think is a very nice way to structure things.

Its early days, but in the 2 days we’ve worked on the system its already possible to code movement and animation entirely in-script. We’re going to automate some of that (so that you dont need to keep track of timers for animation scripts and so forth) but its looking to be insanely powerful. Hopefully we’ll find a simple way of networking everything as well.

Naturally this will mean that we need some way of filtering modded servers out of the vanilla server list (if anything so that we dont get blamed for some of the less than scrupulous mods that are inevitably going to be made) , but it’ll likely just be a checkbox to swap between viewing and not viewing modified servers.

tl;dr good news for server owners, players, and aspiring developers alike.

discussion thread here

Geti

[youtube http://www.youtube.com/watch?v=vOE7Ehz3HKA?feature=oembed&w=500&h=281]

Excellent Zombie Video

This gave some excellent insight into what problems people face with the zombie mode interface and gave me many a laugh while working on other stuff. Played it exactly the way i hoped people would: with emotion and stress. Excellent work, Jeffan (? Bump me if this isn’t your username).

Geti

Build 360 Released!

Hotfixes:

– fixed shield jump not working

– fixed coins from destroying bodies

– fixed builder not being able to pickup rubble (0000235)

– fixed bodies not affecting playerpos (too much bugs)

– fixed admin/guard heads

– fixed colon typing on Mac (0000143)

Build 359 Released!

This patch is mostly there to fix in-game links to work with the new website. Haven’t seen it yet? Go ahead and enjoy. This is mostly the work of jrgp and SirSalami, credits go to them.

But we have fixed a lot of bugs too, some of them critical.
If you’re wondering what the numbers are next to fixes, those are the bug tracker numbers cause we are working tightly with that now. 

Changes 354-359:

– fixed linux and mac “Connect to…” not working (0000001)

– fixed player lag issue

– fixed loud sound glitch on Mac and Linux

– fixed permastun when fallen on somebody

– new body pickup icon

– added slight bump for players colliding in air to avoid dancing on head

– fixed building castle wall over trap bridge giving coins (0000198)

– added “report bugs” links to bug tracker in game launcher

– fixed manual link in game launcher

– fixed destroyed bridge turning to blue team and giving coin (0000229)

– fixed large ban number crash (0000227)

– updated all sprites to be arranged horizontally

– added a bounce on wall damage to prevent instant kill

– disabled gliding while bomb jumping/catapulting to balance horizontal power

– added a frame to knights for bomb jumping/catapulting

– made bomb knockback on standing targets smaller

– fixed flying into walls kills you (0000220)

– too high ping ban time lowered to 5 mins

– move n_Graph to the left

– if player not rcon and does rcon command it gets sent to guards as [RCON (name)] (trying to login…)

– fixed gaining stone on repairing last castle block destruction block

– fixed archer can pick up rubble rocks as arrows

– fixed guard cannot be kicked by rcon

– fixed shield stomp completely destroying


Discuss on forums


Changes large and small.

We’ve decided to be even more open about development for the next month or so to see how that goes. This basically means more developer rants on here.

We’ve fixed most of the issues introduced last build, and I will be working on the remaining few over the next few days as Michal sorts out Multiplayer Zombies. Most of them were caused by a missing line of code somewhere (such as the instakill on hitting a wall rather than damage on hitting a wall being caused by the damage not actually bouncing you off the wall).

We’re working with Ryan and Joe (our excellent tech guys) on getting an automated build process up, which would allow us to get a test build to testers every single time we make a change without actually having to do anything – same would apply for the public version. This will basically mean a more thoroughly tested KAG and less of these small yet very gameplay-detrimental bugs, as well as less change of something going wrong with patching as the files wont need to be manually published to the correct place.

We’ve been discussing what’ll need to be done for the War and Overworld modes of play in KAG. We’re designing them in tandem because the mode of play will be quite similar – War will just be on a single map with less open-ended play. The content in both of these modes will more or less be the final featureset for KAG – everything needs to fit together perfectly. Server owners will be able to mix and match this content to create new (and old) game-modes like CTF, INF, KOTH, Bomb Ball, and whatever else takes their fancy, but it all needs to work together as well.

The Classes are the most important part of KAG. In Classic, we have 3 classes with fairly general roles – the builder, the archer and the knight. We’re going to specialise classes a little more in the full version. Archers and Knights will likely keep most of their functionality, but the builder doesn’t quite fit into a game of progression in its current state.

As you can see above, there are three general areas of progression – Ranged/Support Military, Economy, and Melee military. We’ve designed these with strong interdependence in mind. The barbarian relies on knights to cover him from archer fire, and needs sappers or builders to help him break into the enemy fort to wreak havok. The knight requires covering fire from archers so that he can get past shielded enemies. The lancer requires a horse to be able to attack, and builders to make that horse a path into battle. Builders require miners and woodcutters to supply them with materials, and those miners and woodcutters require military protection from the hazards that we’re going to put in their way.

Something that I’m not really happy with in KAG at the moment is the independence of the military classes. They don’tneeda builder on the frontlines, so in public games you never see a builder on the frontlines. Knights can get themselves out of holes, archers can get themselves arrows. The builder is a helping hand but isn’t required. We’re likely to change that with the full version content.

We’re aware that mining and cutting wood isn’t currently fun at all, so you might be wondering why on earth the military progressions start with gatherer classes. Firstly, this is to make sure that military units contribute to a teams economy – they dont just run off into battle, cark it, respawn and run off into battle again. Secondly, we’re hoping to make the mining and woodcutting (especially mining) into PvE “minigames”.

Mines will be abstract entities – there might be some stone on the game maps but mostly there’ll be doors into separate mining maps, that will hopefully be separated into levels. As a mine is dug deeper and deeper, the miners will require more support from their team as they come across underground dungeons, cave animals and other hazards (as well as to help them out of the mine with ladders). Deeper mines will yield more treasure, however. Early in the game when the entire melee military is a mining gang, they’ll only be facing snakes and bats, but this will help to train them in melee combat and make sure that mining isn’t too much like hard work.

Woods will exist on the normal game map as trees and bushes still, but there will be woodland animals as well – they could be hunted for food (or eat the woodcutters). In order to make woodcutting more involved, we’re planning on having freshly cut wood as “logs” worth 1 wood each. You can use these to build wooden stuff, but it would hardly be worth your while. These logs could be refined into planks either at a carpentry shop or with a spinning saw – hopefully this means that we’ll see automated lumber mills (and horrible saw traps) once a team has a good wood economy going.

I’ll speak more about the progression system as we solidify it. Know that it wont be a rigid “tree” that you can only move upwards on. You wont be locked into your choices for each character.

We want to refresh the interface. Cleaner now than it used to be, it still feels cluttered and cumbersome. We think that the emoticon bubbles are the cleanest, most straightforward part of the interface at the moment, so I’ve drawn up this quick concept outlining how we think the interface should look.

The hearts and item count popup (top left) would appear if you had your cursor within a small radius of your character. The hearts would fade in and out if you got hit, and the item count would flash up when you used an item (ie shooting an arrow or throwing a bomb)

The inventory and actions popup would appear while you hold F. It allows you to drop stacks of items and coins by clicking them and dragging them out of the interface, to put items to and from your hands by clicking and dragging within the window, and selecting performable actions like the current F menu.

Interacting with objects and picking objects up would be done with E – all interactive objects within range would show their interface like the catapult above. Clicking the icons would perform the action specified. Same goes for workshops. Anything that could be picked up would also have a bubble around it while E was held, to be picked up by clicking. It’d go to your backpack if possible and to your hands otherwise.

Here’s a very zoomed-in concept of how it might look overlayed on the game

I know, I know, I missed out my blond hair in the mockup. Sue me.

In other news, the new site will be going live at kag2d.com today/tomorrow at 6AM US Eastern Time (8PM AET, 11AM GMT). There may be a few technical mishaps in the change-over so be sure to report any and all issues on the forums or IRC.

More to come!

Discussion thread here

Geti

Linux Fix

For those having trouble updating to the latest build, try redownloading the KAG executable from here: http://kag2d.com/update/kag_x/KAG

Place it into your KAG directory and run it.
Sorry for the delay getting this link up

Geti

Social Media

Stay up-to-date with our latest news - make sure to follow us on Social Media!