Friday, May 30, 2008

Usuable Potions

I've made some progress with the inventory system. There are now two potions ingame, a healing potion and mana potion.

Both potions work as intended and there are several conditions the game now checks

firstly it keeps track of the quantity of that sort of potion onhand. Each time the player uses the potion it reduces the quantity by 1 until none are left which then it removes the stack from the player's inventory.

If there are no more of that type of potion left in the player's inventory the actionBar icon for the potion will go red until more of that type are put in the inventory.

the game also sets the cooldown timer for every potion stack of that kind so that the player can't cheat and use a potion from each stack until all stacks cooldown. It knows they are all the same type.

but each type of potion has its own cooldown so you can use say a health potion and a mana potion at the same time.

next step is to add some simple equipment into the game and utilize it along with the rest of the player stats in combat.

I'll upload a new video demonstration once all that is done.

Monday, May 26, 2008

Back Into It

I've had a bit of a break and gone away for a week to visit family out of town. I'm back home now and ready to continue on with the development of Destined Rings.

Things are really shaping up in regards to the development progress although I'm still stuck on how to sort out the graphics that is beyond my ability to create and eventually I'll also be stuck on sound effects and music when I come to adding that into the game.

I did have someone that was going to help with that stuff but the artist fell through so for now I'm stuck still using the temporary sprites until I sort something out.

over the next few days I'll be working on adding functionality to the inventory/equipment screen. I'll be creating some items for the game like potions, armor and weapons. I'll also have to work more on my combat engine to include the effects of items in combat.

I'm also thinking about some sort of combat log as well. maybe floating text above the fight. I need to implement the effects of dex, agi and int in combat too which means displaying that the player has missed the target or made a critical hit.

Should be fun. I'll make a new post and video once its all done. Not sure how long it will take, its a busy month for studies and time to work on the project may be short.

Saturday, May 17, 2008

More GUI features

I've gone ahead and implemented working status, skills and spells screens to the game as well as the start of an inventory screen, all accessed via the drop down main menu.

The status screen displays all the stats relating to the player which is quite a lot now. The skills and spells screens will eventually show complete talent trees allowing selection and exploring of all abilities the player can learn, much like WoW or LOTRO. Currently I've only created 3 different abilities so thats all it shows at the moment.

I've also added the ability to select the ability or spell and place it in any of the action bar slots so yeah, the actionbar is now customizable instead of just being the 3 created abilitys in a row.

I've also created the shell of an inventory and equipped items screen but it currently does not function any more then displaying itself, that will be the next job on my list to do.

I'm uploading a new video to demonstrate the additions as well as the NPC Pathing. I'm going to try a new video host this time which should give a better picture quality as youtube kinda ruined my vids by making them poor quality.

Friday, May 16, 2008

NPC Pathing and AI

had a pretty good day yesterday, got the whole day off to work on my game and made some huge progress.

Mobs and NPCs can now randomly move in any direction they choose but are limited to a square area 100 pixels in any direction from their original starting point so that they don't wonder from one side of the map to the other or way past where they should be. Animation also works correctly with the direction they are moving.

And the next big step to come from this is movement during combat. If a mob is aggressive they now run upto the player and start fighting once the player enters their agro radius but not only that. If the player manages to outrun the mob by using sprint the mob will give up chasing the player and run back to their starting point.

I was so impressed with this when I saw it in action, played around with it for hours. I have not made up a video for it yet. I'm going to complete the menu system first and then I'll demo it all at once.

So yeah, next step is to finish creating all the menus including the player stats, inventory, skills and quests menus. Once thats done I think I'll make the player able to customize the action bar by adding and removing skills as well as implement the use of items and equipment in game.

Tuesday, May 13, 2008

Improved Combat System and Targeting

I've tidied up the code for the combat system to make it more efficent and easier to understand by removing all involvement of the quick slots from the main game class and integrated them as methods in the actionBar class.

I also reworked the targeting system so that there is just one global target variable as part of the player class instead of each mob having their own targeted flag. this will save much confusion in the future, it also allowed me to draw the target graphics without actually having to attack the mob and instead just show by clicking on them or the player.

I've added two spells to test out using magic ingame, one is a light healing spell and the other is a fireball spell for attacking mobs at long range.

I've also added a new graphic for the custom cursor to show that the cursor is over a sprite and that a move from the actionBar is selected.

Escape now also clears any target or actionBar selection.

next step I have planned to do is implementing the ability for mobs to chase the player or run upto the player and attack if in agro range and also join in fights if the mob links and player is attacking another mob of the same type nearby.

check out the next video for a demonstration of current progress.

Monday, May 12, 2008

Combat and Player statistics

Been a fun couple of days, I've finally begun implementing the combat system into the game.

There are many great additions to the game that involve this, the first is the ability to select the enemy level and graphic as well as placing them on the particular layer via the Map Editor.

