Page 1 of 3

[Game] Australopithecus [Tech Demo]

Posted: Thu Jul 23, 2015 19:24
by BobbyBonsaimind
The long term goal of Australopithecus is to provide a vast, fun to explore and hard to survive in world. The player should be dumped into a wild world which makes surviving quite hard, leaving the camp and going into the wilderness should always be an adventure.

The main source of inspiration are such games like Minecraft, Dwarf Fortress, Don't Starve, Diggles and similar games.

Australopithecus is an extinct genus of hominids that lived 4 to 2 million years ago.

Currently there is only the mapgen, a landscape is generated without any decorations (mostly because of #2151). You can get some tools from the empty crafting grid.

The mapgen takes between 2 and 4 seconds to generate a block on my machine (Core2Duo and LuaJIT), so it might be considerable slower for you, be patient.

There is no real roadmap, I'm adding stuff as I go.
+ Spoiler
For further information, please see the README file in the repository.
+ Spoiler
+ Spoiler

Re: [Game] Australopithecus [Tech Demo]

Posted: Sun Jul 26, 2015 00:45
by Inocudom
I enjoy seeing bright minds such as yourself creating things for Minetest. Do keep up the good work.

Re: [Game] Australopithecus [Tech Demo]

Posted: Sun Jul 26, 2015 08:35
by Dragonop
Looks awesome, hope to see updates!

Re: [Game] Australopithecus [Tech Demo]

Posted: Mon Jul 27, 2015 03:54
by paramat
Mapgen looks beautiful.

Re: [Game] Australopithecus [Tech Demo]

Posted: Tue Jul 28, 2015 20:13
by BobbyBonsaimind
Thank you all. :)

I just updated the package and the post. There are only two new features. The first is that the mapgen is now placing ramps where appropriate, for sand, snow, ice, stone and rocks. Which obviously changes the look of these biomes. The second is new voice mod, which makes the chat system behave more like a voice, with limited range and the farer you get away the harder it is to understand.

I also fixed a quite critical bug in spawn-usher, which would result in an endless loop. The spawn point is now randomized within a certain radius and there is is still a chance that you'll spawn in a cave, but it shouldn't be too common.

Don't expect an update on this within the next two or three weeks, as I will not be around for that time. Also I'll have to figure out what to work on next...

Re: [Game] Australopithecus [Tech Demo]

Posted: Tue Jul 28, 2015 21:11
by paramat
I looked at the mapgen code but didn't understand it, looks like some clever programming methods are used. When you have time (no rush) i would be intersested in hearing a description of how it works.
The slopes look good.

Re: [Game] Australopithecus [Tech Demo]

Posted: Tue Jul 28, 2015 22:35
by BobbyBonsaimind
No problem, that is fairly easily explained. At first you have to understand that I'm a Java coder, I can't live without my objects, interfaces, hard defined dependencies and well separated structures. ;)

The system behind it is the worldgen mod, which is so far not documented because I am not sure if I will change the API or not in the near future. The core idea is that you register "modules" at a central entity which does all the heavy lifting and management for you, so that modules contain as little logic as possible, and only what they are really doing. So this entity, in our case WorldGen, holds a list of modules which will be invoked one after another. Imagine it like a manufacturing line with different stations, every station does a certain job and all together create the product.

I have attached a simple game/mod that uses the worldgen system and is heavily commented, I hope that helps in clearing it up how the basics work. You can extract it into the game directory and create a new world with it (not much to look at, though).

As for how the system in Australopithecus works, there are multiple steps:
  1. Some setup is done in base.lua. Mostly this is about preparing values for later use.
  2. After that a heightmap is created in heightmap.lua. This is a pure 2D heightmap and is saved in the metadata (and cached).
  3. A second map for the temperature is created in temperaturemap.lua.
  4. A third map for the humidity is created in humiditymap.lua.
  5. bake.lua combines these three maps to create the landscape, and also carves the 3D transformations.
There is a lot of black magic going in bake.lua...a lot! But the basic principle is that the heightmap is used to determine the basic height of the terrain. Afterwards the temperature and humidity are applied, and appropriate biomes are picked for these locations. Now it gets complicated within bake.lua, for speed and better management the system operates most of the time on a "prototype" of a terrain.
  1. The terrain is filled with rock to the height that was calculated in the heightmap.
  2. With 3D noise portions of this newly filled terrain are cut away. This creates overhangs and deep cliffs.
  3. After that, caves are carved into it.
  4. Now comes a really tricky part, we know where the surface is because of the heightmap, but the 3D noise has cut parts of it away, so we need to detect the surface a new. Otherwise we would not be able to place grass as upper most layer, because there would be air where we would want to place it.
  5. The finalization step maps the created prototype into the MapManipulator, together with some voodoo for placing oceans and water.
  6. The last step places the ramps in the world.
