diff --git a/.editorconfig b/.editorconfig index 675fb56..52865c8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,3 +7,8 @@ indent_size = 4 indent_style = tab trim_trailing_whitespace = true insert_final_newline = true + +[*.md] +indent_size = 2 +indent_style = space +trim_trailing_whitespace = false diff --git a/README.md b/README.md new file mode 100644 index 0000000..b9b0a06 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# SlimeDream + +.. is a yet to be properly named game written in Godot / C# that is inspired by a few actual dreams I've had. You get to play as a human / slime-kin hybrid to rescue your mother from prison, exploring 7 unique zones, unlocking abilities, different forms, making friends / enemies, and more, on the way. + +Development is still in the very early stages, with a lot of mechanics to be figured out, characters to develop, progression to be nailed down, assets to be made, etc. + +If you're interested to learn more, check out [the overview](docs/overview.md). + +![Screenshot](docs/images/2024-10-04.png) + +If you want to follow the development, here's how: + +- Follow me on fediverse for updates: + [@copygirl @ fedi.anarchy.moe] for infrequent but more development focused updates. + [@copygirl @ vt.social] for stream announcements and summaries. + (But also lots more unrelated posts related to VTubing.) +- Follow me on [Twitch] for those gamedev streams. + (I'm also known to sometimes play games, however.) + +[@copygirl @ fedi.anarchy.moe]: https://fedi.anarchy.moe/copygirl +[@copygirl @ vt.social]: https://vt.social/copygirl +[Twitch]: https://twitch.tv/copygirl diff --git a/docs/.gdignore b/docs/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/docs/abilities.md b/docs/abilities.md new file mode 100644 index 0000000..5104fb7 --- /dev/null +++ b/docs/abilities.md @@ -0,0 +1,66 @@ +# Abilities + +This document is just going to be for a bunch of ideas that we're gonna throw at the wall and see what sticks. Ideally each ability will be unique enough, perhaps have multiple uses both inside and outside of combat, and be used for progression. + +## Dissolve food +(Unlocked by default.) +Digests [held](#hold) item over time to regain health and possibly gain temporary effects. + +### Upgrade: Dissolve materials + +- Can digest various materials to gain temporary effects. +- Unlocks melting down wooden barricades, doors and similar. + +### Upgrade: Dissolve metals + +- Can digest precious metals to gain temporary effects, such as higher defense. +- Unlocks melting down metal locks. + +## Hold + +(Unlocked by default.) +Allows you to hold onto a single item at a time, using or dropping it later. Any items held onto like this will be dropped when squeezing through tight spots in [blob form](forms.md#blob). + +With enough body mass, the amount of items that can be hold onto, increases, unlocking access to the inventory system. Some equipment such as clothes in [humanoid](forms.md#humanoid) or [human](forms.md#human) forms can also increase the maximum inventory size. + +### Upgrade: Memory + +- Allows certain items to be assimilated into your body, depending on [dissolve ability](#dissolve-food). +- They can be re-created at any time, essentially increasing your inventory dramatically. +- These items don't get left behind when squeezing through tight spots in [blob form](forms.md#blob). +- (Unsure about the name of this ability.) + +## Splash + +Ejects some of your mass to fire out a ball of slime that can hit, damage and push back enemies, or objects. This reduces your health and requires you to pick it back up, or eat food to get it back. May also be used to lure a target away by making a distracting sound? + +### Upgrade: Shard + +- Requires you to have recently eaten metal, or have the ice upgrade? +- Allows you to cut soft material such as ropes. +- Chance to cause enemies to bleed, causing damage over time. Can stack. +- Can kill if used excessively on a low-health enemy. + +## Heal + +Allows you to heal other creatures, and humans. + +- Similar to [poison](#poison), accumulate healing to be able to use this? +- If they have been recently knocked out, they typically stay that way. + +## Poison + +The player is resistant to poisons by default, but this ability will passively make them completely invulnurable. Poison can be accumulated by eating poisonous plants, foods, or other items. This is required to use the active part of this ability. + +- When active, your next attack, melee or ranged, will poison the enemy. +- Can be cancelled by using the ability a second time. +- Poison deals damage over time. +- Can kill the target if not treated. + +## Drain + +Allows the player to drain energy from downed or killed enemies to regain health. + +- This is considered a "dark" ability, affecting the player's status. + More than just regularly killing and enemy, that is. +- Can also be used to remove poison without doing harm? diff --git a/docs/characters.md b/docs/characters.md new file mode 100644 index 0000000..a3242e3 --- /dev/null +++ b/docs/characters.md @@ -0,0 +1,74 @@ +# Characters + +## Player Character + +- Slime-kin hybrid born from a human mother. +- Born without slime core, and therefore has human appearance. +- Developed much more quickly, may be 2 years of age but may look 12. +- Adopted by somewhat abusive family. Only parents know of the real circumstances. +- Doesn't know they are a slime-kin, only that they are treated differently by many. +- Being gaslit into believing to be as old as they appear. +- Being brought up as a boy despite being technically sexless. +- Has a hazy memory of their past due to trauma. +- Unlike the other kids, does not get to celebrate their birthday. +- Not allowed in school, has not been taught to read or write, with small exceptions. +- Takes care of the house, doing chores, while everyone else is gone. +- Since recently, is also sent to the market to get groceries. + +### Mother + +- Used to be a skilled (monster) huntress. +- Stopped the senseless killing, since learning many monsters are actually pretty intelligent. +- Settled down with a slime-kin, who's disguised as a human to be able to spend time with her in her village. +- Didn't know they could have a child, as human-monster offspring were more of a thing of fairy tales. + (Such a fairy tale could be told as a cutscene, or maybe be an optional book the player could read.) +- Other parent fled, unsure what'll happen, due to fears of being found out and attacked by humans. +- She decided to stick around, believing in her community, but they grew very suspicious of her. +- After birth, is taken captive and punished with prison for life, and her monster child sentenced to death. +- Those in charge of child's fate couldn't go that far, feeling remorse for what happened to the mother. + +## Adoptive Family + +### Adoptive Mother + +- Strict, bossy +- Works in the townhall, helping out the major. +- Pushes back any attempt of PC to build emotional bond. +- Secretly scared of the PC, keeps them away from her children. + +### Adoptive Father + +- Sensible, busy +- Works as a woodcutter, but is available for any odd job. +- Tries to include PC in family activities. + +### Children + +- Told not to speak about their adoptive sibling to anyone. +- Two youngest spend most time at a school during the day. + +#### Youngest + +- Boy, 8 +- Jealous of older siblings. +- Especially jealous of PC for growing up so fast. +- Will get physical, especially now that PC is bigger than him. + +#### Middle Child + +- Girl, 14 +- Rebellious +- Protective of PC but in a very childish way. +- Plays dress-up with PC, especially since they fit into her own (older) clothes. +- Gets PC into trouble, for example by inviting them outside when they're not supposed to. + +#### Oldest + +- Girl, 17 +- Wants to become a legendary monster huntress. +- Thinks she understands what's going on, having heard the rumors about. +- Knows about PC's mother and is disappointed in the "famous" huntress from her town. +- Straight up ignores the PC's existance when forced to spend family time together +- Barely hangs around family, focuses on training and helping out with monster hunts. +- Is frustrated that barely anyone thinks she's capable. (She might not be.) +- Likely will be an enemy the PC will face in the future. diff --git a/docs/forms.md b/docs/forms.md new file mode 100644 index 0000000..66a225d --- /dev/null +++ b/docs/forms.md @@ -0,0 +1,53 @@ +# Forms + +As the player progresses through the game, they unlock differents forms, available to them due to their slimekin nature. Different forms may have different natural abilities or movement techniques only available to them in certain forms. + +- Greater forms require a certain amount of health / mass to maintain? +- Some forms may be entered on low health, but aren't maintainable for long. + +## Blob + +You start out in this form, after being chased out of the starting village. + +- High friction and sticky. Can't climb, though. +- Can get through tight areas or grates with some effort. +- No inherent combat abilities? + +## Bouncy + +- Can bounce up to higher ledges. +- Higher maximum movement speed, though difficult to control. +- Used to repel yourself after attacking an enemy, possibly staggering them. + +## Humanoid + +- Can use human-made items and equipment. +- Loses equipment when switching to non-human(oid) form, unless [Memory](abilities.md#memory) is available. +- Can communicate with humans instead of just monsters. +- Can freely switch between fem, masc and maybe androgynous appearance. + +## Monster + +- Do monster quests to unlock different appearances? +- Another way to get these could be killing and [draining](abilities.md#drain) a champion beast. +- Once [Human form](#human) is unlocked, can also pick anthro forms of these. +- Different forms can have unique ability or combat moves. +- May be used to intimidate. + +## Human + +- Grants access to full customization, change appearance at any time. + - Switch between child, teen and adult sizes. + - Choose colors for skin, hair and eyes. + - Choose from any NPCs hair style. + - Choose minor details like freckles, blush, scar, moles. + - Appearance presets can be saved and switched out easily. +- Appears to everyone as a human, therefore: + - Humans will by default be friendly towards the PC. + - Monsters by default will attack or flee from them. + +Exactly match an NPC's appearance and outfit to impersonate them. Other than the [imposter quest](quests.md#imposter), this mechanic should be optional and the player themself should realize that the mechanic can be applied in other situations, hopefully causing them to react in a "woah this works?!" sort of way. + +- Could grant you access to areas you would otherwise be barred from. +- Imperfect impersonations might still work, but can attract suspicion. +- Can't impersonate voice, so having a real conversation is out of the question. diff --git a/docs/images/2024-10-04.png b/docs/images/2024-10-04.png new file mode 100644 index 0000000..0f45a72 Binary files /dev/null and b/docs/images/2024-10-04.png differ diff --git a/docs/images/inspiration/adventurers_glade_by_sully.png b/docs/images/inspiration/adventurers_glade_by_sully.png new file mode 100644 index 0000000..d36bc8a Binary files /dev/null and b/docs/images/inspiration/adventurers_glade_by_sully.png differ diff --git a/docs/images/inspiration/hocu_by_max_hancock.png b/docs/images/inspiration/hocu_by_max_hancock.png new file mode 100644 index 0000000..5d3e85b Binary files /dev/null and b/docs/images/inspiration/hocu_by_max_hancock.png differ diff --git a/docs/overview.md b/docs/overview.md new file mode 100644 index 0000000..7e995a9 --- /dev/null +++ b/docs/overview.md @@ -0,0 +1,40 @@ +# Overview + +Please note that anything outside of this overview obviously includes **MASSIVE SPOILERS** as these will be used to keep track of goals, abilities, progression and more for the involved team members and people who may potentially be interested in contributing (or are just nosy). + +- [Zones](zones.md) +- [Forms](forms.md) +- [Abilities](abilities.md) +- [Characters](characters.md) +- [Story](story.md) +- [Quests](quests.md) +- Progression + +## Gameplay + +- Third person view with ability to go first person to look around. +- There's 7 main [zones](zones.md) to explore, each with their sub-areas. + - Travel between zones at the beginning is limited, either by movement ability checks, combat checks or quest checks. There should however be multiple ways to progress. +- Health is, in a way, correlated to "usable mass". + - Other than combat, also affects certain abilities. + - For example, some forms require a certain mass to maintain. +- Metroidvania-style progression? Acquire abilities and key items in key areas, through exploration, combat, and interaction with NPCs. Will have to go through things with the export in the field, NolamiAmada. +- Can be a pacifist, align with the human or monster faction, or become the ultimate evil! + - As such, certain actions and choices can affect your reputation, and "karma". + - Different endings depending on these choices? + +### Combat + +Enemies that are defeated don't automatically die. But the player has the ability to finish them off if they so choose. Certain abilities can kill enemies after a battle, such as bleed and poison. + +## Style Inspiration + +I would like to go for a simplistic low-poly style with pixelated textures. Hopefully this will allow us to create enough assets and variation without too too much effort, and allow the less artistic people to make adjustments? + +`TODO:` Find some inspiration for the different zones and set some style guidelines. + +![](images/inspiration/adventurers_glade_by_sully.png) +Credit: ["Adventurer's Glade" by Brendan 'Sully' Sullivan](https://sketchfab.com/3d-models/adventurers-glade-lowpoly-pixel-scene-cdcdeaaa233f4a73a8bafcd1829a4e6e) + +![](images/inspiration/hocu_by_max_hancock.png) +Credit: ["Hocu" by Max Hancock](http://www.maxhancock.net/3d.html) diff --git a/docs/quests.md b/docs/quests.md new file mode 100644 index 0000000..62f9c0d --- /dev/null +++ b/docs/quests.md @@ -0,0 +1,13 @@ +# Quests + +## Imposter + +Optional side quest in which you are introduced to the impersonation mechanic, that unlocks along with the appearance customization that comes with your [human form](forms.md#human). + +An NPC asks you to mimic a friend or relative. They point out to you any mistake you make, ask you to fetch (likely steal) the same outfit they're wearing, note that you're not able to imitate their voice well enough, and then send you off to impersonate them, likely to get an item from another NPC to finish the quest. + +## Birthday + +Bit of a joke quest, but could also reveal some information about the PC's lack of birthdays, maybe their real age as they try to remember how many of their adoptive family's birthdays they remember experiencing. + +You're invited to a kid's birthday party. As they blow out the birthday candles, their model changes to that of a teen. They probably say something funny, maybe along the lines of they're now allowed to do or eat / drink something they weren't before. (Even better if it's a game mechanic or behavior children are never seen doing.) diff --git a/docs/story.md b/docs/story.md new file mode 100644 index 0000000..148b704 --- /dev/null +++ b/docs/story.md @@ -0,0 +1,31 @@ +# Story + +See [Player Character](characters.md#player-character) for background. + +## Prologue + +- Starts out in [village](zones.md#village) with adoptive family. +- PC is told to get groceries for dinner that day. +- After finishing chores, they pick up grocery list, barely recognizing the words. +- Piece of candy is drawn at the bottom, with "for you" in different handwriting (by adoptive father). +- Excited that they can not only have candy, but pick it out themself, the PC heads off. +- Store that usually has the candy is not present today. +- Monster shop sells dead slime cores that look like candy, so not knowing what it is, PC picks one. + (The text of anything the PC doesn't understand should be unreadable / glitchy to the player.) +- PC returns home, starts preparing dinner. + (Cooking minigame introduction? That is, if cooking is going to be a mechanic.) +- They finish the meal and leave it on the stove on low heat. +- Curious about their "candy", they try it. Biting does't work. Putting into mouth to dissolve doesn't either. +- Something happens that surprises the PC, and they reflexively swallow. +- Their body realizes it's been missing this "core" piece, starts adapting it. +- PC starts to feel sick and dizzy. +- ??? +- PC turns into large-ish, colored slime blob. +- Is assumed to be a monster that somehow got into town. +- Villagers hunt them down and out of town, trying to kill them. +- Only way to escape is to jump into a small but fast flowing river. +- Villagers let go because slimes don't fare well in water. +- PC is partially resistant to the effects of water due to being a hybrid. +- Managed to escape river downstream, finally being able to regain conciousness proper. +- Ends up at the [farms zone](zones.md#farms), where they'll be able to regain their strength. +- Has lost a good amount of mass. Initially stuck in [blob form](forms.md#blob). diff --git a/docs/zones.md b/docs/zones.md new file mode 100644 index 0000000..2b05de6 --- /dev/null +++ b/docs/zones.md @@ -0,0 +1,78 @@ +# Zones + +The game is split up into multiple distinct thematical zones, each with their own sub-areas. Freely traveling between areas, but especially zones, may require you to have unlocked an ability or finished a quest. Ideally there will be different available methods to move between zones. + +- 🏘️ [Village](#️village) +- 🥕 [Farms](#️farms) +- 🌲 [Forest](#️forest) +- 🏖️ [Beach](#️beach) +- 💧 [Swamp](#️swamp) +- ⛰️ [Mountain](#️mountain) +- 🏰 [Capital](#️capital) + +``` + 🏰-----⛰️ + #### /#\ # = River + / \## # \ | = Connection +🥕---🌲-#--🏘️ + \ #### / + \#/ \ / + 🏖️-----💧 +``` + +For each "animal" in a zone, which is essentially just a low-level or domesticated version of a monster, there can also exist higher-level variants that can have humanoid, anthropomorphic forms, similar to the player character. + +## Village + +This is where you start out in the beginning of the game, before getting chased out. When returning here, should be a mid-game zone focusing on learning more about the story and end-game goal. The player has the option of reconnecting with the villagers and their adoptive family. + +- Home to humans, pets. + +## Farms + +This is where you end up after getting chased out of the village, allowing you to regain your strength by sneaking around farms, stealing crops. The goal here is to eat enough varied crops to unlock [bouncy form](forms.md#bouncy). Farmers then request help from the capital, causing guards to patrol the area, making it more dangerous to stay. + +- Home to humans, sheep, cows, cats. +- Sneak around and into farmers' buildings for shenanigans. + +## Forest + +Central connecting zone. Lots of progression checks to see if you can enter the other zones from here. + +- Home to wolves, wild pigs, rabbits, deer, owls. +- Low to mid level monsters in the wild that get hunted by humans. +- Occasional camps of monster hunters, some abandoned. +- Trading outpost with decent security. +- Monster camps with champion beasts (anthro variants) defending key areas. + Very territorial, defensive, but typically don't directly go after humans. + +## Beach + +Laid back zone, most humans are friendly towards harmless monsters. + +- Home to humans, squids, sharks. +- The squids' design miiight be a little inspired by Splatoon? + - Unlock ranged [splat ability](abilities.md#splat) here? +- Beach episode with campfire party at night! + - Unlock [humanoid form](forms.md#humanoid) here? +- Befriend either a fisher or shark to get you to an island? + +## Swamp + +- Home to slimes, frogs. +- Witch character? + - Could unlock [poison ability](abilities.md#poison) here? + - Potion brewing? Or just buy them? + +## Mountain + +End-game zone that has a lot of stronger monsters and hunters to keep them in check. + +- Home to foxes, goats, lizards. +- Features cave(s). + +## Capital + +End-game zone requiring lots of abilities, quests, or combat, to achieve the end game goal. + +- Home to humans.