Archery Project Portal

website·Indexed 31 days ago

https://aiegoo.github.io/archery

Documentation 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.

Tokens
6.4K
Snippets
32
Records
45
Agent score
75%

What's inside Archery

  1. Leviathan Game Overview and Concept

    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.
  2. 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.
  3. 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 classic
  4. Create 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
    :::
  5. 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 _t to 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]).
  6. Create syntax-highlighted code blocks with titles

    Markdown code blocks are supported with syntax highlighting. You can optionally add a title attribute 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>
        )
    }
  7. 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, and Destroy functions 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).
  8. 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 with X to indicate they are transient.
    public sealed class XNode
    {
    }
    
    public enum EXTransactionStatus
    {
    }
  9. 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>
  10. 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_docs folder. To update the upcoming/unreleased version, edit files in the main docs folder.

    Example mapping:

    • versioned_docs/version-1.0/hello.md $\rightarrow$ http://localhost:3000/docs/hello
    • docs/hello.md $\rightarrow$ http://localhost:3000/docs/next/hello
  11. Create a new documentation version in Docusaurus

    Use the Docusaurus CLI to snapshot the current state of your docs folder into a versioned release. This process copies the docs folder into a new directory under versioned_docs/ and creates a versions.json file 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
  12. 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 PascalCase and 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 b for locals (bFired) and mb for private members (mbFired).
    • Boolean Properties: Prefix with Is, Can, Should, or Has (e.g., IsFired).
    • Interfaces: Prefix with I (e.g., ISomeInterface).
    • Enums: Prefix with E (e.g., EDirection).
    • Structs: Prefix with S unless they are readonly structs (e.g., SUserID).
    • Private Member Variables: Prefix with m and use PascalCase for 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,
    }