Skip to content

Developer's Guide

Hexrin edited this page Feb 26, 2022 · 38 revisions

Github

Committing

  • Commit often. Don't wait until the end of the day to commit. Whenever you complete a sub-task, commit it. If you start work on different files, that is usually a sign that you should commit.
  • Commit names should always be specific, meaningful, and include a past tense verb. Sentence case only.
    • Good Examples:
      • Hawk AI aiming accuracy improved
      • Collision damage implemented
      • Ship duplication bug fixed
    • Bad Examples:
      • Better aiming
      • ships now go crash
      • Fixed
  • If the commit name does not fully explain the changes in a commit, then add a commit description. Descriptions should be complete sentences.
  • If your code does not compile prefix your commit with [Does not compile] Ex: [Does not compile]Started work on cannon module

Branching

  • Create branches only when starting work on a new issue. Each issue should have an associated branch with the same name.
  • Branch names should always be lower kebab case. Ex: create-part-modules
  • Avoid merging with any branch other than master.
  • Don't merge your branch into master without first creating a pull request.

Pull Requests

Pull requests are how your project manager is able to tell that your work has been completed and allows them to review your work and ensure it is up to standards. Rules

  • Always create a pull request when you want to merge your changes into master.
  • Never approve and merge your own pull request.
  • When you create a pull request, add it as a linked pull request to the issue you were working on.

File System

Naming Conventions

All assets should follow one of the following naming conventions:

  • [Prefix]_[Feature Name]
  • [Prefix]_[Feature Name]_[Asset Name]
  • [Prefix]_[Feature Name]_[Asset Name]_[Asset Number]

Examples:

  • T_Cannon_Barrel
  • T_Background_Star_1
  • PDA_Cannon
  • BP_EnemySpawner
  • BB_Hawk
  • BP_Task_LookAtPlayer
Art Assets ----- Code Assets ----- Design Assets ----- Sound Assets -----
File Type Prefix File Type Prefix File Type Prefix File Type Prefix
Texture T Blueprint BP Data Asset DA Wave W
Material M Widget Blueprint WBP Part Data Asset PDA Metasound MS
Material Instance MI Blueprint Function Library BFL Ship Data Asset SDA Sound Class SC
Niagara Emitter FXE Blueprint Macro Library BML Data Table DT Sound Class Mix SMX
Niagara System FXS Blueprint Interface BI Curve Table CT Sound Attenuation SA
Niagara Function FXF Enum E ----- ----- ----- -----
Static Mesh SM Structure F ----- ----- ----- -----
Skeletal Mesh SKM ----- ----- ----- ----- ----- -----

Hierarchy

|-- Content
    |-- Core
    |-- Developer Tools
    |-- Galaxy Map
    |-- Parts
        |-- [Each Part]
    |-- Ships
    |-- Star Systems
        |-- [Each System Type]
    |-- UI
        |-- [Each UI Element]
    |-- Voidsongs
        |-- Motifs
            |-- Factions
                |-- [Each Motif]
            |-- Nouns
                |-- [Each Motif]
            |-- Verbs
                |-- [Each Motif]
|-- Source
    |-- Voidsinger
        |-- Core
        |-- UI
        |-- Voidgrids
            |-- Ships
            |-- Parts
        |-- Voidsongs
            |-- Motifs
                |-- Factions
                |-- Nouns
                |-- Verbs
        |-- Voidsongs
            |-- Motifs
                |-- Factions
                |-- Nouns
                |-- Verbs
    |-- VoidsingerEditorTools
        |-- Part Editor

Clone this wiki locally