Skip to content

Commit 2e81ae2

Browse files
committed
new audio changes for readme and tech illustrations
1 parent 70c9d8f commit 2e81ae2

5 files changed

Lines changed: 360 additions & 138 deletions

File tree

README.md

Lines changed: 83 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,180 +1,125 @@
1-
# Introduction
1+
# Game Hub – Design Process
22

3-
Genome Gamers Frontend is a project designed to support students in their Computer Science and Software Engineering education. It combines educational resources like tech talks, code examples, and blogs with an interactive **Game Hub** that gamifies learning through engaging minigames.
3+
Welcome to Game Hub!
4+
This document outlines the journey of designing and building our game hub, focusing on the evolution of our ideas and how they shaped the final product.
45

5-
The **Game Hub** serves as the central platform where players can explore different worlds, interact with NPCs, and access a variety of games. Players navigate the hub using WASD controls, customize their character's appearance, and earn points by completing challenges. Each world offers unique experiences, with three games per world designed to enhance STEM learning in a fun and interactive way.
6+
<img width="1280" alt="Image" src="https://github.com/user-attachments/assets/eaaf7ae4-3a85-4045-861a-311e8c6700de" />
67

7-
GitHub Pages can be customized by the blogger to support computer science learnings as the student works through the pathway of using JavaScript, Python/Flask, Java/Spring.
8-
9-
## Key Features
10-
11-
### Game Hub (World Selector)
12-
The **Game Hub** acts as the central map where players can select different worlds to explore. Each world is represented by an icon, and players can interact with NPCs to learn more about the world and its games. The hub also includes options for customizing character skins and accessing help or additional resources.
13-
14-
### Worlds and Their Games
15-
Each world contains three unique games that align with its theme:
16-
17-
1. **Bioverse Central**:
18-
- Explore options like skins, help, outlines, and more.
19-
- Games: Skins customization, Help section, and Outlines.
20-
21-
2. **Genomic Architects**:
22-
- Focus on building DNA, editing genes, and playing blackjack.
23-
- Games: DNA Building, Gene Editing, Blackjack.
24-
25-
3. **Pathogen Patrol**:
26-
- Predict outbreaks, explore organelles, and engage in scientific adventures.
27-
- Games: Outbreak Prediction, Exploration, Adventure.
28-
29-
4. **Arcade Rush**:
30-
- Master fast-paced classics like Pac-Man, Flappy Bird, and Geometry Dash.
31-
- Games: Pac-Man, Flappy Bird, Jump Challenges.
32-
33-
5. **Party Time**:
34-
- Spin slot machines, open digital packs, and enjoy party games.
35-
- Games: Slot Machine, Pack Opening, Party Games.
36-
37-
6. **Combat Zone**:
38-
- Enter skirmishes, plan tactics, and survive swarms.
39-
- Games: Skirmish, Strategy, Survival.
40-
41-
7. **Strategy Core**:
42-
- Engage in tower defense, simulations, and bird slinging.
43-
- Games: Tower Defense, Simulation, Racing.
44-
45-
8. **Skill & React**:
46-
- Test reflexes with table tennis, crossy road, and other challenges.
47-
- Games: Table Tennis, Reflex Challenges, Crossy Road.
48-
49-
9. **Click & Collect**:
50-
- Farm, race, and click through fast-paced experiences.
51-
- Games: Farming, Racing, Clicker.
52-
53-
### Common Features Across the Site
8+
---
549

55-
1. **Interactive Minigames**:
56-
- A variety of games such as platformers, tower defense, blackjack, farming simulators, and more.
57-
- Real-time scoring and leaderboard systems.
10+
## 1. Initial Plan: The Outline
5811

59-
2. **NPC Interactions**:
60-
- NPCs provide hints, dialogue, and guidance for each world and its games.
12+
Our project began with a simple goal: make biotech-related engaging games.
13+
**Outline** was our first plan, where we brainstormed core concepts:
6114

62-
3. **Customization**:
63-
- Players can customize their character's appearance using skins.
15+
- **Biotech Education**: Use games to teach real-world science.
16+
- **Data & ML Integration**: Incorporate real datasets and machine learning for authentic scenarios.
17+
- **Adventure Structure**: Start with a single world, inspired by classic adventure games like Mario.
18+
- **Team Roles**: Assign clear responsibilities (frontend, backend, ML, testing, project management).
6419

65-
4. **Educational Content**:
66-
- Games are designed to enhance STEM learning through interactive and engaging experiences.
20+
We mapped out a handful of games (e.g., Outbreak, DNA Building, Blackjack) and focused on how each would teach a biotech concept.
21+
The first prototype was a single map which can be seen in /world10 with 6 games and 3 other experiences.
6722

