Game Programming Project 1

Summary

In this project you will build your first basic game, a simple side or top scrolling game.

Due: Oct 1st at 11:59pm Oct 5th at 11:59pm

(I'll assign game design project for the Wed night class by the first)

Details

You will  build a top scrolling game.  Your game can have any theme (appropriate for class) that you want.


Given that a local single player game is the safest place to try out an over-reliance on AI generation we are going to try to see how well we can use a specific AI for this. (A large number of our graduates work in 'regulated industries' [Banking, healthcare, securities, mil-tech]. In those industries, You often can only use approved and vetted tools, including AI. So We are going to use only the Jetbrains AI that you can reach from goland (in this case we'll include the AI tab on the right). With that in mind, for this project only, and for the jetbrains AI only, I'm relaxing the only some% of your code can be written by AI rule. You can use it for as much as you can get out of this one AI with the following constraints:

Your protogame needs to

  • be written in Go
  • use the ebitengine library for the game rendering and game loop
  • use the resolv library for collision detection.
  • cannot use any deprecated methods/functions (AIs love to use older - soon-to-be removed functionality - be sure to find and replace them with updated calls)
  • be completely understood by you. I'll have interviews with each student to go over your code with you.
  • The top scroller needs to implement the functionality in the demo below (except for the start button screen, you can skip straight to the gameplay.)
    • notice
      • keyboard movement of the player
      • enemy movement
      • player shots
      • speed of the player vs speed of the enemies vs speed of the shots.
      • how often can you shoot
      • how does the player 'die' and game ends
      • how does the score increase or decrease?
      • when do we have sounds
      • scrolling background
  • you can of course add additional functionality - so long as the functionality of the proto-game below (again minus the start screen) is implemented by your solution.

Example Demo:

Submission:

Submit your project by creating a git repository, sharing the project on github (as a private project) and making me a collaborator. Make sure that all of your assets are in the repository as well as your code