Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
52c225e
added proposal.md with basic desc and team member names
jameskajon Sep 28, 2019
107eec0
added requirements to proposal
jameskajon Sep 28, 2019
b170bd1
added games list to proposal
jameskajon Sep 28, 2019
c1b2869
added basic project structure
jameskajon Sep 28, 2019
4b13aba
added bootstrap and split up head section
jameskajon Sep 28, 2019
682a07a
added authorization. added nav bar
jameskajon Sep 28, 2019
19137d3
fixed all auth buttons flashing
jameskajon Sep 28, 2019
12d725f
added unlinked help and stats buttons to nav bar. made navbar blue
jameskajon Sep 28, 2019
f5ed6ee
added game urls using the game id; updated navbar css
jameskajon Sep 29, 2019
a7ce285
made user welcome message white
jameskajon Sep 29, 2019
f8fa6ac
Proposed edits to the proposal
jwplante Sep 30, 2019
2e68822
Changed phrasing of initial summary
jwplante Sep 30, 2019
ba12d4a
added doc comments to almost all functions. Definitely all globally d…
jameskajon Sep 30, 2019
2e24adb
reduced warnings
jameskajon Sep 30, 2019
b3211b2
Merge branch 'dev-master'
jameskajon Sep 30, 2019
e7df051
fixed bad update with trying to fix imports
jameskajon Sep 30, 2019
0065f62
move firebase creds to a secrete place
jameskajon Oct 2, 2019
0b6a71d
added author tags to jsdocs
jameskajon Oct 3, 2019
b423d17
added router to render the index page. pulls game id and name from th…
jameskajon Oct 3, 2019
efe7339
added game boxes to index page
jameskajon Oct 3, 2019
15f0002
created simple phaser game called luck
jameskajon Oct 4, 2019
47d9c33
added to luck game
jameskajon Oct 4, 2019
28d1bbb
saving game scores works
jameskajon Oct 4, 2019
d25c4c8
upgraded game score submit to increment timesPlayer and to reject sub…
jameskajon Oct 4, 2019
b0bc96b
fixed warning and added comments
jameskajon Oct 4, 2019
3c0dda0
added check for user login and made it possible for them to login or …
jameskajon Oct 4, 2019
c331a57
fixed warnings
jameskajon Oct 4, 2019
eab91ff
added luck img. changed game box size from 300x200 to 200x150 to have…
jameskajon Oct 4, 2019
bac93d1
added warning to let user know they need to sign in to submit scores
jameskajon Oct 4, 2019
84b09ee
made score modal layout. outlined idea of how to fill the content on …
jameskajon Oct 4, 2019
2a28a52
Created new assets and basic game info
jwplante Oct 5, 2019
d6d9b51
filled in dropdown adn restructured pull code into a new file. Every …
jameskajon Oct 5, 2019
3215fe2
Basic ball and paddle working
jwplante Oct 6, 2019
c78d22b
added scores model basic layout
jameskajon Oct 6, 2019
bb08e60
scores works but could some touch ups
jameskajon Oct 6, 2019
4cbe864
fixed score tabs showing user content when opened
jameskajon Oct 6, 2019
11e8ac3
fixed warning
jameskajon Oct 6, 2019
55ffa23
Revised ball and paddle collisions to be less realistic (and more fun!)
jwplante Oct 6, 2019
3a3b38b
Merge with master and some new functions
jwplante Oct 6, 2019
65eff39
Merge branch 'master' into james-games
jwplante Oct 6, 2019
d816d2a
Fixed indentation and abstracted paddle speed to a constant
jwplante Oct 6, 2019
f0394af
Added bars but no collision
jwplante Oct 6, 2019
482fa7c
asteroids game first commit, can currently move ship, draw and move a…
ABon27 Oct 6, 2019
ed089e3
Scoring system implemented
jwplante Oct 6, 2019
ea9ce52
Implemented basic lives system but no Game Over yet.
jwplante Oct 6, 2019
7cb3425
Sudoku is finished
acnolan Oct 7, 2019
688cccb
Basic functionality
amarkoski Oct 7, 2019
0bc7907
edited a comment
jameskajon Oct 7, 2019
04a7e7a
init
jameskajon Oct 7, 2019
ccd1002
added grid
jameskajon Oct 7, 2019
7dc6332
added sorting by direction stored on game in db. concerned it may be …
jameskajon Oct 7, 2019
81b8973
New Game Over system, finished main mechanics
jwplante Oct 7, 2019
84cc706
Merge branch 'master' into james-games
jwplante Oct 7, 2019
cf24463
reduced loading times of scores by storing the sort direction for eac…
jameskajon Oct 7, 2019
6f368d4
fixed bug in scores drop down menu not ordering the correct way. adde…
jameskajon Oct 7, 2019
7fd8454
added astar path finding
jameskajon Oct 7, 2019
8736a7d
fixed some singe quotes into double
jameskajon Oct 7, 2019
86b19ba
Merge branch 'master' into james-games
jwplante Oct 8, 2019
6c0edfc
Merge with current branch and refactoring
jwplante Oct 8, 2019
c579686
added enemy rotation
jameskajon Oct 8, 2019
4d81572
added bottom row of game for ui
jameskajon Oct 8, 2019
81b6d7d
Submit score works but only once per game apparently. Possible bug?
jwplante Oct 8, 2019
2414bf6
Ken Ken
acnolan Oct 8, 2019
f672281
Merge branch 'master' into nandrewsgames
acnolan Oct 8, 2019
680d7f3
Revert "Merge branch 'master' into nandrewsgames"
acnolan Oct 8, 2019
d56b337
Started rock paper scissors
acnolan Oct 8, 2019
8ff2947
submitScore(): fixed bug in which the modal would not appear a second…
jwplante Oct 8, 2019
be1b23b
Added pausing, score to DB
amarkoski Oct 8, 2019
5fa60b1
Merge branch 'master' into mandrews-games
amarkoski Oct 8, 2019
5137738
BDest: new thumbnail
jwplante Oct 8, 2019
71f0ffa
added help modals for luck, index and user
jameskajon Oct 8, 2019
06393c0
fixed bug with calling modal every update after a game had ended
jameskajon Oct 8, 2019
a6a9838
Merge branch 'help-menu'
jameskajon Oct 8, 2019
12e9b11
Rock paper scissors
acnolan Oct 8, 2019
77603e1
Merge branch 'master' into nandrewsgames
acnolan Oct 8, 2019
0f03625
help button stuff added
acnolan Oct 8, 2019
2130469
Added pause text, double jump and fixed sprite
amarkoski Oct 8, 2019
468f06f
Merge branch 'master' into mandrews-games
amarkoski Oct 8, 2019
2c6df22
Added comments
acnolan Oct 8, 2019
e20f75a
unbreaking somethings?
acnolan Oct 8, 2019
39d52f1
more
acnolan Oct 8, 2019
8fa4ce1
sorry
acnolan Oct 8, 2019
5fbe5bd
size of rps results
acnolan Oct 8, 2019
7cc14ce
Merge branches 'AndrewAsteroids' and 'master' of https://github.com/j…
ABon27 Oct 8, 2019
400ac76
fixed simple bug in order of scores
jameskajon Oct 8, 2019
ab92a41
ship can shoot
ABon27 Oct 8, 2019
5a4cf53
Merge pull request #1 from jameskajon/nandrewsgames
acnolan Oct 8, 2019
81a49e8
Center text and refactor
jwplante Oct 8, 2019
6cd34fa
added Tower
jameskajon Oct 9, 2019
aafe2a4
added Truck Enemy objects to the screen with movment still working
jameskajon Oct 9, 2019
8d3c655
asteroids game now functional, still need to be able to submit scores…
ABon27 Oct 9, 2019
f351ae6
Merge branches 'AndrewAsteroids' and 'master' of https://github.com/j…
ABon27 Oct 9, 2019
fbe172c
Added moving ground, help message, and start text
amarkoski Oct 9, 2019
7874769
cleaned up
jameskajon Oct 9, 2019
ceef19a
working cursor
jameskajon Oct 9, 2019
1071d41
DIRECTLY TO MASTER YEE HAW
acnolan Oct 9, 2019
00ad2e1
Cleaned up code
amarkoski Oct 9, 2019
4667888
epic awesome game lol xd
acnolan Oct 9, 2019
84be485
Merge branch 'mandrews-games'
amarkoski Oct 9, 2019
4479da4
added menu
jameskajon Oct 9, 2019
e185bdd
Help menu for brick destroyer and renamed images to work on Mac/Linux
jwplante Oct 9, 2019
0b4d4ec
places sand
jameskajon Oct 9, 2019
b2b2419
tried to add path recalulation but decided not to for now. too compli…
jameskajon Oct 9, 2019
b429123
fixed bad traveling. path arrays were diferent lengths and that was r…
jameskajon Oct 9, 2019
7709a55
added fading and removal of enemies on death
jameskajon Oct 9, 2019
02c49b0
added removing enemys from list
jameskajon Oct 10, 2019
b374857
got shooting to work
jameskajon Oct 10, 2019
cd88518
added health bar
jameskajon Oct 10, 2019
1539de3
added waves
jameskajon Oct 10, 2019
2def926
flappy goat game 100% functional hopefully
ABon27 Oct 10, 2019
a6ed10d
hbs not pushed in last commit for some reason
ABon27 Oct 10, 2019
27bc749
Merge branches 'flappyBird' and 'master' of https://github.com/jamesk…
ABon27 Oct 10, 2019
8a1a7fb
added score, money, and lives
jameskajon Oct 10, 2019
1d64046
added p to pause
jameskajon Oct 10, 2019
ae668d4
added score submit on loss of lives. and restart
jameskajon Oct 10, 2019
b79d0c2
added price labels
jameskajon Oct 10, 2019
6ef8429
balanced stuff a bit. added prices
jameskajon Oct 10, 2019
a89b640
fixed bug with grid not reseting
jameskajon Oct 10, 2019
22584d9
Merge branch 'otd-jimmy'
jameskajon Oct 10, 2019
85a4108
merged tower defence and added images for new ex game and tower defence
jameskajon Oct 10, 2019
e33b466
changed scores css to not be a fixed size
jameskajon Oct 10, 2019
b00eeab
tried to blance otd better
jameskajon Oct 10, 2019
f6c0bd5
rebalanced otd
jameskajon Oct 10, 2019
33bfa24
Merge branch 'otd-jimmy'
jameskajon Oct 10, 2019
7011c4c
added help to tower defence
jameskajon Oct 10, 2019
3effe75
added readme
jameskajon Oct 10, 2019
797bdd9
added readme. updated package to run the app
jameskajon Oct 10, 2019
6afcb21
Update README.md
jwplante Oct 10, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.DS_Store
node_modules/
package-lock.json
private/
6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