68-
5. **Responsive Design**:
69-
- All pages and games are optimized for desktop and mobile devices.
70-
- CSS animations and transitions for smooth user interactions.
23+
<img width="1280" alt="Image" src="https://github.com/user-attachments/assets/c97ad687-7f25-43f9-8910-2b46e38462e8" />
7124

72-
6. **Audio Integration**:
73-
- Background music and sound effects are included in most games.
74-
- Audio files are preloaded for seamless playback.
25+
---
7526

76-
7. **Reusable Components**:
77-
- Modular JavaScript files for shared functionality across games (e.g., game loops, collision detection, scoring systems).
78-
- Shared CSS styles for consistent design.
27+
## 2. Next Plan: The Format
7928

80-
8. **API Integration**:
81-
- Backend API endpoints for updating user points and fetching leaderboard data.
82-
- Fetch-based asynchronous calls for real-time updates.
29+
As the project grew, we realized the need for better organization and scalability.
30+
**Format** was our second plan, where we restructured the site:
8331

84-
9. **Customizable Settings**:
85-
- Difficulty levels for games (e.g., Easy, Medium, Hard).
86-
- Adjustable parameters like speed, jump height, and spawn rates.
32+
- **Game Categorization**: Grouped games by type (arcade, strategy, party, etc.) for easier navigation.
33+
- **Worlds & Levels**: Had several related games and designed about worlds that led to different games.
34+
- **UI/UX Improvements**: Added a central hub and repurposed the games to be on different worlds rather than on one.
35+
- **Points System**: Integrated backend points and rewards for playing games.
8736

88-
10. **Leaderboard System**:
89-
- Persistent leaderboard for tracking top scores across games.
90-
- Integration with backend APIs for storing and retrieving leaderboard data.
37+
This phase led to the creation of /world9 which was our second map design. It grouped similar games next to each other, but had all games on one page which was not UI friendly nor easy to navigate.
38+
We also began planning for more games, aiming for 24 total, and started to separate design from implementation.
9139

92-
11. **Modular Design**:
93-
- Each game is encapsulated in its own file structure for easy maintenance and updates.
94-
- Shared assets like images, audio files, and scripts are stored in centralized directories.
40+
<img width="1280" alt="Image" src="https://github.com/user-attachments/assets/10daf8b2-4dfd-4569-8c4e-d2df44d2467a" />
9541

9642
---
9743

98-
## Technical Design Overview
44+
## 3. Final Plan: The Synopsis
9945

100-
### Architecture Diagram
46+
With feedback and iteration, we moved to our **Final Plan**:
47+
**Synopsis** focused on polishing our website and making it scalable.
10148

102-
The technical design of Genome Gamers follows a modular architecture that integrates the front-end, backend, and deployment pipelines. Below is a high-level overview of the architecture:
49+
- **Eight Themed Worlds**: Each world from /world0 -> /world8 represents a category (e.g., Arcade Rush, Party Time, Combat Zone).
50+
- **Central Hub**: The index page became the starting world with 9 different worlds - 8 being to groups of 3 with minigames and the other being other experiences.
51+
- **Dialogue & NPCs**: Added character-driven world entry, with NPCs to interact and talk with before entering a world.
52+
- **Cosmetics & Points**: Expanded skin selection and integrated a persistent points system.
53+
- **Modular Design**: Each minigame in each world is in its own .md file, making it easy to navigate the worlds and minigames while programming the website.
54+
- **Educational Focus**: 6 of the games are still related to our biotech original theme (the first 6 games), with real data and ML models where possible.
10355

104-
- **Frontend**: Built using HTML, CSS, and JavaScript, leveraging Jekyll for static site generation. The front-end is styled using SASS and integrates with GitHub APIs for dynamic content. The interactive game hub is implemented using HTML5 Canvas and JavaScript.
56+
This structure allowed us to scale, maintain, and expand the site efficiently.
57+
The final product is a collection of interconnected worlds, each with its own theme, games, and educational goals.
10558

