We just released a new game, Elf Jumper! This is a prototype created for a recent gamejam.
I think I may have introduced a new “feature” into the game’s rendering engine…
Accidentally introduced a new “feature” into the engine.
Over the last month we’ve had fun doing the livestream. We made new friends and everyone had a great time during this month-long experiment.
After a month of livestreaming, we’ve discovered that we can’t maintain the same level of production that we could before.
So we are no longer able to continue the game development livestream. However, we are looking at other ways to involve the community.
Development on Volund will continue. We will also be releasing daily development logs as usual.
Thank you for being a part of our community!
Well, the good news is that this works!
I finally managed to fix pulling across map borders. You still aren’t moving your target… But at least you are not longer getting stuck.
I still had a host of small bugs to fix today, this being one of them:
Fortunately, I managed to get most of the bugs fixed. The last remaining glitch is causing you to be unable to enter “pulling mode”… But it’s so difficult to replicate that I can safely leave it alone for right now.
I also redesigned part of the movement system.
Previously, the UI was using polling to issue move and change direction commands to the logic layer. This code really did not need to be running at 60Hz.
I redesigned the code to issue those two commands based on different events. For example, the move command will now be issued when the “I want to move” event is raised, among others.
The Pulling Mechanic
So, today I started work on the “pulling” mechanic. This mechanic allows you to pull other characters around the map. Such a feature would be useful in combat, and would also aid in forcing characters out of choke points.
I decided to get it working in a simple situation first: Neither the target nor the grabber is moving. I expected this to take two hours, tops… I am currently well over 5 hours into this task. So much for simple!
I keep coming back to this, but one of the big reasons why adding new mechanics takes so long is the state of the code base. But, I am gradually redesigning it.
I don’t have much more to say on the subject. So, I’ll leave you with a sampling of the sort of bugs I had to fix today:
Today started off with a relatively easy task: Add in a “grabbing” sprite for when a character grabs on to another.
I started off with getting things setup to add the sprite to the character’s spritesheet. This went well, however I discovered something surprising: It was already there! Wishing I had noticed this sooner, I quickly moved on to adding in the simple logic for triggering the new sprite.
I managed to squash three bugs today. Two of these bugs are currently present in v0.3.3.
- When being grabbed by two other characters on opposite sides, it was impossible to escape.
- Characters were jittering back and forth when attempting to move into a blocked tile on a northern map.
- The character’s sprite wasn’t being set properly after grabbing another character. This bug was only present in development builds.
Badly Needed Refactoring
I spent the rest of the day refactoring/redesigning the server’s movement code. A majority of this work involved moving methods out of the VolundServer god object and into separate classes.
The code was separated based on whether it handled synchronization or game logic. Currently I’m just throwing synchronization-related code into the PacketHandler class. Game logic code winds up in the GameLogic class, which is at least a bit better.
Captain Argentina and Pema99 have mapped out the world of Volund! WARNING: These maps contain spoilers!
Later in the evening, Red Squirrel returned to his house to find… A gigantic “R” spelled out in characters! Who could be behind this?
Version 0.3.0 of Volund Prototype #1 was released earlier this morning. You can find out more here: http://www.ifthensoftware.net/volund-p1-0-3-0-released/
Due to popular request, “name” tags have been added at the last minute. The name is simply an incrementing number, but it allows you to identify each other while playing.
Fanart by SurvivorTuga:
The Caboose has been Found
I finally fixed the bug that was causing the third character in a dragging train to disappear! Apparently, the create character packets were being sent before all of the character’s state was set. This was causing the character to appear outside of your screen.
AoD’s Fan Comics
AoD, a regular on the livestream, has created several comics related to the game and the various bugs that we’ve been trying to fix. Enjoy!
Fanart by AoD:
Fanart by AoD:
Fanart by AoD:
These next two comics need some background information. So, I was in the middle of adding the name tag feature mentioned earlier. While doing this, things got a little… Uhhh… Crowded. Here is a screenshot I took during the chaos:
And here are AoD’s comics related to this incident:
Fanart by AoD:
While testing the nametag feature, it was noticed that the spiders also had the “shouting” name tags. This gave both myself and the livestream viewers a rather creepy mental image…
Fanart by AoD:
Territory lines are being drawn up. Armies are forming. The prototype lands of Volund are barely under control!
The two main factions vying for control are Survivor and RedSquirrel.
Survivor has claimed this land. He even seems to have spiders guarding it! How far does his control extend?
RedSquirrel claims the rock enclosed space south of the spawn point. (note: unfortunately, the image cannot be embedded at this time, sorry!)
The propaganda machines are running, and there is already a poster floating around in Survivor’s favor!
Fanart by SurvivorTuga:
A fight broke out in RedSquirrel’s house. Our camera crew was on the scene, but due to an unfortunate equipment malfunction the video is being withheld. Investigations are ongoing as to whether or not Survivor was behind this.
Play Volund p22.214.171.124
Version 0.3.0 of the first pre-production prototype for Volund has been released! You can try it out here: http://www.ifthensoftware.net/volund/
- You can grab another character by facing them and pressing space.
- When you grab another character, you are dragged behind them when they try to move directly away.
- Characters that are being grabbed run away at half their normal speed.
- Fixed a server crash from version p126.96.36.199.
- Sometimes when being dragged across a map border, your client will crash/freeze.
- If there are three characters grabbing in a row, and they are all dragged across a map border in either the north or south direction, the character in the back will vanish.
If you have any further information on these bugs, or if you have a new bug to report, please post it on the official bug reports forum located here: http://www.ifthensoftware.net/forums/forum/bug-reports/
It was a dark and stormy night…
No, not really. Although the morning certainly started off cold!
Bugs, Bugs, and um… Bugs
Today was full of bug fixing, which I expected going into it. The day started off with implementing the final part of the “grabber dragged along” mechanic: Slowing the speed of the target’s movement.
Things were going quite well, until this happened:
I spent most of the morning fixing this fun little bug, and part of my lunch break too! The problem wound up being related to storing the grabbing direction and the movement direction as two separate states.
Storing them separately wasn’t the problem, necessarily. However, the code that handles dragging the grabber behind his target was using the wrong one!
To recreate the problem, you had to first grab another character. Let’s say that you grab them while facing north, like in the animation above. You then press the down arrow key to “move” south. Because you are grabbing another character, you don’t move. But! Your character’s movement direction is still updated. When the character you grabbed tries to move, you’ll be “dragged” in the direction you are “facing”… South!
The Internet Destroys Everything
The latter half of the day consisted of lag testing. This involved deploying to the staging site, and then seeing how badly latency would affect the new grabbing mechanics.
Sadly, it was pretty bad. One bug which I spent four hours solving was allowing characters to run right by grabbers. If there was enough lag, you could run right by another character who was trying to grab you.
This was being caused by some code in the server which would correctly grab the character, but then immediately cancel the grab! I added some additional checks, and the glitch seems to have been resolved.
The last bug I ran into, and the one which I didn’t manage to fix, is demonstrated here:
If you have three characters, with two of them grabbing two others in a row, the last one in the chain will disappear when switching maps! I suspect the “caboose” is being teleported into the map’s border, but I have yet to prove that theory.