An implementation of a the classic "Snake" game, with a big dose of Herbert/Lynch dressing.
New in 0.3!
- 2 player worm-on-worm combat!
- Computer players! Up to 4, in addition to human 1P/2P worms
- Mode selection at the title menu for all that
- Dead snakes now decay a little bit for gritty realism
- Colorful snakes and random alternate snake segmentation patterns
- A few additional sound effects for UI and game actions
- consume the spice mounds
- don't run into your damn self
- arrows to change direction
- esdf for player 2
New in 0.2:
- sandworm spawns with random pre-set color palettes
- added periodic off-color segments to communicate movement better
- new spice mounds show up with a short animation
- music is now a full looping 3-channel excerpt of the Lynch film soundtrack
- sweet crash noise at game over
- secret support for extra AI players, but it's a bit rough to actually show off yet
Stuff I'd like to do yet:
- implement a "dive" mechanic so that the worm can navigate at two different levels (diving under or sliding over itself)
- maybe some little bits of animation in worm mouths, shifting sands or sandstorm layer
- maybe have little spice harvester float down toward the spice mounds
The AI is surprisingly uncomplicated, too -- mostly it's just really good at not making unforced errors, so when given the choice between (a) colliding with a piece of snake and dying or (b) changing direction and not dying, it'll always do the latter. And unlike humans, it's never a fraction of a second too slow, so it always makes the turn on time.
It doesn't have any other forecasting ability, though, so it'll dive right down a one-tile-wide dead-end without a concern, which is how you see a lot of 'em die if you let a the AI run a bunch.
It also hunts for spice in a really rudimentary way: if it crosses a row or column with the spice mound in it, it'll then attempt to turn onto that row/column if its safe to do so, picking the direction (up/down, left/right) at random, so often it'll try to take the long way around to a mound. But the randomness helps keep it from getting stuck in loops too often.
I have ideas for how I could build a better worm AI, but in practice I find that (at least at the default speed, and I'll probably add speed selection to the menu at some point) I can't really out-twitch the AI even if at lower speed I'd be able to out-think it. So beefing up the AI isn't a high priority.
I can't wait to try this against another human, but the AI is pretty fun. I realized I have probably never played a snake game where I wanted to be longer . It's always more "oh god I'm too long help me I'm going to eat my tail by mistake". Yet in this game it's kind of necessary to be somewhat long if you want to trap your opponent, especially against an AI that will always out-twitch you.
If you add more complex mechanics like diving you might have to adjust the default speed a little to make it easier, but I guess with speed controls it wouldn't matter too much.
Log in to post a comment