# OOGA Plan Discussion
## Names
Oliver Rodas
Tinglong is the main character
### Project goals
- Side scrolling ENGINE
Things that are (easily) changed:
Obstacles:
- Falling
- Health depletion obstacles
-
Objects:
- CPU controlled objects
Players:
- Specify # of players
- Assign contraols to anything on screen and control that thing
- Become what you kill
- Collect characters that you can switch to. They are your lives
- Certain characters force you to switch to them, so you don't want to kill them
```java=
interface GameObject {
setImage(String url)
}
```
```json=
cameraConfig: {
followPlayer: boolean;
}
```
```json=
"1" : {
image: "thing.jpg"
type: "chacater",
name: "CharacterName",
actions: [
],
action: "shooter",
collidble: boolean,
onCollide: [
{
with: "player",
action: "damage",
payload:
}
],
onDeath: ""
locations: [
{
level: "2",
x: 2149,
y: 10,
}
]
},
{
type: "character",
...
onCollide: [
{
with: "enemy",
location: "south",
action: "jump"
}
{
with: "any",
location: "south",
action: "st"
}
]
},
"dialog_box2" : {
type: "hitbox",
id: 5,
...
onCollide: [
{
with: "player",
location: "any",
action: "trigger_di"
payload: ID_OF_DIALOG
},
]
},
{
type: "enemy",
...
onCollide: [
{
with: "character",
location: "top",
action: "decrement_self"
payload: "20"
}
]
}
```
```json=
{
dialog: "Bowser: Mario I love you",
dialogID: id,
level,
responses: {
...
},
chosenResponse: response,
dependsOn: {
dialogID: id,
dialogResponse: response
}
}
```
Dialog stuff can be triggered through a Hit box. You can specify the
X and Y so that it can be triggered at a specific part.
Scale images to certain size so the model can
Notes:
Need to specify defaults for all of the values.
Modifiers:
- Powerups:
- Any
- Antipowerups (powerdowns lol)
- currency
- Things can't go through, collisions
Camera Movements:
- Camera follows player
- Player has to keep up with camera
- Camera Doesnt Move
Triggers:
- When you hit certain % of
- Player Health. Something that happens when health reaches percent
Trigger Actions:
- What happens when a trigger happens
### Project Emphasis
### Project Extensions
### Project Progress
#### Sprint 1 (Test)
#### Sprint 2 (Basic)
#### Sprint 3 (Complete)
# Random cool ideas
- Custom Variables
For example, the user could specify in game configurable
options with types. Like this:
```json=
runtimeConfiguration: {
cameraSpeed: "number",
}
cameraConfiguration : {
speed: "runtime.cameraSpeed"
}
```
So the user can hardcode values or allow them to be modified
in game. Then again this would be a little difficult.