blob by pknowles

[raw]
made by pknowles for LD24 (COMPO)
Requires WebGL. Tested with firefox and chrome with HD5850, GTX670, GTX560 and Quadro4000.

The submission (goanna.cs.rmit.edu.au/~pknowles/blob-submit/) had some bugs, which didn't appear on my 660, so I've put together a "post-compo version" which should give an idea of what the game was meant to be.

== The Game ==
You are red. Only red blobs can be moved by you.
The aim: to eat food (green), reproduce and attack blue, becoming the dominant blobs!
Larger red/blue blobs will destroy smaller red/blue blobs.
Eating a green blob will duplicate the eater, with size deviation - evolution :)
You must balance eating and attacking (to cull your smaller blobs), encouraging evolution of larger red blobs.
The game ends when you lose too many blobs or destroy a significant portion of blue blobs.

Sorry to those of you without the hardware to run this. I built the game around my interest in GL shaders. The game itself runs almost entirely on the GPU and can happily handle blobs on the order of one million.

== Controls ==
Left drag to move red blobs. You "draw" force.
Scroll to zoom (not entirely necessary).
Right drag to pan.

== Tech Details ==
Each level is randomized at launch with perlin noise. I compute a signed distance field for collision detection with the level. Blobs move with a fragment shader, writing to a double buffered a floating point texture. Interaction is achieved by additively drawing density, velocity etc on to a texture which other blobs can read (These can be viewed by pressing tilde "~"). I count the number of remaining blobs similarly to mipmapping before reading a very small texture back to the CPU. The blobs are rendered by raycasting a density texture, similarly to parallax mapping, applying transmittance and environment mapping.

Ratings

Coolness 56% 3
Overall 2.35 663
Fun 2.26 596
Graphics 3.30 227
Innovation 3.15 247
Mood 2.14 604
Theme 2.05 652

Feedback

midgard
27. Aug 2012 · 02:48 UTC
Doesn't working, there is a bug when you start the game (at least in chrome).
csanyk
27. Aug 2012 · 02:52 UTC
I also get an error when the game starts in Chrome. Couldn't play it.
chorinator
27. Aug 2012 · 02:53 UTC
Could't play. The game does nothing
sclark39
27. Aug 2012 · 03:00 UTC
Couldn't play :(
Error when it first starts, and then clouds.
Geti
27. Aug 2012 · 03:02 UTC
Couldn't create GL context, must have too shitty a GPU. would've been nice to make a lofi version with simpler/no shaders for us hardware-poor folk ;)

screenshot looks A+ though.
davidwparker
27. Aug 2012 · 03:17 UTC
Couldn't play.

OSX 10.6.8: Chrome Version 21.0.1180.82: "Could not create GL context."
DavidErosa
27. Aug 2012 · 03:18 UTC
OSX with Chrome Versión 21.0.1180.82. Intel HD3000 just in case :)

"GL Error 1286: <unknown> after draw <no stack>"
🎤 pknowles
27. Aug 2012 · 03:24 UTC
Apologies for the bugs. I plan on fixing/completing this during the week. There's some pretty weird WebGL quirks such as not being able to read a non-power of 2 floating point texture from a shader. It also seems if a shader has too many ops, it simply doesn't run without giving any error indication.
Oreganik
27. Aug 2012 · 03:27 UTC
Couldn't run in Firefox or Chrome, sorry.
mdkess
27. Aug 2012 · 03:58 UTC
On Chrome, on Ubuntu 12.04, the game just shows the black and white screen - no colored blobs as your screenshot suggests. I didn't leave a rating, but let me know if I can help you patch this.
CataclysmicKnight
27. Aug 2012 · 03:59 UTC
Same thing, it said something about a stack issue... :(
robcozzens
27. Aug 2012 · 05:04 UTC
In Safari it couldn't create the GL context or something.
Sergey Mohov
28. Aug 2012 · 17:14 UTC
Yeah, can't play it =\
DevoreUK
28. Aug 2012 · 21:40 UTC
Wouldn't work for me. Chrome, "GL Error 1286: <unknown> after draw <no stack>"
lurkingshadow
29. Aug 2012 · 04:06 UTC
same as everyone else.
TobiasNL
29. Aug 2012 · 11:50 UTC
Nope, doesn't work here as well. Bummer!
Benjamin
29. Aug 2012 · 11:59 UTC
I can't play either :-/
ggiraldez
30. Aug 2012 · 17:56 UTC
The game starts, but I can barely play. Depending on the starting configuration, blue reproduces too fast and eats all the food, or kills me in less than 1 second. Also, even if there's food and some of my blobs around, when blue reaches a certain level the game tells me I've lost. Alert popup for that is very annoying too btw. Anyway, the concept is interesting, but in its current state is no fun at all.
🎤 pknowles
30. Aug 2012 · 18:37 UTC
Thanks for the feedback :) I've only just updated it. I'll keep tweaking.
lesterpig
31. Aug 2012 · 13:46 UTC
Work with me ! A very nice game, but really hard ;)
echa
31. Aug 2012 · 15:27 UTC
Very intresting artstyle!
SteelRaven7
01. Sep 2012 · 06:48 UTC
Really cool artstyle, but it felt like every single game was decided by if you could reach the green goo without dying first.
MurrayL
01. Sep 2012 · 22:41 UTC
It reminded me a great deal of the game 'liquidwar', which is no bad thing.
Gareth Jenkins
13. Sep 2012 · 18:38 UTC
Great stuff -- love the look and feel. Could do with some audio to compliment it.
Frozen Fractal
17. Sep 2012 · 13:26 UTC
I like the graphics, in particular the levels -- are they procedural? The gameplay could do with some tweaking; if you can reach the green it's straightforward, and otherwise you die quickly, and the blue "AI" doesn't seem to do very much. The concept is great though, and it would work really well on a touch screen too.

I would really like to know more about how you did all this. Maybe you'd like to write a blog post?
🎤 pknowles
18. Sep 2012 · 07:35 UTC
Yes, I'm contemplating doing an android version, but it uses floating point textures for the particle system which makes porting it really ugly. I've only done a few tests so far.

I haven't got round to implementing AI yet. At the moment blue movement is purely random, but the data for pathfinding and unit density is available.

The first thing I want to fix is the blob interactions (so the evolution part of the game actually works). I really want min/max blending for this but like so many GL features it's missing in WebGL.

I'll definitely continue to work on the game. I'll put a link on the same page with some more in-depth tech details when I get time.

Thanks all for the feedback :)