Secondly is the addition of both 'Player' and 'Monster' classes to keep track of their individual actions and stats. gone is the improvised player 'Animated Sprite' object and in its place is the 'PlayerAvatar' class that inherits from 'AnimatedSprite'. This class includes stats to track health, mana, experience as well as strength, dexterity, agility, constitution, intellect, spirit and charisma. It also keeps track of what abilitys and spells the player has, operates timers to calculate delays for such moves and if they are in combat, dead or alive. also included is a ressurection point to specify where to respawn when the player dies.

Monsters also have some different stats from the player including if they are aggressive or link and how close the player has to be to then before they agro.

I've also added Health, Mana and stamina regen timers and a calculation to work out how much experience the player gains for killing each one.

so far I've only added a 'base attack' ability to test combat, the ability is added to a working action bar which allows you to click on the quickslot with the mouse or use the shortcut key to activate the ability. Or you can just double click on the monster with the mouse to perform the base attack regardless of if it is on the actionbar or not.

both monsters and the player can die. the player respawns at the res point on death and monsters are removed from the game altogether.

I've added a target circle identify which monster the player is attacking and activate the isAnimating flag to show that something is happening, its not an actual attack animation yet but monsters will at least face the player during combat. Monsters cannot move as yet.

while at it I also added a 'sprint' command by holding the shift key that makes the player run faster yet consumes a small amount of stamina over time. Abilities also consume stamina yet spells will consume mana instead, so if the player runs out of stamina the player will have to wait for it to regen before attacking again.

check out the new video to see the basic combat system in action, pay special attention to the status bar in the bottom right corner as it now accurately updates for all stats. Also you will notice I added a custom cursor for the game but the video records the old cursor as well, that is not actually displayed ingame. only the custom cursor is.

Wednesday, May 7, 2008

New House Style and the Elevation System

Massive update post this time. I've been busy putting the Elevation system into play with the use of a new 'Sand' style house. This style of house will be the design that Skaerijj use as their homes. I was going for a sort of desert/arabian style, the graphics for the houses are far from finished but at a completed enough stage to demonstrate. I've still got to create all the little details for the houses like tent flaps hanging off the side of the house and gutters etc. And I've yet to design a new door for them if it will have doors at all, have not decided yet.

What I've designed is a house that has a flat walkable roof with stairs on the outside of the house to get up onto it. The elevation system works with this house by triggering an 'event' that increases the players elevation allowing the roof to display while over it.

I'm currently uploading a new video demonstrating the new features/graphics.

The major notes to make about this update is the alterations to the collision map. Originally there was only one collision map, now I've rewritten the entire content pipeline to load a collision map for every layer with their own elevation. The reason for this major overhaul is because there was going to be an issue of collision data on the ground layers blocking the player from moving while on the roof or vice versa.

I've also added a new 'Event Layer' map to each layer as well that records any event triggers and their effects. This is currently used only to increase/decrease player elevation but in the future will be used to trigger many different kind of events such as displaying dialogs or playing particular sounds.

By now the large scale maps I'm using are taking a very long time to save so next thing I'm going to work on is a progress bar for when saving and loading maps, just so I know its still doing something and not just crashed as the whole game feels like its stopped working when saving.

anyway, check out the new video when it shows up.

Thursday, May 1, 2008

Graphics Overhaul

I've made some drastic changes to the way placing houses and fences work which has improved the quality of the graphics and made placing them easier. They are now tiles instead of sprites. To compensate for the loss of their sprite sort ability I've implemented a new calculation and property to the map layers to determine how far above the player the tile actually is. This new system allows for tile layers to be drawn above the player as well as below and will allow for future multiple story houses.

How it works is it will compare the 'Elevation' of the player to the 'Elevation' of the layer and display accordingly. The initial base elevation of the player and all tiles will be 0 and the second story of the house or the roof will be 1 and so on. But to give a 3D effect I've allowed for tiles to be placed halfway between elevations. i.e. the bottom half of a wall on the ground floor will be 0 and the upper half will be 0.5.

Another feature of this system will be removing the floors above the player when the player enters houses. for example: if the player is on the ground floor then the 'Player Elevation' will be 0 so all layers of an elevation of 1 or more will be prevented from being displayed if the tile placed above the player is not empty.

Obvisouly once a player goes up a set of stairs or climbs a ladder the 'Player Elevation' would increase from 0 to 1 which will allow the next floor of the house to be displayed.

a minor downside of this system is that all roofs and second floors of every house will be prevented from being displayed instead of just the house your in. I'm currently working on a method to determine which house the player is in and only preventing that one.

Check out the new screenshot, you should be able to see the difference when compared to earlier screenshots. You will also notice that the tile size is now also smaller, I've halved it to make the walls a better scale then they used to be. It also gives the illusion of the game being a higher resolution.

Also notice the new door style, I removed the old doors because I could see myself having trouble animating them once the ability to open and shut doors was ingame.