Skills & Progression

I get asked a lot about the skills in Wayward. Some people are not fans of the skill system and would much rather have more traditional “class” systems in place. The skill system in Wayward is very much, a way to not need classes at all. Rather than forcing players into a role with limitations and boundaries, the player is only limited by how they want to play – in fact, all methods of play are available from the start without artificial class restrictions. It furthers the idea of open-ended gameplay that Wayward is all about. That being said, there is a few issues when dealing with this type of system.

Current Issues:

  1. Some skills lack depth and effectiveness.
  2. Some skills are simply for crafting success rates.
  3. Some skills don’t effect gameplay.

These issues can be fixed, and will be, in the upcoming versions. The next portion of the skill debate is the progression of them. Currently, three systems are in place with Wayward:

  1. The higher your skill is, the less chance you have to raise it.
  2. The higher your skill is, the less it gains at a time.
  3. The higher all your skills are, the slower it is to keep gaining new skills.

The issues that plague these systems are the balancing of them. Since Alpha 1.0, I have slowly been tweaking them, making it easier and easier each time. The 3rd point in the list was added a long the way to add more strategy in the progression of the skills – it makes players think twice about raising random skills at the start and makes them focus; such as what you would do in a real survival situation. That being said, these systems are very much hidden to the player; therefore, ruining my concept behind it. I think I can address these issues, in time, as well.

And yes, in the next version you will see easier skill gains once again.

Wayward Alpha 1.5 Released!

Yes, as promised, the new alpha is out for your enjoyment – released as part of the 2012 Annual Roguelike Release Party (ARRP). There was tons of changes in this version – hopefully this is the final stretches before getting a solid “beta” version out. Some things you will love in this version (without spoiling it too much):

  • Treasure hunting
  • Iron-based crafts
  • New soundtrack by Austin Dhillon
  • 40+ new items
  • Monster loot tables

Special shout-outs to Jeff, Silloe, and Jarkko for all the bug testing for this release.

Also, a very huge (and special) shout-out to Austin Dhillon who composed the complete Wayward soundtrack. Four brilliantly moody and atmospheric tracks with the right touches of modern and retro.

Play it now:
http://www.unlok.ca/wayward/ 

Although Chrome and Firefox have both stopped supporting the local sound/music playing (via Flash), you can grab the (silent) downloadable version here: http://www.unlok.ca/wayward_alpha1.5.zip

I Love Webkit Image Filters!

It’s a shame this will not be supported cross-browser sooner. This kind of thing will open up much more customization in Wayward without a lot of overhead, programming or asset creation – everything can be changed on the fly using some really neat Webkit (Chrome/Safari) CSS image filter properties. Below is an example using the fabled “Golden Sword” available in Wayward. This is all using the same graphic.

Swords

  1. Golden Sword
  2. Inferior Golden Sword
    -webkit-filter:saturate(0.8) contrast(0.8);
  3. Exceptional Golden Sword
    -webkit-filter:contrast(1.2) saturate(1.2) brightness(0.1);
  4. Iron Sword
    -webkit-filter:grayscale(1);
  5. Bronze Sword
    -webkit-filter:hue-rotate(10deg) saturate(1.2);
  6. Ultra Rare Super Awesome Ice Blade +3
    -webkit-filter:hue-rotate(160deg) saturate(2.0);

Obviously there’s a lot more possibilities here than shown above. Additional note: There is some very “hacky” ways to get cross-browser support for some of these things using just CSS involving some SVG tricks for Firefox and Microsoft filter effects for IE, but will not produce the same range of effects as Webkit’s implementation allows.

The First Ever Wayward Fanfic?

Written by blacklight

After three days of harvesting food, wood, and rock, I’ve finally gained enough supplies to venture by a makeshift boat. I push out to sea, beating back the sharks as I ran and dove in. I blacked out to find myself at another island much like the one I left. But wait… the inhabitants of this land seem much more hostile… Imps… Imps everywhere. I run to the nearest forest knowing that I can only hope to hide from the monsters in the great number that they are hunting me in.

I must quickly gather the supplies for a new boat. This savage land has no sandstone, the last ingredient I need to create my kiln. I will soon die without fresh water. These thistle seeds will keep me going for another day or two, but after that…Well, I hope it doesn’t come to that. I hit the tree with my fists again and again in a blind rage. “WHY. WON’T. YOU. DROP. BRANCHES?” I collapse in a ball sobbing and screaming my god or any being that might hear “Damn you Vaughn. DAAAMN YOUUUUU.”

A day and a night pass while I wail away at the nearby trees. The local monsters are getting bolder each night. First came the rats, and a sentient blob of slime. Too stupid to realize that a spear would make short work of them. Living nightmares come next, skin dripping from their faces. Faces that strike a chord somewhere in the recesses of my mind. I know these men must be my shipmates. I swiftly put them out of their misery with a couple of sick wet chops of my axe.

