Let's start out with something fun—a game!
Everyone will get a chance to be creative, and work through some really tough programming challenges – since you've already gotten your feet wet with a few small apps, it's up to you to come up with a fun and interesting game to build.
You will be working individually for this project, but we'll be guiding you along the process and helping as you go. Show us what you've got!
Your Project must be approved before you start coding. Your instructor will need to see and approve your user stories and wireframes, and will want you to have an idea of the organization of your app before your start. This may require you to go back to the drawing board. The instructor will help you make sure that you scoped out an achievable MVP (simple enough that you think you could get it built well ahead of the deadline) well-defined, along with a few nice-to-haves and stretch goals.
Your app must:
- HAVE ITS OWN REPO, under your github account. NOT A FORK.
- Include Wireframes and User Stories in the README
- Wireframe: - Basically draw out what your game will look like—very different way it could look. You can use paper or any wireframe tool you find online.
- User Stories - Wording should center around how a user interacts with your game, for example:
- The user click starts and the level starts
- When the user hits the
f keya fire ball is catuplulated into the galaxy.
- Render a game in the browser
- Switch turns between two players, if your game doesn't make sense for two players talk to your local instructor about it
- 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 (we will show you how)
- Use semantic markup for HTML and CSS (adhere to best practices)
- Be reasonably complex
- A working MVP (minium viable product) what is the absolute bare minimum functionality for you game, do not make it more complex until you've completed your MVP.
- A working game, built by you, hosted somewhere on the internet
- A link to your hosted working game in the URL section of your Github repo
- A git repository hosted on Github, with a link to your hosted game, and frequent commits dating back to the very beginning of the project.
- A
README.mdfile with an explanation of what the project is and why you made it, your user stories, explanations of the technologies used, the approach taken, installation instructions, unsolved problems, the other components previously indicated (if applicable). In this project, also include your wireframes in the readme.
- Break the project down into different components (data, presentation, views, style, DOM manipulation) and brainstorm each component individually. Use whiteboards!
- Use your Development Tools (console.log, element inspector, alert statements, etc) to debug and solve problems
- During the day, work through problems in class & ask questions when you need to! We're here to help prevent you from burning through your time with wild goose chases. Add relevant code to your game each night too, instead of, you know... procrastinating.
- Commit early, commit often. Don’t be afraid to break something because you can always go back in time to a previous version. There should be at least a couple dozen commits.
- Consult documentation resources (MDN, jQuery, etc.) at home to better understand what you’ll be getting into.
- Plan to write code that you know you will have to remove later. Create temporary elements (buttons, links, etc) that trigger events if real data is not available. For example, if you’re trying to figure out how to change some text when the game is over but you haven’t solved the win/lose game logic, you can create a button to simulate that until then.
Make a one player game where people down on their luck can lose all their money by guessing which card the computer will deal next!
Sometimes just called "Memory", it's a card game in which all of the cards are laid face down on a surface and two cards are flipped face up over each turn. If you get all the matching cards, you've won!
Test your wits & knowledge with whatever-the-heck you know about (so you can actually win). Guess answers, have the computer tell you how right you are!
https://kmikitin.github.io/Quarto/
https://sierramoore.github.io/vampire-game/
https://scrummish.github.io/Space-Invaders-2018/
https://webermn15.github.io/Scorch_a-scorched-earth-clone/
https://anthonyjlower.github.io/canvas-football-game/
https://cswormstedt.github.io/project1/
https://theprosumer.github.io/theprosumer.io/project1/
https://jccraigw.github.io/project1_Desktop/
(same as above, mobile friendly): https://jccraigw.github.io/project1/
https://obajuluwa3.github.io/3-Card-Monte/
- See if you can reseasrch and use at least thing/technology/resource we didn't explicitly study in class (Some API? Some sweet library? Skeleton or Bootstrap? Firebase? Canvas? Three.js? D3? CSS Keyframes/Animation? Note: Phaser is not allowed, and outside library use is strictly subject to instructor approval)
- MDN Javascript Docs (a great reference for all things Javascript)
- jQuery Docs (if you're using jQuery)
- Github Pages (for hosting your game)
-
Project Workflow: Did you complete the user stories, wireframes, task tracking, and/or ERDs, as specified above? Did you use source control as expected for the phase of the program you’re in (detailed above)?
-
Technical Requirements: Did you deliver a project that met all the technical requirements? Given what the class has covered so far, did you build something that was reasonably complex?
-
Creativity: Did you add a personal spin or creative element into your project submission? Did you deliver something of value to the end user?
-
Code Quality: Did you follow code style guidance and best practices covered in class, such as spacing, modularity, and semantic naming? Did you comment your code as your instructors have in class?
-
Deployment: Did you deploy your application to a public url using GitHub Pages?
-
Total: Your instructors will give you a total score on your project between:
Score Expectations 0 Incomplete. 1 Does not meet expectations. 2 Meets expectations, good job! 3 Exceeds expectations, great job!
This will serve as a helpful overall gauge of whether you met the project goals, but the more important scores are the individual ones above, which can help you identify where to focus your efforts for the next project!
