GP2X "adsorb" - A Wip Osmos-Clone


ledow

Member
Joined
Jan 6, 2008
Messages
430
Age
44
Location
UK
Website
www.ledow.org.uk
Just to announce that I'm working on a new GP2X game (Pandora really doesn't interest me and anything GP2X can be put on the Wiz easily anyway - always cater to the lowest common denominator! :p ).

I've called it "Adsorb" (deliberately, before anyone points out that I can't spell "absorb"). It's an Osmos-clone / extension. For those that don't know Osmos (which I bought on Steam a few weeks back and think is *brilliant*), you are a circular blob in a large space of other circular blobs. You can propel yourself by pushing some of your mass in a direction (which makes you move in the other). When two blobs touch, whichever blob is the larger starts to "suck" on the smaller blob and steal some of its mass. The idea is to absorb all the other blobs until you are the biggest, while avoiding being eaten by the larger blobs.

At the moment, the game has working gameplay. I'm not saying that it's exactly like Osmos (I'm not trying for that) but it has a fun gameplay even at this primitive stage - too fun, because I keep wanting to play it rather than code it! It has 2d-only graphics (not the extremely fancy graphics of Osmos which use OpenGL shaders and all sorts by the looks of it) but you wouldn't really notice. The physics are in place, if a little "bouncy" (if you hit a small blob at high speed, it goes ZOOMING off, but not ridiculously so), but that can easily be toned down as I refine the gameplay (there's nothing like having a random "Kludge-factor" in your code for things like that!). It has a large play area, pans around it perfectly. It will need some optimisation before it's ready for the GP2X, though, but nothing too drastic I hope(the current code is floating-point-arithmetic- and blit-heavy but there's no reason it needs that).

I started the project mainly because I see good potential in the game - multiplayer is one idea (one player using the joystick, other player using buttons) and Osmos itself uses several gameplay types (where the blobs are planets in orbit around a gravitational sun that pulls them in, where the blobs are static in a field and you have to become the biggest, where some of the blobs are "intelligent" and avoid / chase you, etc.). It's nice to have a project where you can say "Oh, I could add this" and just make minor changes to a larger codebase to add totally new elements to the game. Ideally, I see some sort of cross between Osmos and other games, like Liquid Wars and things like that, but more and more modes and options are my main aim.

I've only been working on it for a few days of actual coding time but I have the basic game running - you can control one blob, which ejects matter, the other blobs roam the play area randomly, collisions are simulated physics collisions, mass will transfer between blobs when they contact, and it detects when you're the biggest blob. It only needed about 600 lines of C code to get that far, so I don't see any problems with being able to finish it. Already it just *feels* smooth. I'd call it "playable" in the cheap-Flash-game sense - something you'd pick up and play but nothing with any real depth just yet.

Someone was asking about GP2X games so I just wanted to get word out that, yes, I'm working on this new game for the GP2X (F-100 at that, so no touchscreen necessary!). I'd post a screenshot but it's still in debugging and a screenshot really doesn't do it justice - a movie might, though. Also, for the moment, I'm using an image file for the blobs that I can't distribute (but can be easily replaced). I can probably hack up a wireframe version for now if anyone really wants to see it, but it's not very interesting to look at yet.

I'll try to keep people posted as I progress.
 
cce said:
So no progress is made? So no pocket-Osmosis? I am really eager to try this one out because I think it sounds awesome!

Progress is still being made, just not loudly and in public, and I have other projects too (not to mention a work and home life!)... I've got to tie lots of things together to make it into an actual game and I'm trying to resolve some physics explosions (tiny little movements near certain borders of large objects can cause the whole "universe" to explode into a mess of fast-moving blobs - it's because the mathematics blows up at that point and I need to hunt down such corner-cases before I can continue). I can't quite work out how Adsorb manages its mass-transfer when two objects touch... (i.e. how much to transfer, how quickly, what to do as the objects grow/shrink, how to handle multiple-collisions, etc.) I can think of a million different ways it *could* be doing it but they each have their problems - I may have to just pick one and workaround the problems that I know it will have. As it is, it feels similar to Osmos's mass transfer but there is a bit more movement of the objects that touch (so there's a slight "ricochet" / snooker-ball effect that's present in the original game... I suspect Osmos doesn't use completely accurate physics). Small objects in the universe just do not stand a chance against fast-moving large objects at all... maybe that's just how it has to be.

Basically, the game "works" now (apart from that physics bug which I can dampen just by spotting when it starts and "losing" some mass from the universe, but I want the physics to be more accurate than that) and has "gameplay" similar to Osmos, and adding new features won't be hard at all (e.g. I can add missions, levels, moving universes, "seeker" blobs, extra gameplay elements, etc. in now if I wanted - they are literally a handful of extra code each). The AI is pretty simple for those moving blobs at the moment - it just looks for a blob that's smaller than itself and that it "thinks" it can reach in time... it's pretty good as an opponent already.

Graphics are still primitive, but that hardly matters. Haven't sourced any decent sounds to use, but that's the last thing I'll be looking at. It'll need a little more optimisation before it's playable on GP2X but faster consoles should have no problems at all. I've done a lot of optimisation on the existing system (so nothing you would see in a screenshot) so now the speed is much more dependent on how many unique blobs are on-screen, rather than exist in the universe. A screenshot currently looks like a bunch of coloured circles on a starfield background - not very exciting (although, internally, I use some of the graphics that Osmos uses and it's pretty cool to see the graphics work like that... just a matter of finding some nice, perfectly circular graphics with a free-use licence... some amateur astronomy images of galaxies and things like that work really well). All the "action" is in the feel and the motion of the objects, and what happens when they touch.

So, I can't put a date on anything, but things still move along, just not in the public eye. I don't want to get everyone's hopes up of it being released soon, so I can only tell you where I *am* not how much I think I have to do before it's finished and I release it.
 
Last edited by a moderator:
Back
Top