The bark of the trees of this isle is tough and thick, but flexible, I’ve tied it around my arms and legs and it protects me from these sad demons and their groans of despair. The sun is up again… The damn blistering sun is drying out my leather. A piece cracks and I clumsily destroy some materials. Luckily an inquisitive bear volunteers its hide as a replacement. My boat is complete and I’m ready to escape again. But what fresh hell awaits me on my new island? Or will I just sail endlessly for days until I’m too weak to fend off the assault of the abhorrent sea creatures?

I float in to a new island as dawn breaks. The bleeding seems to have stopped… I look for a nearby cove to take shelter in, maybe if I find some string I can sew these wounds shut. I find a dark stony corner mostly surrounded by trees. I roll out my makeshift leaf blanket hoping that some rest will make my head stop swimming. I dream of a town, my town, and my family waiting for me sitting on a chair by the fire. I can feel feet on fire. A red slime is covering them, I try to fight it off but am too weak. A terrified squeal is all I can release “No, not like this… Not like this”.

YOU ARE DEAD!

Subreddit & IRC, Why Not?

Got a couple requests to make a Subreddit, so, it’s now a thing – introducing the Wayward Subreddit. Not much there yet, but might be a cool place for some more interactive discussions.

Also new to the discussion front is the Wayward IRC channel (#wayward on freenode.net) – started by nefD. Again, not much going on there currently, but just another way to “hang out” with fans of Wayward. Don’t have an IRC client? Launch the web-based client (link will automatically go to the #wayward channel).

Want to subscribe to this blog to receive updates through RSS readers or email? We got you covered for that as well.

That’s all for now.

Wayward Alpha 1.4 Released!

It’s been a long time coming, but after some bug fixing via my team of testers and donators, I think I finally managed to squash them all. Some of the biggest things in this version is the re-introduction of caves, mouse movement, game saving, equipment qualities, past crafting log, and smarter AI. Oh ya, there’s like 40 new items! Those nasty performance issues have also been addressed. There is a huge number of other changes in this version as well, take a look at them in the changelog. I think in the future I will make the releases a bit more compact so I can push new content, much faster. Opinions?

This release also features a brand new track from Will Phillips.

Play it here:
http://www.unlok.ca/wayward/

Download the offline version (that may or may not have sound) here:
http://www.unlok.ca/wayward_alpha1.4.zip

A Better Offline Version

Recently, I have discovered an interesting project called Awesomium, a windowless browser framework based on the Chromium/WebKit engine (Chrome/Safari). This has finally lead to HTML5 game developers (a rare breed at the moment) to reach offline targets without developing their own wrapper. My offline version currently consists of supplying the raw source files and expecting the user to know to run the index.html – which just runs in their browser anyways, and due to security settings, some users don’t even experience the sound and music.

Hopefully coming up, I will have a real offline version that doesn’t run in your browser and isn’t dependent on having any browser at all. Unfortunately it’s a bit over my head still as there’s no examples out there to just run local resources in a wrapper and requires some C++/C/C# coding.

On Performance

Performance is getting to be a real issue here. I have chipped away at it each release by improving many different aspects of the code; however, the issue still lingers there – becoming more apparent the more you play Wayward. Could it be the monsters? Could it be the particles? Could it be the environmentals? All of these things do impact the performance, yes, but the performance is actually being hindered from another factor – the technologies that the game exists on itself. The slowdown (from what I have tested), is actually coming from drawing images (through HTML5’s drawImage) – all the different graphical elements on the screen: layered tiles, character, enemies, environmental, items, lighting, particles, text/item animations, etc.

Each movement we have to render a brand new screen – 13×13, 169 tiles. But not only 169 tiles, we have to loop this 13 times (since there’s 13 layers of tiles – some that overlap others). The looping surprisingly takes no time at all – the thing that takes the time is the drawImage functions being called 169 times per move. This doesn’t even include the other stuff I mentioned above like the monsters, lighting, and animations for example. I mention those three examples because these ones in particular take more resources than anything else. How could this be? Aside from HTML5’s drawImage not being the best for performance in it’s current state, if you want to do other more complex things like opacity (lighting/animations) or image mirroring (monsters), this can reduce performance up to 50% depending on the browser.

To put this in to perspective,

  • Want to draw a colored square 1000 times? Okay, cool, that will take a measly 6 milliseconds.
  • Want to draw a simple image 1000 times? Okay, well, that will cost you 19 milliseconds.
  • Oh you’re the fancy type? You want to draw an image with opacity 1000 times? Well, now we’re talking 40 milliseconds.

I suspect something else weird is going on here too aside from canvas specific performance. The performance degrades over time and garbage collection doesn’t seem to be firing in the correct instances. The CPU keeps going up and up. I understand some of these issues, and I can try to work on some of these issues about by buffering and pre-rendering certain things; however, pre-rendering isn’t the solution as different browsers have opposite results. Not only that, but pre-rendering will actually hurt me in a world with manipulative terrain. Right now I just have to re-draw the screen when I dig some dirt. Imagine regenerating that pre-rendering of an even larger portion.

So i’m kind of stuck here. If any technical HTML5 programming types happen to stumble upon this, I would love to hear your thoughts.