6 Commits

Author SHA1 Message Date
c2348fa700 part 3 of shiro's route wahoo
next up are the endings. whoo
2025-01-07 15:00:26 +02:00
35c7ef0cb6 shiro route part 2
second part is done! probably will come back to it to see if we can bridge it in a nicer way. tomorrow we end this route (hopefully)
2025-01-06 22:53:58 +02:00
8f545fb137 got the hang of this
okay Now it should be working fine!! i think!! i hope!!
all of the new UI updates, aswell as the script being done up to aoi's route and a bit further (with the start to shiro's route). wahoo
2025-01-05 18:41:37 +02:00
061f9d23c1 test
god i hope this works
2025-01-05 18:33:23 +02:00
4b53ac3001 Update README.md 2024-10-07 13:01:05 +03:00
1f7a40d8a8 updated file url 2024-10-06 22:44:56 +03:00
135 changed files with 3152 additions and 108 deletions

3
.vs/ProjectSettings.json Normal file
View File

@@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}

View File

@@ -0,0 +1,8 @@
{
"ExpandedNodes": [
"",
"\\game"
],
"SelectedNode": "\\game\\shiro_route.rpy",
"PreviewInSolutionExplorer": false
}

BIN
.vs/otomai/v16/.suo Normal file

Binary file not shown.

BIN
.vs/slnx.sqlite Normal file

Binary file not shown.

2
Jenkinsfile vendored
View File

@@ -19,7 +19,7 @@ pipeline {
}
stage('Download Latest release') {
steps {
sh 'curl -LO https://git.ruff.co.il/amai.ig/otomai/releases/latest/download/Otomai-web.zip'
sh 'curl -LO https://git.ruff.co.il/amai.ig/otomai/releases/download/latest/Otomai-web.zip'
}
}
stage('Create web game directory') {

View File

@@ -1,2 +1,62 @@
# otomai
short amai visual novel
# Otomai: A Harucon Easter Egg ✨
**Otomai** is a short Ren'Py visual novel game created as a secret easter egg for the Israeli anime and sci-fi convention, Harucon.
This project is a single-player, narrative-driven experience built with the Ren'Py visual novel engine.
**Note:** This game is currently intended as a web experience running inside a Docker container.
### Features
* Short, interactive visual novel experience
* Original story and characters
* A fun (hopefully!) surprise for Harucon attendees
### Getting Started
**Prerequisites**
**For building the game from source**
* Python3 installed
* Ren'Py installed
**For running the game inside a docker container**
* Docker installed on your system. You can find installation instructions for your OS on the official Docker website: [https://www.docker.com/products/docker-desktop/](https://www.docker.com/products/docker-desktop/)
**Building the Game**
1. Clone this repository:
```
git clone https://git.ruff.co.il/amai.ig/otomai.git
```
2. Using Ren'Py, load the source and build for your desired platform.
3. Run the final compiled result.
**Running the game inside a docker container**
1. Pull the docker image:
```
docker pull git.ruff.co.il/amai.ig/otomai:latest
```
2. Start a container with port 5000 exposed:
```
docker run git.ruff.co.il/amai.ig/otomai:latest -p 5000:80 --name otomai
```
3. Open your web browser and navigate to `http://docker-host:5000`
This should launch the Otomai game within your web browser.
### Contributing
We welcome contributions to this project! If you'd like to help with development, please open a pull request on this repository.
### License
This project is licensed under the MIT License. See the `LICENSE` file for details.
### Contact
For any questions or feedback, feel free to open an issue on this repository.
We hope you enjoy your Otomai experience!

View File

@@ -2,13 +2,9 @@
errors listed below, and try again.
File "game/script.rpy", line 44: choice menuitem expects a non-empty block.
"אני גם אוהב פפסי":
^
File "game/script.rpy", line 47: Line is indented, but the preceding jump statement statement does not expect a block. Please check this line's indentation. You may have forgotten a colon (:).
"אני לא אוהב פפסי":
File "game/shiro_route.rpy", line 221: expected simple expression
stop music fadeout
^
Ren'Py Version: Ren'Py 8.3.2.24090902
Sat Sep 28 09:59:45 2024
Mon Jan 6 22:20:57 2025

135
game/.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,135 @@
{
"files.exclude": {
"**/*.rpyc": true,
"**/*.rpa": true,
"**/*.rpymc": true,
"**/cache/": true
},
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "renpy.meta.plain",
"settings": {
"fontStyle": ""
}
},
{
"scope": "renpy.meta.i",
"settings": {
"fontStyle": "italic"
}
},
{
"scope": "renpy.meta.b",
"settings": {
"fontStyle": "bold"
}
},
{
"scope": [
"renpy.meta.u",
"renpy.meta.a"
],
"settings": {
"fontStyle": "underline"
}
},
{
"scope": "renpy.meta.s",
"settings": {
"fontStyle": "strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.b",
"settings": {
"fontStyle": "italic bold"
}
},
{
"scope": "renpy.meta.i renpy.meta.u",
"settings": {
"fontStyle": "italic underline"
}
},
{
"scope": "renpy.meta.i renpy.meta.s",
"settings": {
"fontStyle": "italic strikethrough"
}
},
{
"scope": "renpy.meta.b renpy.meta.u",
"settings": {
"fontStyle": "bold underline"
}
},
{
"scope": "renpy.meta.b renpy.meta.s",
"settings": {
"fontStyle": "bold strikethrough"
}
},
{
"scope": "renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "underline strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.b renpy.meta.u",
"settings": {
"fontStyle": "italic bold underline"
}
},
{
"scope": "renpy.meta.i renpy.meta.b renpy.meta.s",
"settings": {
"fontStyle": "italic bold strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "italic underline strikethrough"
}
},
{
"scope": "renpy.meta.b renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "bold underline strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.b renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "italic bold underline strikethrough"
}
},
{
"scope": "renpy.meta.color.text",
"settings": {
"foreground": "#ffffff"
}
},
{
"scope": "renpy.meta.color.#fff",
"settings": {
"foreground": "#fff"
}
},
{
"scope": "renpy.meta.color.#ff0000",
"settings": {
"foreground": "#ff0000"
}
},
{
"scope": "renpy.meta.color.#5e9cff",
"settings": {
"foreground": "#5e9cff"
}
}
]
}
}

