Olvand is a little multiplayer sandbox RPG, where the players live in self-built towns and can go on all kinds of adventures together. Imagine living with your friends in a small town in the mountains, or creating a new group of friends in a pub in the metropole you all live in. There will be several minigames the inhabitants of a server can play together, among which will be combat based games like King of the Hill or Capture the Flag. You will be able to play against other people in your city, or as a city against another city, or as a whole server against another server. The combat works with self-built guns, in which all kinds of powers can be combined to create unique effects. You can sign up to be a tester on olvand.com.

Some pictures of what I want to add in the future:

Image RSS Feed Latest Screens
Building a little town together A fishing contest Mining for materials
Blog RSS Feed Report abuse Latest News: The cave generator

0 comments by Woseseltops on Jul 20th, 2014

Hi all, all right then: the cave generator. The nice thing about generator algorithms is that they are almost standalone pieces of code; they don't depend on anything already in the game, and thus I can work on them anywhere, without access to my latest additions to the Olvand codebase, or even access to the internet. The cave generator is no different: I started it almost a year ago in the plane to Bratislava, where I had to be for a business trip, and then worked on it on and off for months in the train between my home and my job. I say months, yes, because it took my quite some time to get it right. Let me tell you why.

First attempt
So what we have is a large piece of rock, and what we want is to 'carve' a nice and interesting level out of that. How to start? My first try was to randomly take out blocks, in the hopes that caves would form naturally. Well, they did, but most of the beautiful things that emerged turned out to be unreachable by the player. This picture should give you an idea of what went wrong:


Once I saw this, I passionately started to add code that kept track of which blocks where removed, and then made sure all of these blocks where connected. After several iterations this still didn't work as intended, and with each iteration my code had almost doubled in complexity. While planning for a next iteration that made things even more complicated, I realized this all should and could work in a much simple and elegant way, so I deleted everything and started over.

The better solution
The code is now based on something which I would like to call 'the mole': an object that starts at the entrance, and digs tunnels in random directions. After every intersection, the mole makes a random decision whether to duplicate or not. If so, the cave splits in two. It works more or less like this:


This approach hopefully looks super-simple and straightforward to you, but it took me quite some time to realize this was the way to go. And on top of this, while the idea might be simple, for the implementation there all kinds of details I have to take care of. For example, the mole should never leave the piece of rock I'm working with (otherwise you get a corridor that leads to nothing), there should be a boss room that is always reachable from the entrance, etc.

And besides this all, the algorithm also keeps track of what the various blocks looks like. For example, if the mole digs north into new territory, the block should behave as a vertical corridor, but if it discovers there already is a horizontal corridor there, it should turn this into a crossing. I don't want to waste client resources for this, so this is all done server side and then sent to the client as well.

To quickly see if a new addition works as intended, the generator can also show an ascii art version of what it created. This way, I don't have to load every creation into the game before I can inspect it. [Here] [are] [some] [examples] .

Unfortunately, I've discovered that building a cave generator algorithm is one thing, but going from the the blueprint to an actual cave you walk around in is another; there are several practical hurdles to overcome... but let's save that for next week :). See you then!

If you want more development, see [twitter] or [facebook]. If you want to be a tester, you can subscribe on [olvand.com].

Media RSS Feed Latest Video
Post comment Comments  (0 - 10 of 390)
Guest
Guest Jul 1 2014, 8:58pm says:

Question.. Can we ever expect Single-Player?
Sorry if there already is and I just missed it, I'm in a hurry.

+1 vote     reply to comment
Woseseltops
Woseseltops Jul 5 2014, 2:27am replied:

Yes, you can play the game singleplayer (you can start the server software from your local machine).

+1 vote     reply to comment
kaytavo
kaytavo May 23 2014, 7:37am says:

hiya wose how have things been. seems things are progressing nicely, i need to get back into playing olvand...

+2 votes     reply to comment
Woseseltops
Woseseltops May 25 2014, 2:49am replied:

Haha, thanks, and you should indeed ;).

+2 votes     reply to comment
RenderedWorld
RenderedWorld May 17 2014, 2:14pm says:

I like the look and concept of this game. Looks awesome!

+2 votes     reply to comment
Alitron
Alitron May 17 2014, 10:19am says:

I like where this is going, I used to work on a game with a similar concept with a little touch of roleplay.

+2 votes     reply to comment
Guest
Guest May 23 2014, 7:35am replied:

This comment is currently awaiting admin approval, join now to view.

Woseseltops
Woseseltops May 18 2014, 1:36pm replied:

Interesting. Was it on IndieDB?

+1 vote     reply to comment
Alitron
Alitron May 24 2014, 2:17pm replied:

Yeah, it was. I set it as inactive though, it shouldn't be visible.

+1 vote     reply to comment
Woseseltops
Woseseltops May 8 2014, 2:35am replied:

Hi YellowGaming, thanks for your interest, and sorry for the late response - I was on holiday. I'm going to send you a personal message on Desura to talk about this :).

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Icon
Olvand
Platform
Windows
Developed By
Woseseltops
Engine
Custom Built
Contact
Send Message
Official Page
Olvand.com
Release Date
Released Aug 18, 2012
Game Watch
Track this game
Share
Community Rating

Average

9.3

67 votes submitted.

You Say

-

Ratings closed.

Highest Rated (5 agree) 10/10

Looks really interesting and really needs a good playerbase!

Oct 8 2012, 8:30am by fastfire10

Style
Genre
Role Playing
Theme
Fantasy
Players
Multiplayer
Project
Indie
Boxshot
Boxshot
Twitter

Latest tweets from @olvandgame

We´re back! In this blogpost, I describe the cave generation algorithm: T.co

Jul 22 2014, 9:49am

Looks like T.co will be down for a while. I'm going to postpone the blogpost until the problem is solved.

Jul 19 2014, 6:26am

Hmm... My friend, who generously let me use the server space for T.co is on holiday, and I can't reach him. :(

Jul 19 2014, 6:26am

Hmm... the website and login server seem to be down. I'm working on it!

Jul 17 2014, 1:58am

Caves in Olvand: why and how, pt. II T.co

Jul 13 2014, 3:58am

WHOA! Out of nothing, player 'Undaunted' has managed to match Kaytavo's #1 score: T.co

Jul 10 2014, 1:15am

My next focus: caves! T.co

Jul 5 2014, 4:13pm

Rewrote the world generation code. It just generated 10.000 worlds in 8 seconds. Awesome.

Jun 29 2014, 3:17am

Help picking a name for Olvand v11.0! T.co

Jun 28 2014, 12:44pm

Released Olvand v10.2, invited 100 new playtesters, and moved my own testserver to Linux. It's been a busy day, and it's only 12:30h.

Jun 22 2014, 6:33am

Embed Buttons

Promote Olvand on your homepage or blog by selecting a button and using the HTML code provided (more).

Olvand Olvand
Olvand
Statistics
Rank
598 of 22,756
Last Update
4 days ago
Watchers
514 members
News
97
Reviews
20