Sick weekend: terrain generation

This weekend I’m sick and it sucks. As good a time as any to try myself at terrain generation.

I’m a lousy programmer and it’s the first time I ever dabble with this but here’s the thought process I went through.
Also, It’s not finished, but I figured I’d give myself a motivational boost!

The first step was for me to draw a grid and use the vertices’ coordinates to create triangles. Triangles are then combined into a single mesh.

  • The lines and yellow handles are just there as visual guides.
  • I used coroutines to show the processes step by step (useful for debugging and to make fancy gifs)
  • The two pics below show some various steps in the work. I gradually simplified things and replaced coroutines with methods to go faster.

gen02

gen

Up to this point I was adding height noise with a basic Random.Range but switched to Perlin noise to create the terrain-like topography . Thanks Mr.Perlin! <3
I rounded the height values to int to achieve the “ground ladder” effect.

gen03

Then some fanciness. I created a basic texture with the terrain color and figured out a basic algorithm to match the mesh’s vertices uvs to the texture.

terra

By far this was the most painful and not funny bit. And my algorithm sucks.

  • I need to remove the “spiky color corners” (tech-savvy language FTW)
  • I need to figure out how flat shading works to make this look appropriately old-school

gen07

I also added an arbitrary water plane.

gen05

Same thing with noise not rounded to int.

gen06


Quick note/question:

I’m quickly limited in mesh vertices count. The limit is set at 65000 meaning that a 275*275 units terrain is already out of bounds. I guess the way to fix this is to generate the terrain data and when creating the mesh, switch to a new mesh when the vertex cap is reached?

Generated playable levels

Some more progress on the level generation front. All levels generated seem to be playable.

At this point the downside is these levels not having a lot of “character”. It would make sense to add some kind of generation profile to induce more variation (columns, long platforms, clusters, etc.). Don’t know if I’ll pursue this further though since the prototype it’s working with is not very satisfying.

proc_second

Jamulus – OCVR gamejam

I was quite happy to see some people enjoying Jamulus. Considering Olivier Lhermite and I developed this small (neck-breaking) game in less than 36 hours, this is super heartwarming.

Jamulus is on the 16th spot in the video below. And by the way, those other games seem absolutely great. I wish I had an OCVR device myself :-p

There will be blood!

Still playing around with some bomberman-ish gameplay. The progress is not that convincing as I’m still trying to figure out this working-on-my-one thing.

It certainly feels like my brain is still recovering from the fatigue that I built-up while working on Creatures (my mates there are still working as hard as they can, keep it up!)  but it’s fun to actually get my hands dirty again.

I added some enemies, more space, and blood puddles. It took some time for me to understand the nuances of the sprite-based collision and I’m still getting plenty of weird things like the character not triggering a collision when colliding with a monster from anywhere else than the front (note to myself;  keep this bug in mind if I end up making an enemy only dangerous from the front in the future).

lame_bomb

I kind of like Game Maker yet I’m finding myself trying to code components and it doesn’t seem to built that way. I still have to figure out what the do’s and don’ts are but I find that the handling of scripts is quite cumbersome: getting an overall view of an object is not really possible. and I’d like to display the code of a script directly in the object window. Then again, maybe I’m just missing something.

*EDIT*: It appears I’m not the only one wishing for that.

Still, just like with Unity the community is huge and you can find an answer to almost anything with a google search which is really super helpful.

I’m also trying to make the explosions more boombastic but I’m not quite there yet. I’ll try adding seizure-inducing screen flashes.

bomb02

Next step: figuring how to integrate some general content flow. And maybe multiplayer as it’s the easiest way to tweak the bomber’s gameplay.

Gamemaker

Messing up a bit with Gamemaker. It’s pretty simple to get results and there are some very useful functions out of the box. Huge community as well which is helpful!

I’m also the last person on earth to have fun with Vine.

Where to?

After 4.5y of very exciting work at Fishing Cactus, having nothing to do feels kind of weird. So to start somewhere: 

  • Get to check out some technology. I have some bearings in Unity already so Gamemaker seems like a good choice
  • Start to prototype some very small scale concepts.
  • Set up a basic website for a couple of global game jam games. They need some fixing before being sent out there and hopefully a website will help in getting everyone involved motivated to polish them up a bit.
  • Apr. – Jun. : move to Tokyo for three months with my wonderful GF. This is super exciting.