Voiid by Ace17
A simple 3d puzzle platformer with a dark mood The more levels you pass, the worse it gets ...
Controls: - Move: WASD / direction keys - Look around: mouse - Jump: space - Panic: press 'R' key to restart the level (shouldn't be needed)
Made with: - Custom C++ Engine / GNU Make / Emscripten / vim - Blender / Gimp / Genius Tablet - Audacity / sfxr / Access Virus TI synth / Axis 64
IMPORTANT: there's a mouse locking issue, coupled to a keyboard locking issue. To avoid both, click on the "play" button (this will lock the keyboard), then click on the "fullscreen" button: this will lock the mouse.
| HTML5 (web) | https://gamejolt.com/games/voiid/301268 |
| Github | https://github.com/Ace17/voiid |
| Original URL | https://ldjam.com/events/ludum-dare/40/voiid |
Ratings
| Overall | 482th | 3.1⭐ | 22🧑⚖️ |
| Fun | 543th | 2.825⭐ | 22🧑⚖️ |
| Innovation | 663th | 2.05⭐ | 22🧑⚖️ |
| Theme | 654th | 2.316⭐ | 21🧑⚖️ |
| Graphics | 469th | 2.95⭐ | 22🧑⚖️ |
| Audio | 436th | 2.575⭐ | 22🧑⚖️ |
| Mood | 296th | 3.158⭐ | 21🧑⚖️ |
| Given | 18🗳️ | 14🗨️ |
The slopes are definitely painful to climb, this isn't a design choice ; I didn't have time to implement proper collision response, that's the drawbacks of using a custom engine :-)
Clicking on 'fullscreen' did fix the mouse-locking issue for me as well.
First, on Firefox Quantum I have 403 Forbidden.
Second, on Chrome, the fullscreen mode reduces the field of view (square in the center of the screen), and your solution doesn't solve the problem of mouse locking anyway.
Any idea to make it playable?
The field of view isn't "reduced" by the full screen ; the game screen is actually a 1024x1024 square (whether fullscreen or not). So from what you're describing, it seems there's no issue with Chrome.
As for the "Firefox Quantum 403 Forbidden" issue, I think it's related to the interaction between your browser and Gamejolt ; my game doesn't actually know about the network.
Greak job overall
The graphics really worked for me though. Reminded me of my early days of 3D in GM6. I look forward to the other games that will come out of your engine!
As you hinted, this game is ridiculously uncomfortable. From the start colors to the really upsetting music to just how goddamn close you are to the ground, all this game made me want to do was get to the end as soon as possible. Real good job with the mood.
Edit: wanted to make it clear I meant uncomfortable in a good way. Like a good horror game!
About the music, it seems it's messed up on Chrome.
The "soundtrack" is rather light on high frequencies, so if you're hearing crackles, pops, or static, it's an issue, not the artistic intent :-)
Also, I feel justified again for the decision I made for my engine. I tried some quick collision code, immediately ran into a ton of edge cases, thought "Nope" and integrated AmmoJS (Bullet physics) instead ;) Is your engine code online somewhere? Would be nice to see how you approached some problems.
Oh, the game: the harsh sounds and architecture I feel worked well. Gameplay was simple but clear and I made it to the end. Cheers all around.
(btw, just saw the source code link now, my bad)
Actually, the first thing I did after playing the entry "Disintegrate" ( which I strongly recommend! readers: go play it, it's ~15 min of satisfyingly uncomfortable gameplay ) was to go check out how the physics were dealt with ; when I saw that "ammo.js", I thought "ok, seems nobody solves this problem by themselves, maybe it's *really* hard after all :-)".
In Voiid, the code for the collisions follows the same algorithm as the Quake games (trace a AABB through a list of convex polyhedra). Wall sliding is implemented on top of this, but I didn't have time to implement real wall sliding during the compo, so I cheated, and stuck to XYZ axis-aligned sliding (which is why sliding works on the ground or on walls).
However, I finally got generic sliding working now, and the code is simpler than I thought. It was certainly hard to get right, I guess this represents the investment for not having to drag a dependency on a complete physics engine :-)
I'd be happy to share the updated code on github if anyone is interested!
As for the Penumbra games, they are clearly somewhat older but they showed the initial experimentation of the studio. In Amnesia and Soma, they made the player essentially helpless which makes those games even better. Amnesia can be just plain old terrifying and SOMA is a masterpiece of atmosphere and story and it even ran at full quality and a good (enough) resolution on my 7 year old iMac, so it should work fine anywhere. Don't miss it.
The sphere/convex collision detection code is at: https://github.com/Ace17/voiid/blob/master/src/convex.cpp#L18
And the wall sliding code is at: https://github.com/Ace17/voiid/blob/master/src/entities/move.cpp#L3
As you can see, it's not very big, and mostly adapted from Quake.
As long as I don't need the player to move or stack arbitrary game objects, I should be OK :-)
(what's still missing is the stair-climbing code).
A playable version of the game using the latest code is available at: http://code.alaiwan.org/games/voiid/
(at the moment, there's no new content, only new code).
If anyone has questions on how this works, or suggestions about how to make it work better, don't hesitate to contact me ; I'd be very happy to talk about it!
I just finished "Penumbra: Overture", this was quite an experience, loved it!
What's even cooler is that the full game (engine+gameplay) is free software (available on github), written in clean C++! (it uses a third party physics engine). It seems there are lots of things to learn in this codebase, especially about the architecture of the code, which is impressive.
I won't miss Amnesia and Soma (also bought them). I agree, making the player helpless is a good move. In Overture, as soon as you find out how to kill the dogs, they mostly stop being terrifying and just become a repetitive nuisance.