106-
A detailed architecture diagram is available on [Draw.io](https://app.diagrams.net/). You can find the diagram file in the repository under `docs/architecture.drawio`.
59+
<img width="1279" alt="Image" src="https://github.com/user-attachments/assets/def86fbb-4268-4dce-ac24-59a7a494e188" />
10760

10861
---
10962

110-
## Technical Description
63+
## Design Principles & Lessons Learned
11164

112-
### Frontend Design
65+
- **Iterative Design**: Each plan built on the last, responding to user feedback and technical challenges.
66+
- **User Experience**: Navigation, clarity, and engagement were prioritized at every stage.
67+
- **Educational Value**: Games were chosen and designed for their ability to teach, not just entertain.
68+
- **Team Collaboration**: Clear roles and regular planning meetings kept the project on track.
11369

114-
The front-end is based on the structure of the website, which includes:
70+
<img width="1280" alt="Image" src="https://github.com/user-attachments/assets/1ea65e63-4da7-440f-b36d-7ebcaf3d781c" />
11571

116-
1. **Game Hub**: The index page (`index.md`) serves as the central hub for navigating different worlds and minigames. It features:
117-
- Interactive elements like NPC dialogues and skin customization.
118-
- Dynamic rendering using HTML5 Canvas.
119-
- Background music and visual styling for an immersive experience.
120-
2. **Navigation Bar**: Configured in `_config.yml` to provide easy access to different sections of the website.
121-
3. **Styling**: Custom themes are applied using SASS, with options to switch themes in `_sass/minima/custom-styles.scss`.
72+
---
12273

123-
### Interactive Features
74+
## File Structure Overview
12475

125-
The game hub includes several interactive features:
76+
- Index.md: Central hub with navigation and NPCs.
77+
- World0 to World8: Themed worlds, each with unique games and experiences.
78+
- World9 and World10: Our early prototypes and "legacies" of our old maps to document our journey creating the game
79+
- Outline, Synopsis, and Format: Our planning documents for our website.
80+
- Music, Aboutus, Skin, and Help: Other experiences showing our credibility, how to help the user, custom music on each level for immersive and engaging purposes, and a way to customize your profile.
81+
- Points, Home Icons, and Other Documents: Even more ways to make your experience at Game Hub better.
12682

127-
- **NPC Dialogues**: NPCs provide hints and guidance for navigating different worlds. Dialogues are dynamically rendered using JavaScript.
128-
- **Skin Customization**: Players can customize their character's appearance using a modal interface.
129-
- **Game Worlds**: Each world is represented by an interactive object on the canvas, allowing players to enter different experiences.
83+
<img width="1280" alt="Image" src="https://github.com/user-attachments/assets/1016de84-348c-4f02-a079-6028b1dba6c9" />
13084

13185
---
13286

133-
## Getting Started
134-
135-
To set up the Genome Gamers Frontend project, follow the steps below:
136-
137-
### Prerequisites
87+
## Next Steps
13888

139-
Ensure you have the following installed on your system:
140-
1. **Node.js**: Download and install from [Node.js Official Website](https://nodejs.org/).
141-
2. **npm**: Comes bundled with Node.js.
142-
3. **Git**: Download and install from [Git Official Website](https://git-scm.com/).
89+
- Continue fixing bugs to our games and worlds (will probably stop after presenting at N@TM).
90+
- Refine our content to be more educational and useful rather than just for entertainment.
91+
- Expand cosmetic, social, and interactive features.
14392

144-
### Setup Instructions
93+
<img width="1280" alt="Image" src="https://github.com/user-attachments/assets/c8cda384-13b3-4f7c-98b6-393405918194" />
14594

146-
1. **Clone the Repository**:
147-
Open a terminal and run the following command to clone the repository:
148-
```bash
149-
git clone https://github.com/your-username/GenomeGamersFrontend.git
150-
```
151-
Replace `your-username` with the actual GitHub username.
95+
---
15296

153-
2. **Navigate to the Project Directory**:
154-
```bash
155-
cd GenomeGamersFrontend
156-
```
97+
## Credits
15798

158-
3. **Install Dependencies**:
159-
Run the following command to install the required dependencies:
160-
```bash
161-
npm install
162-
```
99+
- **Project Manager/Scrum Master**: Ian Manangan
100+
- **Frontend/Backend Developer**: Zach Peltz
101+
- **ML Engineer/Data Science Lead**: Aarush Kota
163102

164-
4. **Start the Development Server**:
165-
Launch the development server using:
166-
```bash
167-
npm start
168-
```
169-
This will start the server and open the project in your default web browser.
103+
<img width="1280" alt="Image" src="https://github.com/user-attachments/assets/27b1f3ae-92df-43df-8bf1-4e1c9f353c45" />
170104

171-
5. **Build the Project**:
172-
To generate the production-ready files, use:
173-
```bash
174-
npm run build
175-
```
176105

177-
6. **Deploy**:
178-
Follow the deployment instructions in the repository to host the project on GitHub Pages or another platform.
106+
---
179107

180-
---
108+
<script>
109+
// filepath: /home/kasm-user/nighthawk/GenomeGamersFrontend/navigation/Worlds/world0.md
110+
// ...existing code...
111+
112+
// --- Background Music ---
113+
const music = new Audio('{{site.baseurl}}/assets/audio/39iceiceoutpost.mp3'); // Change path as needed
114+
music.loop = true;
115+
music.volume = 0.5;
116+
117+
// Play music after first user interaction (required by browsers)
118+
function startMusicOnce() {
119+
music.play().catch(() => {});
120+
window.removeEventListener('click', startMusicOnce);
121+
window.removeEventListener('keydown', startMusicOnce);
122+
}
123+
window.addEventListener('click', startMusicOnce);
124+
window.addEventListener('keydown', startMusicOnce);
125+
</script>

0 commit comments

Comments
 (0)