Giter Site home page Giter Site logo

woodrock / front-of-house-frenzy Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 236.7 MB

Front-of-house Frenzy is a 3D grid-based game where you control a restaurant server, your objective is to serve food and drinks to customers while navigating a restaurant environment full of obstacles.

C# 10.86% C++ 88.20% C 0.95%
strategy-game simulation-game memory-game unreal-engine-4 time-management

front-of-house-frenzy's Introduction

Hello there ๐Ÿ‘‹

Fish + AI Business - Fish-Nose

Fish have super good noses that can smell all kinds of things! Well, we made a computer fish nose that can smell fish too! This fish nose machine can smell what kind of fish it is, like if it's a Hoki fish or a Mackerel fish. It can even smell which part of the fish it's sniffing, like the head or the tail. Sometimes the fish get mixed together by accident and the fish nose sniffs that out too!

If stinky oil from a boat leaks onto the fish, the fish nose machine can smell that - yuck! It's good at finding fish that got oily and shouldn't be eaten. The best part is the fish nose knows each fish apart by their smell, like Sally the Hoki and Sammy the Mackerel! Our fish nose makes sure all the fish stay safe to eat. Pretty cool huh?

Shiny links

  1. Proposal
  2. Documentation
  3. AJCAI 2022 Paper

Demos

Personal introduction

My goal is to leave the world a better place than I found it. I plan to bring that goal into reality by creating technology that improves the quality of life. These goals have motivated BE Honours (First Class) in Sofware Engineering. This objective has led me to a contract in Software Development at NIWA, collaborating with scientists and physicists to publish their research on our oceans and atmosphere to a global audience. I am currently undertaking a PhD in Artificial Intelligence. Software is a medium to explore my scientific curiosity and contribute a meaningful change.

Social Links

Support

  • Buy me a coffee โ˜•
  • $ETH --> 0x045BA9c0c69AF53B2Fca0e1A3769E44D9a328696

My Latest Blog Posts ๐Ÿ‘‡

front-of-house-frenzy's People

Contributors

jordan-e avatar nuescatris avatar raine1998 avatar toemily avatar woodrock avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

toemily

front-of-house-frenzy's Issues

Restore Main Level

Goal

Restore the Main.umap level to the game.

Task list:

  • Revert previous commit
  • Cherry pick previous commit
  • Apply necessary changes
  • Keep Main.umap
  • Merge changes with master

Completion criteria:

The Main level is back in the game, and functioning as intended.

Mathematics

GitHub detects this as a mathematica project.

mathematica

This is because the files that contain the models .ma are very large binary files. GitHub thinks these are Mathematica models. Due to their size, it also thinks that majority of the files are mathematica. So it labels the language for this project as Mathematica

Reset walkouts on new game

Goal

The number of walkouts had to be reset upon restart.

Task list:

  • after game over screen
  • set walkouts variable to 0

Completion criteria:

The number of walkouts resets for each new game.

Make patience bar using widgets for NPCs

Goal

A patience bar is used to indicate each customer current patience.

Task list:

What is needed to complete this issue?

  • Create patient widget(s)
  • happy, moderate, warning, angry (emojis?)
  • Display widgets on screen relative to world location of customer

Completion criteria:

We have a clear indication of the current progress of each customer. With alerts at important stages. It should be clear to a player when a customer is about to walk out. And when they are not far from requiring attention.

Controls menu

Goal

A basic UI that explains the controls for the game to the player.

Task list:

  • Create Controls Widget
  • Add to main and pause menus
  • (Optional) possibility to refactor for keybinds later

Completion criteria:

The game has a controls ui. This shows the player the basic controls for the game. It is designed in a way that it can be extended later to include rebinding keys.

Patience Widget

Goal

A widget is displayed by the customer once they have run out of patience.

Task list:

  • Create patience alert widget
  • Display by customer if they have no patience
  • Remove widget when the patience is reset

Completion criteria:

A patience widget will be displayed by a customer once there patience has depleted. When the server interacts with the customer the widget will disappear.

Game Over Screen on Lose Condition

Goal

Go the Game Over screen upon the lose condition

Task list:

  • Create Game Over widget
  • Get Walkouts variable from MyInstance
  • Create max walkouts variable
  • Check for lose condition (walkouts > lose)
  • Open Game Over widget if lose condition

Completion criteria:

The Game Over widget is displayed on the screen when the lose condition is meet. I.e, the acceptable number of walkouts is exceeded.

Menu blur and text fade

Goal

Make the text on each of the menus fade in and out.

Tasks

  • Create Fade animation
  • Fade in when entering a menu
  • Fade out when leaving a menu
  • Add some blur to the background

Success Criteria

The menus have animations when the player enters and exits them. This makes them more seamless. Also, the Main Menu could to with a background blur around its edges.

Implement spawning of customers

Goal

Customers spawn at the door of the restaurant. The player is notified when the enter and leave.

Tasklist

  • spawn customers
  • enter / exit sound
  • spawn at regular intervals
  • customer has AI and Actor

Success criteria

Customers spawn at the door at a linear rate throughout the progression of a level. The behaviour of each of those customers is handled by their own AI. It is clear to the user when a customer has spawned, and left.

Pause menu redesign

Goal

