Tuesday, July 22, 2008

Where we are now...

Just letting people know that the project is far from dead. There might not have been an update in awhile but there is still progress being made all the time. At the moment all programming side of the project has been put on hold due to a complete restructuring. As we speak work is being done by our artists to create the graphical side of the project. Progress is a bit slow on that front but still there...

We will be back with a completely new look for the game including new character models and GUI so stay tuned within the next month or so for our return.

Wednesday, June 11, 2008

First vendor complete

I now officially have my first vendor ingame. I've created the script and game component to display and operate a general vendor. the vendor has 3 options; Buy, Sell and Repair which all function correctly. the screen displays much like the inventory screen with all items taking up a slot in a collection of boxes, the player picks the item wanted and presses the buy/sell/repair button.

In the progress of developing this component I added more functionality to the inventory screen as it had to be able to find the first available slot to put a newly purchased item in. If the item is stackable and the game finds a stack of that type of item already in the inventory, such as a potion. it will add the item to that stack instead of taking up a new slot. At the moment potions can be stacked upto 10 per slot.

it also recognises that there is more then one potion per slot when selling them and only reduces the quantity by 1 instead of removing the whole stack.

along the way I also decided to add some temporary character portraits to the game as part of the npc conversation script. Each character has their own portrait and the portrait displayed will change depending on which character is talking. Eventually when I get the real portraits they will have multiple versions displaying the character's current attitude/emotion to give more feeling to the conversations.

for the meantime I need to finish off the inventory screen before going onto my next big step which will be tooltips for when the mouse hovers over items, displaying the stats of the item and its sell value and such. But firstly I need to improve the inventory system to allow switching around of equipment and a way to easily identify which slot is what on the character model as right now it is just a bunch of empty squares and currently once items are equipped they are stuck, that will be a quick fix though.

The inventory side of the screen already allows for moving around items and if you try to move an item to a square already occupied it swaps the items around and you will be holding the other item instead so that you can put it somewhere new.

I should have the tooltips ingame before the end of this weekend hopefully.

Saturday, June 7, 2008

Combat Engine Complete!

for the foreseeable future the combat engine is finished. I'll likely do some polishing to it as time goes by but essentially it does everything needed.

the last few modifications made to the engine include the ability to evade/block attacks based on an agility formula, as well as the player and mobs may fail to hit (miss) their target based on a dexterity formula.

Also added is the chance to cause a critical hit which is also based on the player compared to mob agility.

along with this I have also added a combat log to the game so you can see exactly how much damage or blocks/misses etc are happening, as well as important system messages and experience gained. At this point the log does not save old data and I have not made the log text scrollable to look back at old text, I'll probably add that functionality in the future, but for the meantime it does remove old data and scroll upwards when the box is full so that you can always see the latest text. It can currently hold about 10 lines of text.

like all hud components the combat log can be closed and expanded to save space when not needed.

I've also added multiple effects from the use of items, not only does the shield increase the player's defense rating, it now has the bonus effect of adding 2% to block chance and the weapon adds 1% to critical hit chance.

This is heading towards 'special effect' items that add extra bonuses to the player stats like in action rpgs such as the Diablo series.

