zaterdag 24 augustus 2013

Week 34 - Update.

Did some more work, finally fixed some of the threading issues. It was interesting, and frustrating. Now on to fix the speed system. Did make one minor GUI improvment. Almost impossible to spot.

And I thought I had fixed the, generate mob at same spot as the player bug. Seems I did not. Added that to the bug list again. Probably related to placing groups of mobs at once.

Update: Fixed the double placement bug, and some other minor bugs. But now the BasicMonsterAI is now not providing proper move action objects to the mainloop. So none of the monsters act. Easiest. Game. Ever.

donderdag 15 augustus 2013

WIP Screenshots.

This is how it looks now. Current looks based on the work done by Will Thimbleby. This will change later.

Currently each monster and player starts with a body composed of a tree structure of bodyparts.
As you can see here. The torso supplies slots for the arms, legs, head and tail slots. All of which are filled, except the tail slot. The monster of Frankenstein did not have a tail.

Body parts from monsters can be chopped of randomly, as can yours. But that has little effect. Only different modes of attack are gained from body parts. It is possible to chop off multiple bodyparts in one go, but so far the implemented body part structures are not complicated enough for that to really be effective.

The body part system is lacking in the fun factor. I have been wondering how to make randomly swapping out of body parts fun. (And the body parts display can also use some work). There is also the problem of chopping of the head of the player. Instant game over. That is not fun.

vrijdag 12 april 2013

Getting the first strike.

keithburgun from dinofarmgames was wondering if they could do away with the skip turn button, as the most common usage for it was to simply get the first strike in on the monster.

He correctly points out a few problems with the 'skip turn to let the monster come closer' feature. Suggesting to just remove the skip turn function.

I was wondering how to do better, dislike removing basic options. Any skills that allows waiting for a turn should now be checked or penalized so they cannot be wait abused. Leading to developer complications, and player frustration. "Why can't I wait a turn?"

Perhaps, have some sort of bonus for moving into the dangerous zone next to the monster. Some sort of charge attack, or defense bonus. Or make the mobs smarter, and also wait a turn, perhaps using ranged low level weaponry where appropriate (tossing those junk items it picked up earlier, or body parts, or parts of the scenery, there sure is something interesting to be done with this).

Giving a defense/dodge bonus if the mob moved last turn would be interesting. And solve some of the problems with waiting. This bonus only applies if the mob moved last turn, if a turn is spend using any other skill/ability the bonus is lost. With the skill system I want to implement (more on that later, I made it needlessly complicated). Could have certain situations give more or less defense. A mob with the expert tumbler skill getting a higher bonus.

A charge bonus sounds even better. Or have certain combat skills that work automatically. A skilled fighter gets a attack/damage bonus if he makes an attack in the direction he attacked last turn. Using these powers would be automatic, so the player needs to learn no new keyboard combinations. It will need to give feedback to the player. So they know that a special attack was performed. And to make it easier for players to see requirements for special attacks, any special attacks triggered should be added to a game wide help system.

So, now I'm thinking that I should implement a monster that shouts when it moves next to the player, giving any nearby monsters (and itself) a temporary attack bonus. This should prevent players from waiting to long to attack.

donderdag 26 juli 2012

Legacy of the Last Refuge wants your money. Or your support.

A dominions 3 buddy and all round nice guy is creating a old school RPG. Support it here:

Legacy of the Last Refuge - Revenge of the Old School RPG

If you like the idea, donate, or spread the word. I'm wanting him to succeed. There needs to be more buzz.

You can play the Alpha for free. Be patient with it, the main area has not been fleshed out enough yet. So it can be hard to find the dungeons.

The permadeath + keeping playing mechanic is very interesting. Very Mordor: depths of Dejenol. A game a played A LOT ages ago, and probably still have installed somewhere. Ow, sweet memories.

woensdag 9 mei 2012

On Hold.

This project is on hold temporary. I made some stupid mistakes in the codebase, and I'm currently a little bit demotivated to fix it. Will do so eventually.

Update: I fixed the code base problem.

donderdag 12 januari 2012

Speeds system explanation.

Basic Idea:

