-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2d40f58
commit 91db43e
Showing
6 changed files
with
254 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
title: Open Interactive Cinematic | ||
category: Planning | ||
tags: | ||
- index | ||
pinned: true | ||
status: WIP | ||
--- | ||
|
||
# Open Interactive Cinematic | ||
|
||
Developed with Unreal Engine 5.4 | ||
|
||
## Description | ||
|
||
Open Interactive Cinematic Framework project aim to a flexible base framework where you can build interactive and branching cinematic game experience in modular manner using Unreal 5's Modular gameplay and Gameplay feature feature. | ||
|
||
Branching narrative depend on inkle scripting is used as core then solution will be build around this for designer to help easily tweak the experience in order to enhance gameplay. | ||
|
||
## Scope | ||
|
||
Although the aim is to solve problem regard interaction cinematic, it also support linear narrative sequence workflow. | ||
What constitute an interactive cinematic: | ||
|
||
- Multiple choices narrative. | ||
- Situational commenting. | ||
- Pickup and inspection. | ||
- Action sequence that change narrative. (QTE) | ||
- Character interaction. | ||
|
||
## Features | ||
|
||
- Generate/update Level sequence from ink script. | ||
- Workflow for localization. | ||
- Binding audio with ink script narrative. | ||
- Workflow for changing Level sequence base on choice. | ||
- Workflow for trigger situational awareness commenting. | ||
|
||
## Thirdparty plugin dependencies | ||
https://github.com/JBenda/inkcpp | ||
|
||
## Inspiration | ||
|
||
[Swan song's procedurally generating level sequences from script](https://www.youtube.com/watch?v=CAgTjb_8GFo) | ||
|
||
[Assassin's Creed Odyssey Proc gen dialogue](https://www.youtube.com/watch?v=DFM5zbekZ7c) | ||
|
||
[Witcher 3's cinematic dialogue system](https://www.youtube.com/watch?v=chf3REzAjgI) | ||
|
||
[Baldur's Gate 3 cinematic approach](https://www.youtube.com/watch?v=MdmY9Mt-vz8&t=1382s) | ||
|
||
[Just Cause 4's animation and cinematic content workflows](https://www.youtube.com/watch?v=MQjCYQb_pFU) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,37 @@ | ||
--- | ||
title: Project Structure | ||
category: Planning | ||
tags: | ||
- architecture | ||
- unreal 5 | ||
pinned: false | ||
dir: ltr | ||
status: wip | ||
--- | ||
|
||
# Project structure | ||
|
||
|
||
## Plugins | ||
|
||
Plugins | ||
- OIC_Core: Core functionality include gamemode and component | ||
- OIC_Sample: Example of using OIC | ||
- OIC_Pickup | ||
- OIC_ChoiceNarrative | ||
- OIC_ChoiceNarrative | ||
|
||
## Modules | ||
``` | ||
classDiagram | ||
accTitle: Animal class diagram | ||
accDescr: Animal parent class with Duck, Fish and Zebra subclasses | ||
OIC_GameMode <|-- OIC_GameComponent | ||
OIC_GameMode <|-- OIC_GameSequenceTrack | ||
class OIC_GameMode{ | ||
} | ||
class OIC_GameComponent{ | ||
} | ||
class OIC_GameSequenceTrack{ | ||
+bool is_wild | ||
+run() | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
title: Gameplay Feature | ||
tags: | ||
- study notes | ||
- unreal 5 | ||
status: WIP | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
--- | ||
title: Ink Scripting | ||
tags: | ||
- study notes | ||
status: WIP | ||
--- | ||
|
||
[ink - inkle's narrative scripting language (inklestudios.com)](https://www.inklestudios.com/ink/) | ||
|
||
# Ink | ||
|
||
A narrative scripting language for game | ||
|
||
Ink is just pure written text with "markup" to make it interactive. | ||
|
||
You can split up your ink file into smaller ones that are linked together. | ||
|
||
As with any programming language, you can create custom variables, and perform mathematical calculations. | ||
|
||
```ink | ||
"What do you make of this?" she asked. | ||
// Ink script can have comment like this | ||
"I couldn't possibly comment," I replied. | ||
/* | ||
or a block comment like this | ||
*/ | ||
TODO: You can write to do note like this, compiler will printout these note during compilation | ||
``` | ||
|
||
## Markup Types | ||
|
||
### Knots | ||
|
||
Example: | ||
``` | ||
=== london === | ||
=== london_in_flame === | ||
=== london_is_saved | ||
``` | ||
|
||
Interactive narrative written with ink comprised of these "knots" section that hold pieces of content scenario. | ||
|
||
Knot's can not have spaces in it. | ||
|
||
Right triple equal signs is optional. Best leave out if the knot content no longer have divert part. | ||
|
||
Within knots you can also have sub-sections called "stitches". | ||
|
||
There's a harder-to-learn but easier-to-write system for writing intricate branches called "weave" that doesn't require you to name every section with its own header. | ||
|
||
|
||
### Diverts | ||
|
||
Example: | ||
``` | ||
-> london | ||
-> END // special syntax that tell ink that story is done. Fail to include this statement result in loose end warning error. | ||
-> DONE // different way to mark story end. | ||
``` | ||
|
||
In order to link "knots" together, ink use *divert* arrow markup. This tell the story to go to a different knot section. | ||
|
||
|
||
### Choices | ||
|
||
Example: | ||
``` | ||
"Are you a knight, sir?" | ||
+ [Nod curtly.] -> a_knight // bracket [] mean silent choice and not print. | ||
+ I shake my head -> not_a_knight | ||
// Content can also be embed with choice by writing it under the choices | ||
+ [Nod curtly.] | ||
Yes i am a proud knight of 7 kingdoms. | ||
+ I shake my head | ||
No, i am just a squire. | ||
// Choice with * instead of + will never again once chosen. Recommended for repeated knot content | ||
* This choice will not repeat -> next_content | ||
``` | ||
|
||
### Conditional Content | ||
|
||
Example: | ||
```ink | ||
{ catacombs: | ||
It was darker here than the Paris catacombs. | ||
} | ||
// can also be expressed like this | ||
+ {catacombs} [Tell her what you found] -> tell_her | ||
// complex conditionals | ||
+ {not catacombs} [Visit the catacombs] -> catacomb | ||
{ catacombs and not pick_up_ring: | ||
"So you didn't find it then?" she enquired. | ||
+ [Apologise.] -> apologise | ||
} | ||
{ (catacombs or cross_river or sing_in_rain) and not buy_new_shoes: | ||
My shoes were sodden from earlier in the day. | ||
} | ||
``` | ||
|
||
Conditional is expressed in curly braces bracket. | ||
|
||
Conditional content can be written in a whole block within curly braces or express by itself next to a choice. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
title: Modular Gameplay | ||
tags: | ||
- study notes | ||
- unreal 5 | ||
status: WIP | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: Random Thought Q&A | ||
status: INFLUX | ||
--- | ||
|
||
|
||
## Goal of project ? | ||
|
||
|
||
## Sample Project Idea | ||
|
||
It is best to choose a scenario that can be loop forever with every section of time ( day/ week / month) can be different content | ||
|
||
- School | ||
- Work | ||
- Space Exploring | ||
- Fantasy Town folks | ||
- Detective | ||
- Police | ||
|
||
Rick & Morty, Doraemon, Detective Conan is some best example of this | ||
|
||
## Mind Maps | ||
``` | ||
mindmap | ||
root((Interactive<br/> Cinematic)) | ||
Linear<br/>Narrative | ||
Object Inspection | ||
Scene commenting | ||
Prop pickup and inspection | ||
Prop interact and commenting | ||
Cutscene | ||
Passive Event | ||
Passive Dialogue | ||
Branching<br/>Narrative | ||
Action Choice Event Cutscene | ||
Multiple Choice Dialogue | ||
``` |