Rounding Out Item Stacking

It’s been awhile since I’ve posted on the Developer Blog and I apologize for that. There are tons of little reasons but it mostly boils down to the fact that the majority of work lately has been “behind the scenes” so to speak, and not easily demonstrated. I’ve recently been rounding out tons of features, the latest being item stacking, and had a great opportunity to make some animations to show you. Here is a look at the more feature complete Item Stacking system.

stacking_on_mapThis GIF demonstrates one of my personal favorite aspects of item stacking, the ability to stack similar items directly on the map. If after slaughtering a horde of enemies you find yourself standing in the middle of some remains, you can save some time and drag similar items together instead of dragging them one-by-one into your backpack. Items can similarly be combined the same way in both a backpack and the bank. Down the road I’d like to have the artwork change as the stack count gets higher, but it won’t be anytime soon.

some_dont_stack_and_separate_stacksIn this GIF you can see that not all items can be stacked. Heavy and unique items are collected one at a time. Stacking is currently used for usable items like food, trade skill resources, and currencies. Demonstrated by the Blue Bat’s Wings, you can also have multiple stacks of the same items, they aren’t all forced into the same pile. If you pick up an item by dragging it from the map directly into your backpack it will be placed directly where you drop it. If you pick up an item by dragging it onto your character it will either be added to the first stack of that item, or if it’s the first one you have, it will go to a random position in the bag.

With these features done, I’m focusing on the next big feature: Item Weight. By adding weight restrictions to both backpacks and the bank, players will have to frequently return to town and either sell or store items. Up until now there was little motivation to return to civilization and players tended to spend nearly all of their playtime out and about. Next up is, another long overdue, Video Update demonstrating the weight system. I’ll be sure to post on the various social sites when it’s ready.

Multiple NPC Types

The latest major feature for Noble’s Land is the NPC system. NPCs act much like creatures. They can wander around, they have stats and item drops, they can be targeted, they can be attacked, and luckily for them they can fight back. Most importantly, there are multiple NPC types, each with it’s own unique uses.

npcs

Their is two NPC types in-game and a few more which I will be adding next. The NPC types “Banker” and “Guard” are the first two I’ve added. When a player Right Clicks a Banker, and their character is within range, their bank will appear. Banks act just like backpacks, except anything inside your bank won’t drop when you die. Now that players can leave the training island, Quarantine Isle, it’s important to save anything you wouldn’t want to lose inside the bank. The other NPC type, Guards, are around to keep the peace. Currently, guards will attack any creatures that make their way into the city. When the criminal system is added, guards will also attack criminal players.

All NPC types have the ability to drop items when killed, just like creatures. They wont drop useful items like gold, meat, or equipment. Instead, they might have a very rare chance of dropping some story related items. These items could be notes from loved ones at home, diary entries written by the NPC themselves, or MEMOS from their employers. These drops are used to add some depth to NPCs. If you get into a scuffle in town and find yourself attacking and killing a guard, you might find a note that might make you feel guilty for what you’ve done. On the other hand, you might find some incriminating information that might help validate your decision to murder them.

The next few Developer Blog posts will focus on the remaining NPC types and what they are used for. The private test for donators is coming up shortly, if you’d like to participate I’d appreciate the support. The open test for everyone is on track for the end of this month.

Streaming World Development

I have needed to create MANY World Chunks for along time, I’m going to knock it out and stream as I do it. If your interested in watching/discussing Noble’s Land as it’s being made, check out http://www.twitch.tv/besomegames.

Item Identification and Stacking

After the Alpha 0.5 test I took a few days to fix the bugs players reported before I started on new features. I finished fixing the last reported bug, the invisible creature but, yesterday so tonight I started on the most requested features first. The two features I added tonight are the ability to identify items and the ability to stack items of the same type.

item_stack_and_id

You can see from the picture above that descriptions of the items include some statistic information about that item, as well as different descriptions for singular and plural stacks. To identify an item you hold the LCtrl and click an item on the map, in your backpack, or an equipped item. When dragging an item onto your avatar to add it to your backpack, if you are already holding that item it will start stacking. So far only food has the ability to stack but eventually another item type, Collectables, will be able to stack also. Items like weapons, equipment, backpacks, and mounts won’t stack.