96 changes: 45 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,45 @@
# cs4241-FinalProject

For your final project, you'll implement a course project that exhibits your mastery of the course materials.
Similar to A4, this project gives you an opportunity to be creative and to pursue individual research and learning.

## General description

Your project should consist of a complete Web application, exhibiting facets of the three main sections of the course material:

- Static Web page content and design. You should have a project that is accessible, easily navigable, and features significant content.
- Dynamic behavior implemented with JavaScript.
- Server-side programming. Typically this will take the form of some sort of persistent data, authentication, and possibly server-side computation.

Additionally, you should incorporate features that you independently research, design, and implement for your project.

## Project ideation

Excellent projects serve someone/some group; for this assignment you need to define your users and stakeholders. I encourage you to identify projects that will have impact, either artistically, politically, or in terms of productivity. Consider creating something useful for a cause or hobby you care about.

## Logistics

### Team size
Students are encouraged to work in teams of 2-5 students for the project. This will allow you to build a good project without expending an excessive amount of effort. While I would expect a team of four or five students to produce a project with more features, I expect a every team's work to exhibit all of the required facets described above.

### Deliverables

__Proposal:__
Provide an outline of your project direction and the names of the team members.
The outline should have enough detail so that staff can determine if it meets the minimum expectations, or if it goes too far to be reasonable by the deadline.
This file must be named proposal.md so we can find it.
Submit a PR to turn it in by Monday, September 30th, before class

