Myopia

Discover the true horror of low resolution gaming

A horror game with pixelated vision. Because there's nothing scarier than playing games at low resolution.

NOTE: This isn't really a game (yet).
Life got in the way of me making a full game. Still, it's a ray caster, and although it's lacking any puzzles or goals, I think the atmosphere is close to what I'm aiming for. I plan to flesh it out and make a proper game soon.

The engine is pretty basic, based on the lodev tutorial: it's a blocky ray caster, with textures and sprites. It's missing things like doors and thin and partially transparent walls. Hopefully it's still interesting though.

What I want this to become
After implementing variable resolution in the engine, I became slightly obsessed with turning it into a game mechanic. Coupled with the distance fog, it started to look like it could work in a horror game. It turned out this wasn't trivial: after showing an early video to a friend, he told me the renderer was broken. With some thought and experimentation, some sound effects and a bit of red tint, it finally started to come together.

Right now I think the mechanic could work well in a horror game, and I have most of the engine already implemented. So I'm going to see if I can turn this into a proper little game, hopefully in the near future.

Controls
WASD: forward/backward and strafe left/right
QE: turn left/right
Mouse move: turn left/right
Click: shoot

You can adjust the mouse sensitivity and Q/E turn speed with the environment variables sensitivity and player_turn_speed respectively. For a rough idea, the defaults are equivalent to running
sensitivity=0.0025 player_turn_speed=0.1 ./myopia.

Comments (9)

voxel
 • 3 months ago • 

ATMOSPHERIC. I got creeped out by the weird enemy thing and it bothered me psychologically that I could never get a clear look at it, even spinning around quickly. For an incomplete game that's pretty impressive in my opinion. The audio is nice and adds a lot, great work!

remco
 • 3 months ago • edited • 

Oh dear … I think my system is a bit out of date. I get:

./main: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./main)
./main: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./main)

… when I try to run it. I thought I could fix it by using the libstc++-6 one that came with another game in my steam library, but 'hilariously' that only seems to contain up to 3.4.25, which fixes the first line in the error, but not the second one. I'll try later with a more up to date system!

toasty
  • 3 months ago • 

Ack! OK, thanks for trying @remco; I'll see what I can do. I'm also working on a web build which would hopefully make it easy for everyone.

remco
 • 3 months ago • edited • 

I upgraded to the latest (Linux) Mint and got it running! … With way too high mouse sensitivity :'-)

Fortunately you can turn witth the Q/E keys as well. Unfortunately, I'm a bit of a klutz (especially when it comes to FPS's) that still makes it very hard to play for me.

It did make it (help) feel tense though! The panting SFX on the game over screen are very effective, for example! Maybe some (more) background noices while playing as well? Though the silence is effective too… but mostly only after the game-over, not so much when you start the game first. (I missed some sound when being attacked as well. The pixel-effect is a nice touch!)

It also felt like the shadows got darker when nearer to an opponent? Something is happening with the lightning anyway. It does make it feel horror-y, so goal achieved :-)

Nice texturing as well! Though I feel like the arm/gun is in another resolution than the rest of the game.

P.S. Linux gamedevs, like the people playing your games in a gamejam when you have aLinux build, usually have SDL2 on their system, but that isn't universal! Keep that in mind when packaging :-) The libstdc++ issue is a bit more involved. You could do a number of things, like also shipping the version people need for your game (and then following the dependencies of what that needs), or try to incude that lib statically when building … or even use something like AppImage (which takes some setting up as well).

toasty
  • 3 months ago • 

@remco, ah, thanks for persevering! I forgot to mention but it's actually possible to tweak the turn speeds - I've written it in the description above. Sorry you had to play on a hyper-sensitive setting :D

Glad you enjoyed the horrorish elements! Yeah, the distance fog increases when you get near that first enemy. It's currently triggered by fixed regions in the game, but I think it makes sense to apply it to the enemies as well. I actually spent ages playing with the different values for this and the pixelation, so I'm glad it seems to work okay :)

Yeah, I've really struggled getting this thing nicely packaged (I hadn't put any thought into it at all during the jam >___<). The last couple of days I've tided things up, removing all C++20 stuff so I can compile on an older OS (to fix the libstdc++ version issue), and some other bits so I can cross-compile for Windows with MinGW. I'm aiming for Ubuntu 18.04 by this evening and maybe Windows tomorrow. Apparently the standard way with SDL is to ship with a libSDL, so I'll aim for that I guess. A lot of work for a tiny jam non-game ;)

yozy
 • 3 months ago • 

It works now, just needed to chmod +x bin/main.

Interesting concept, the pixelation is really cool. Obviously unfinished but texturing and all works really well.

remco
 • 3 months ago • 

@toasty No problem, thanks for the reply! It can be a lot of work to set up, but once you got it going it can stay that way. What I eventually did (for some other jam games) was to set it up so I could just compile my C++ code to web via Emscripten, which has some SDL support as well. Not really that relevant if it's a one-off though! :-)

toasty
  • 3 months ago • 

Yeah, I've used Emscripten a few times before and it's been great, @remco. The problem I have on this project is that I also build some tools to assemble the game data. When I tried to run the Emscripten build it failed because it was trying to execute the tools as WASM/HTML on my machine :'). If I have time I'd love to get one working, but we'll have to see. There's only so much time I can spend fighting CMake before I decide to give up and become a farmer instead ;)

Wan
 • 3 months ago • 

I had sensitivity issues too, and despite setting sensitivity=0.0000005(!) helped, mouse movement strangely made the camera always turn right. Thanks for the Q/E alternative :D

Too bad the game is unfinished because not only the graphics are really good but the encounter with "it" is truly terrifying! It was enough to get my imagination running when I went into contact with the enemy to see what would happen. I thought at first that it got me teleported into a closed room, until I saw an exit - only to find myself nose-to-nose with the monster again, almost gave me a jump scare haha

A proper maze, a couple objectives and of course sound would be enough to make it a really stressful game. The gun shooting didn't work for me, but it doen't have to tbh… what if the gun kept misfiring when in range of "it", making it totally useless except for accidentally shooting survivors? Would be fine for me.

Looking forward to try the game should you continue working on it!

Login to comment

Links

Itch.io

Author

toasty

Details