When I first started on these features I created a mock up of what it would look like using Tool tip boxes that appear when an item is hovered. To me, it didn’t fit the retro style and seemed really out of place.  As systems become more complex and certain item types hold more values it might make sense to try something a bit different. I think what I’ll end up doing is having the option of “full” or “Simple” types of displaying identified information. “Full” will list it as you see in the picture where “Simple” would read “Item Name: Value”. I can see some people preferring quicker to read descriptions as opposed to the sentence like way they do now.

There are a few loose ends to add to make these feature complete. I need to add a way to split stacks both in your backpack and on the map, as well as stacking items on the map itself. I’ll tackle these tomorrow then move onto the next new feature, NPCs.

Relaunch of Alpha 0.5

Last Friday saw the launch, and early end, to the Alpha 0.5 test. There were four major issues that brought the test to a grinding halt. I’m going tell you what each one was, what went wrong, and how I’m going to fix it before the relaunch. At the end of the post, I’ll tell you when I’m going to do the relaunch.

Problem:
Launcher caching downloaded files
What It Is:
A launcher is pretty standard business for a constantly updating game, at least if your not on Steam. I wrote the Noble’s Land Launcher to serve two purposes, to update files to their latest versions and to configure settings before launching the program.
What Went Wrong:
It seems the C# widget “WebClient” caches download files by default. It not only caches files, but it shares a cache with Internet Explorer. This is probably the worst thing that can happen besides not running at all.
How To Fix It:
Fortunately, this is the simplest of the problems to fix. There are built in settings to disable the cache, problem solved.

 

Problem:
Rental Server Underpowered
What It Is:
The goal of this test was to leave Noble’s Land online 24/7 going forward. I would work on the game as normal using my home PC to host the server while putting updates on the live server on a regular bases. To do this, I needed an off site server. Considering my $0.00 budget my only option was to use Amazon Web Services free tier, a T1.Micro server.
What Went Wrong:
Well, a T1.Micro server is not good for game hosting. While researching this the specs sounded pretty good. In practice it didn’t quite live up to my expectations. After installing MySQL alone the server was already using 80% of its memory and ~75% of its single core CPU. Even with just one player there was massive lag, not due to low bandwidth but the server running at a constant 100%.
How To Fix It:
Well, considering my budget hasn’t changed, I’m going to have to continue doing shorter tests hosted from my home PC. Having an always-on server is going to have to wait until Noble’s Land starts generating income. Fortunately my home PC has about 5MB upload speed and the server takes up ~15% CPU power it should be good enough for the short term, just kind of sucks it wont be online full time.

 

Problem:
Unrelaible Home Internet
What It Is:
Self Explanatory
What Went Wrong:
Over the last few weeks I have had multiple appointments with our IPS. None of which was useful, the problems have persisted for way too long. Everyday, during the night, my moden would completely reboot itself. Being that it only happens after business hours the IPS claims there is no issue. Apparently on their end they aren’t seeing any downtime and I was unable to recreate the problem while they were here. After finding out the rental server was underpowered I switched to my home PC for hosting. After only about 15 minutes the damn thing goes down non stop for a few hours, essentially putting the final nail in the coffin.
How To Fix It:
Well, I just had enough of their bullshit. I threw a fit until they came and ran all new cords from the pole to the house. After that, I had them give us a new modem. Since then it’s been smooth sailing.

 

Problem:
“Known” System Flag Bug
What It Is:
The “Known” system is used cut down on iterations through full lists of connected players, objects, and NPCs. When a character moves, the server iterates through those lists and adds pointers to on-screen entities to lists on the character itself. When performing functions like targeting users, updating movements, or basically any interactions with them, it uses these shorter lists. This is to help cut down on processing.
What Went Wrong:
It’s been so long since Alpha 0.4 that most of whats there has been played solo. When a creature walks it sets a flag on itself to note the change. When updating the character if it moved it alerts its known on screen characters of its new position. Well, I accidentally was resetting the flag after checking the first player instead of after the whole list. What this meant is that when a character saw an enemy for the first time it would display it on screen, but after that only the first character to see that enemy would get updates. This resembled severe lag, as players were getting hit by invisible creatures.
How To Fix It:
I’ll go ahead and move the call to reset the flag until after the iteration, as opposed to after the first call. Again, another smaller issue to fix.

