Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c8d07363e | |||
|
|
589bf805d5 | ||
|
|
2827e2efc5 | ||
|
|
32021682c2 |
115
PROPOSAL_20220552.md
Normal file
115
PROPOSAL_20220552.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# My proposal
|
||||
|
||||
- name: Chaewon Lee
|
||||
- student ID: 20220552
|
||||
- [URL](https://git.prototyping.id/20220552/homework5)
|
||||
|
||||
## Describe the game
|
||||
|
||||
```
|
||||
what does the user have to accomplish? How do you win or lose? What type of interactions are possible?
|
||||
```
|
||||
|
||||
**Orb.io** is a 3D survival game inspired by `.io-style` games, particularly [Slither.io](http://slither.com/io), reinterpreted in a _three-dimensional_ visual environment.
|
||||
|
||||
The player controls a glowing sphere moving through a dark space filled with smaller orbs. While the gameplay mechanics are based on classic snake-like systems, the game presents them using 3D rendering and spatial depth.
|
||||
|
||||
### Objective
|
||||
|
||||
The player's goal is to survive as long as possible while collecting glowing orbs to increase their score and grow in size.
|
||||
|
||||
### Core Mechanics
|
||||
|
||||
- The player moves continuously across a 3D environment (constrained to a flat plane for clarity and control).
|
||||
- Small glowing orbs are scattered throughout the space.
|
||||
- When the player collects an orb, their score increases and their body grows longer.
|
||||
- The player leaves behind a trail of body segments that follow the head, forming a snake-like structure.
|
||||
- As the player grows, navigation becomes more difficult due to increased length and space constraints.
|
||||
|
||||
### Win / Lose Conditions
|
||||
|
||||
- There is no fixed win condition. The game is endless, and success is measured by the player's score and survival time.
|
||||
- The player loses if:
|
||||
- They collide with their own body
|
||||
- They hit obstacles or boundaries in the environment
|
||||
|
||||
### Player Interactions
|
||||
|
||||
The player can:
|
||||
|
||||
- Control movement using keyboard (`WASD` or `arrow keys`) or mouse input
|
||||
- Collect orbs to grow and gain points
|
||||
- Avoid collisions with their own body and obstacles
|
||||
- Restart the game after losing
|
||||
|
||||
The gameplay loop is simple and repetitive:
|
||||
`Play` → `Collect` → `Grow` → `Avoid` → `Fail` → `Restart`
|
||||
|
||||
The simplicity of the mechanics allows for immediate understanding, while increasing difficulty creates tension and replayability.
|
||||
|
||||
## How will the game look like?
|
||||
|
||||
```
|
||||
What are the game elements (e.g. characters, world, interface) and how will they be implemented in code (e.g., modules, classes, objects, functions)? Feel free to use diagrams, flow-charts or any other visual representation to show your plan.
|
||||
```
|
||||
|
||||
The game will feature a dark 3D environment with glowing spheres as the main visual elements, creating a clean and immersive experience.
|
||||
|
||||
<img src="environment.png" style="max-height: 300px;">
|
||||
|
||||
### Game Elements
|
||||
|
||||
- **Player**: glowing sphere with trailing body segments
|
||||
- **Orbs**: collectible glowing spheres
|
||||
- **Obstacles**: larger objects that cause collision
|
||||
- **World**: bounded arena on a flat plane
|
||||
- **UI**: score, best score, start and game over screens
|
||||
|
||||
### Code Structure
|
||||
|
||||
The game will be organized into simple modules:
|
||||
|
||||
`main.js`
|
||||
├── `GameManager`
|
||||
├── `Player`
|
||||
├── `Orb`
|
||||
├── `Obstacle`
|
||||
└── `UI`
|
||||
|
||||
- **Player**: movement, growth, collision
|
||||
- **Orb**: spawning and collection
|
||||
- **Obstacle**: collision handling
|
||||
- **GameManager**: game state, score, restart
|
||||
- **UI**: display elements
|
||||
|
||||
### Gameplay Flow
|
||||
|
||||

|
||||
|
||||
### Technical Approach
|
||||
|
||||
- Built using **Three.js** for 3D rendering
|
||||
- Movement constrained to a plane for simplicity
|
||||
- Objects managed using classes and arrays
|
||||
- Collision detection using distance checks
|
||||
|
||||
## challenges & features
|
||||
|
||||
### Expected Challenges
|
||||
|
||||
- 3D rendering (camera, lighting, materials)
|
||||
- Implementing smooth body-following behavior
|
||||
- Managing performance with multiple objects
|
||||
- Balancing _visual effects_ and _performance_
|
||||
|
||||
### Relevant Course Concepts
|
||||
|
||||
- **Types and Variables**: used to store positions, score, and game state
|
||||
- **Arrays and Objects**: used to manage body segments, orbs, and obstacles
|
||||
- **Functions**: used to organize update, rendering, and interaction logic
|
||||
- **Modules**: used to structure the project into components such as `Player`, `Orb`, and `GameManager`
|
||||
- **Event Handling**: used to process user input (keyboard or mouse)
|
||||
|
||||
---
|
||||
|
||||
> This proposal was written with the assistance of ChatGPT for structuring and language support.
|
||||
@@ -1,97 +0,0 @@
|
||||
# Midterm Project Proposal
|
||||
|
||||
**Name:** Samantha Lopez
|
||||
|
||||
**Student ID:** 20266142
|
||||
|
||||
**Repository:** [https://git.prototyping.id/20266142/homework5.git](https://git.prototyping.id/20266142/homework5.git)
|
||||
|
||||
## Inspirations
|
||||
|
||||
- [Fireboy and Watergirl:](https://www.coolmathgames.com/0-fireboy-and-water-girl-in-the-forest-temple) I want similar mechanics to this game minus the multiplayer aspect. More specifically I like how the characters have to manouve around obstacles in order to collect items that then allow the player to move on to the next level.
|
||||
- [Gris:](https://www.youtube.com/watch?v=j7tVbyKyggU) I really like the art direction of this game. I want to incoporate a similar theme in my game that regards bringing back color to a gray world.
|
||||
- Art installations: I have visited interactive art installations where individuals are able to interact with visuals via different ways. I would like to somehow translate that feeling to a game. For instance the avatar/charater gives light to the scene as the player moves, similarly to how a LED touch reactive wall would.
|
||||
## Game Mechanics
|
||||
|
||||
The player spawns as a glowing little orb in a gray world with its goal being to return color to the world. The goal of each level will be to collect color fragments and each level would progressively give color to the scenes. The color fragments will have to be collected by moving, jumping, falling, etc. it will most likely function as a platformer game.
|
||||
|
||||
### controls
|
||||
|
||||
| Action | Key |
|
||||
|--------|-----|
|
||||
| Walk left/right | `← →` or `A D` |
|
||||
| Jump| `Space` or ` ↑`|
|
||||
|collect fragment | walk into it
|
||||
|
||||
### color fragments
|
||||
|
||||
there should be like 3-5 color fragments per level. Each collection will add that color to the avatars glow and leave a splash of color around the collection site. The level will automatically clear upon the collection of all fragments by slowly giving the scene color and then transitioning to the next level.
|
||||
|
||||
### Game Obstacles
|
||||
|
||||
A player will have 3 lives. Once all 3 are lost the level restarts, I don't want it to be a rage game so I will not make players lose progress beyond their current level. There will be little spiky gray blocks (entities) that will move around and if they come in contact with the avatar they take away a life. Additionally there could be little tar puddles that are also damaging to the charater.
|
||||
|
||||
### Win and lose logistics
|
||||
|
||||
**winning a level** means collecting all fragments in that level. An animation of some sort will play adding the color collected back into the game
|
||||
|
||||
**losing a life** will occur when touching an entity or tar puddle. You will restart at spawn but keep collected fragments.
|
||||
|
||||
**Losing all lives** means loosing all 3 lives during a level. This will restart your progress for the current level.
|
||||
|
||||
**Winning the game** will consists of compleating all levels. A full in color world will appear.
|
||||
|
||||
|
||||
## Visuals
|
||||
|
||||
The interface would be similar to that of the afromentioned game, fireboy and watergirl. In terms of the actual game aesthetic, I drew up a quick sketch of what I would want the character, fragments, and entities to look like (This is a very rough and quick sketch of course so it is likely to be further developed). I want the game to feel very indie the more handrawn/handmade and aesthetically pleasing I can make it look the better. I also want to incoporate some kind of storytelling element to the game so little to no text just visuals.
|
||||
|
||||
[Acess my sketches here](https://www.notion.so/Proposal-Sketches-348f941b5e5180be9781e4b7f9e22a51?source=copy_link)
|
||||
|
||||
### color language
|
||||
|
||||
In the beginning the game will be Monochrome with a lot of cool gray tones. Near color fragments the color of the fragment will glow into the surroudings (this will be implemented based on coding capabilities). After a fragment is collected the avatar will begin to glow that color as each level will be centered around a sigular color. Once a level is complete the color collected will be added to the entire interface. If the player loses all 3 lives during the game the cool grey tones will return.
|
||||
|
||||
### Tentative themes for levels
|
||||
|
||||
| color | possible themes|
|
||||
|-------|----------------|
|
||||
| Red | volcanoes, roses|
|
||||
|orange | sunset, oranges|
|
||||
|Yellow | sunflowers (debating weather to include yellow...)|
|
||||
|Green| Forest, field|
|
||||
|Blue | underwater|
|
||||
|Purple | night, constellations|
|
||||
|
||||
## Ideating the code
|
||||
|
||||
- We would need an object that includes the player information and its related actions like moving, jumping and collecting. so something like this maybe?
|
||||
```
|
||||
player{
|
||||
move()
|
||||
jump()
|
||||
collect()
|
||||
}
|
||||
```
|
||||
|
||||
- Objects would also need to be created for platforms, fragments, and levels in a similar manner
|
||||
- I anticipate that a lot can be done via P5 and related libraries.
|
||||
|
||||
## Anticipated Challenges
|
||||
|
||||
1. Collisions: a lot of my game would rely in the objects and their positions relative to one another. For instance, once the player touches the fragment it needs to be collected and if the player land on top of a platform it must be able to stand on it otherwise fall. From what I have heard this might need me to implement some sort of gravity and platform collisons which I am unfamiliar with and can be the biggest problem for me.
|
||||
2. Color changing: a large part of my idea contains colors changing and being added to scenes, ideally via animations or transitions. This is an area which I do not have much expereince in and could be tricky to figure out.
|
||||
3. Level design: since I am choosing to create my own game I will have to design all the assets for the game and each level myself which might be difficult but more so time consuming.
|
||||
|
||||
## Features taught in class I expect to use
|
||||
|
||||
- I anticipate that I will most likely utilize p5.js in my project
|
||||
- Classes and objects will likely be necessary for interactivity
|
||||
- Arrays for stuff like collecting fragments
|
||||
- Functions for a lot of interactions
|
||||
- Event listeners and keyboard input for controls and gameplay
|
||||
|
||||
|
||||
## Summary
|
||||
|
||||
I want to create a platformer game centered around the goal of collecting color fragments to return color to the fictitious world.
|
||||
BIN
environment.png
Normal file
BIN
environment.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1002 KiB |
Reference in New Issue
Block a user