Latest Uploads
King Salmon

Pakz

Snooker

Jayenkai

You've ... o have you

Jayenkai

Merry Xmas

Jayenkai

RCT Classic on iOS

Jayenkai

Oops

Jayenkai

Back to HoboBen's Blog ( Created 20 May 2010 | Last Edited 24 May 2010)
Development Diary : WIP: Hero Extant
So here's what I've spent the last few days on...

Highslide JS

Generates a random fractal landscape, simulates temperature bands, wind & rain, then rain water flow leading to lakes and rivers, then decides what terrain type the resultant tile is based on temperature, rainfall and elevation.

If you'd like to see the generation process for yourself, you can download the current version here (currently for windows). Note that the menu options aren't actually applied yet, so just hit enter twice to skip straight to world generation. (Note: takes about four minutes!)

Highslide JS Highslide JS
Highslide JS Highslide JS
Highslide JS

Highslide JS

Highslide JS Highslide JS





ToDo:
World gen isn't quite finished, the various races need to be born and then populate the world as some simulated random history unfolds, e.g. founding new cities, building roads and trade routes, cities growing, wars & allainces between races or factions, conquering or raiding cities, kings dying and having heirs, kings being dethroned, etc.

Only at that point will I let a player jump in and play.

It takes a long time to generate a world, but this needs to be done only once and then the player can play several games (the history will persist, so what you did in a previous game may be notable history in the new game).

Very much inspired by dwarf fortress (basically I'm hoping my game will be what DF would be if all the development was focused on adventurer mode instead)

Latest Comments

Posted : Thursday, 20 May 2010, 06:17
JL235


Looks very nice and interesting. I've always liked simulated world kind of games, like the Elder Scrolls series.

One suggestion, your rivers are too straight. You should add meandering river generating. Even if it's just making them randomly curve from side to side along a straight path (based on size and force), it'll make them look 1000s of times more realistic.

You might also want to generate multiple weather patterns, and switch between them over time (but don't give them all equal amounts of time). i.e. for simulating changing seasons.

Homepage : http://www.StudioFortress.com
Posted : Thursday, 20 May 2010, 06:24
HoboBen


Thanks, yes, I was extremely surprised when I read on wikipedia that rivers don't always take the easiest path of finding the lowest elevation. I know the material of the rock they are channelling through can affect things but it's doesn't seem to be the main factor.

I'd like to add a more meandering pattern but I'm not sure how to best to realistically (rivers are frickin' complicated!). Perhaps just arbitrarily randomly curving will be realistic enough.

Posted : Monday, 24 May 2010, 06:35
HoboBen


Took a whole 1.5 hours to compute, a nice big 2048x2048 map!

400kb JPG

For each pixel draw a 16 by 16 tile and you've got one giant world!

(Still haven't fixed the rivers yet; indeed they are painfully too straight)

Posted : Monday, 24 May 2010, 07:26
Jayenkai


That's fantastic! Although, I can't help but notice Mr Sad, sat to the left of the brown area!

Fix those rivers, then speed it all up, and you'll have a great little pseudo random quest generator!! Hop to it!

Homepage : http://AGameAWeek.com
Posted : Monday, 24 May 2010, 08:57
Mog


This is great! I can see the DF influence. Can't wait to see what it evolves into

Homepage : www.fearthemongoose.com
Posted : Monday, 24 May 2010, 10:39
shroom_monk


I love the idea, particularly as I've played quite a bit of DF.

With the straight rivers, is it because you're making them move up/down/left/right by a random amount each pixel, so they're averaging out straight, or are you using a more complex algorithm? I recall Phoenix posted something about more random generation a little while ago (Perlin Noise). Would that make them more curved?

Posted : Monday, 24 May 2010, 11:03
JL235


Maybe you should also allow an shallow-ness next to the rivers. Then you can half half-river pixels around them, and it'll look smoother to create diagonal rivers.

Homepage : http://www.StudioFortress.com
Posted : Monday, 24 May 2010, 12:58
HoboBen


Aw, cheers!

@Shroom - the rivers look for the quickest possible downhill path, finding the adjacent tile that gives the largest drop in elevation. Mathematically sound, but not realistic! I think adding a sine curve of (randomly?) increasing amplitude would probably do the trick.

@DD - thanks for the idea, it would probably improve the preview render. When you're actually playing each pixel will be a whole tile so it would be less noticeable, but yeah, definitely worth doing for the preview.

Posted : Monday, 24 May 2010, 20:00
mindstorm8191


Those maps look quite nice. Yes the rivers all look a bit too straight. Something you should consider in regards to rivers, they actually carve out a longer path over time. Consider a river making a curve to the right. The flow of the river will hit the left, longer wall, carving out the shore over time, and the right side will collect mineral deposits, eventually coming above the water level. So the longer a river has been around, the more wavey its path becomes (and the longer its total length is).

Good luck, it looks great so far!

Homepage : http://vesuvius.ismywebsite.com
Posted : Wednesday, 26 May 2010, 22:35
Mog


It'd be costly to simulate full river dynamics, but maybe you can try defining a start point, and then over x amount of iterations, barely curve it around like Mindstorm / Joe suggested in a randomly chosen direction, then reroll how the river curve, putting the previous direction at a higher odd as to prevent it looping back into itself.

Hopefully that makes sense! Regardless, I find this to be beautiful work. Keep it up.

Homepage : www.fearthemongoose.com
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 549|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Latest Posts
Hurricane Doris vs Shed Roof
steve_ancell Wed 20:23
PIP Crap
Jayenkai Wed 16:45
What Have You Done? - Feb 2017
rockford Wed 12:23
SSL Options
Jayenkai Wed 11:31
AGameAWeek : 2017 - Part One
Jayenkai Mon 08:35
Nintendo Switch Indies
rychan Mon 02:48
UWP Languages
rskgames Sun 05:05
Switchmas
rockford Sun 04:24
Happy Birthday, Mrs Rockford
rockford Fri 05:30
Pokemon Go
Jayenkai Fri 04:46
More

Latest Items
Snippet : Wall Tracing on Random Maps (rpg)
Pakz Wed 18:56
Blog : mini project
Jayenkai Tue 06:23
Snippet : Path Following
Pakz Mon 16:25
Dev-Diary : PS2 to N64 Adapter
spinal Mon 01:53
Snippet : Flowers (Jan 2017)
Kuron Thu 01:13
Showcase : Clusters of Hex
therevillsgames Mon 15:01
Article : Maths 101 - Episode 1: Basic Trigonometry
shroom_monk Sun 14:07
Article : Maths 101 - Episode 5: Line Intersection
shroom_monk Sun 14:02
Dev-Diary : Normals and Dot products
Pakz Sat 20:37
Pets : Molly On The Couch
Jayenkai Thu 04:32
Showcase : Between Space
Pakz Sun 12:55
Snippet : Additive Particle Flames
Pakz Fri 18:12
Snippet : Maze 2d - Recursive Backtracker
Pakz Sun 07:34
Snippet : Bush fire maps
Pakz Wed 09:43
Woot : My Music
Jayenkai Sat 14:20
More

Who's Online
steve_ancell
Wed, at 20:27
rskgames
Wed, at 20:21
Pakz
Wed, at 19:43
Jayenkai
Wed, at 18:27
9572AD
Wed, at 18:26
Evil Roy Ferguson
Wed, at 17:04
rockford
Wed, at 15:56
shroom_monk
Wed, at 15:01
HoboBen
Wed, at 14:40
Andy_A
Wed, at 12:43
Link to this page
Site : Jayenkai 2006-Infinity | MudChat's origins, BBCode's former life, Image Scaler.