As promised it’s time for a post outlining some of the changes that have gone in since I have been back in the UK. This is going to be a long post with lots of screenshots, though I will try and keep it as concise as possible as nobody wants to read 3 paragraphs about network packet sizes. With that in mind, I’m just going to skirt over some of the performance improvements that have gone in as a significant amount of time has been spent on improvements in this area.
All screenshots in this post were taken using a special debug android client running on my PC, I’m aware the in-game text for player names and such has scaled funny, please ignore that 😉
- Rewrite of map loading, transitions between areas are now twice as fast
- Complete rewrite of the engine’s sprite rendering system, significant improvements here
- Removal of raycasting lighting engine (60% flat performance increase on Android, batteries everywhere rejoice)
- Player movement smoothed out, merge of sprite movement and animation systems
- Fix for a long-standing bug in the entity system, large reduction in garbage collection in busy zones
- Sprite culling implemented, performance and battery life improvement on Android
- Significant reduction in network packet sizes due to large crack-down on using the smallest types
- Implementation of packet-batching where possible, large network usage reduction on joining new zones
- Everything (UI, fonts, sprites, effects) is now in a single texture atlas, less texture binds all round
TLDR; The game is now running better than ever, it’s starting to feel like an engine.
One of the new character creation screens
With an online game in any capacity, I’ve always felt I like to be able to customise how I look. During the overhaul of the sprite render system, I implemented the ability for sprites to be made from several layers. This allows us to split our sprites into different sections we would like to be able to colour differently, as well as build sprites from several pieces. You will be able to choose the colour of your armour and hair, as well as your haircut / helmet and an addon to wear on your back. Addons, armour sprites and hair / helmet sprites will be earned through completing different tasks or quests, though you’ll start with a variety.
Different addons, colours and helmets / hairstyles are now in-game
At launch the game will support three different classes for you to play. These will represent the three main archetypes we look for when playing a fantasy game, you have the Knight who can take a beating and deal out melee damage, the Mage who deals with elemental magic and the Brigand (name subject to change) who uses ranged weapons and has a pet. The basic system has been implemented in game and is now part of character creation, with different classes receiving different bonuses when they level up and skill advancement speeds being tailored to their playstyles.
The (very basic) vocation selector at character creation
Basic Alpha UI
As I sort of teased with the last news post, we’ve started to get on top of the basic in-game layout. Obviously the look and feel of our entire UI is placeholder, but the placement and proportion of the different widgets as well as their functionality is not. The weird analogue square has gone in favour of a d-pad, we now have experience, health and mana bars, as well as buttons for the chat, inventory, and main game menu. The d-pad fades out when it’s not being used (as shown below) but fades in with a thumb indicator when you are pressing it. The experience bar is placed on the left to further increase the distance between your thumb and the touch buttons on your phone, this will be tweakable in the settings further down the line so you can have it and the d-pad on whichever side you like.
Stats and Experience
Wouldn’t be much of a classic MMORPG without levels, skills and experience now would it! Well, good news, we have now implemented the core systems that allow your characters to gain experience and level up. Depending on your vocation, you gain a different amount of Stamina (health) and Spirit (mana) each level, and your level is used in the games damage calculations so you will grow slightly stronger just through leveling alone. In addition to this, we have implemented the basic skills: Melee, Distance, Defence, and Magic. These skills directly affect the damage you put out and receive, and they level up individually the more you do them. This is all in the database and functioning 100%, it’s already mildly addictive just being able to run around battering everything and getting stronger 😀 There is a stats overview in the inventory menu if you want to check how your vitals are doing.
The basic skills overview screen
In addition, as you would expect, whenever you kill an enemy that yields experience it will raise above your character in white text. At the moment NPCs can now be ‘tagged’ by players and everyone that hits then will receive full experience for the kill – this is obviously a bit short sighted and will be further iterated on later but the basic mechanism is in.
10 whole experience points, woo
Finally, if you receive any kind of skill or level advance, we feel it’s only fair everyone knows you are kicking ass so everyone around you (including yourself) will see it rise above your character in cyan. Stuff like experience gains aren’t broadcast as we don’t think anyone else cares that you just got 10 exp and we want to send as little as possible to everyone’s phones, but this is the exception.
Yay, I now hit marginally harder with bows
What’s the point in killing everything if you can’t take it’s stuff right? NPCs now have loot tables and will roll on them for everyone who has ‘tagged’ an enemy and is eligible for experience points. Everyone gets their own loot rolls and their own loot so teaming up with other players is great as there’s no disadvantage when it comes to loot drops. If an NPC drops you some sweet items, you will see a bag drop on its corpse, only you will see the bag and nobody else can take it so there’s no contention there. At present you can’t actually pick the loot up, that’s being worked on.
The golden bags mean there’s some loot for me to pick up
You are going to need somewhere to store all that loot. This is very much a work in progress and subject to change, but our idea is to work on a cap (capacity) system, letting you pick up as many items as you can carry. Players will start with a given capacity, and this will increase each time you level up. Your inventory will be automatically organised into sections so you don’t have to squint at a wall of item icons to try and find your sword of a thousand truths hidden among some rat hides and cheesy poofs.
The core inventory layout is in, still needs a lot of work though
As the game gets more complex and more systems go in, we are getting closer to the point where we are going to have to manage a game world, a growing world that will require constant additions, tweaks and fixes. To make this as painless as possible I feel it’s really important we have some easy tools to work with, so I took some time to put together some tools to manage Items, NPCs and their subsequent loot tables. This toolkit will grow as more is added to the game, but already I’ve found it extremely useful and it will allow me to bring others on board to help later down the line without having to subject them to Java / XML editing. I know this stuff is largely just for me, but I figure it shows you guys I’m trying to do this right.
The new NPC editor
And that brings me to the end of my June update news! It’s been a productive month but there is still so much left to do before this starts to resemble anything close to a coherent, playable experience. Although there’s been a lot of work done here, I had hoped to achieve more… unfortunately I broke my heel a few weeks ago and the pain / lifestyle impact has had an effect on my morale and work ethic that’s resulted in spending days in bed watching netflix rather than at the PC coding.
At least I have a sweet abstract fox on it
So that’s it for now, you can expect an update of similar proportions at the end of next month – at which point the private Alpha will be going live. If you would like to be in the private alpha, please leave a message on the forum in response to this news post and I will contact you individually with the details. If you know me personally, just drop me an email / skype message and I’ll get you added to the list. Additionally, if you would like to get involved with the project in any capacity, get in touch on the forums – help is very welcome at this stage!
See you next month.
Comment on this news!