BIN
game/Assistant-Bold.ttf Normal file

Binary file not shown.

BIN
game/Assistant-Light.ttf Normal file

Binary file not shown.

BIN
game/Assistant-Medium.ttf Normal file

Binary file not shown.

BIN
game/Assistant-Regular.ttf Normal file

Binary file not shown.

BIN
game/Rubik-Black.ttf Normal file

Binary file not shown.

BIN
game/Rubik-Bold.ttf Normal file

Binary file not shown.

BIN
game/Rubik-ExtraBold.ttf Normal file

Binary file not shown.

1065
game/aoi_route.rpy Normal file

File diff suppressed because it is too large Load Diff

BIN
game/aoi_route.rpyc Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
game/audio/bgm_crisis.mp3 Normal file

Binary file not shown.

BIN
game/audio/bgm_magical.flac Normal file

Binary file not shown.

Binary file not shown.

BIN
game/audio/bgm_weird.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
game/audio/sfx_bump.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
game/audio/sfx_drumroll.mp3 Normal file

Binary file not shown.

BIN
game/audio/sfx_fixing.mp3 Normal file

Binary file not shown.

BIN
game/audio/sfx_gasp.mp3 Normal file

Binary file not shown.

BIN
game/audio/sfx_mic_drop.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

11
game/cache/shaders.txt vendored Normal file
View File

@@ -0,0 +1,11 @@
renpy.ftl
renpy.geometry renpy.texture
renpy.alpha renpy.geometry renpy.texture
renpy.matrixcolor renpy.texture
renpy.geometry renpy.solid
renpy.dissolve renpy.dissolve

View File