I’ve already made good progress on solving these issues. I’m going to relaunch the Alpha 0.5 test this coming Friday, the 3rd of January. I’ll keep the test online until at least Sunday. If players want to keep playing I can leave it online for a few more days. If everything goes well this time I’ll be doing the Twitch broadcast and live mic chat about an hour into the test. Sorry again for the delay, this whole thing was pretty lackluster. Hopefully everyone makes their way back into the game come Friday.

Divided into Regions

The newest feature to make it into Noble’s Land is the Region System. When using the World Editor you can assign sections of the world into different regions. Regions currently control three important settings: the name of the region, if it is a safe zone or not, and what music to play.

When you enter different regions the name of the area will display across the playing area. I’ve come across a lot of MMOs that do something similar, but not quite the way I’d have done it. Most of the time the name of an area will only display the first time you enter it. When it does display, it is usually pretty small. Every time I’ve pictured how this would work I pictured the text being very large and dominant. I want the world itself to be a major character in the game and I want players to learn about it as they play. By having the text large and dominant I feel people will not only be more likely to read it, but also remember it.

region_text

Having the music change as you walk around the world is very welcome. Although my resources are limited I’m trying to match songs to areas they best fit. Cities will have more uplifting songs while places like caves and forest will be much more somber. I’m so grateful for people like Kevin MacLeod who has hundreds, if not thousands, of royalty free music available on his site. One day I’d love for Noble’s Land to have a custom soundtrack but in the meantime I’m thankful to have such great options to work with.

Lastly, assigning an area as a safe zone will prevent players from attacking each other while occupying that space. Being an open world, always on, PVP heavy game there won’t be many safe zone, but they are a necessity. Major cities and spawn points really need to be combat free. If spawn points weren’t safe there would be guilds that send parties out to kill someone, and then send parties to a spawn point to kill them over and over again. If major cities weren’t safe then players would never be able to idle safely, or even just stand around and talk carelessly.


2013 Indie of the Year Awards via Indie DB

If you feel up to it, I’d be grateful if you would head over to Noble’s Land’s profile on IndieDB and vote for the project. No registration is required and it only takes a few seconds, just click on the big red button on the banner. To get there you can click on the green banner above this paragraph. It’s highly unlikely I’d win, but it would be awesome to at least place in the top 100. I would be going for the Unreleased Game of 2013 award which has a cash prize which would go directly into funding the game.

The Death of Classes

For a long time now I’ve been conflicted when it comes to the subject of player advancement. Up until now I have been using a class based system. I had intended to have a mix of skill and class progression. With this system you could freely change your class in towns. Classes would limit what weapon and armor type you could use. After a lot of thought, I’ve decided to change this completely. The main reason I used this system was to make paper-dolling for avatars easier and require less resources and that’s just a bad reason to do it. Instead, Noble’s Land will use a true skill based system for character advancement. The more you use a particular skill, the more experience it gets. The higher a skill level is, the more effect it becomes.

axes

Now when creating a character, instead of picking your starting class you’ll pick a weapon skill to start off with. To put this new system to use, I’ve programmer-arted a new weapon type, axes. Axes hit slower then swords do but also deal more damage. You can only equip weapons if you’ve learned that weapon type’s skill and have the right amount of experience with it. Although new characters get one weapon type, there will be NPCs around the world that you can do quests for to learn different ones.

With this system, characters have a lot more customization options. Everyone has the ability to be a jack of all trades, the only thing required is time. This way you can also mix and match equipment to create as many custom builds as you can think of. I’m not sure yet how this will effect avatars. For now, avatars will change when you wear a full set of armor, with weapons no longer being included in the decision. Avatars will also be shown holding a sword, even if an axe is currently equipped.

Creatures Emitting Light

After leaving the starting city, Quarantine Hold, the first area players will enter is The Glowing Woods. During the day, The Glowing Woods are occupied by aggressive Wood Spiders. At night, Fireflies give the forest it’s name.

creatures_emitting_light

Creatures can now spawn at different times of the day. When placing a creature spawn in the World Editor you can choose to have that creature spawn during during either the day, night, or anytime. Creatures now also have the ability to emit light. When creating a creature in the Resource Editor you can specify a light range, in tiles, of how far their light reaches.