# Part 2

The **key** components for your project are:

1. The C++ engine that does the heavy lifting and management of game objects and resources
2. A simple to use editor for building games (e.g. a GUI-based tile editor)
3. A game built in your engine (i.e. a class or simple game).

## Requirements

The following are requirements of your game engine. There is significant freedom in how you achieve them, but I would like you to apply these techniques in your engine.

- [ ] Implement a resource manager
- [ - ] Implement a GUI-based editor/environment for building your game (i.e. An extension of the tilemap editor)
- [ - ] Your engine must be data-driven
  - [ - ] Scripts should be loaded for the gameplay logic
  - [ - ] Other configuration files (e.g. levels) should be loaded at run-time.
- [ - ] Your engine should be component-based **or** use some other logical pattern for organizing game objects (At a minimum you should have a gameobject class).
- [ - ] Something **extra** that gives your engine a 'wow' factor to show off to the TA's and instructors. Highlight this in your video (could be engineering, could be a gameplay mechanic that you designed your engine around, the goal is that it is something non-trivial)
  - --> We created all of our Art Assets!

## Gameplan

Given the above requirements, you may use this space to write some notes in. I suggest coming up with a timeline with your team members.

For example:

1. Week 1 - Form groups and agree on project, start dividing some responsibilities
2. Week 2 - Gather resources, from previous assignments and start planning
3. Week 3 - 5 Implementation of Editor and main components of engine
4. Week 6 - Continue iterating on engine, and build prototype of game.
5. Week 7 - Put together website and polish off bugs

### Timeline

_edit if you like_

1. _week 1 goals, and who will work on what_
2. _week 2 goals, and who will work on what_
3. _week 3 goals, and who will work on what_
4. _week 4 goals, and who will work on what_
5. _week 5 goals, and who will work on what_
6. _week 6 goals, and who will work on what_
7. _week 7 goals, and who will work on what_

## Inspiration!

### Previous Years Student Projects

For some inspiration, here are a few projects that are part of the "Hall of Fame" for this course. The best projects from this course will also be added to this list.

- Spring 2018
  - Tiny Engine
    - https://www.youtube.com/watch?v=TnI-HnQDgd8
  - Team gamecastle
    - https://www.youtube.com/watch?v=iLSId4Tx2jk
  - Hop Man (Single person team)
    - https://www.youtube.com/watch?v=X2uWwe0J-KM
  - Eternal Engine
    - https://zilby.github.io/GameBuildingEngine/Website_Media/Pong.mp4
- Spring 2019
  - Game Engine -- with tools
    - https://cs5850-final.firebaseapp.com/media/final.webm
  - This was an asteroids game engine which focused on spatial partioning.
    - I liked the editor and the application of the spatial partioning with debug mode.
    - https://www.youtube.com/watch?v=4rWz3QXzrjA
  - This is a really clean example of how editing while the game plays is done
    - https://www.youtube.com/watch?v=pu8Gnf25rqk
- Spring 2021
  - Ninja Frogs -- https://www.youtube.com/watch?v=5u7iUSrOjEE
    - Nice demonstration of editor and game running.
  - Ubihard Engine -- https://www.youtube.com/watch?v=5DtXk1N2WQM
    - Good demonstration of integrating tooling with editor.
  - Bubble Bobble Engine - https://www.youtube.com/watch?v=NZA6Ytb3WXg
    - Another nice enigne pulling together components.
  - Very polished game/engine
    - https://cottagelord.github.io/CS5850_Final_project_MoYuGamers/webpage/video/trailer.MP4
  - Few other examples
    - https://www.youtube.com/watch?v=qceC6PEyCpQ&t=8s
- Spring 2023
  - _Will it be your team?_

### Previous Existing Commercial Products

Some commercial examples of game making engines are the following:

1. https://www.yoyogames.com/gamemaker
   - 2D Game engine with scripting capabilities
2. http://phaser.io/
   - HTML based game engine.
3. Mario Maker: https://www.youtube.com/watch?v=QmCdH6GpE7o
   - Inspiration for our platformer
4. https://www.rpgmakerweb.com/
   - RPGMaker, click and create game engine
5. https://www.game-guru.com/
   - Primarily 3D Game engine