I realised after making the last post that there is more left to do then I thought :(
I've yet to implement the currency and vendors systems. at the moment NPCs can only talk to the player, there are no shops. I think I'll work on that next.

Wednesday, June 4, 2008

Equipment in Combat

I've made some considerable progress with the inventory screen. I've added a weapon and shield to the inventory that is equipable in the correct slots and has a considerable effect on combat. the weapon increases the attack stat of the player and the shield increases the defense stat of the player.

as promised, with that done I'm uploading a new video to blip that demonstrates the new items in use, including the previously mentioned potions.

for the meantime the items are all using temporary graphics I found until the proper ones get made up.

next step I'm going to implement dodging/blocking and critical strikes to combat. All thats really left to implement in the game engine is the Quest system, Map screen and Save/Loading of actual game progress as well as putting the last finishing touches on the combat system.

Some of that though I won't actually implement until I start making the actual game maps which means waiting on graphics for now. I'm still in need of creating the majority of tiles needed to produce proper maps.

So stay tuned for the next post which should finally be the completion of the combat engine.

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.

Monday, April 28, 2008

Graphics Progress

Just giving an update on current progress, I've been working on some new graphics for the game. Added a screenshot showing it all implemented including new path and fence graphics which finally makes use of the 'Fences' tab in the editor.

I'm going to continue designing up new graphics for the rest of the week until I'm satisfied that I have all I need for the starting town before progressing on to implementing more engine features which would be: Player stats, enemies and combat. at which point I'll have to improve/implement a more advanced AI to include moving sprites that will also agro on the player when they get too close.

here is the screenshot:

Friday, April 25, 2008

Sprites and the Content Pipeline

Been awhile since I've last posted. I've been spending the couple of days getting my head around how to work with the content pipeline in regards to saving and loading of npcs and other sprites using XML documents. Its been very complicated work and a nightmare debugging but I'm proud to announce that I've implemented the ability to save and load npcs and other sprites using the content pipeline successfully which brings me to my next announcement:

Houses! I've designed some Ultima7 perspective style wall and roof graphics and added support to create houses through the editor. I didnt make up a new video demonstration this time as creating a house is quite a time consuming process at the moment but I've added a new screenshot that shows a simple, already created house.

For now I'm going to work on speeding up the creation of houses as right now it does take a long time, they use pixel perfect positioning instead of clipping to the tile grid as the walls are a different shape to the tiles. But perhaps I'll work on making it so the walls clamp together when nearby each other to get positioning correct instead of carefully placing each wall exactly right.

And thanks for those who helped out with the sprite flickering issue, its now also been resolved.




Monday, April 21, 2008

NPC Editor functions implemented

another step towards completing the editor, the ability to add NPCs to the game through the editor is implemented. I've created another video demonstrating the new NPC component and actually adding them to the tilemap. check it out under development videos on the right.

It starts by displaying the NPC component of the editor when you click the npc add mode button where before it will let you add npcs to the tilemap you must make sure to enter all required details such as the npc name and what script file it will be using as well as the graphic to intially use. It then allows adding npcs to the tilemap by placing the middle of the sprite graphic in the precise position of the mouse cursor.

Features to be added soon:

* Buildings, trees and other objects
* Player stats
* Combat and utilizing the quick slots (actionBar) with a basic attack ability.

with that done I believe I'll take a break from the programming side of things to get some more tiles and graphics sorted out.

Sunday, April 20, 2008

Editor Updates

Just giving an update on progress so far. I've implemented the following editor functions:

Create New Map
Add New Layer
Save Map
Open Map

Getting these going was more trouble than expected, I had to make custom components for each screen instead of using the pre-made winforms dialogs, but after its all over with I am quite pleased with the results. all four function correctly and continue the graphical style of the editor.

I've added some screenshots that show the new components on screen.


Next feature on my agenda is adding support for creating NPCs in the editor, I'll be implementing a new editor component that allows input for the NPC's name, script file, if they are quest holders or vendors, gender and which graphic to use.

I'll post again once the component is ingame.

Friday, April 18, 2008

What is Destined Rings

Destined Rings is a real time RPG being created with inspiration from the classic game Ultima 7, still believed by many to be one of the best PC rpgs of all time.

It is a story about prophecies and how they are not always what you believe them to be. Set in a fantasy background Destined Rings follows the turning point of a young woman's life when she finds herself the victim of a dark prohecy where she is believed to be the cause of the imminent destruction of all life. Sending her on a fast paced journey of survival, discovery of an ancient past and the destined fullfillment of a prophecy the world is determined to prevent.

Destined Rings combines all your favourite fantasy races such as Elves and Dwarfs yet adds a few of its own, including a race designed in the popular anime style of half human, half cat, the Skaerijj Empire will play a major role in the development of the story.


Stay tuned for more posts to come, I'll be releasing more background information about the game over time.

Blog underway

Hello all, finally got around to creating this blog. I'm planning to use it to create a journal of the development progress of Destined Rings, my computer Roleplaying Game (RPG) that I am developing.

The game is still in a very early development stage, I've added a video demonstrating what has been implemented so far. Basically I've added the beginnings of an overlay (HUD) for both the game and editor and am working on implementing the editor menu options with New Map and New Layer dialogs completed already.

I've got help from an artist to create custom high-quality sprites to replace the temporary ones that I currently use as a placeholder to get things underway.

Anyway, I'll post more about the actual game concepts soon.