There are no other scheduled checkpoints for your project.
You must be done in time to present before the final project demo day (October 10th).

#### Turning in Your Outline / Project

**NOTE: code is due before the project presentation day due to the end of term / grading schedule constraints**
Submit a second PR on the final project repo to turn in your app and code.

Deploy your app, in the form of a webpage, to Glitch/Heroku/Digital Ocean or some other service.
Folks on the same team do not need to post the same webpage, but must instead clearly state who is on the team in their proposal.
(Staff will use the proposal to build the grading sheet.)

## Final Presentation

Presentations will occur during the final day of class.

## FAQs

- **Can I use XYZ framework?** You can use any web-based frameworks or tools available.
# AJAJA Games

Link: https://ajaja-games.glitch.me/

A game website which hosts simple arcade and puzzle games that can be played in most web browsers. The website's main interface will feature the games created over the course of the project as well as a way to login to save scores.

## Team
- Andrew Bonaventura
- Andrew Markoski
- Andrew Nolan
- James Kajon
- James Plante

## Games
- Luck - Click the pot of gold to get your luck percentage.
- Brick Destroyer - a game similar to Breakout where you hit bricks with a ball to make them disappear.
- Flappy Goat - a game similar to Flappy Bird, except with Gompei as the mascot
- Gomepi Run - a game similar to endless running games such as the dinosaur easter egg in Google Chrome or Canabalt, where Gompei is running at a set speed while avoiding incoming boulders.
- Open Tower Defense - a basic tower defense game where you have to defend you base from oncoming waves of tanks.
- Sudoku - an implementation of the classic Soduku puzzle game. Be sure to get the fastest time!
- Kenken - a simular game to Soduku, with additional stipulations
- Rock, Paper, Scissors - Play ten rounds of rock, paper, scissors.
- Epic Game - Test game to test the high score system.

