Jump to content

[js13k] Glitch Buster


remvst
 Share

Recommended Posts

Hello there,

It's been a while I haven't posted anything here, mostly because I don't have that much time for game dev anymore, but here is my entry for js13k 2016: Glitch Buster.

screen01.pngscreen02.pngscreen03.pngscreen04.pngscreen05.png

The game's goal is to dive into a code base, and fix all 13 glitches within the time limit. You'll need to avoid the scary and sometimes unpredictable pointers.
You can also use breakpoints that you will find in the levels as grenades.

All levels (except the tutorial) are randomly generated, in a very similar way to Spelunky.

The game is not 100% done yet, I intend to spend a tiny bit more time on optimizing, balancing, testing across devices...
In terms of features, I only have 178 bytes left to play with and I'm out of compression tricks, so I probably won't be able to add anything too crazy anymore (I'm already surprised I was able to fit sound in there).

You can play it at http://glitch.tap2play.io/

Let me know what you guys think :)

Link to comment
Share on other sites

14 hours ago, Ousaf said:

great art work and good visual effects, I was feeling uncomfortable with less field of view, can u please increase field of view little more? I mean just zoom out a bit....

Thanks for the feedback, that's actually something I tried before and didn't follow through because it messed with a lot of things. But you're not the only one to have complained about it, so I made everything a little smaller (80% of its original size).

Other than that, I'm still working on a couple tweaks, like item spawns that tend to be too frequent in the last levels. Maybe enemies will drop items when dying instead, not sure yet.

Breakpoints need to be adjusted as well, I may just make them sticky instead of bouncy, and add a visual indication of where they will fall.

Link to comment
Share on other sites

I think also providing a full screen option will make the experience feel more complete on both mobile and desktop. BTW, here is some code to check to see if the device is mobile or not, it will remove the need for the style selection page.

window.mobileAndTabletcheck = function () {
    var check = false;
    (function (a) {
        if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true;
    })(navigator.userAgent || navigator.vendor || window.opera);
    return check;
};

 

Link to comment
Share on other sites

45 minutes ago, Firenibbler said:

I think also providing a full screen option will make the experience feel more complete on both mobile and desktop. BTW, here is some code to check to see if the device is mobile or not, it will remove the need for the style selection page.


window.mobileAndTabletcheck = function () {
    var check = false;
    (function (a) {
        if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true;
    })(navigator.userAgent || navigator.vendor || window.opera);
    return check;
};

 

The mobile/desktop screen actually has nothing to do with touch screens or not. It's only for the quality of the graphics ;)

For the full screen, because of the way if is compiled, it might be very complicated. I'll give it a try though.

Link to comment
Share on other sites

I updated the game (still available at ) and am planning to submit tomorrow, unless something major comes up.

Some of the updates include:

- new HUD style, emphasizes on what's important
- larger field of view
- larger screen on desktop
- no quality prompt on desktop anymore (though still present on mobile)
- difficulty tweaks, especially item drops
- updated map generation
- animation adjustments
- slightly better performance
- visual help when throwing breakpoints/grenades
- ... aaaaaand a lot of byte squeezing

Let me know what you guys think :)
 

Link to comment
Share on other sites

Just a quick update, since js13k is over now, I was able to squeeze more things in the game, such as the pause menu, and the ability to select the quality (high res/low res).

On a side note, if you wish to support my entry, feel free to go to http://js13kgames.com/entries/glitch-buster, and hit the tweet button.

Thanks :)

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Thanks Benny :)

On 28/09/2016 at 4:51 PM, espace3d said:

hi Remi,

i 'm a newbie in comparison of you. But can you explain a little more the benefit of your compiler ? 

have you some good documentation for me about the usage of a compiler ?

i see that your game is very fast and reactive...

Sorry I didn't see that message earlier.

In the case of js13k, I use my own compiler simply because I can make it more efficient than just minifying the code. Minifiers can't make certain assumptions, especially in terms of mangling.

Making the same game with just a regular minifier isn't possible imho. To give you an idea, if I turn off my custom mangling, I'm 1628 bytes over the limit...

Anyway, the compiler is on Github: https://github.com/remvst/js13k-compiler

I may write an article about it, but I feel like it's too late now.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...