Mobs have a speed factor. Higher speed give more actions. Actions have a speed cost, higher values are bad. As they reduce the amount of actions that can be performed. For example, a knife stab has a speed cost of 7, but a battle axe has a speed cost of 14. When a mob takes an action, this cost is reduced from his current action point (AP) value. Each turn this value is increased by the mobs speed. Each turn has a certain amount of turn steps.

Say during a turn we have two mobs. One A with speed 12, a weaponspeed of 17, and a starting AP of -7, and we have mob B with speed 9, weaponspeed 11 and a starting AP of -1.

This is the progression of the turn:
Turn 1 Step012345678910111213
AP, A-7-6-5-4-3-2-1-17-16-15-14-13-12-
AP, B-1-11-10-9-8-7-6-5-4-3----
For end values of A = AP-12, and B = AP -3. With both having performed one action. A performed one attack at step 7, and B performed one attack at step 1.

- One loop of the speed system is called a turn. Each turn, there are a nr of steps equal to the highest speed of the mobs (this value is called maxSpeed). The current step is called the stepnr. The stepnr starts each turn at 0.
- The amount of steps in which a mob gets speedpoints (AP), is called his speed.
- The current (usually negative) amount of speedpoints, or action points, of a mob is called his AP. When this is at least zero, the mob can take an action. The current AP value is kept between turns.

Example 2:
We have mobs with speed: 12, 13, 8 and 7. The turn has 13 steps. But the mobs only get an AP if the current stepnr is lower than their speed. So the list of mobs above would stop getting AP’s at the following stepnrs 11, 12, 7 and 6 (resp). And the max stepnr would be 12 (maxSpeed -1).

This system allows for some interesting speed effects. Certain tactics and weapons have higher speed costs to balance them out. And damaging a mobs movement form could reduce his movement speed. (A wounded leg moves slower than a healthy leg is the assumption here). Which allows the addition of interesting ideas for the monster. Do you go with the stronger but slower leg, and use the kicking skill. Or do you go for the faster cheetah legs who decrease the movement action cost.

The system does have a few minor problems. It isn't currently clear what happens if two mobs have the same speed and current AP. Who gets to perform the first action. (I will probably go for the low tech, who is earlier in the mob list option).

But it is also deterministic. Which allows players to abuse the dumber AI. Tactics like pillar dancing and other abuses of higher speed are possible with this system. This makes the game a lot easier, as a higher speed mob can attack, and move away before the other mob can react. A system like dungeon crawls energy randomization would be interesting, or at least reduce one possible way of scumming. But for now I'll keep this system.

I think it is easy to abuse for high levels of speed and low levels of speed costs. A mob with speed 15 and using a dagger of quickness with speed cost of 3 could get 5 attacks each turn. If the weapon also has on hit/use procs it could do a lot of damage pretty fast.

When effects (paralization, or poison effects for example) are handled is also not defined yet. There are two main possibilities, just once each turn. (So high speed mobs do not get multiple effects each turn). Or Have them affect mobs once every x steps, Then a high speed mob gets affected faster by poison, and buffs run out quicker. The reason for that could be their high metabolism. Currently I'm favoring the once a turn system.

All issues for later of course. First job is to implement this system.

Implementation issue: Had a small problem with updating the list of monsters if you killed one during play. Another issue with the system, what happens when speed gets recalculated during a turn?

zaterdag 31 december 2011

It Begins.

As I always wanted to create a roguelike, and have been working a little bit on one for a long time now, it is time to at least start a little blog about it.

This is that blog. (Shock... surprise!) It is about the roguelike, FrankenRogue. Where you play a frankensteinian monster. Raised from the dead by a mad scientist, your body consisting only of stitched together rotting bodyparts, it is time to have your revenge on a world that you never asked for, nor did it ever welcome you in it.

Based on the small nameless roguelike created by Will Thimbleby. However, little of his old code now remains. His small and easy to understand roguelike has become larger and less easy to understand, but at least there is an inventory system, and other roguelike required stuff. :D

Addition of bodyparts works. Removal still has some bugs.

As this is a project still in alpha status, there have not been any releases yet. Sadly this will remain so for the future. I will try to add screenshots etc where appropriate.