## Instructions
- In order to use the website to save high scores, you can either log in with your GitHub account, Google account, or create a new account.

## Technologies Used
- Handlebars - Builds templates for each of our pages
- Bootstrap - CSS framework that was used to style each of the pages
- Phaser - JS framework used to create some of the games with active physics such as Gompei Run, Open Tower Defense, Luck, and Brick Destroyer
- Express - Used for the server
- Firebase - Used for database storage and authentication for users.
- Canvas - Used for some games such as Flappy Goat.

## Main Challenges
- Learning new technologies to acoomplish game specific features such as Phaser to make physics easier.
- Incoroporating Firebase into the project for storing scores and incorporating this functionality into each game.

## Group Member Responsibilities
- Andrew Bonaventura - Creation of Flappy Goat
- Andrew Markoski - Cration of Gompei Run
- Andrew Nolan - Creation of Sudoku, Rock Paper Scissors, and Kenken
- James Kajon - Creation of main site, setting up and maintaining database, creation of Open Tower Defense, creation of leaderboard system and authentication
- James Plante - Creation of Brick Destroyer, deployed site on Glitch.
51 changes: 51 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
const express = require("express"),
hbs = require("express-handlebars"),
path = require("path"),
morgan = require("morgan"),
compression = require("compression"),
helmet = require("helmet"),
bodyParser = require("body-parser"),
firebaseAdmin = require("firebase-admin");

