Unit 1: Project 1 - The DOM Game

Overview

Get ready to dive into an exciting project in your SEI course - your very own game! This project is not just about fun; it's a journey into the world of programming logic. It's your chance to unleash your creativity and tackle some challenging programming problems. You've had a taste of game development in class; now, it's time to choose a game and bring it to life.

You'll be working solo on this project, but don't worry, your instructors and assistants are here to help through the Slack support channel. Remember to provide detailed issue descriptions, including screenshots and relevant code.

Remember, your game must be original. GA strictly prohibits plagiarism. Using general techniques or algorithms from sources like StackOverflow is fine, but the core of your project must be uniquely yours.

In addition to creating your game, you'll also complete a Project 1 Assessment.

Planning & Presentation Requirements

Planning - Due 11/29/2023:

  • Share your game choice.
  • Provide a wireframe of your main game screen.
  • Submit pseudocode for the overall gameplay.

Presentation - Due 12/09/2023:

You have 10 minutes to present your project, covering these points:

  1. Introduce the Project:

    • Paraphrase your game's README.
  2. Demonstrate the Project:

    • Launch and play the game, manipulating variables for a quick outcome if needed.
  3. Discuss your code:

    • Show your HTML & CSS briefly.
    • Focus on your JavaScript, especially your favorite function.
  4. Share your experience:

    • Discuss your biggest challenge and key learnings.
  5. Q & A + Feedback

Technical Requirements

Your game must:

  • Be browser-based.
  • Include win/loss logic with HTML messages (no alert() in production).
  • Have separate HTML, CSS, and JavaScript files.
  • Use vanilla JavaScript.
  • Be well-formatted and consistent in coding style.
  • Be free of unused or commented-out code.
  • Have sensibly named functions and variables.
  • Be deployed online (GitHub Pages or Netlify).

Necessary Deliverables

  • A working, original game hosted on GitHub Pages.
  • A comprehensive README.md file.
  • Daily commits from the project's start.
  • The repository must be public on your personal GitHub account.

Game Options (Or Create Your Own)

Choose from a list of games, ranging in complexity, or propose your own unique idea. Remember, all games should be DOM-based, not canvas-based.

Suggestions

  • Follow the Guide to Building a Browser App for a clear, scalable code structure. We will review this doc in class.
  • Personalize your game with a unique theme.
  • Utilize Chrome DevTools for debugging.
  • Aim for a polished Minimum Viable Product (MVP).
  • Consult documentation and resources for better understanding.
  • Write DRY code and avoid repetition.

Project Feedback + Evaluation

Your instructors will use the Project 1 Code Review form for evaluation. Feedback will be provided by the end of the day on Thursday following your Saturday presentation. You have one chance to resubmit your project if it doesn't meet the requirements.


Instructor's Note: I encourage you to think outside the box and come up with your own game idea. This is your opportunity to showcase your creativity and programming skills. Let's make something amazing!

Choose From the Following Games(Or make your own)

Note: Games are listed in approximate order of increasing difficulty.

  1. Trivia game

    • Jeopardy, Family Fued or like trivia question game
  2. Rock Paper Scissors Lizard Spock
  3. Tic Tac Toe

    • Must be best 3 out of 5
  4. Spaceman/Hangman

    • A good icebox feature (optional feature) is to allow the player to choose from categories of words.
  5. Concentration (Memory Game)

    • Use "cards" or other theme
    • Will need to display "wrong" guess until a timer expires or until the next click.
    • Must lose after a certain amount of time or after X number of bad guesses.
  6. Simon

    • Requires audio
  7. Mastermind (Guess the Code)
  8. Minesweeper

    • Must implement "flood" feature
  9. Blackjack

    • Must implement wagering feature
    • Do not have to implement splitting hands
  10. Slot Machine

    • Must implement wagering feature
  11. Checkers

    • No Computer Player required - player vs. player is fine
  12. Pokemon like turn based fight game
  13. Rudimentary Final Fantasy/Pokemon Style RPG game
  14. Pac-Man

    • Only one student ever of my over 500 GA students has ever attempted and completed this
  15. Chess

    • No one has ever sucessfully got this done
  16. Uno

    • Only one student has ever got this done years ago and they are now a Senior Software Engineer and an Instructor at GA