game mechanics

Blitz3D Forums/Blitz3D Programming/game mechanics

Rook Zimbabwe(Posted 2004) [#1]
SO I created a puzzle game where you try to match three across or down by plopping a new colored piece between or next to other pieces ofd the same color.

And I began to think about game mechaincs.

Program flow etc.

I thought that I would make the time decrease as you went up a level... OK did that.

I thought that I would make the points for creating a set go up as you went up a level... did.

But NOW:

What I am trying to do is figure out the optimum number of matches made so a player CAN advance to the next level... as it is now advancement is qutomatic... I don't think that brings enough psychological pressure to bear...

I can make about 40 matches in 2 min... about 20 in 1 min... LiMei can make about 23 in 2 min and 16 in one min...

I suppose this is a maths thing... I know there is reasearch out there for this... where do I ifnd it? How do I figure out a logical progression chart to program my game better?

Oh yeah... level 1 2min, level 2 1:45, level 3 1:45,level 4 1:30 etc etc etc... down to 0:45 by level 11... and stays there...

-RZ


SoggyP(Posted 2004) [#2]
Hi Folks,

Have you tried plotting a graph against the values and working it from there?

Alternatively, you could have 'adaptive progression', ie, the better the player is, the more difficult you make the next level. So for you the target would be 25 in 1 minute and for LiMei 20 in one minute. Do this based on the totals taken from previous levels.

Dunno if that'll help.

Later,

Jes


Rook Zimbabwe(Posted 2004) [#3]
That does help... I am attempting to plot adaptive progression... anyone know the maths to make it easier???

Rook <-- Math idiot!


Banshee(Posted 2004) [#4]
newTargetTime=targetTime-((targetTime-actualTime)/nominalDifficultyValue)

so

targetTime=2 minutes / 120
actualTime=1 minute 30 seconds / 90

newTargetTime=120-((120-90)/difficulty)=117

a difficulty of 10 would be

newTargetTime=120-((120-90)/10)=119.7

So being 30 seconds quicker would reduce the target time by 5 seconds.

Being 60 seconds quicker would reduce the target time by....

targetTime=120-((120-60)/10)=114

You probably want a value lower than 10 for your nominal difficulty.


Rook Zimbabwe(Posted 2004) [#5]
So could this be used as:
ultimatetargetvalue = 40
targettime=120
actualtime=90
lastlevelamount=22
newtargetvalue = X

newtargetvalue=ultimatetargetvalue-((targettime-actualtime)/lastlevelamount)

so if you got 22 on the last level you would have to make:

newtargetvalue=40-((120-90)/22)
X= 40 - ((30)/22)
X = 40 - 1.36UP
X=38

Or 10
X=40-((30)/10)
X=40-3
X=37
But if you got 30

X=40-((30)/30)
X=40-1
X=39

and if you got 40
X=40-((30/40)
x=40-.75UP
X=39

and 50
X=40-((30/50)
X=40-.6UP
X=39

Something is still not too easy. Of course I am probably screwing it all up!