Simon game
- Description
I built this game for a project in week 3 of General Assembly's Web Development Immersive course. It is a memory game in which the player has to repeat an ever increasing series of visual/audio cues produced by the computer (Simon).
The project requirements were:
• Render a game in the browser
• Switch turns between two players
• Design logic for winning & visually display which player won
• Include separate HTML / CSS / JavaScript files
• Stick with KISS (Keep It Simple Stupid) and DRY (Don't Repeat Yourself) principles
• Use Javascript or jQuery for DOM manipulation
• Deploy your game online, where the rest of the world can access it
• Use semantic markup for HTML and CSS (adhere to best practices)
- Technology
HTML, CSS, Javascript, jQuery, Sound Manager
-
Third party resources
• freeSFX.co.uk • Google Fonts • Pivotal Tracker • balsamiq
-
Approach
• I set out user stories in Pivotal Tracker (https://www.pivotaltracker.com/n/projects/1494094), grading them and sorting them into four epics: Display, Gameplay, Intro and Extensions. I made elimentary wireframes in balsamiq.
• I prioritised the Display and Gameplay epics, aiming to have an MVP from these user stories.
- Result
• I completed 5 out of 12 user stories, producing a functioning game with an intro and an outro, but failed introduce a second player or any of the extensions.
-
Unsolved aspects of the game
• Two player participation and associated navigation/displays. • Cue variations (audio only, text only, audio and text) • Difficulty levels • Player icons • Better audio – pitched sine waves and digitized voice accompanying intro and outro
-
Conclusions
The game enabled me to inprove my Javascript logic, jQuery functions and syntax, and CSS. I also learned a great deal about planning – I found that I underestimated the amount of time needed to work on particular aspects:
• Gameplay logic, esp. comparing the player sequence against the computer sequence.
• Intro/Outro
• Debugging: there were bugs at virtually every stage and far more than I anticipated.
I was pleased with how I used the CSS and jQuery in particular.
In future I will look more carefully at the user stories and consider these in more detail in relation to the code required as well as to the user.