@@ -30,7 +30,7 @@ define config.check_conflicting_properties = True
define gui.accent_color = '#990000'
## The color used for a text button when it is neither selected nor hovered.
define gui.idle_color = '#707070'
define gui.idle_color = '#ffffff'
## The small color is used for small text, which needs to be brighter/darker to
## achieve the same effect.
@@ -52,20 +52,20 @@ define gui.muted_color = '#c16666'
define gui.hover_muted_color = '#d69999'
## The colors used for dialogue and menu choice text.
define gui.text_color = '#404040'
define gui.text_color = '#ffffff'
define gui.interface_text_color = '#404040'
## Fonts and Font Sizes ########################################################
## The font used for in-game text.
define gui.text_font = "DejaVuSans.ttf"
define gui.text_font = "Assistant-Regular.ttf"
## The font used for character names.
define gui.name_text_font = "DejaVuSans.ttf"
define gui.name_text_font = "Rubik-ExtraBold.ttf"
## The font used for out-of-game text.
define gui.interface_text_font = "DejaVuSans.ttf"
define gui.interface_text_font = "Assistant-Bold.ttf"
## The size of normal dialogue text.
define gui.text_size = 33
@@ -108,12 +108,12 @@ define gui.textbox_yalign = 1.0
## The placement of the speaking character's name, relative to the textbox.
## These can be a whole number of pixels from the left or top, or 0.5 to center.
define gui.name_xpos = 360
define gui.name_xpos = 0.82
define gui.name_ypos = 0
## The horizontal alignment of the character's name. This can be 0.0 for left-
## aligned, 0.5 for centered, and 1.0 for right-aligned.
define gui.name_xalign = 0.0
define gui.name_xalign = 1.0
## The width, height, and borders of the box containing the character's name, or
## None to automatically size it.
@@ -132,7 +132,7 @@ define gui.namebox_tile = False
## The placement of dialogue relative to the textbox. These can be a whole
## number of pixels relative to the left or top side of the textbox, or 0.5 to
## center.
define gui.dialogue_xpos = 402
define gui.dialogue_xpos = 0.75
define gui.dialogue_ypos = 75
## The maximum width of dialogue text, in pixels.
@@ -140,7 +140,7 @@ define gui.dialogue_width = 1116
## The horizontal alignment of the dialogue text. This can be 0.0 for left-
## aligned, 0.5 for centered, and 1.0 for right-aligned.
define gui.dialogue_text_xalign = 0.0
define gui.dialogue_text_xalign = 1.0
## Buttons #####################################################################
@@ -173,7 +173,7 @@ define gui.button_text_insensitive_color = gui.insensitive_color
## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0
## is right).
define gui.button_text_xalign = 0.0
define gui.button_text_xalign = 1.0
## These variables override settings for different kinds of buttons. Please see
@@ -250,7 +250,7 @@ define gui.file_slot_rows = 2
## The position of the left side of the navigation buttons, relative to the left
## side of the screen.
define gui.navigation_xpos = 60
define gui.navigation_xpos = 200
## The vertical position of the skip indicator.
define gui.skip_ypos = 15
@@ -389,17 +389,17 @@ define gui.nvl_name_width = 225
define gui.nvl_name_xalign = 1.0
## The position, width, and alignment of the dialogue text.
define gui.nvl_text_xpos = 675
define gui.nvl_text_ypos = 12
define gui.nvl_text_width = 885
define gui.nvl_text_xalign = 0.0
define gui.nvl_text_xpos = 1400
define gui.nvl_text_ypos = 40
define gui.nvl_text_width = 1000
define gui.nvl_text_xalign = 1.0
## The position, width, and alignment of nvl_thought text (the text said by the
## nvl_narrator character.)
define gui.nvl_thought_xpos = 360
define gui.nvl_thought_ypos = 0
define gui.nvl_thought_width = 1170
define gui.nvl_thought_xalign = 0.0
define gui.nvl_thought_xalign = 1.0
## The position of nvl menu_buttons.
define gui.nvl_button_xpos = 675

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 904 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 50 KiB

BIN
game/images/akai angry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
game/images/akai focus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

BIN
game/images/akai happy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
game/images/akai laugh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
game/images/akai stress.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
game/images/akai think.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
game/images/akai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
game/images/aoi angry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

BIN
game/images/aoi excited.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
game/images/aoi happy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
game/images/aoi sad.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
game/images/aoi smug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
game/images/aoi think.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
game/images/aoi worry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
game/images/aoi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
game/images/aoi2024.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 834 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
game/images/bg_lecture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
game/images/cg_aoi_bad.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
game/images/cg_aoi_good.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

BIN
game/images/game logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

BIN
game/images/shiro angry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

BIN
game/images/shiro happy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
game/images/shiro laugh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
game/images/shiro shock.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
game/images/shiro sus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
game/images/shiro.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Some files were not shown because too many files have changed in this diff Show More