oxygencraft / plumbing Goto Github PK
View Code? Open in Web Editor NEWA game made in Unity for the game jam My First Game Jam Summer 2020
Home Page: https://oxygencraft.itch.io/plumbing
License: Other
A game made in Unity for the game jam My First Game Jam Summer 2020
Home Page: https://oxygencraft.itch.io/plumbing
License: Other
The water will randomly do a random action (good or bad) when it's not influenced.
Actions that players can perform to influence water to perform an action.
List of influences (from most important to least important):
The current background music doesn't fit with the atmosphere during daytime. We must create a daytime music.
You can influence the water to move.
You have influencing ability which is like currency for moving water. You can gain influencing ability by colliding into obstacles but you will still lose water. You lose influencing ability over time and you lose it quicker while you are influencing the water depending on the influence.
Sometimes the water might ignore your influence but will still use influencing ability
There are three types of influences (from least expensive to most expensive)
See #10 for details. This is for the graphics details.
TBD
We need to add colliders and have them at the correct shape. The colliders shall take the shape of the ground. See this commit (the ones done by oxygencraft) for examples.
Desert
Tundra
Taiga
Forest
Grasslands
Desert-Tundra Connector
Desert-Taiga Connector
Desert-Forest Connector
Desert-Grasslands Connector
Tundra-Desert Connector
Tundra-Taiga Connector
Tundra-Forest Connector
Tundra-Grasslands Connector
Taiga-Desert Connector
Taiga-Tundra Connector
Taiga-Forest Connector
Taiga-Grasslands Connector
Forest-Desert Connector
Forest-Tundra Connector
Forest-Taiga Connector
Forest-Grasslands Connector
Grasslands-Desert Connector
Grasslands-Tundra Connector
Grasslands-Taiga Connector
Grasslands-Forest Connector
The environment is procedurally generated.
There is an object that is called the environment generator that is out of the view of the camera that generates chunks ahead of time before the camera can see them.
A chunk is a small piece of the environment that can be any width that is an increment of 100 and its height is 1080px and is seamless between its previous chunk and its next chunk.
The environment generator picks random chunk types (chunk groups) and generates the chunks from that chunk group when the current chunk group is finished.
To assist in smooth transition between chunk types, there are chunk connectors between every single other chunk type (including itself) so that transition between the chunk types are not instant and can be smoothed out.
Obstacles are objects that destroy water and give you influencing ability
Obstacle types:
Rock formation
Bush
Projectiles (from bush)
The game will start at night time.
Obstacles need to be generated procedurally in chunks
We need to raycast straight down at a certain location and spawn an obstacle on where it collides
Desert
Tundra
Taiga
Forest
Grasslands
and maybe more?
Desert-Tundra Connector
Desert-Taiga Connector
Desert-Forest Connector
Desert-Grasslands Connector
Tundra-Desert Connector
Tundra-Taiga Connector
Tundra-Forest Connector
Tundra-Grasslands Connector
Taiga-Desert Connector
Taiga-Tundra Connector
Taiga-Forest Connector
Taiga-Grasslands Connector
Forest-Desert Connector
Forest-Tundra Connector
Forest-Taiga Connector
Forest-Grasslands Connector
Grasslands-Desert Connector
Grasslands-Tundra Connector
Grasslands-Taiga Connector
Grasslands-Forest Connector
Losing sound
Colliding with obstacle sound (unknown what it will be yet)
If we have time, we can animate the splash screen. The splash screen could be water filling up letters PLUMBING. If we don't have time we can use the logo as the splash screen (if we don't have a logo then we will just remove the splash screen).
You can press w and you will jump (but not fly) even though you don't have influencing ability.
This can be fixed by checking if controls are enabled before doing anything in OnFly()
in MetaballManager.cs
.
If we don't get to do the lab, we will have to do random water drops.
Every 90 seconds there shall be a 2% chance of some water dropping. The amount of water is randomized between 5-17.
The water can randomly change its properties after the player reaches the second lab.
Properties that can be changed:
The camera needs to move at a set speed. If you have no water or no water particles are visible by the camera, you will lose.
A lab is a reward point and a short break for the player.
When you reach a lab, you get a score increase and more water. You will see the inside of the lab taking a sample of the water and using their liquid duplicator machine to reward the player with more water.
When they are done they will output the water on the other side. The score increase is unknown yet and the water reward is randomized between 10-25 metaballs.
See #11 for graphics details
Every 0.05 seconds, you get 1 point. The high score is saved in player prefs.
GameManager.cs
will have a coroutine that runs every 0.05 seconds and rewards the player with one point. When you lose, the coroutine stops and if you get a score higher than you high score, it is saved.
Materials refers to organic materials
Organic materials can influence the water to perform an action. Some materials can vibrate the water. There is a small chance that a material is a powerup. If too many materials (except for the materials that vibrate water), the water will section all the materials to a certain part of the water and dumps it when it gets the chance.
The actions water can take to move itself:
TODO: Brainstorm list of actions water can take
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.