in-game menu

1 view
Skip to first unread message

Timo...@gmail.com

unread,
Sep 27, 2008, 12:13:36 PM9/27/08
to cave9
Hello folks,

in order to fight saturday-evening-boredom, I decided to spend some
more time on cave9.
I wanted to discuss plans of an in-game menu with you, before tackling
the code:

In the upcoming release you plan to make levels separate, what would
this look like, what would the role of the "seed" code (the --level
commandline option and the separate highscore entries) play in this?
It looks like each level (in the old sense) would be separated into
different parts, so a "level selection" could replace the --start
argument, I suppose?

How would level selection be presented to the player? I think it would
be sensible to find a new name for what I called "level", but calling
it "seed" wouldn't make sense to anyone who doesn't have a clue of
random number generator theory ;) - What do you think of "Cave Form"?

cheers
- Timo

Carlo Caputo

unread,
Sep 27, 2008, 5:21:29 PM9/27/08
to ca...@googlegroups.com
Conceptually,
we though about the level changes to happen on the large room sections
of the cave, accompanied by texture change and cave generation changes --
like stalactites, monoliths, raise on the difficulty, things like that.

We didn't thought about keep the same seed for each level,
in fact I don't remember if we ever talked about how to use the seed,
but we can think about that... what do you suggest?


What I can think of right now is that
people could design caves and send one another,
but for that we must put the cave configuration and seed
on an external file. This model is much like the one on electricsheep, e.g:
http://sheepserver.net/v2d6/cgi/node.cgi?id=125229&detail=genome

If there were cave splits people could implicitly select
which section they liked more and these can be voted to survive
on the gene pool =)

ok, ok, too much....

Timo...@gmail.com

unread,
Sep 28, 2008, 5:14:33 AM9/28/08
to cave9
The problem with your electricsheep-ish idea is, that the RNG we have
(either my stolen implementation or the one in the standard library)
is rather "turbulent". With the flames on the other hand similar
values give you similar results. If you change the seed just a little
bit (which would be +1 or -1, as it's an integer value) it would give
you a radically different cave - there's no way to make the gene pool
thing work if we keep using this model :(

My idea for the level separation and seed would be to just keep the
same seed across level transition - I don't see why it should change,
as changes in the seed are hardly meaningful.

For "designing and sending caves" I would implement a kind of "cave
editor", maybe just like the "digger vs cruiser" mode, maybe with play/
pause/something (especially useful for multiple diggers)

Carlo Caputo

unread,
Sep 28, 2008, 3:33:50 PM9/28/08
to ca...@googlegroups.com
Let me see... what about
a menu showing a BubbleBabble level name, based on the seed;
it would be like "xebeb-babib-baxux" for the 32-bit seed "1",
and I think it have some check-summing,
what makes sending it around safer.

But how will we detect which seeds are harder which are easier,
to make it a shallower level or a deeper one?
Even more,if the difficulty is defined by the seed
shouldn't we remove any influence of the depth of the cave
on the digger movement and let it be only controlled by this seed?

timo

unread,
Oct 3, 2008, 8:46:09 AM10/3/08
to cave9
On 28 Sep., 21:33, "Carlo Caputo" <carlo.cap...@gmail.com> wrote:
> Let me see... what about
> a menu showing a BubbleBabble level name, based on the seed;
> it would be like "xebeb-babib-baxux" for the 32-bit seed "1",
> and I think it have some check-summing,
> what makes sending it around safer.

Sounds sensible, if you know how to do it :)

> But how will we detect which seeds are harder which are easier,
> to make it a shallower level or a deeper one?

No clue, I suppose the game could pre-calculate the cave and then find
out how hard it is?

> Even more,if the difficulty is defined by the seed
> shouldn't we remove any influence of the depth of the cave
> on the digger movement and let it be only controlled by this seed?

I don't completely understand, what you mean, but maybe the "best" way
to make all this work well is to re-do the digger movement
calculation. Instead of doing "if the next random value is bigger than
0.5, go right. if it's less than 0.5, go left", instead we would have
"if the next random value is more than 0.5, make a hard turn/drop/
whatever, if not, make a smooth up/down movement".

We may need to use a second RNG, so that the cave wall can be
generated "deterministically", I fear, that that part might break :(

That was my random assortment of ideas for the day.

I think the next thing I will try for fun is joystick control :)

Carlo Caputo

unread,
Oct 3, 2008, 10:38:46 AM10/3/08
to ca...@googlegroups.com
On Fri, Oct 3, 2008 at 9:46 AM, timo <Timo...@gmail.com> wrote:

On 28 Sep., 21:33, "Carlo Caputo" <carlo.cap...@gmail.com> wrote:
> Let me see... what about
> a menu showing a BubbleBabble level name, based on the seed;
> it would be like "xebeb-babib-baxux" for the 32-bit seed "1",
> and I think it have some check-summing,
> what makes sending it around safer.

Sounds sensible, if you know how to do it :)
 
> Even more,if the difficulty is defined by the seed
> shouldn't we remove any influence of the depth of the cave
> on the digger movement and let it be only controlled by this seed?

I don't completely understand, what you mean, but maybe the "best" way
to make all this work well is to re-do the digger movement
calculation. Instead of doing "if the next random value is bigger than
0.5, go right. if it's less than 0.5, go left", instead we would have
"if the next random value is more than 0.5, make a hard turn/drop/
whatever, if not, make a smooth up/down movement".

It seems inevitable, the first digger were designed in a marathon,
there is no way it can stand much changes.
 
We may need to use a second RNG, so that the cave wall can be
generated "deterministically", I fear, that that part might break :(

If the seed to generate the level would be ((RNG&0xffff)<<16)|(start&0xffff)
this one number would define appropriately a cave sequence.
And this would compose a BubbleBabble name for the level,
on the menu, without much changes on the digger control for now.
What about that?

Nevermind the BubbleBabble name,
just this composed seed number on the menu would be OK at first.

That was my random assortment of ideas for the day.

I think the next thing I will try for fun is joystick control :)
 
Have fun :)
Reply all
Reply to author
Forward
0 new messages