Archery Project Portal
website·Indexed 31 days ago
https://aiegoo.github.io/archeryDocumentation and blog for the Archery project, featuring a project portal covering project management, scripting, IK solvers, and error debugging. Includes game design details for Leviathan, Maya skeleton joint building guides, and coding standards for .NET Core and XAML.
What's inside Archery
- Leviathan (full title: 'Leviathan The Saga of a Fixer') is an archery-based game where the player takes on the role of a contract fixer. The plot involves completing impossible missions, including two assassinations and stealing a vault of information from a rival company. The protagonist is a former aspiring national archery squad member who now operates in a SWAT boot-camp style training gallery environment.
Leviathan: The Saga of a Fixer Game Overview
Leviathan is an archery-themed game where the player takes on the role of a contract fixer. The plot involves completing high-stakes missions, including two assassinations and stealing a vault of information from a rival company. The protagonist is a former aspiring national archery squad member who now operates in a world resembling a SWAT boot-camp training gallery.Initialize a new Docusaurus site using the classic template
To create a new Docusaurus website with the classic template and all necessary dependencies, run the initialization command in your terminal (Command Prompt, Powershell, or Terminal).npm init docusaurus@latest my-website classicCreate callouts using Admonitions
Docusaurus provides a special container syntax (:::) to create themed admonitions and callouts, such as tips and danger warnings.:::tip My tip Use this awesome feature option ::: :::danger Take care This action is dangerous :::Apply Unity3D naming conventions for types and functions
Follow these naming standards for Unity3D projects to maintain consistency across the codebase:
Structures, Types, and Enums:
- Use lowercase with underscores to separate words.
- Append
_tto the end of the name to indicate it is a type. - Format:
[area]_[noun]_t. - Public types must be prepended with
k4a_(e.g.,k4a_[area]_[noun]_t).
Enum Elements:
- Use the same
[area]_[noun]prefix as the parent enum. - Use uppercase with underscores to separate words.
Functions:
- Use lowercase with underscores to separate words.
- Format:
[area]_[verb]_[noun]. - Public functions must be prepended with
k4a_(e.g.,k4a_[area]_[verb]_[noun]).
Create syntax-highlighted code blocks with titles
Markdown code blocks are supported with syntax highlighting. You can optionally add atitleattribute to the language tag to display a filename or label above the code block.```jsx title="src/components/HelloDocusaurus.js" function HelloDocusaurus() { return ( <h1>Hello, Docusaurus!</h1> ) }Unity3D coding standards for API design and error handling
Adhere to the following constraints when developing Unity3D APIs and functions:
- Macros: Must be all uppercase.
- Public APIs: Do not use default parameters in public C++ or C# APIs.
- Cleanup Functions:
Stop,Free, andDestroyfunctions should not return an error type. If an error is unrecoverable by the user, crashing is acceptable. Only return an error if there is a specific recovery action the user can take (excluding restarts).
Name transient DTOs and Enums in Service/Repo patterns
For DTO classes and enums used only internally (e.g., between a service and a repository or within an internal microservice), prefix the name withXto indicate they are transient.public sealed class XNode { } public enum EXTransactionStatus { }Create interactive blog posts using MDX in Docusaurus
Blog posts in Docusaurus support MDX, allowing the use of React components directly within markdown files to create interactive content.<button onClick={() => alert('button clicked!')}>Click me!</button>Update content for specific documentation versions
Docusaurus separates versioned content from the current development content. To update a specific version, edit the files within the corresponding
versioned_docsfolder. To update the upcoming/unreleased version, edit files in the maindocsfolder.Example mapping:
versioned_docs/version-1.0/hello.md$\rightarrow$http://localhost:3000/docs/hellodocs/hello.md$\rightarrow$http://localhost:3000/docs/next/hello
Create a new documentation version in Docusaurus
Use the Docusaurus CLI to snapshot the current state of your
docsfolder into a versioned release. This process copies thedocsfolder into a new directory underversioned_docs/and creates aversions.jsonfile to track the versioning metadata.After creating a version (e.g., 1.0):
- The versioned docs (1.0) are available at
/docs/. - The current, unreleased development docs are available at
/docs/next/.
npm run docusaurus docs:version 1.0- The versioned docs (1.0) are available at
C# Naming Conventions for Classes, Variables, and Methods
Follow these casing and naming rules for C# development to ensure consistency and readability:
- Classes and Structs: Use
PascalCase(e.g.,PlayerManager). - Local Variables and Parameters: Use
camelCase(e.g.,someParameter). - Public Methods: Use
PascalCaseand a verb(base form)-object pair (e.g.,GetAge()). - Non-Public Methods: Use
camelCase(e.g.,getAge()). - Constants: Use
ALL_CAPS_SEPARATED_BY_UNDERSCORE(e.g.,SOME_CONSTANT). - Static Readonly Variables: Use
ALL_CAPS_SEPARATED_BY_UNDERSCORE. - Namespaces: Use
PascalCase(e.g.,System.Graphics). - Boolean Variables: Prefix with
bfor locals (bFired) andmbfor private members (mbFired). - Boolean Properties: Prefix with
Is,Can,Should, orHas(e.g.,IsFired). - Interfaces: Prefix with
I(e.g.,ISomeInterface). - Enums: Prefix with
E(e.g.,EDirection). - Structs: Prefix with
Sunless they arereadonlystructs (e.g.,SUserID). - Private Member Variables: Prefix with
mand usePascalCasefor the remainder (e.g.,mAge). - Recursive Functions: Suffix the name with
Recursive(e.g.,FibonacciRecursive()). - Bitflag Enums: Suffix the name with
Flags(e.g.,EVisibilityFlags).
public enum EDirection { North, South } [Flags] public enum EVisibilityFlags { None = 0, Character = 1 << 0, Terrain = 1 << 1, Building = 1 << 2, }- Classes and Structs: Use