Friday, February 8, 2013
Healing works again
Today I fixed lot of minor problems on both client and server. But I also did something major: I re-implemented healing as procedurally generated spells.
Monday, February 4, 2013
Equipment revamp
While creating the buyable equipment for Wenibe, I noticed that there isn't much equipment can do. It can modify the players stats, but I would expect it to have more fundamental properties. Clothes should reduce damage and wands increase it. They should also be geared for specific situations.
When an attack hits the character, for each piece of equipment a random number is generated between 0 and the applicable defense value. Each of these numbers is subtracted from the attack. No total immunity is possible that way - even weak attacks have a low chance to break through high-end equipment. But considering that a player character usually wears 4 defense items (hat, robe, belt, shoes), the resistance is still pretty reliable when all of them give about equal defense.
I think I should make these percentile boni.
Just like with clothes, a weapon has a general value and specific different values for specific elements.
Each of these effects could only apply to a specific element. That way you have to choose between a general-purpose weapon which boosts all elements or a specialized weapon which only boosts your favorite one while giving a malus to the opposite element.
I could also imagine rare weapons which give all spells a special property, like making all spells vampiric.
Clothes
Clothes always have a general defense value, and can have special defense values for specific elements which are higher or lower. When the equipment has a special value for the element which is used by the attacker, that value is used, otherwise the general defense value is used.When an attack hits the character, for each piece of equipment a random number is generated between 0 and the applicable defense value. Each of these numbers is subtracted from the attack. No total immunity is possible that way - even weak attacks have a low chance to break through high-end equipment. But considering that a player character usually wears 4 defense items (hat, robe, belt, shoes), the resistance is still pretty reliable when all of them give about equal defense.
Weapons
Weapons could have these effects:- Increase damage
- Increase range
- Decrease casting time
| Staff | Rod | Wand | Stave | Scepter | Cane | |
|---|---|---|---|---|---|---|
| Damage | X | X | X | |||
| Range | X | X | X | |||
| Cast Time | X | X | X |
I think I should make these percentile boni.
Just like with clothes, a weapon has a general value and specific different values for specific elements.
Each of these effects could only apply to a specific element. That way you have to choose between a general-purpose weapon which boosts all elements or a specialized weapon which only boosts your favorite one while giving a malus to the opposite element.
I could also imagine rare weapons which give all spells a special property, like making all spells vampiric.
Sunday, February 3, 2013
The town of Wenibe
I started building a small town map as a test-bed for NPC scripting and to force myself to start doing some tiles. It already showed me some features which were missing on the server to allow effective script-writing.
Some new spell icons
I created the thunder family of spell icons:
Wednesday, January 30, 2013
How EVE Online deals with 3000 player battles
I read an interesting article about how Eve Online handles the server load caused by an unusual high number of players in the same area.
Their main trick is to slow down the gameplay when the server is overloaded (likely by reducing the number of ticks per second on the server). I could easily do the same, I just have to modify a few places where I assume that the tick rate is globally identical and I would have to inform the client that everything now moves slower. But I wonder if this would really reduce the load much in my case, because I assume that a player which has more time to do things will also try to do more things, and they will still send move- and action commands with the same real-time frequency.
Another thing they mentioned is the ability to temporarily move areas from a weak cluster machine to a dedicated server with much stronger hardware, but unfortunately this has a critical implementation flaw: It disconnects everybody on the server. It also doesn't happen automatically and needs to be triggered by an admin.
Currently my game is not cluster-ready, but in the long term I plan to make it possible to put each map instance on a different server, preferably fully-automatic to keep the administrative overhead low (I keep this in mind, but I won't do anything in this regard until I have a player base with a size which actually justifies the effort). When I do that, I should look into making it possible to also transfer the running instance together with its players to a different server, preferably without them noticing and fully-automatic.
Their main trick is to slow down the gameplay when the server is overloaded (likely by reducing the number of ticks per second on the server). I could easily do the same, I just have to modify a few places where I assume that the tick rate is globally identical and I would have to inform the client that everything now moves slower. But I wonder if this would really reduce the load much in my case, because I assume that a player which has more time to do things will also try to do more things, and they will still send move- and action commands with the same real-time frequency.
Another thing they mentioned is the ability to temporarily move areas from a weak cluster machine to a dedicated server with much stronger hardware, but unfortunately this has a critical implementation flaw: It disconnects everybody on the server. It also doesn't happen automatically and needs to be triggered by an admin.
Currently my game is not cluster-ready, but in the long term I plan to make it possible to put each map instance on a different server, preferably fully-automatic to keep the administrative overhead low (I keep this in mind, but I won't do anything in this regard until I have a player base with a size which actually justifies the effort). When I do that, I should look into making it possible to also transfer the running instance together with its players to a different server, preferably without them noticing and fully-automatic.
Saturday, January 26, 2013
Procedurally generated shop content
Item shops can now have procedurally generated stock. I also improved the user interface by adding scrollbars to shops, showing the rarity as the item name color and adding tooltips. Shopping now works adequately.
Friday, January 25, 2013
Selling implemented
I added the selling gui. Now all that is missing for the item milestone is stack splitting/merging and tooltips in the buy- and sell GUIs.
By the way: I need to fix the price calculation of spells. The high-level ones should be a lot more expensive. But in order to do that I need to come up with a wealth-per-level formula to make up good prices.
Sunday, January 20, 2013
Wisdom capacity implemented
I was already considering to can this feature just because I didn't find an elegant way to implement it on the server (bad software developer), but I finally found a nice way to do it. The purple bar below the quickbar now shows how much wisdom capacity your character is using.
The amount of different spells you can have in your quickbar depends on your wisdom stat. Currently you can switch you hotkey assignment anywhere, but I plan to restrict this to towns, so you have to choose carefully which spells to assign before wandering into the world. That means a high wisdom stat is a prerequisite for a wizard who wants to be flexible.
Each spell uses level / 10 + rarity wisdom capacity. That means that rare spells use a lot more capacity than common spells.
The amount of different spells you can have in your quickbar depends on your wisdom stat. Currently you can switch you hotkey assignment anywhere, but I plan to restrict this to towns, so you have to choose carefully which spells to assign before wandering into the world. That means a high wisdom stat is a prerequisite for a wizard who wants to be flexible.
Each spell uses level / 10 + rarity wisdom capacity. That means that rare spells use a lot more capacity than common spells.
Friday, January 18, 2013
Rest system number crunching
I did some more number crunching with the rest system, and noticed the two constants which are most important:
1. the base of the logarithm
2. the reduction factor per minute
The reduction factor - how many percent of rest the character loses in each minute where it does something exp-worthy - is most important to define the "cutoff duration" - the length of a play session after which the exp bonus becomes negligible. Due to the exponential decrease it doesn't matter much with how much rest a character starts out. This affects the duration just by some minutes. A reduction by 1% makes it possible to play from dawn till tusk until the bonus falls below 1.5%. A reduction by 2% gives you an afternoon of good exp. With 3% reduction, it's about an evening. When I put it up to 10%, the fun is over after less than an hour. When I set it to a whooping 50%, you burn through your exp bonus in 10 minutes.
a lower base of the logarithm makes the rest system more effective overall, especially after longer breaks. The lower the base of the logarithm, the higher the rest bonus a character starts with after a break.
1. the base of the logarithm
2. the reduction factor per minute
The reduction factor - how many percent of rest the character loses in each minute where it does something exp-worthy - is most important to define the "cutoff duration" - the length of a play session after which the exp bonus becomes negligible. Due to the exponential decrease it doesn't matter much with how much rest a character starts out. This affects the duration just by some minutes. A reduction by 1% makes it possible to play from dawn till tusk until the bonus falls below 1.5%. A reduction by 2% gives you an afternoon of good exp. With 3% reduction, it's about an evening. When I put it up to 10%, the fun is over after less than an hour. When I set it to a whooping 50%, you burn through your exp bonus in 10 minutes.
a lower base of the logarithm makes the rest system more effective overall, especially after longer breaks. The lower the base of the logarithm, the higher the rest bonus a character starts with after a break.
Thursday, January 17, 2013
Rest system implemented
I implemented my rest system the way I described. I still wonder if my rest formulas weren't a bit too conservative. I feel like my character should have more rest bonus after 4 offline days. Especially considering that a character which rested for 20 hours already got a bonus of 2.1.
On an unrelated note, I am making good progress with the animation system. The engine should be ready for turning and animated sprites soon.
Subscribe to:
Comments (Atom)




