Strangeness by philomory
A short little puzzle game about a world that's too small. The bit with pushing rocks onto enemies is a bug (Jam-version only), you have been warned.

A NOTE ABOUT BUGS: If you play the Jam version of the game, you'll run into some confusing (but not game-breaking) bugs; one that a lot of people encounter is that enemies can move out from under a boulder if you push it directly on top of them. In fact, the bug is that you can push it on top of them in the first place. This and other issues are addressed in the Bugfix version of the game. For details, see "KNOWN ISSUES", below.
JAM - Windows | Mac | Linux/source
BUGFIX - Windows | Mac | Linux/source
POST-JAM UPDATE - Windows | Mac | Linux/source
To run the Windows distribution, unpack the zip and double-click Strangeness.bat
To run the Mac distribution, unpack the zip and double-click Strangeness.app
To run from source (for Window, Mac or Linux):
* Have Ruby 2.3.x
* Have Bundler
* gem install bundler if you don't already have it.
* Unzip the source
* From the directory that contains ld38.rb and Gemfile:
* bundle install
* ruby ld38.rb
CHANGES (Breaking issues fixed in both Jam and Bugfix release): * [WINDOWS] The batch file to start the game has been adjusted so it doesn't break when there are spaces in the directory path. * [MAC] Bundled libSDL2-2.0.0.dylib with the game, so that if you don't already have it installed, the game still works. * [MAC] Bundled libyaml-0.2.dylib with the game, so that if you don't already have it installed, the game still works.
KNOWN ISSUES (fixed in the bug-fix release, but not in the Jam): * [ALL] There's a bug where you can push a rock on top of an enemy. This never helps, and can sometimes get you killed. * [ALL] Rocks can be pushed into walls. This also doesn't accomplish anything. * [ALL] Enemies tediously move one-at-a-time, resulting in slow gameplay if lots of enemies are around.
OTHER ISSUES (Not Fixed): * [WINDOWS] The Windows version hangs for a few seconds after the title screen, for some users. After that, it runs normally. * Do note that you need to press a key to pass the title screen.
UPDATES (new stuff in the Post-Jam Update) * Configurable controls, including gamepad support (probably)! * A new enemy! * A new puzzle element! * 240% more puzzles! * Small fix to an existing puzzle! * More to come!
Tools: * Language: Ruby * GameDev Library: Gosu * Editor: Textmate 2 (Yes, still). * Graphics: Pyxel Edit, Seashore * Map: Tiled * SFX: bfxr * Music: Autotracker-bu
The font used in the game is Alagard by @Pix3m (used under CC-BY, he's not part of my team). All other graphics, sound effects and audio were created during the event (music was auto-generated). All code was written during the event except for a couple dozen lines of base code taken from my LD33 entry.
Bugs can be reported on the BitBucket issue tracker.
| Original URL | https://ldjam.com/events/ludum-dare/38/strangeness-1 |
Ratings
| Overall | 537th | 3.1⭐ | 62🧑⚖️ |
| Fun | 452th | 3.034⭐ | 61🧑⚖️ |
| Innovation | 533th | 2.847⭐ | 61🧑⚖️ |
| Theme | 694th | 2.569⭐ | 60🧑⚖️ |
| Graphics | 673th | 2.517⭐ | 60🧑⚖️ |
| Audio | 349th | 2.964⭐ | 58🧑⚖️ |
| Humor | 514th | 2.234⭐ | 49🧑⚖️ |
| Mood | 546th | 2.929⭐ | 58🧑⚖️ |
| Given | 123🗳️ | 199🗨️ |
In the meantime I've uploaded it with a new filename, which may work better.
On entering the first level, it was very unclear what terrain was passable and what wasn't. It was quick enough to work out but the bushes you can pass through really have no right to be there.
On the whole, I very much enjoyed the design of the puzzles. They're devilishly difficult, and have a slight air of "gotcha" to them, but they're small enough in scope that they're not frustrating to solve. Unfortunately, their presentation leaves a bit to be desired.
The mechanics you have to work with are a bit unintuitive though. enemies can pass through boulders if the boulders are moving, boulders can pass through walls but not through keys. I feel like with some stronger visual indicators you could remove a whole chunk of the annoyance that comes from figuring out the solution to a puzzle, and then realizing that the world doesn't work the way you expected, and having to repeat it again while cursing the developers.
On each turn, each enemy takes its turn in order. This means that when a lot of enemies are in a level, I have to wait between each move. With a game where I have to repeat each puzzle a dozen times to work out the solution, this did get on my nerves. The better option, I think, would have been for each enemy to move simultaneously to the player.
Despite those flaws though, I really enjoyed this game. It made me feel a bit stupid for trying to grab keys I didn't need and generally poked fun at the fact I never looked far enough into the level. I don't know that this design style would have worked in a much larger scope, but for this title it's perfect. Thanks for the game.
That enemies move one-at-a-time was originally intended, but I agree it was a bad decision; in the post-jam version, all enemies will move simultaneously.
I've had a few other people mention the issue with the bushes. For that one, I agree it's a problem. For the Jam, I should have just removed the bushes entirely since they don't affect any of the puzzles that made it into the jam version of the game. The idea was to give you tiles you can move through, but that enemies can't, and that you can't throw rocks through. Possibly in the post-jam version I'll come up with a replacement graphic that's more clear, or maybe I'll just remove them after all.
For what it's worth, putting a bush directly in your only path at the start of level 1 was specficially intended to teach the player that they could walk through them, but I guess it didn't work as well as I'd hoped :stuck_out_tongue:
Again, though, thanks for the feedback! I'm glad to hear the puzzles came off the way I had intended (not making you feel stupid, specifically, but that 'gotcha' feeling, which I thought would work well to make tiny puzzles still be interesting). I was worried they'd be too easy, or too hard, since this is really my first time doing puzzle design like this.
Oh also, regarding the sound effects, yes, they are too loud. A future update will add volume sliders, but in the mean time I should probably adjust them downwards.
The audio visuals are most certainly strange, if that is what the name is alluding to. Unfortunately I also find them rather off-putting.
The only annoyance I have with the mechanics is the inability to wait a turn. Having to waltz around, trying to line up the right moment is just plain silly.
Other than that, it's a fine entry. Have a :space_invader:
Anyways, like @huvaakoodia said, the inability to wait a turn was bothering the gameplay experience a bit. Also, I kinda wanted to move quickly around, and in levels with lot's of enemies, there's an awkward pause when you wait for the enemies to move one by one. Besides those points, it's a nice game! Why is the character so sad though? :D
The character is sad because there was supposed to be a (very limited) story of sorts as a framing device for the game, but I had to cut it, didn't have time. So instead we're just left with a sad main character. Long story short, though, he's sad because the world is disintegrating, he's surrounded by monsters, and he can't remember why. Wouldn't you be sad?
I really enjoyed how challenging it was at times (though admittedly I'm not too great at puzzle games), and the only thing I would really suggest is the ability to wait a turn.
The music is nice and catchy, and the art style is charming. Great job. :)
I had a lot of fun with this game! I don't have much feedback, maybe the music could be a bit less repetitive, but in the end fits perfectly in the style of the game.
Good Work!
Overall though, really great job! I liked it a lot. :)
If you have a chance, could you try running the game from Terminal to see if you get any error output? To run the game from Terminal, open a new Terminal window and type `cd` and a space, then drag Strangeness.app onto the Terminal window. That should put the full path to the application in your Terminal window (e.g. `cd /Users/adam/Downloads/Strangeness.app`), so press enter. After that, type `Contents/MacOS/Strangeness` and press enter. The application should launch, and if there's any error output you should see it in the Terminal window when the application crashes.
I'll see about adding friendlier error logging to a future update of the Mac version.
**EDIT**: I think the problem may be that I didn't bundle SDL2.dylib with the game, so if you didn't have it installed yourself (or didn't have it installed in the same path I did), the game wouldn't be able to find it. If you have homebrew, you can try `brew install sdl2`, otherwise, I'll have an updated build posted shortly).
**EDIT2**: Updated build posted!
- In the final level, the enemy in the bottom right can't be identified until it kills you once. Enemies 'looking upwards' will have this problem, I suppose.
- Perhaps too much emphasis on red herrings in the puzzle design, but thats a matter of taste. in particular in the first level that has shooting enemies, I was thrown off by the boulder (i see why it was there to show me that it blocks lasers, but it led me to forget all about my rocks to throw...).
- I would probably prefer if the controls were 'wasd move, arrows to throw rock' instead of holding shift. But that is a minor point.
- There is a lot you can do to add to this. Step counter, different enemies.
My only wish is that there was more :D
* This is definitely a problem, but it was the last level I designed during the Jam, and by the time I put the enemy in and realized the problem I had no time left to fix it. My plan is to just mirror-flip the level top-to-bottom so that the enemy faces south instead of north. Just haven't had time yet.
* I'm working on this, but, every time I make a new puzzle I end up adding just a bit more tricks and red herrings, and then just a bit more, and before I know it I the puzzle isn't so straightforward anymore. I think once I get these "wouldn't it be cool if?" ideas out of my head and onto 'paper', I'll be able to sit down and design some 'normal' levels.
* Originally, the controls _were_ WASD to move, and arrows to throw. When I was play-testing it, though, it felt all wrong, even though that's how I control The Binding of Isaac, which I have hundreds of hours in. So I changed it. Regardless, configurable controls are coming, including a choice between modifier-for-throw and separate-keys-for-throw.
* I've already started, with a batch of four levels revolving around buttons that open and close barriers. Plenty of ideas for new enemies, too, including one that acts like the Pacer, but when hit with a rock turns 90 degrees instead of getting stunned. Unfortunately I'm quite busy with work, and do want to also participate in judging, so it's slow going so far.
If you _really_ want a preview, post-jam source link always points to the current Tip of my repository. So even though I haven't packaged up new builds with the new levels, you *can* find them. Probably easier to wait for me to post the next build, though :stuck_out_tongue:
As others have stated something that was not clear from the instructions was that the enemies could freely pass through boulders and kill you if you push the boulder ontop of it, which probably should have been explained atleast. More types of enemies could be added to add some more variety to the levels. Great work!
It wasn't clear from the instructions that the enemies can pass through boulders you push onto them because you're not supposed to be able to push boulders onto enemies in the first place. That's a bug, and It's fixed in the "Post-Jam Bugfix" version.
EDIT: I added a warning about this to the game description.
```
/Users/mcowan/Downloads/Strangeness.app/Contents/Resources/lib/yaml.rb:5:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
/Users/mcowan/Downloads/Strangeness.app/Contents/Resources/lib/psych.rb:7:in `require': dlopen(/Users/mcowan/Downloads/Strangeness.app/Contents/Resources/lib/psych.bundle, 9): Library not loaded: /usr/local/opt/libyaml/lib/libyaml-0.2.dylib (LoadError)
```
I tried doing a local `gem install psych`, but that didn't fix it for me. I have fink installed, so I also did an `apt-get install libyaml`. That didn't work. Neither did copying `libyaml-0.2.dylib` into `Strangeness.app/Frameworks` - apparently it actually has to be the `/usr/local/opt` directory. What _did_ work, was creating that directory path (as root, via sudo) and copying the dylib file there. So I got it working for _me_... but most people will have more of a challenge in getting `libyaml-0.2.dylib` in the first place (unless, like me, they're a "fink" user), and copying to that absolute path is definitely a hassle. Maybe there's some other path within the `Strangeness.app` that would work, but I didn't find it.
I especially like how many of your puzzles will fake you out into thinking you solve it a particular way (misdirection).
For reference, the issue isn't about where in the app bundle you copied it; in order to address the issue, you need to use install_name_tool (bundled with the Xcode command line toolchain) to tell psych.bundle where to expect to find it. I had already gone through this process with libruby.dylib and libSDL2.dylib, but had forgotten about libyaml.dylib.
If this were a 'normal' compiled application the build toolchain would take care of this stuff, but making an app out of a non-compilable scripting language is a bit of an unusual case.
@toonteamj Thank you for reminding me! I had planned to fix that in the post-jam version, but then never wrote it down and forgot to do so. That's now fixed in my work-in-progress version; now, if you walk into an enemy it kills you, just like if it walks into you. So now if you get trapped by an enemy you don't need to remember that R restarts the level, you can just touch the enemy to restart.
At first I missed a key to wait a turn and let enemies move. Seems a bit unfair but I understand some puzzles are based on not having this moment.
I liked the puzzles.
Took me sometime to notice that rocks can be pushed. And feels a bit strange the behaviour of rocks they cannot be pushed over keys but can be pushed over enemies or empty spaces outside...
I got stuck in level 5 ...
A few things, though:
* I pushed a rock onto a monster that was facing me, and the monster moved through it and I died. I didn't expect to be able to push the rock at all.
* Level 4 was confusing. I like the laser monsters, but it was difficult to tell when they were looking "up" versus "down". I thought it had something to do with the rock. I ended up just needed to time it right.
* It's not intuitive that you can push the rocks in the space that you cannot actually walk.
I think you have a good sense for making puzzles, and I would definitely have played more of them. Thanks!
I've played a lot of this kind of games. And I still love turn based puzzle games. Nice level design but far too easy.
Reminds me to Lolo for example. I would change the eye looking enemies to make them even more clearer.
As for other's comments: I don't mind red herrings; if done well they add to the game. I don't mind not having a wait key, but I can understand it can feel unintuitive for other people. I also like to learn the rules of the monsters and I feel the rules are clear enough. Not understood the shooting through the key bit but I get the idea what yiu wanted so I can finish that.
I like this genre, and although this game feels a bit easy to me, it does have potential. Great work!
Edit: I like the current control scheme.
On the whole though, enjoyed myself. Thanks for sharing, well done!
I'm not an artist so I can't give a proper feedback on a visual part, the only thing I can emphasize is that walls should be more contrast to represent a blocking object and more depth value; while grass must be a bit brighter since it's just a floor. And floors better to use pastel colors.
All in all, I had a fun time playing this game.
https://www.youtube.com/watch?v=Mxyrl5Tjmjc
Very cool Game, I think the puzzles were well done, and definitely challenging. Felt very stupid for not seeing rocks were push-able. Thanks for submitting it!
I found it a little weird that there was a story and then suddenly "Level 7, 8, 9".. But oh well time constraints :p. In any case I like the progression, felt that I was learning along with the game and found it really satisfactory to solve all puzzles :).
I got this weird Lemmings vivbe in the sense that "hey this is the same old level but with a twist!"
I have to admit the music can get a little bit grating if stuck too long in the game.
But I enjoyed my time with it :).
PD: Got level 17... it was devilish, but when I was writing this, the solution popped in my head. Great!
Please do try my game :
https://ldjam.com/events/ludum-dare/38/sunken-mystery
Before I do either of those things I'll just be working on more levels and features for the current, plain-Ruby version. I've got a lot of plans, we'll see which of them pan out.
In any case, I'm glad you enjoyed the game!
Having played your I am very pleasantly surprised. The graphics give a rather poor first impression. I liked the puzzles and a steeper than usual learning curve. The ability to throw rocks at enemies gave the game depth while being simple itself, good design! My complaint would regard the level design. On few levels there are extra keys which are absolutely unnecessary (played bug-fixed version) and only confuse the player, distracting from the actual puzzle. This aspect should be improved. Other than that and music being a bit repetitive, it's a great entry!
For better or worse, those extra keys in level 2 _are_ the puzzle. In that level, there's only one door, and there are three keys; the puzzle is supposed to be figuring out which key it's actually possible to get, and then getting it. The other two keys are essentially traps. Whether that's a good design or not is a matter of opinion, but they _are_ a part of the intended design of the level.
That sort of puzzle design has gotten a mixed response; some players, like yourself, found it distracting; other players, like @micahcowan, found it appealing. The way I decided to handle the issue in my post-jam development is that I'm keeping that sort of misdirection as a part of the game, but only in the later levels, after the player has already mastered the basic mechanics. Hopefully that'll make for a more enjoyable experience.
Thanks for your feedback, and thanks for playing!
I did like that there were multiple ways to beat some levels.