Giter Club home page Giter Club logo

snake's Introduction

Hi, I'm Kapil Kashyap👋

     GitHub User's stars     GitHub followers

A passionate frontend engineer who wishes to contribute back to the Open-Source community via innovations & solutions.

About me!

  • 👨🏿‍💻 Working on dynamically transmuting a JSON into a Class with private properties and accessor methods, at runtime!
  • 🌱 Learning how to efficiently setup a front-end project using esbuild
  • 🚀 Exploring different state management libraries and their trade-offs
  • 👯 Looking to collaborate on any Open-Source that can use my expertise in front-end technologies
  • 💓 Love high altitude treks, photography, sports, solving puzzles and recreating interactive retro games - Check this out Snake 🎮

Tech stack

html5     css3     javascript     typescript     nodejs     react     redux     Jest     d3js     git     java    

Connect with me

kapilkashyap     user:1694813     kapilkashyaps    

Some stats

kapilkashyap     kapilkashyap

snake's People

Contributors

kapilkashyap avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

snake's Issues

Add game config

It would be better to have game config to drive configuration based changes to the application

Give information about lane shift key combos

While moving in a direction, we can use key combos (using shift & ctrl keys) to shift lanes or take a quick U-turn in either direction.

There is no way of knowing such key combos and we should figure out a way to document this.

Restore game state

Would be good to have game state saved every 10 seconds or so in-order to avoid loss of progress when browser refreshes.

Reintroduce gestures in mobile mode

We need to reintroduce gestures while playing on mobile.

While gamepad is a good addition and is WIP, gestures and swipes are more intuitive on mobile.

increase length of snake exponentially in challenge mode

As of now, length of snake increases with consumption of food and to fill the whole grid would take a considerable amount of time. Should consider increasing the snake length exponentially with increase in time or increase by a constant number (say 5) when we consume food.

Add boosts for Classic and Challenge mode

It would be great to have some boosts that appear during gameplay and you have to consume those to have an advantage in the game. These boosts will appear randomly for a short time and you have to race to capture it. Once captured, its affect should last for 15-20 seconds giving you an advantage (like slowing down in higher levels or speeding up in lower levels)

Need to give this a thought!

Revamp score card

We need real-estate for the game combo buttons (#39) and hence we need to remove the score card and figure out a better way to display top scores.

We also need to give a quick info about current modes top score and max. level played.

Restructure code

Need to restructure and clean up codebase.

  • Add linting
  • Add TypeScript (if required)
  • Modularize the code and break it down into different modes (Classic / Challenge / Maze)
  • Concatenate modules and generate minified source files

Generate dynamic maze

We use predefined set of maze coordinates for the maze mode and it would be nice to have a random maze generated to increase the complexity of the game.

add fading out or bubbling "level-up" message

In classic mode, there is no indication that the level has increased. We should consider displaying that info to the user in some way.

Immediate idea is to add a fading out or bubbling level-up text. Thing to figure out is where to display this.

Add haptic feedback

We should enable haptic feedback for the following

  • gamepad controls
  • food eaten
  • loss of life
  • game over (should be a vibration sequence)

Gamepad controls do not work anymore

Recently we updated event handler key codes and started using event.code instead of deprecated event.keyCode. So, the gamepad's dispatch events might need an update to broadcast event.code instead of event.keyCode

Need confirmation before resetting current progress

While playing we can pause the game using spacebar and if we press R while paused, the game resets itself without confirmation leading to a loss of all progress made (like unlocking levels) so far.

We should ask for confirmation before resetting the game and losing all the progress in the process.

Note: We cannot reset a game if it is not paused

[Handheld] Disable pinch-zoom while using gamepad

Pinch zoom gets reenabled when we use gamepad. Toggling the option off disables pinch-zoom again.

In general, it would be great to disable pinch-zoom on handheld devices irrespective of the settings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.