Wumpus Wump You
Wumpus Wump You
A proof-of-concept for a randomized game with an undirected graph. I'm considering taking this game in a couple different directions, but I think this engine is a good base. I'm happy with the auto-mapping and how extensible this format could be. Might take some iteration!
In it's current form, it is very much just Hunt the Wumpus, but I hadn't seen a nice implementation of the non-grid Wumpus (especially with automapping)!
Controls
- Click and drag map background to pan
- Scrollwheel on map to zoom in and out
- Click and drag map nodes to rearrange them
- Click buttons to do actions!
- Shift+click or double click nodes to lock them in place
- Shift+R to start a new game
Tips
- You can hear bats from 1 room away.
- You can feel a draft from a pit 1 room away.
- You can smell the Wumpus from 2 rooms away.
- Use deductive reasoning to minimize risk!
Status | In development |
Platforms | HTML5 |
Rating | Rated 4.7 out of 5 stars (16 total ratings) |
Author | gate |
Genre | Puzzle, Strategy |
Tags | Exploration, Horror, hunt-the-wumpus, Retro, Roguelike, Short, Text based, wumpus |
Average session | A few minutes |
Languages | English |
Inputs | Keyboard, Mouse |
Accessibility | High-contrast |
Development log
- v0.0.3 UpdateMay 02, 2021
- v0.0.2 UpdateApr 30, 2021
Comments
Log in with itch.io to leave a comment.
This is one of my favorite terminal games. Glad to see this as a smooth browser game, good job!
i'm obsessed with this game. 10/10; would recommend
:)
I love how elastic the moving the map feels. Once I figured out the puzzle (I missed the tips section) I just started moving around the mess that was my map. It has the right amount of elastic to respond to what I want and rigid enough to keep the other side in place
Yeah, definitely had to fiddle with the exact numbers a lot, but the heavy lifting is done by the d3(-force) library. Check it out if you're a JS dev! https://github.com/d3/d3-force
These elastic balls aren't that difficult to program. I do this all the time. After playing World of Goo, I reprogrammed the core gameplay in at least 5 languages/engines.
Basically you just need to do this for every connection:
fn apply_connection_force(ball1: &mut Ball, ball2: &mut Ball, goal_distance: f32, force_factor: f32) {
let diff = ball2.pos - ball1.pos;
let dis = diff.magnitude();
let dir = diff / dis;
let force = dir * (dis - goal_distance) * force_factor;
ball1.vel += force;
ball2.vel -= force;
}