Now that looks complicated, but once you realize that all modules are executed in order and that the "set_*" functions are where everything happens (everything else is fluff to make it easier manageable and readable) it's quite easy to look at.

Re: [Game] Australopithecus [Tech Demo]

Posted: Tue Jul 28, 2015 23:28
by Evergreen
Your website gives me a "403: Forbidden" error when I try to access the file.

Re: [Game] Australopithecus [Tech Demo]

Posted: Wed Jul 29, 2015 07:08
by BobbyBonsaimind
Whoops, sorry, should be working now.

Re: [Game] Australopithecus [Tech Demo]

Posted: Fri Aug 14, 2015 23:49
by Diamond knight
the file type wont work for me

Re: [Game] Australopithecus [Tech Demo]

Posted: Mon Aug 17, 2015 16:56
by BobbyBonsaimind
I've added additional file/package formats, so pick the one that works for you.

Re: [Game] Australopithecus [Tech Demo]

Posted: Thu Aug 20, 2015 20:53
by BobbyBonsaimind
I've updated the packages and the post.

The biggest changes are that ramps are now placed also underwater, which yields visual glitches which is ticket #3074. And also more ramps are now placed (a lot more). Speaking of ramps, I've also fixed the oddball texture mapping, so they look a lot nicer now.

The second big thing is that you now receive a set of torches on start. They are currently looking a little bit like lightbulbs, but that's mostly because particle effects are still missing. They can be put out and light back up by punching them. So you can now explore those caves (not that there is much to see down there at the moment), more torches can be received with /get-torches.

Also there are now three new screenshots.

Re: [Game] Australopithecus [Tech Demo]

Posted: Fri Aug 21, 2015 07:38
by Nore
I have to say it too: mapgen is beautiful. However, I am wondering: why are there no grass ramps?

Re: [Game] Australopithecus [Tech Demo]

Posted: Fri Aug 21, 2015 18:50
by BobbyBonsaimind
Thank you.

Yeah, there are actually two reasons for it. First I like the grass/dirt side of the grass blocks, I like to see that there is dirt underneath the grass and I'm also using it to give a feeling of overgrowth (rainforest grass covers more than 2/3, taiga not fully 1/3 and so forth). Now if I'd use ramps for grass I can't see that grass/dirt anymore, because if I'd place it on the ramp it would look odd. The second reason is that it clashes with my idea of vegetation. I'm planning on adding a lot of vegetation, not as in "that's a neat forest" but in "damn I can't see shit because of all the grass". But placing vegetation on nodes does not work, because the vegetation would float in the air. So I either figure out how to place vegetation on ramps in a way that doesn't look odd, or they stay empty, which would mean that they are "corridors" in thick vegetation where nothing grows.

So, it's normal nodes for grass so far. The areas that have ramps will not receive thick, or any, vegetation, so it's "okay" there for me.

Re: [Game] Australopithecus [Tech Demo]

Posted: Sat Aug 22, 2015 07:09
by Nore
Ok, I see what you want to do, I guess it will look less strange then :). Anyway, it looks very promising, I'd like to see next versions!

Re: [Game] Australopithecus [Tech Demo]

Posted: Sat Aug 22, 2015 09:29
by BobbyBonsaimind
There will be next versions unless something very unforeseen happens. Though, I can't promise that it ever reaches a playable state. I've started to create this mapgen sometime last year, but it was only in the last months that it reached a state (both the terrain and the code) that I've become quite happy with it. So it really is a long term project I fear. But it's everything on GitHub and where it makes sense stuff will become an external and easily reusable mod.

Re: [Game] Australopithecus [Tech Demo]

Posted: Sat Aug 22, 2015 15:46
by Dragonop
My actual PC is a potato, and I can't enjoy the game fully, is anybody thinking about making a server with this subgame?

Re: [Game] Australopithecus [Tech Demo]

Posted: Sun Aug 23, 2015 19:21
by BobbyBonsaimind
If there really is interest to have a test server that always operates on the latest "stable" version, I might be able to provide one. Though, I'd need to get some hardware first (I always wanted an excuse to buy a Raspberry Pi anyway), so that may take some time.

Is there interest in this?

Re: [Game] Australopithecus [Tech Demo]

Posted: Sun Aug 23, 2015 19:56
by Nore
BobbyBonsaimind wrote:Is there interest in this?
Of course there is :).