Style the pause menu with animations, fonts, and overlays.

Tasks

  • Make buttons transparent
  • Change text font
  • Hover animations

Success Criteria

The pause menu has an appropriate font, with hover animations, and no longer uses the default styling.

Soundtrack

Goal

Compose the game sound track.

Task list:

  • Main Theme - Menu Music
  • Game Music
  • Import as .WAV
  • Add to game

Completion criteria:

Compose the game's sound track. This consists of two themes. A main theme, and gameplay soundtrack.

Basic Customer NPC

Goal

Create a basic blueprint for the customer NPC

Tasks

  • Create customer NPC blueprint
  • Add temporary mesh
  • Add customers' patience variable (seconds)
  • Player interaction resets patience

Success Criteria

Customer NPC can arrive at the door. Their patience begins to deteriorate. Player interaction resets patience.

Background music

Goal

Background music is needed for the main menu

Task list:

  • Placeholder royalty free music
  • Convert to .wav
  • Add to main menu
  • (Optional) compose original theme music

Completion criteria:

The main menu has background music playing.

Game Over Menu Widget

Goal

Create a Game Over widget. This widget is presented when the player losses a level.

Task list:

  • Game Over widget
  • Widget Navigation
  • Widget Animations

Completion criteria:

There is a game over widget. With aninmations and navigation to restart a a level and quit to main menu,

Fix Camera

Goal

Rebuilt lighting and moved camra to reflect project specs

Tasklist

  • Move camera
  • Rebuilt lighting

Success

The camera is positioned correctly and lighting has been rebuilt.

Display bubble with order when within distance of table (Deteriorate patience)

Goal

Display an order bubble with the customer's order once a customer has been seated.

Task list:

  • Check box collision for customer and player
  • (Testing) print string for their food order
  • Create an order bubble widget
  • Translate customer world position to screen position
  • Display food icon in the widget

Completion criteria:

Once a customer has been seated. We display an order bubble with their desired food above there head, when the waiter is close enough to take the order.

Fix pause menu

Goal

The pause menu functionality was removed by another merge request. This needs to be added back to the game.

Tasks

  • Create Event on "M" keypress
  • Add Pause Menu Widget to screen
  • Set player cursor to show

Success Criteria

The player can pause the game when they push the "M" key. And their mouse cursor will appear for navigation.

Update options menu

Goal

The options menu should have some more settings for the user to change.

Task list:

  • Volume
  • Brightness
  • Anti-aliasing
  • Post processing

Completion criteria:

The menu has more settings for the user to adjust.

Behaviour Tree for Customer NPC

Goal

Full AI Behaviour for Customer should work

Task list:

Complete all logic for tasks in the behaviour tree:

  • WaitAtDoor

  • LeaveAngry

  • LootAtMenu

  • OrderFood

  • WaitForFood

  • EatFood

  • LeaveHappy

Completion criteria:

When each scenario can be reached:

  • Leave at door

  • Leave while waiting to order

  • Leave while waiting for food

  • Pay and leave after eating fully

Fix Movement

Movement directions for up and down seemed to be inverted. This can be fixed by changing the sign used to scale the keyboard input on the project settings. This change requires no refactoring of any other code.

Seat a customer

Goal

Customers can be seated by mouse click

Task list:

  • Mouse cursor appears on screen during game

  • Cursor recognises customer and table

  • Upon click of both, customer is moved to table location

Completion criteria:

When tasks are completed. Also animations added (if any)

Orientation

Goal

Rotate the map so that the player and camera are facing the correct orientation.

Task List

  • Map as single actor
  • Rotate it 90 degrees anti-clockwise XY axis.
  • Test player movement

Goal

The player's movement and camera and the map share the same orientation.

Main Menu as Default Screen

Goal

Make the main menu the default menu for the game.

Tasklist:

  • Change default game level in project settings
  • Change default editor level in project settings

Completion criteria:

The Main menu is displayed first each time the game is launched or the editor is opened.

Button hover animations

Goal

Style the main menu with animations, fonts, and overlays.

Tasks

  • Import Menu font
  • Make buttons transparent
  • Change text font
  • Hover animations

Success Criteria

The main menu have an appropriate font, with hover animations, and no longer uses the default styling.

Pause Menu

Goal

In game Pause menu.

Tasks

  • Create Pause Widget
  • Resume, Restart, Quit buttons
  • Add ESC key bind to pause the game
  • Resume, Restart, Quit functionality
  • Navigation to Main menu

Success Criteria

During a game, a player can pause by hitting a key, e.g., ESC. From here they can resume or restart a level or quit to the main menu.

Main Menu

Goal

A Main Menu user interface

Tasks

  • Create Menu Widget
  • Create Menu Level
  • Play game, Options, Quit
  • Navigation to Game mode

Success Criteria

The game starts with the main menu. From here the player can start a new game, adjust their options or quit.

Main menu animated background

Goal

Have an animated background for the Main Menu that contains footage rendered using the in-game engine.

Tasks

  • Add Level Props to Main Menu
  • Create Sequence
  • Add Sequence to Main Menu
  • Loop the sequence
  • Add the Main widget as an overlay

Success Criteria

The game has an in-game rendered animated sequence for the background of the Main Menu. The loop is seamless and does not appear to contain any cuts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.