const app = express();
const port = process.env.PORT | 3000;

const serviceAccount = require("./private/serviceAccountCredentials.json");

firebaseAdmin.initializeApp({
credential: firebaseAdmin.credential.cert(serviceAccount),
databaseURL: "https://cs4241-fp-26fee.firebaseio.com"
});

const authRouter = require("./routes/auth-routes"),
gameRouter = require("./routes/game-routes"),
gameDataRouter = require("./routes/game-data-routes"),
indexRouter = require("./routes/index-routes");


// morgan logger
app.use(morgan("dev"));
app.use(compression());
app.use(helmet());

// template engine setup (handlebars)
app.engine("hbs", hbs({helpers: require("./views/helpers.js").helpers, extname: "hbs", defaultLayout: "layout", layoutsDir: __dirname + "/views/layouts/"}));
// app.engine("hbs", hbs({extname: "hbs", defaultLayout: "layout", layoutsDir: __dirname + "/views/layouts/"}));
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "hbs");

app.use(express.static("public"));
app.use("/scripts", express.static(__dirname + "/node_modules/"));

app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: false
}));

app.use("/data/games", gameDataRouter); // store game data
app.use("/games", gameRouter); // load game pages
app.use("/", indexRouter); // load game pages
app.use("/auth", authRouter); // handel sign ups


app.listen(port, () => console.log(`Listening on port ${port}`));
18 changes: 18 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "fp",
"version": "1.0.0",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"body-parser": "latest",
"compression": "^1.7.4",
"express": "^4.17.1",
"express-handlebars": "^3.1.0",
"firebase-admin": "^8.6.0",
"helmet": "^3.21.1",
"morgan": "^1.9.1",
"phaser": "^3.19.0",
"webpack": "^4.41.0"
}
}
50 changes: 50 additions & 0 deletions proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# AJAJA Games

A game website which hosts simple arcade and puzzle games that can be played in most web browsers. The website's main interface will feature the games created over the course of the project as well as a way to login to save scores.

## Team
- Andrew Bonaventura
- Andrew Markoski
- Andrew Nolan
- James Kajon
- James Plante


## Requirements

### Static

Our website will have one main webpage where users can choose a game to play as well as a page for each game.

### Dynamic

All of our games will be created using JavaScript.

### Server-side

Our website will have game scores stored in a database using Firebase. Users will need to sign in to save their score.


## Games

### Currently Developing

- Breakout
- Rocket Lander
- Running game (like Chrome dino run)
- Asteroids
- Sudoku

### Possible Future

- 3D running game
- Pinball
- Air Hockey (against simple AI)
- Billiards
- Tetris
- Tic-tac-toe
- Hangman
- Puzzle games
- Memory/match game
- Typing test

Binary file added public/assets/bdest/ball.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/bdest/bar_orange.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/bdest/bar_red.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/bdest/bar_yellow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/bdest/paddle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/flappyGoat/bluesky.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/flappyGoat/flappyGoat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gompei/gompei.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gompei/gompei.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gompei/grassLong.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gompei/ground.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gompei/groundLong.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gompei/rock.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/bdest.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/ex-game.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/flappygoat.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/gompei.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/kenken.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/luck.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/rps.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/sudoku.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/images/tower-defence.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions public/assets/luck/pot-of-gold.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/rockpaperscissors/paper.png
Binary file added public/assets/rockpaperscissors/rock.png
Binary file added public/assets/rockpaperscissors/rps.png
Binary file added public/assets/rockpaperscissors/scissors.png
49 changes: 49 additions & 0 deletions public/assets/tower-defence/brick1.svg
20 changes: 20 additions & 0 deletions public/assets/tower-defence/cannon.svg
20 changes: 20 additions & 0 deletions public/assets/tower-defence/machine-gun.svg
Loading