Re: [Game] Australopithecus [Tech Demo]

Posted: Mon Aug 24, 2015 22:40
by Sokomine
BobbyBonsaimind wrote: I'm planning on adding a lot of vegetation, not as in "that's a neat forest" but in "damn I can't see shit because of all the grass".
Ah! Sounds fine. The Eden subgame (also included in Dreambuilder) did something similar and creates a very beautiful landscape with a lot of plant life.
BobbyBonsaimind wrote: But placing vegetation on nodes does not work, because the vegetation would float in the air. So I either figure out how to place vegetation on ramps in a way that doesn't look odd, or they stay empty, which would mean that they are "corridors" in thick vegetation where nothing grows.
You could take the approach I took in moresnows and create extra nodes for the vegetation that adjust to the slopes below and actually start lower than the node suggests. It might even be enough to use special new textures and enlarge them with a scaling factor.
BobbyBonsaimind wrote: If there really is interest to have a test server that always operates on the latest "stable" version, I might be able to provide one. Though, I'd need to get some hardware first (I always wanted an excuse to buy a Raspberry Pi anyway), so that may take some time.
I know that feeling :-) Same here. I'm just afraid that a server running a game with complex vegetation and a lot happening at mapgen time - and thus inviting players to explore ever more areas instead of staying put in one area while using creative - might be a little hard on such a small device.

Re: [Game] Australopithecus [Tech Demo]

Posted: Tue Aug 25, 2015 15:30
by BobbyBonsaimind
Sokomine wrote:You could take the approach I took in moresnows and create extra nodes for the vegetation that adjust to the slopes below and actually start lower than the node suggests. It might even be enough to use special new textures and enlarge them with a scaling factor.
I would have loved to avoid that, though. But it for sure is one possible solution to this.
Sokomine wrote: I know that feeling :-) Same here. I'm just afraid that a server running a game with complex vegetation and a lot happening at mapgen time - and thus inviting players to explore ever more areas instead of staying put in one area while using creative - might be a little hard on such a small device.
I thought the same, so I will get a Cubieboard and see how that turns out. It's similar to a Raspberry Pi, except that it has a 1GHz Dual-Core, 2GB of RAM and most importantly to me, a SATA interface. Which means that I can put the SSDs I have laying around to some good use.

I'm curious where the limits of that board (and my homeline) will be.

Re: [Game] Australopithecus [Tech Demo]

Posted: Tue Aug 25, 2015 17:50
by Sokomine
BobbyBonsaimind wrote: I'm curious where the limits of that board (and my homeline) will be.
Please share your experiences with us once you get it set up! Sounds very intresting. There are quite a few nice little arm boards out by now.

Re: [Game] Australopithecus [Tech Demo]

Posted: Tue Aug 25, 2015 18:36
by Dartmouth
BobbyBonsaimind wrote:except that it has a 1GHz Dual-Core, 2GB of RAM
The Raspberry Pi 2 has 1GHz Quad-core, but only 1GB RAM. But minetestserver runs nicely on it, haven't experimented so much with heavy mods yet though.

Re: [Game] Australopithecus [Tech Demo]

Posted: Wed Sep 02, 2015 22:16
by BobbyBonsaimind
While I'm waiting for the Cubietruck to arrive, I've been quite busy. Many small changes, but for tonight I've been flying around some terrain for over an hour to get a good map.

Image

Actually I was kinda surprised how shallow this map is, none of the mountains is higher than ~80, sealevel is at -65. It only got interesting when I moved to the east, the mountains there actually started to climb really fast, reaching ~100 at the edge of the map. The rest is pretty unimepressive, we see a lot of grassland, tundra (the brownish green areas), snowy tundras (the very light brown) and big glaciers (white, including the light blue seas, which are frozen). At the north end we see a glimpse of swamp (the dark green).

There are a lot of flaws in the mapgen as I noticed while creating this map. For example terraces (north/west corner) should not be in a line and they should not appear so often. Also they should fade softly into the surroundings at their edges. I also learned that I managed to flood all caves *again*, and that something must be wrong with the 3D transformation code (which is supposed to cut pits and canyons into the terrain...which it doesn't).

Re: [Game] Australopithecus [Tech Demo]

Posted: Wed Sep 02, 2015 23:24
by paramat
See my comment in the lighting issue at Github for some improvements.

I tried this game last night, it was stunning, although barren the vast terrain and ramps were an amazing experience, i like the mix of cubes and ramps, only ramps would not be as impressive. I found mountains up to y = 512. I find the ramps very suitable for the character of Minetest, but also a profound new experience.