Midterm Project Proposal - UCI-EECS113-Spring17/Nin10do GitHub Wiki

Project Proposal

Members

Brad Leiserowitz, 21437905

Xianpei Meng, 34191397

Repo URL

https://github.com/UCI-EECS113-Spring17/Nin10do

Project Description and Features

Description

For our project, we want to make a game that will be very similar to either Mortal Kombat (a fighting game) or Super Meat Boy (a difficult platforming game). We will use a joystick and keypad to function as the player's controller. The PYNQ board will need to be connected to a TV or monitor via an HDMI cable for video, and connected to speakers via an AUX cable for audio.

Features

  • A start screen where players can start a new game, load a saved game (if there is one), or change options.
  • Background music and sound effects.
  • An options screen where players can (to some extent) remap controls, adjust the audio output, reset to the default control scheme, or delete a saved game (without starting a new game).
  • Depending on what game we decide on, different levels or modes.

Our Current Progress

At the time of this project proposal, we know that we want to make a game that is similar to either Mortal Kombat or Super Meat Boy, but are not absolutely certain which of to use.

  • Mortal Kombat (one-player version, would have a more limited pool of characters to choose from than the actual game)
  • Super Meat Boy (one-player precision platformer. The goal is to reach the endpoint of a level, overall game has X levels)

Requirements

Additional Hardware

  • pmod jstk2: a joystick that can read x and y input. This will be used for player movements in game and menu navigation.
  • pmod kypd: a 16-button keypad. This will be used as a secondary direction pad-esque (4 direction button) input that can also be used in game or for menu navigation. Other buttons on the keypad will be used for confirming selections, executing in game commands (something like jump/fire/etc), or pausing (note: some of these functions might be mapped to the onboard buttons).
  • pmod 12-pin cable kit: extension cables for pmod peripherals so we can place the joystick and keypad in a comfortable position for playing the game. We may choose to not use this if it's unnecessary.
  • TV or monitor: the game will be displayed using the PYNQ board’s built in hdmi output, so our project requires us to have an hdmi cable and a display that can read hdmi input (we already have a cable and monitor for this). (Note: for audio, the player can connect a headset/speakers to the PYNQ board, or an AUX cable can be used to connect the PYNQ board to the TV or monitor).

Software Tools

Jupyter

Vivado

Benchmarks, Test Inputs, Etc.

Drivers test (a program that will show the response PYNQ interprets from the joystick and keypad).

Play testing the game.

Timeline & Group Member Contributions

Week 5

Both: project proposal and video.

Week 6

Both: order all the required hardware and play with python programming. Determine exactly which game we want to use.

Week 7

Brad: overlay, background music, character/item sprites, drivers test.

Xianpei: drivers, sound effects, background images.

Week 8

Brad: program characters/items, mapping controls to character.

Xianpei: program api, levels/modes, frame.

Week 9

Brad: finish week 8 stuff + set up start screen and load game (if needed).

Xianpei: finish week 8 stuff + set up options menu and save game (if needed).

Week 10

Both: finish anything left from week 9, test/debug, and write final report.

References

Joystick: http://store.digilentinc.com/pmod-jstk2-two-axis-joystick/

Keypad: http://store.digilentinc.com/pmod-kypd-16-button-keypad/

Extension cable: http://store.digilentinc.com/pmod-cable-kit-12-pin/

Original games: https://en.wikipedia.org/wiki/Mortal_Kombat, https://en.wikipedia.org/wiki/Super_Meat_Boy