Keep Out – WebGL Game

(playkeepout.com)

442 points | by memalign 13 days ago

60 comments

  • guigui 13 days ago
    Author here, not sure why this is posted today as this project is from 2015, but feel free check out our latest WebGL project if you liked Keep Out: https://equinox.space

    EDIT: thanks for all the great feedback!

    • FrustratedMonky 13 days ago
      I think it is because Equinox Space was posted last week and made a good splash, lot of people liked it, so someone must have explored your past stuff and found this from 2015.

      I did like equinox space a lot.

      • guigui 13 days ago
        Makes sense!
    • KingOfCoders 13 days ago
      If this is from 2015, any plans to open source?
      • guigui 13 days ago
        Not at the moment, but thanks for your interest.
    • demondemidi 13 days ago
      Started playing equinox but constantly find myself face first against a wall and struggling to turn around and get a good view. Nav is dizzying. But I love the rendering and audio.
      • guigui 13 days ago
        Sorry to hear that! There are multiple control modes so I assume you're either using the mobile version or the desktop in casual mode. We've tried our best making the experience as easy to use as possible for a variety of user profiles, but it's not perfect. FWIW, the touch and mouse-only controls are similar to Google Street View.
    • Intox 13 days ago
      Really cool experience, sharing it around! Would you care to share the game's music somewhere? Really hits me, i'd like to put theses in my playlists
      • guigui 13 days ago
        Thanks! Yes, we plan to release the soundtrack (which we produced in-house) in the future.
    • maxlin 13 days ago
      Saw the dungeon one back then, but played it "through" now (level 12, supposed it doesn't end).

      Also played thru equinox. Nice. Tight packages both!

      • guigui 13 days ago
        It does end at level 15.

        Congrats on finishing Equinox!

    • febed 13 days ago
      I loved equinox, are there plans for more levels? btw, I couldn’t play Keep Out on iPad. I guess it assumes that a keyboard is available
      • guigui 13 days ago
        Thanks, there are no such plans at the moment.

        Yes, we relied on UA-based mobile detection which worked back then but a few years ago Apple stopped treating iPadOS as mobile, and we never patched this.

    • huhtenberg 13 days ago
      Are there any secrets?
      • guigui 13 days ago
        Unfortunately no! We did want to add secret stuff like hidden doors or fake walls back then, but we had to keep scope under control since that was only a promotional demo for our studio.

        Edit: not sure if you're talking about Equinox or Keep out. But my answer is true for both projects. ;)

  • zamadatix 13 days ago
    For Chromium based browsers you can use getLayoutMap() instead of prompting the user and then rely on the manual fallback for Safari/Firefox/Other unsupported browsers. In either case, detecting/asking for the layout makes sense for displaying the controls graphics but you should still ultimately use the keycodes for positional keys in the actual code so someone on the misdetected or on an unlisted layout can still use the positional keys as expected.
    • mkl 13 days ago
      This API doesn't know what my keyboard layout is, and there's no way it possibly could; it's in the keyboard's firmware, not software.

      Better than a fallible API that didn't exist when this was made, or a way-too-limited layout choice, would be to make it work well with arrow keys and mouse (arrows already do the basic movement), or to make the 6-key instruction screen configurable.

      • zamadatix 12 days ago
        Adding configurability is a good additional option (even outside the layout detection) but because people like different layouts not because a few HN style folks break OS detection via custom firmware. It's certainly not a reasonable cause to redesign your control scheme around the limitation either. Something of 10%+ of internet users don't use qwerty, something of 0.01% set their layout via the keyboard's firmware.

        Good note on the game being released ~2015 though, the API wasn't added until ~2018.

  • sho_hn 13 days ago
    WebGL for games is so awesome for low-friction deployment.

    As a rainy weekend hack I did a quick and dirty port of a fan decompile of the original Tomb Raider to WASM/WebGL a few weeks ago:

    https://eikehein.com/stuff/sabatu/ (this uses alternative fan assets inspired by TR1)

    The TR community has a couple of websites hosting lots of great fan levels, I'm hoping to make this good enough to allow playing them straight from the browser at some point.

    • tzot 13 days ago
      So, arrow keys, SPACE un/holsters weapons, End flip 180°, Del/PgDn for strafe left/right. How do you fire the weapons?
      • sho_hn 13 days ago
        ESC to go to the menu and see (and change) the controls mapping actually works!
    • spxneo 13 days ago
      holy crap! how was this built hope to see some code
  • Tokkemon 13 days ago
    This is super cool and it's great! I enjoyed my brief try in the browser.

    Couple feedback points: I really hate the health system. I wish it was clearer how much health the potion recovered. I'd almost have it more like a traditional unit-like health bar and the potions recover one unit. Also having the R key so close to the movement keys made me press it in a panic several times when trying to move away. ALso allowing you to use a potion when your health is full feels really cheap. Also what about purchasing such items in the store after each level?

    I never really got used to the strict 90 degrees movement and my fingers constantly got confused between strafe and turn. But I'm sure I'd get used to it in time. I'm more used to the FPS movement when this is more of an arcade-style setup.

    For the map, I'd recommend holding the TAB key to show it, so it's just for quick glances.

    Would have appreciated a little more variety in the props, though I only played to level 8, so I'm sure more gets introduced. There were new enemy types all the time which was nice.

    • blagie 13 days ago
      FWIW: I also enjoyed the game. I also got confused between strafe and turn, and often did things like bombs by accident.

      My additional feedback:

      * I got to level 13 or 14, and then got bored. There was no way to save, and it wasn't clear if it went on. Does it repeat forever? Is there an end.

      * What would also be helpful is to understand the purpose. This type of game is the type of game I often see developed as a kids' project, where in a camp or similar, a senior developer sets up an API designed to make it easy, generates all the artwork, and then kids code the high-level logic. If it were open-source, perhaps it'd be that? Perhaps it's intended to be commercialized with more development (that'd be tough with a million similar apps)? Perhaps it's intended as publicity for the coding shop? That would be helpful to understand too when looking for feedback or when visiting.

      • brushfoot 13 days ago
        Re. level, it ends after 15. There's a "the end" screen with a floating trophy.

        I agree that it starts to feel repetitive around 13 or 14. For me the turning point was the wand, which feels a bit overpowered and like it needs a cooldown as has been pointed out. An improvement might be having bombs and arrows in the store so you can do something with the gold you keep amassing.

      • hoten 13 days ago
        It actually saves automatically. Refresh and you'll see a continue button. It would have been nice if this was more clear.
    • jamilton 13 days ago
      I like the map being a toggle, because I could navigate by looking at the map while I move around (helps with that confusion). The 3d view is needed to see items, pots, and enemies, and that's fine, but ideally those would show on the map too.
  • kibwen 13 days ago
    If this style of game is up your alley but you're looking for a more complete experience, then the Legend Of Grimrock series is what you're looking for: https://store.steampowered.com/sub/49358/
    • debo_ 13 days ago
      Potato Flowers in Full Bloom is a recent indie turn-based dungeon crawler and it's really, really great.

      https://store.steampowered.com/app/1601280/Potato_Flowers_in...

    • emmanueloga_ 13 days ago
      The genre is called "first person dangeon crawler"

      https://dungeoncrawlers.org/

      • thaumasiotes 13 days ago
        Actually the genre is called dungeon blobber.

        Dungeon crawler is a much wider field than blobber is.

        • badsectoracula 13 days ago
          The linked game is a dungeon crawler, not a blobber. A blobber implies that you control a party that acts as a single "blob" in game space - games like Might & Magic, Wizardry, Wizards & Warriors (the 2000 game) etc. are blobbers since you control an entire party but not the individual party members (so a game like Dragon Age isn't a blobber despite controlling a party because each party member is its own individual entity in the game world).

          A dungeon crawler can be a blobber but not all dungeon crawlers are blobbers: if you control a single character - like in the linked game - the game is not a blobber. Note that also not all first person games where you control a party are blobbers: for example games like the classic Gold Box games (e.g. Pool of Radiance) are not blobbers since while you have first person exploration and a party to manage, combat switches to a 3rd person isometric-ish perspective where each party member is an individual entity that is controlled separately. Though some people may say that games like Gold Box have blobber exploration and non-blobber combat.

          Also FWIW (and this is something the authors of the linked site above acknowledge too), not all dungeon crawlers and blobbers use a grid-based system for movement and combat: classic examples would be Might & Magic 6 and Wizards & Warriors, both of which are blobbers (the entire party acts as a single "blob" in the game world) but use free movement.

          • thaumasiotes 13 days ago
            > The linked game is a dungeon crawler, not a blobber. A blobber implies that you control a party that acts as a single "blob" in game space - games like Might & Magic, Wizardry, Wizards & Warriors (the 2000 game) etc. are blobbers

            And this game is also a blobber, including by that definition. Your party happens to have one member. But the game is clearly a blobber. You can do the same thing in Wizardry, it's just a bad idea.

            By your definition, though, it would appear that virtually all JRPGs are "blobbers", which seems wrong to me.

            • badsectoracula 8 days ago
              > And this game is also a blobber, including by that definition. Your party happens to have one member.

              If a game does not have you control a party of multiple members it is not a blobber, there is no "it just happens to have one member". That makes as much sense as Apple claiming that a tap is a zero length swipe back in the day and it'd basically mean all games are party based (hey, Quake is a party based game because you control a party of one - and Solitaire is a party based game because you control a party of zero).

              > You can do the same thing in Wizardry, it's just a bad idea.

              Wizardry is a blobber because you can have multiple party members even if you decide not to. The linked game is not a blobber because you cannot have multiple party members even if you want to.

              > By your definition, though, it would appear that virtually all JRPGs are "blobbers", which seems wrong to me.

              Only JRPGs that treat the entire party as a single "blob". And yes, blobbers are very popular in Japan and have influenced other games made there too.

    • keyle 13 days ago
      The mechanics is quite different here. I believe Grimrock is "I move, you move" movement mechanics, and in this, the enemies moved in real time. Subtle but completely different gameplay as a result.
      • kibwen 12 days ago
        This is mistaken, Grimrock is realtime. I just booted it up to confirm; I don't even see an option for a turn-based mode, which would be handy, because the game is quite challenging and without deft and constant repositioning you'll quickly become spider food. :)
      • thaumasiotes 13 days ago
        > I believe Grimrock is "I move, you move" movement mechanics

        But it isn't.

        > Subtle but completely different gameplay as a result.

        It's difficult to identify "results" of circumstances that aren't true.

        • squigz 13 days ago
          The snark in this comment doesn't seem necessary or called for
          • thaumasiotes 13 days ago
            My parent comment consists entirely of lies and "observations" that cannot possibly have been made. There is no other content.

            What kind of response do you think is warranted?

            • squigz 13 days ago
              One that isn't dripping with snark, but I'm beginning to suspect that's impossible.
      • parasti 13 days ago
        These are commonly referred to as "turn-based" (like chess).
    • TheGRS 13 days ago
      Reminded me of Grimrock too, but if you also like this I'd recommend a game called Barony. Great multiplayer RPG romp that has a lot of depth and secrets to discover. Also procedurally generated.
  • hu3 13 days ago
    More info here: https://www.littleworkshop.fr/projects/keepout/

    It uses Three.js.

    • keyle 13 days ago
      Most things from that website have been linked on HN in the last few days. They clearly do great, inspiring work.
    • tarruda 13 days ago
      Is the source code available somewhere?
  • lovegrenoble 13 days ago
    Wonderful graphics, but I rather like browser puzzle games (while half-listening to a Zoom meeting) like this one: https://slices.ovh
  • trothamel 13 days ago
    I'm not as huge fan of the controls. I have five fingers on my left hand, and there are six buttons there, so I'm constantly moving them around, while my right hand doesn't do much. Maybe figure out a way to use both hands?
    • kipple 13 days ago
      +1, arrow keys for turning pls
      • mkl 13 days ago
        They already do that.
    • SpaceElephant 13 days ago
      The controls are indeed clunky, but also the reason why this game became an instant hit with my six year old! Simple to explain, simple to operate!
    • squigz 13 days ago
      I don't think you're ever expected to hit all 6 keys at once?
    • dylan604 13 days ago
      aren't these pretty stock keys for game play? i'm not a heavy gamer by any stretch of the imagination, but these controls are very familiar to me from the few games i have played
  • xandrius 13 days ago
    For me, on Firefox Android, the game worked beautifully (it got stuck at a certain point - no movement/actions accepted anymore but the visuals and menu worked). I got to level 12 and had purchased everything, so I felt I had nothing else to strive for.

    Great variety of enemies and attacks. Loved the different weapons and how they "evolve".

    If would be fun to have the frozen ward being able to nullify the fireballs, as it seemed an obvious consequence.

    I think after unlocking all the base weapons, it would be fun to move up and be able to access "epic" sets (not just money locked, so you don't see them until you buy the other ones).

    Also expected to have some "hidden" treasure rooms but even trying no walls broke, even with bombs.

    Might be nice to have a boss fight every 5 level, often it's done by taking the base enemies and making them huge and harder. If I had a reason (like reach level X to save the princess, or reach the center of the earth or something else), I would have kept playing but after level 10 and everything unlocked, I thought maybe the game was over.

    I really enjoyed the experience! The graphics were great, just the level cleared text seemed lower quality than the rest (maybe a font rendering problem?).

    Great job!

    • fellowniusmonk 13 days ago
      This is insanely good, as someone who hates mobile gaming outside of pixel dungeon this is probably the first 3d shooter game I've enjoyed playing on my phone where the control and game play felt good, the fact that it's in the browser is fantastic.
    • zaik 13 days ago
      Interesting. I'm using Fennec from F-Droid and only got controls and a black screen.
  • birdgoose 13 days ago
    That was a really good experience.

    The "About" button in the menu leads to a webpage that 404s. As another commenter has pointed out the correct URL is https://www.littleworkshop.fr/projects/keepout/

    • franck 13 days ago
      Thank you for the bug report, I just fixed it.
  • popcar2 13 days ago
    Fun concept, really makes me want to play Legend of Grimrock 2 again. I don't know if the devs are here, but here's my feedback:

    * The wand's cooldown is way too low. It has infinite charge so there's no consequence to stunning enemies, attacking them, moving backwards, repeating. You can effectively stunlock any enemy.

    * Dragon's attack speed is almost instant. There should be an attack animation before it shoots a fireball, right now it feels like it's faster than any melee enemy. Ranged units should be manageable when they're close.

    * A dungeoncrawler needs traps. Where are the floor spikes, wall axes, giant rolling stone balls? It needs it.

    * The "Read more about this project" links to a 404, I guess this is an old project.

    • franck 13 days ago
      Yes this is an old project that we did back in 2015, but thank you for the broken link report, I just fixed it. Also, thanks for your feedback (which I agree with!) but we currently have no plans to update it.
    • kevindamm 13 days ago
      and at least one mimic right around when the player is starting to get confident :)
  • airstrike 13 days ago
    really cool... amazing that you can get playing immediately

    controls could use some work. i'd rather move with wasd, turn around with the mouse and attack with the mouse too because it's a first-person camera...

    or make A and D turn-and-move in that direction with some other input for strafing which seems less useful than turning. and in any event, attacking with something like j, k or l is probably more intuitive (to me)

  • bredren 13 days ago
    This worked in normal mobile safari but when I added it to Home Screen, and turned landscape it squeezed the gameplay into the left third of the screen.

    The game overlays, however, displayed undistorted, in their correct positions.

  • Animats 13 days ago
    A Doom tribute game. Nice.

    Worked fine, cleared five levels, bored.

    • mattbee 13 days ago
      Ooof make me feel old why don't you... this isn't Doom, it's Dungeon Master! The grid system, everything moving on a metronome, inventory system etc. I agree this version is shallow but very easy to pick up.

      Legend Of Grimrock is the modern remake I know, drags you into its complexities level by level. Really good game.

    • hgs3 13 days ago
      The levels are more Wolfenstein 3D than Doom.
      • Narishma 13 days ago
        It's neither, more like Dungeon Master or Eye of the Beholder.
    • flykespice 13 days ago
      You aren't missing much, the game only goes up to level 15 (yes I played the entire thing)
    • lovegrenoble 13 days ago
      Same for me...
  • atleastoptimal 13 days ago
    Very polished and smooth but it feels a bit shallow. So far I imagine the gameplay is limited to moving forward and strafing through progressively longer dungeons.

    There is a charm to the first-person element and limiting movement to a grid, but the controls feel slow and are frustrating relative to FPS movement or a top-down action RPG Diablo style layout/controls. It was annoying waiting for each animation to finish between alternatively walking/turning/strafing.

  • jverrecchia 13 days ago
    Worth noting that this is not a new game, it came out in 2015.
    • lenerdenator 13 days ago
      Yeah, noticed the Google+ link in the menu and was like "oh, we're getting into some history here".
  • teddyh 13 days ago
    If the browser window is taller than it is wide, the shop is an entirely black screen.
  • IvanK_net 13 days ago
    It reminds me my WebGL First-Person-Shooter https://dinohunt2.ivank.net that I made 10 years ago :)
  • headsman771 13 days ago
    No enemy textures loaded for me on Brave Android though their shadows were visible. Some wall texture glitches on the 1st level but otherwise nice.
  • keepamovin 13 days ago
    This is super fun! I'm no expert in games like this but I think everything is perfect. I wouldn't change anything. It all feels really intuitive fun and it's clear you've put a lot of thought into it.

    I'd say the experience is already optimized :)

    Can you tell a little bit about the creation process? Is it a team? What did you user to build this and create the textures and and characters?

  • declan_roberts 13 days ago
    It was a fun distraction. That you for share!
    • imp0cat 13 days ago
      Yeah, I enjoyed it a lot more than I thought I would.
  • MikeTheGreat 13 days ago
    Thanks for posting this - it's a lot of fun to play, in a casual and fun way.

    Also, this reminded me that I hadn't played my Rogule [1]for today, so I'll go do that, too :)

    [1] https://rogule.com/game.html

  • VelesDude 13 days ago
    That is very cool, played far more than I thought I would. Great job!

    I always found it funny when you would leave the store it would have this fade out/shrink animation. It is the same transition I have on my desktop windows and for a moment I kept thinking it was about to crash. ;)

  • StarlaAtNight 13 days ago
    I love that Google+ is included in the "share this to social" functionality. Very retro
  • ww520 13 days ago
    This is an amazing game. Nice work!

    May be adding mouse control? Turning with arrow keys are kind of clunky.

    • gschizas 13 days ago
      Since it was apparently made 9 years ago (2015), it's highly unlikely.
  • sgt 13 days ago
    Whenever a WebGL game is released, there's tons of browser issues across many different types of devices. It seemed to work for me (iOS) but just read the comments. It would really make me think twice about developing a web game.
    • modeless 13 days ago
      PC games have as many if not more issues than web games even when running on only one platform (Windows). Every major PC release has tons of issues.
      • pjmlp 13 days ago
        The big difference is that on PC, there are ways to work around, with the browser one is usually stuck, and that is if the system isn't blacklisted to start with.
  • hgyjnbdet 13 days ago
    This excellent. My 6 year old is loving it on his tablet. Compared to the crap you get in the app stores this is amazing. No ads every time you touch the screen, decent graphics, progress without being forced to watch ads or pay.

    Kudos.

  • bilsbie 13 days ago
    Neat! What’s the easiest way to make something like this?
    • xandrius 13 days ago
      Probably unity, this kind of game isn't too complicated. It's mainly making it feel good and look neat with graphics and VFX.

      If you went for the pure browser way, Babylon.js would be your best bet. It has a bit of a learning curve, as you would need to implement base game features yourself but it wouldn't take too long for something like this.

    • Dansvidania 13 days ago
      I think both Unity and Godot have ways to compile to WebGL. I don't have direct experience with Godot, but in Unity this would be relatively simple to do.
      • modeless 13 days ago
        If this was made with Unity it would load a lot slower and perform worse. Unity is not a good fit for web. Godot might be better, I'm not sure. PlayCanvas is an option.
  • nickagliano 13 days ago
    Most fun game on HN since Infinite Craft.

    Worked well on iOS Safari. Installed as PWA and everything. Managed to keep my attention for 5 levels. Nice work.

  • timeon 13 days ago
    Nice game! Smooth even on slow connection. Maybe bit too easy. I was used to games that killed me at the beginning on a first try.
  • hchak 13 days ago
    I have already sent this to all my buddies.

    I thought about generative games, so that one game could be made, and each individual gets their own experience.

    Well done!

  • kuon 13 days ago
    Please, let me change my key bindings. I always use S to move forward and W to move backward. But otherwise it is super cool.
  • pryelluw 13 days ago
    Nice game and very smooth. The graphics works very well on mobile. Wish there was a non-procedural version to memorize.
  • jasonjmcghee 13 days ago
    Fun! One tweak I'd make is not full healing the player on every level. It would make the potions much more useful.
  • pjmlp 13 days ago
    Usually WebGL games aren't that great, this one however, is a great exception, and an enjoyment to play.

    Great work.

  • epolanski 13 days ago
    Slightly OT. Why did browser gaming ended up having such low variety and no "hits" for so long?
    • badsectoracula 13 days ago
      Flash games and to a lesser extent Java applet games used to be very hot. Back in 2005 or so i paid rent with a game i made in literally an afternoon in Java.

      However the largely "casual" market who played these games switched to mobile phones and any remaining "hardcore" players switched to Steam, which in meantime opened up to developers.

      And from a technical side, it took years for web tech to reach what you could do with Flash when the latter was forcibly killed.

    • modeless 13 days ago
      No in-app purchase for monetization. IAP whales drive the whole mobile game ecosystem.
      • sublinear 13 days ago
        From a business perspective I don't really agree.

        The market for other types of players is there and it's far from niche. It's more like making games for them isn't as lucrative. Still pays well for sure, but you can make the same or better working in a corporate office like everyone else. Ironically, office drones are probably the ones who most want to make and play these games.

  • thepra 13 days ago
    I'm on an ZenFone 10 with Firefox and I can only see the menu UI, everything else is black
  • IshKebab 13 days ago
    Terribly boring but super polished!
  • russellbeattie 13 days ago
    This game must have been around for a while. The menu page has a button to share on Google+.
  • razodactyl 13 days ago
    It's broken on iOS. It asks to turn to landscape but the screen doesn't expand.
  • datascienced 13 days ago
    You can die and respawn on level 5 kill all the monsters and be left keyless and stuck.
  • verse 13 days ago
    I loved this game! I played until level 13 and unlocked and bought every weapon
  • throwawayben 13 days ago
    Nice rogue-lite, got to level 10 before dying multiple times and giving up
  • KTaffer 13 days ago
    Good graphics, but it's almost impossible to fail. Not a good game.
  • sshine 13 days ago
    Fun, until I reached the dragons. Those jerks seem unbeatable!
    • flykespice 13 days ago
      I beat them all just by spamming bombs.
  • sidcool 13 days ago
    This is an old game, I finished it multiple times long back.
  • Tyr42 13 days ago
    Enemies only have shadows but no model. Chrome pixel 7.
  • p0w3n3d 13 days ago
    Where's Adria the Witch. I have a wand to recharge
    • __s 13 days ago
      Wand not having charges makes it seem like the best thing to rush. Income per level went way down after buying bow

      Melee knockback always a tossup, especially since freeze can be chained, goes much nicer on Windforce

      Observed pacman glitch: running towards projectile can cause it to miss

  • pyb 13 days ago
    Does anyone remember Pyramid of Peril (1985)?
  • jmward01 13 days ago
    That was fun. Thanks for making it!
  • vivzkestrel 13 days ago
    let me use the mouse and turn, the 90 degree movement is getting me killed after level 5
  • midzer 13 days ago
    Great game, really fun to play!
  • BatFastard 13 days ago
    cool, but stopped working as soon as I hit the shop entrance. Just black screen.
    • modeless 13 days ago
      I found the same, in my case it was fixed by resizing the window. Seems like a bug when the window aspect ratio is portrait instead of landscape.
    • lukan 13 days ago
      Browser (version) and OS would be probably helpful.
      • Mountain_Skies 13 days ago
        For me, the same thing happens on Firefox 125.0.2 (64-bit).
  • cheeterLee 13 days ago
    Very much enjoyed the game :)
  • hpeter 13 days ago
    when the screen is smaller than 930px width, its all black for me
  • developer1000 13 days ago
    love it. the sound work great!
  • petermcneeley 13 days ago
    Simple and clean. Very nice. Loads instantly.
  • manny_408__ 13 days ago
    Super cool
  • publicpayable 13 days ago
    [flagged]
    • lwansbrough 13 days ago
      You're going to have to do better than this.