Files

47 lines
3.2 KiB
Markdown

# A Fairytale Gone Bad: The Briar Queen
Unity based Point and Click Adventure.
## Summary
The Briar Queen is the first entry in a series of horror/thriller based Point and Click Adventure.
It revolves around our central heroine, who's returned to her birthplace after having been adopted 20 years prior.
But not all is what she thought, she was expecting a wondrous and vibrant land of mysticism and magicks, but instead
she comes across a desolate land of despair and terror. Vines have overgrown the villages, houses sit abandoned, and
the streets desolate. Her task (and the players) is to discover what happened to the lands once known as prosperous
and wonderful, and perhaps, just perhaps, discover herself in the process. Keep the actual briars to a minium, and focus
mainly on vines and thorns.
## Gameplay Design
1. **Canvas** - Our game is entirely canvas based and pre-drawn artwork. No 3D Objects or 2D objects. Users interact by clicking on objects, solving puzzles.
2. **Puzzles** - We use Resident-Evil styled puzzles which can be composed of as many parts as necessary. Items get picked up and used to complete or interact with these puzzles.
3. **Registries** - Scriptable Objects should live in a registry of somekind. Asset References, Audio, etc.
4. **Braces required on all control flow**`if`, `else`, `for`, `foreach`, `while`, `do`, `switch` must always have braces, including two-line statements.
5. **Naming**`_camelCase` private fields, `PascalCase` properties/methods/classes.
6. **Player** - We consider everything from the player's point of view. How Audio is going to sound or how a puzzle plays out.
7. **UniTask** - Any async-capable code should be put into UniTasks and awaited. See below for documentation link.
8. **PrimeTween** - Tweening is done using the PrimeTween Library. Each class that has a Sequence should also have a cancellation token.
9. **Tokens** - Cancellation Tokens should be re-used where possible.
10. **Versions** - We're using C# 9 with Unity 6.3
11. **Workflow** - You're not to make any code changes until you've shown me the proposed changes, I'll then either approve, deny, or modify them before you make the change.
12. **Events** - We use C# events, actions, and delegates rather than UnityEvents, except when dealing with raw/stock ui components.
## Semantics
1. **Access** - All methods, properties, and fields, should always be the minimum required access.
2. **Const** - All const fields and variables should be ALL_CAP_UNDERSCORED for names.
3. **Variable Ordering** - Const variables followed by Unity serialized fields, followed by private/protected variables, followed by public access.
4. **Method Ordering** - vContainer injection method, followed by private Unity Methods (Awake, Start, Update, etc), followed by public methods, then protected, then followed by private methods.
## Documentation
UniTask - https://github.com/Cysharp/UniTask
PrimeTween - https://github.com/KyryloKuzyk/PrimeTween
## AI Direction
1. Never just apply code. Always present it to me first so I can review it. Prefer full classes over simple methods so I can get the full context.
2. I am autisic, so please present explanations for any code changes, what it'll fix or achieve, and why we should do it.
3.