Knowledge Base
HomeProductsCommunityReviewsSocial
Old Knowledge Base
Old Knowledge Base
  • Knowledge Base
    • Getting to know us
  • Where to Buy
    • Become a Sponsor
    • Heathen License Agreement
  • General
    • 🔎Table of Contents
    • 🤩Getting Started
      • Indie Check List
      • Sourcing Resources
        • 🧙‍♂️Community
        • 🧞‍♂️Managed Services
        • 📣Marketing
        • 🧪Testing
    • 🧞Tips and Tricks
      • Fundamentals
        • Development Phases
      • Unity
        • Package Manager Installs
          • Missing asset after update
        • Unity Release Version
      • Unreal
        • Unity to Unreal
        • Quick Start
    • 📐Design
      • ☝️Quick Start
      • 🥾Bootstraping
      • 🤑Monetization
        • What not to do
        • Models
          • Free
          • Free to Play
          • Pay to Play
          • Pay to Win
          • Play to Earn
        • Tools
          • 😡Artificial Scarcity
          • 🤑Bundles
          • 🤔Community Marketplace
          • 🤑Expansions
          • 😡Fear of Missing Out (FOMO)
          • 😡Gatcha Mechanics
          • 🤔Microtransactions (MTX)
          • 😡NFT
            • 😡Blockchain
          • 🤔No Spend Cap
          • 😡Premium Currency
          • 🤔Season
          • 🤑Subscription
          • 😡Surprise Mechanics
      • 🎮Multiplayer
        • Networking Tools
        • Terminology
      • 🤹Multi-Scene Architecture
      • 🌐Project Architecture
      • 😊Player Motivation
    • 🏗️Development
      • ☝️Quick Start
      • ☎️Callbacks & Delegates
      • ❔Conditional Compilation
      • 🪳Debugging
      • 🚧DevOps
        • ☕Team Collaboration
        • 🛂Git Control & Unity
      • ⁉️Error Handling
        • System Dialog
        • Reporting
      • 🤯IntelliSense
      • 🪶Lambda Expressions
      • 🤹‍♀️Multi Platform Projects
      • 📑Namespace and Using
      • 🎮Unity's "New" Input System
      • 🔼Updating Visual Studio and C#
      • 💡Visual Scripting
    • ⚠️Publishers
    • 🧪Testing
      • 👋Introduction
      • ✏️Writing Formal Tests
    • 🧙‍♂️Community
      • ☝️Quick Start
    • 📣Marketing
      • ☝️Quick Start
      • 📌Tips and Tactics
      • 🤓Market Research
    • 📆Release
    • 🗺️Live
  • Steam
    • ☝️Quick Start
    • 🏆Achievements
    • 🌳Branches
    • 🗣️Community Hub
    • ⬆️Uploading to Steam
    • ☁️Cloud Save
    • 🆔CSteamID
    • 🔎Discovery Queue
    • 🕹️Downloadable Content
    • 🚫Early Access
    • 🖱️Input
    • 📦Inventory
      • 🔨Crafting System
      • 🛠️Item Definition Tools
      • 💸Microtransactions
      • 🎁Promo Items
    • 🚢Launch
    • 🥇Leaderboards
      • 🗣️Advanced Profiles
    • 🎮Multiplayer
      • ☝️Getting Started
      • 🧪Dev and Test
      • 🧑‍⚖️Authentication
      • 🛋️Lobby
      • 🧑‍🤝‍🧑Matchmaking
      • 🧑‍🔧Rich Presence
      • 💬Room Systems
      • 💁Steam Game Server
        • 👷Builds
        • ⚙️Configuration
        • 📋Server Browser
        • 🐧Setup Linux
      • 🗣️Terminology
    • 🤹Multi-Platform Project
    • 🧪Playtest
    • 🛋️Remote Play
    • 👀Reviews
    • 🏃Running a Build
    • 💶Sales
    • ⭐Stats
    • 🔑Steam API Key
    • 📃steam_appid.txt
    • 🖥️Steam Deck
    • ⚙️Steamworks
    • 🤯Store Page
    • 🛠️Workshop
      • Creating an Item
      • In-Game Browser
      • Subscribed Items
    • 🧑‍🏫User Information
      • Unity User Tools
      • Unreal User Tools
    • 🗣️Voice
  • Toolkit for Steamworks
    • Introduction
    • Maintenance Cycle
    • F.A.Q
    • Unity
      • ⚠️Known Issues
      • Unity Asset Refund Policy
      • Installation
        • Networking Integrations
      • Getting Started
      • Debugging
      • Learning
      • API Extensions
        • App.Client
        • App.Server
        • App.Web
        • Authentication
        • BigPicture.Client
        • Clans.Client
        • Friends.Client
        • Input.Client
        • Inventory.Client
        • Leaderboards.Client
        • Matchmaking.Client
        • Overlay.Client
        • Parties.Client
        • RemotePlay.Client
        • RemoteStorage.Client
        • Screenshots.Client
        • StatsAndAchievements.Client
        • StatsAndAchievements.Server
        • User.Client
        • UserGeneratedContent.Client
        • Utilities
        • Utilities.Client
        • Voice.Client
      • Objects
        • Classes
          • Achievement Data
          • Achievement Object
          • App Data
          • Authentication Session
          • Authentication Ticket
          • Avg Rate Stat
          • Chat Room
          • Clan Chat Msg
          • Clan Data
          • Currency
          • Data Model
          • DLC Data
          • Downloadable Content Object
          • Favorite Game
          • Float Stat
          • Game Data
          • Input Action
          • Input Action Data
          • Input Action Set
          • Input Action Set Data
          • Input Action Set Layer
          • Input Action Update
          • Input Controller Data
          • Int Stat
          • Inventory Result
          • Item Data
          • Item Definition
          • Item Detail
          • Leaderboard Data
          • Leaderboard Entry
          • Leaderboard Object
          • Lobby Chat Msg
          • Lobby Data
          • Lobby Game Server
          • Lobby Member Data
          • Party Beacon Details
          • Rank Change
          • Remote Storage File
          • Stat Data
          • Steam Game Server Configuration
          • UGC Query
          • User Data
          • Steam Settings
            • Colors
            • Game Client
              • Inventory Settings
            • Game Server
          • User Leave Data
          • Workshop Item
          • Workshop Item Data
          • Workshop Item Data Create Status
          • Workshop Item Key Value Tag
          • Workshop Item Preview File
        • Components
          • Friend Manager
          • Game Server Browser Manager
          • Input Action Event
          • Input Action Glyph
          • Input Action Name
          • Inventory Manager
          • Item Shopping Cart Manager
          • Leaderboard Manager
          • Leaderboard User Entry
          • Overlay Manager
          • Steam Game Server Events
          • Steam Input Manager
          • Steamworks Event Triggers
          • UGC Query Manager
          • Voice Recorder
          • Voice Stream
        • Enums
          • Friend Dialog
          • Inventory Item Type
          • Language Codes
          • Overlay Dialog
          • Sample Rate Method
          • Valve Price Categories
        • Prefabs
          • 📦Clan Chat
          • 📦Clan List
          • 📦Clan Member Count
          • 📦Friend Avatar
          • 📦Friend Groups
          • 📦Friend List
          • 📦Friend Name
          • 📦Friend Profile
          • 📦Selectable Friend ID
        • Programming Tools
          • IChatMessage
          • ILeaderboardEntryDisplay
          • IUserProfile
          • IWorkshopBrowserItemTemplate
          • LobbyMemberSlot
          • User Invite Button
        • UI Components
          • Chat Auto Join
          • Chat Stream
          • Clan Chat Director
          • Clan Chat Member Counter
          • Clan Chat Member List
          • Clan List
          • Clan Profile
          • Friend Group
          • Friend Groups Display
          • Friend Invite Dropdown
          • Friend List
          • Friend Profile
            • Image Field
            • Message Options
            • Text Field
          • Input Action Glyph
          • Input Action Name
          • Leaderboard Entry UI Record
          • Leaderboard UI List
          • Lobby Chat Director
          • Lobby Member Slot
          • Lobby Manager
          • Party Lobby Control
          • Quick Match Lobby Control
          • Rich Presence Reader
          • Rich Presence Setter
          • Set Achievement Description
          • Set Achievement Icon
          • Set Achievement Name
          • Set User Avatar
          • Set User Id Input Field
          • Set User Id Label
          • Set User Name
          • Toggle Event Helper
          • Workshop Browser Simple Item Record
      • Legacy
        • Troubleshooting
        • Getting Started
          • GameObject Initialization
          • ScriptableObject Initialization
          • API Initialization
        • Build Upload Tool
        • Debugging Tools
          • Testing
        • Components
          • Steamworks Behaviour
          • Steamworks Creator
          • Steam System Events
    • Unreal
      • What's New!
      • Installation
      • Getting Started
      • Updating Steamworks SDK
      • Packaging
      • Game Instance
      • Sockets Net Driver
      • Online Subsystem
      • Data Assets
        • Achievement
        • Downloadable Content
        • Inventory Item
        • Leaderboard
        • Stat
      • Widgets
        • BP_FriendsListDisplay
        • BP_FriendsListEntry
        • BP_FriendsListGroup
        • BP_SteamAvatarImage
        • BP_SteamUserName
      • Blueprint Nodes
        • Functions
          • 🔵Add Favorite Game
          • 🔵Add History Game
          • 🔵Add Promo Item
          • 🔵Add Request Lobby List Filter
          • 🔵Advertise Game
          • 🔵Associate with Clan
          • 🔵Attach Leaderboard UGC
          • 🔵Begin Auth Session
          • 🔵Cancel Auth Ticket
          • 🔵Check Result Steam ID
          • 🔵Clear All Key Values
          • 🔵Clear Achievement
          • 🔵Clear Rich Presence
          • 🔵Client Initialize
          • 🔵Client Run Callbacks
          • 🔵Client Should Restart
          • 🔵Compue New Player Compatibility
          • 🔵Consume Item
          • 🔵Create Lobby
          • 🔵Decompress Voice
          • 🔵Delete Lobby Data
          • 🔵Deserialize Result
          • 🔵Destroy Result
          • 🔵Download Leaderboard Entries
          • 🔵Download Leaderboard Entries for Users
          • 🔵End Auth Session
          • 🔵Exchange Items
          • 🔵Find Leaderboard
          • 🔵Find or Create Leaderboard
          • 📂Game Server Browser
            • 🔵Ping Server
            • 🔵Player Details
            • 🔵Request Server List
            • 🔵Server Rules
          • 🔵Generate Items
          • 🔵Get Achievement
          • 🔵Get Achievement by Index
          • 🔵Get Achievement Icon
          • 🔵Get Achievement Is Achieved
          • 🔵Get All Items
          • 🔵Get App Build ID
          • 🔵Get App Id
          • 🔵Get App Owner
          • 🔵Get Auth Session Ticket
          • 🔵Get Auth Ticket for Web API
          • 🔵Get Available Game Languages
          • 🔵Get Available Voice
          • 🔵Get Coplay Friends
          • 🔵Get Current Beta Name
          • 🔵Get Current Game Language
          • 🔵Get DLC Count
          • 🔵Get DLC Data By Index
          • 🔵Get DLC Download Progress
          • 🔵Get Earliest Purchase
          • 🔵Get Favorite Game
          • 🔵Get Friends
          • 🔵Get Friend Coplay Game
          • 🔵Get Friend Coplay Time
          • 🔵Get Friend Count from Source
          • 🔵Get Friend Game Played
          • 🔵Get Friend Groups
          • 🔵Get Friend Group Members
          • 🔵Get Friend Group Name
          • 🔵Get Friend Persona Name
          • 🔵Get Followed
          • 🔵Get Installed Depots
          • 🔵Get Item Definition Properties
          • 🔵Get Item Price
          • 🔵Get Items with Price
          • 🔵Get Items by ID
          • 🔵Get Launch Command Line
          • 🔵Get Launch Query Param
          • 🔵Get Leaderboard Display Type
          • 🔵Get Leaderboard Entry Count
          • 🔵Get Leaderboard Name
          • 🔵Get Leaderboard Sort Method
          • 🔵Get Lobby Chat Entry
          • 🔵Get Lobby Data
          • 🔵Get Lobby Data by Index
          • 🔵Get Lobby Game Server
          • 🔵Get Lobby Members
          • 🔵Get Lobby Member by Index
          • 🔵Get Lobby Member Data
          • 🔵Get Lobby Member Limit
          • 🔵Get Lobby Owner
          • 🔵Get Most Achieved Achievement Info
          • 🔵Get My Steam Avatar
          • 🔵Get My Steam ID
          • 🔵Get My Steam Level
          • 🔵Get Num Items with Price
          • 🔵Get Persona Name
          • 🔵Get Persona State
          • 🔵Get Player Nickname
          • 🔵Get Public IP
          • 🔵Get Result Item Property
          • 🔵Get Result Items
          • 🔵Get Result Status
          • 🔵Get Result Timestamp
          • 🔵Get Stat
          • 🔵Get Steam ID
          • 🔵Get User Achievement
          • 🔵Get User Float Stat
          • 🔵Get User Int Stat
          • 🔵Get User Restrictions
          • 🔵Get Rich Presence
          • 🔵Get User Rich Presence
          • 🔵Get User Rich Presence Key by Index
          • 🔵Get User Steam Avatar
          • 🔵Get Voice
          • 🔵Get Voice Optimal Sample Rate
          • 🔵Grant Promo Items
          • 🔵Has Friend
          • 🔵Id is Me
          • 🔵Id is Valid
          • 🔵Indicate Achievement Progress
          • 🔵Install DLC
          • 🔵Invite User To Game
          • 🔵Invite User to Lobby
          • 🔵Initialize
          • 🔵Is App Installed
          • 🔵Is Behind NAT
          • 🔵Is Cybercafe
          • 🔵Is DLC Installed
          • 🔵Is Lobby Owner
          • 🔵Is Low Violence
          • 🔵Is Phone Identifying
          • 🔵Is Phone Requiring Verification
          • 🔵Is Phone Verified
          • 🔵Is Steam Initialized
          • 🔵Is Subscribed
          • 🔵Is Subscribed App
          • 🔵Is Subscribed from Family Sharing
          • 🔵Is Subscribed from Free Weekend
          • 🔵Is Timed Trial
          • 🔵Is Two Factor Enabled
          • 🔵Is VAC Banned
          • 🔵Join Lobby
          • 🔵Leave Lobby
          • 🔵Load Item Definitions
          • 🔵Logged On
          • 🔵Log Off
          • 🔵Log On
          • 🔵Log On Anonymous
          • 🔵Mark Content Corrupt
          • 🔵Quick Match
          • 🔵Remove Favorite Game
          • 🔵Remove History Game
          • 🔵Remove Property
          • 🔵Reply to Friend Message
          • 🔵Request Current Stats
          • 🔵Request Eligible Promo Item Definitions IDs
          • 🔵Request Friend Rich Presence
          • 🔵Request Lobby Data
          • 🔵Request Lobby List
          • 🔵Request Prices
          • 🔵Request Store Auth URL
          • 🔵Request User Group Status
          • 🔵Request User Information
          • 🔵Request User Stats
          • 🔵Reset All Stats
          • 🔵Run Callbacks
          • 🔵Secure
          • 🔵Send Lobby Chat
          • 🔵Serialize Result
          • 🔵Set Achievement
          • 🔵Set Advertise Server Active
          • 🔵Set Bot Player Count
          • 🔵Set Dedicated Server
          • 🔵Set Description
          • 🔵Set Game Data
          • 🔵Set Game Tags
          • 🔵Set In-Game Voice Speaking
          • 🔵Set Key Value
          • 🔵Set Map Name
          • 🔵Set Listen for Friends Messages
          • 🔵Set Lobby Data
          • 🔵Set Lobby Game Server
          • 🔵Set Lobby Joinable
          • 🔵Set Lobby Member Data
          • 🔵Set Lobby Member Limit
          • 🔵Set Lobby Owner
          • 🔵Set Lobby Type
          • 🔵Set Max Player Count
          • 🔵Set Mod Directory Name
          • 🔵Set Name
          • 🔵Set Password Protected
          • 🔵Set Persona Name
          • 🔵Set Played with User
          • 🔵Set Product
          • 🔵Set Property
          • 🔵Set Region
          • 🔵Set Rich Presence
          • 🔵Set Stats
          • 🔵Set Spectator Name
          • 🔵Set Spectator Port
          • 🔵Set User Achievement
          • 🔵Set User Float Stat
          • 🔵Set User Int Stat
          • 🔵Shutdown
          • 🔵Start Purchase
          • 🔵Start Update Property
          • 🔵Start Voice Recording
          • 🔵Steam ID Tools
          • 🔵Stop Voice Recording
          • 🔵Store Stats
          • 🔵Store User Stats
          • 🔵Submit Update Property
          • 🔵Transfer Item Quantity
          • 🔵Trigger Item Drop
          • 🔵Uninstall DLC
          • 🔵Update Avg Rate Stat
          • 🔵Update User Avg Rate Stat
          • 🔵Upload Leaderboard Score
          • 🔵User Has License for App
          • 🔵Was Restart Requested
        • Events
          • 🔻Dlc Installed
          • 🔻Friend Chat Msg
          • 🔻Friend Rich Presence Update
          • 🔻Game Overlay Activated
          • 🔻Inventory Item Definition Update
          • 🔻Inventory Results Ready
          • 🔻Lobby Chat Msg
          • 🔻Lobby Chat Update
          • 🔻Lobby Data Update
          • 🔻Lobby Game Created
          • 🔻Lobby Join Requested
          • 🔻Micro Txn Authorization Response
          • 🔻Persona State Change
          • 🔻Rich Presence Join Requested
          • 🔻Servers Connected
          • 🔻Server Connect Failure
          • 🔻Server Disconnected
          • 🔻Ticket for Web API Response
        • Types
          • 🟩Achievement Status
          • 🟩Auth Ticket Data
          • 🟩Chat Entry
          • 🟩Decompress Voice Result
          • 🟩Float Stat
          • 🟩Game Server Item Wrapper
          • 🟩Game Server Player Details Wrapper
          • 🟩Global Achievement Status
          • 🟩Item Count
          • 🟩Item Detail
          • 🟩Item Detail With Properties
          • 🟩Item Price
          • 🟩Item With Price
          • 🟩Int Stat
          • 🟩Key Value Pair
          • 🟩Leaderboard Entry
          • 🟩Lobby Data
          • 🟩Lobby Game Server
          • 🟩Server Achievement Status
          • 🟩Server Stat Float Value
          • 🟩Server Stat Int Value
          • 🟩User Achievement Status
          • 🟩Voice Result
          • 🟩Voice Available Result
        • Enumerators
          • 🟨UEBeginAuthSessionResult
          • 🟨UEChatRoomEnterResponse
          • 🟨UEFriendFlags
          • 🟨UEChatEntryType
          • 🟨UEChatMemberStateChange
          • 🟨UELeaderboardDataRequest
          • 🟨UELeaderboardDisplayType
          • 🟨UELeaderboardSortMethod
          • 🟨UELobbyComparison
          • 🟨UELobbyDistanceFilter
          • 🟨UELobbyType
          • 🟨UEResult
          • 🟨UESteamCurrencyCode
          • 🟨UEServerMode
          • 🟨UEUserHasLicenseForAppResult
          • 🟨UEVoiceResult
      • C++
  • Toolkit for Physics
    • Unity
      • Installation
      • Core Features
        • Ballistics Tools
        • Buoyancy Tools
        • Force Effect Framework
        • Physics Data extended
        • Verlet Integration
      • Sample Scenes
        • Fantasy Style Ballistic Simulation
        • (3D) Deterministic Bounce Prediction
        • (2D) Deterministic Bounce Prediction
        • 1 Buoyancy Example
        • 1 Force Effect Fields
        • 2 Spherical Gravity
        • 3 Multi-body Gravity
        • 1 Verlet Spring Simple Transforms
        • 2 Verlet Spring Skinned Mesh
      • API
        • Ballistics
        • Buoyancy
        • Force Effects
        • Maths
        • Mesh Tools
      • Components
        • Ballistic Aim
        • Ballistic Path Line Render
        • Ballistic Path Follow
        • Buoyant Body
        • Buoyant Body Drag
        • Constant Acceleration
        • Constant Angular Velocity
        • Constant Linear Velocity
        • Force Effect Source
          • Force Effect Direction
          • Force Effect Field
        • Force Effect Reciever
        • Physics Data
        • Surface Tool
        • Trick Shot
        • Trick Shot Line
        • Verlet Spring
      • Objects
        • Force Effect
          • Attract Effect
          • Gravity Effect
          • Repulse Effect
          • Suspend Effect
          • Tractor Effect
          • Wind Effect
        • Point Volume
        • Verlet Hierarchy
        • Verlet Hierarchy Settings
        • Verlet Particle
      • Enums
        • Calculation Mode
  • Toolkit for UI & UX
    • Introduction
    • Unity
      • Installation
      • Learning
        • Sample Scenes
          • Command Parser Example
          • Cursor System Scene
          • Drag and Drop (Behaviours)
          • Drag and Drop (Inventory Example)
          • Drag and Drop (Spell Bar Example)
          • Log Sample Scene
          • Screenshot Sample Scene
        • Core Concepts
          • Command System
          • Cursor System
          • Drag and Drop System
          • Interaction Tools
          • Logging & Feedback
          • Scene Tools
          • Selection System
          • Tooltip System
          • Window System
        • uGUI Extras
          • Key Collection
          • Ligature Tools
          • Tree View Collection
      • API
        • Cursors
        • Json
        • Log
        • Scenes
        • Screenshot
        • Selection
        • Trello
        • Windows
      • Components
        • Action Hold
        • Border Handle
        • Button Cursor State
        • Change Cursor Default State
        • Command Director
        • Cursor Animator
        • Drag Item
        • Drop Container
        • Key Hold
        • Mouse Over Cursor State
        • Move Handle
        • Play On Click
        • Play On Demand
        • Play On Down
        • Play On Enter
        • Play On Exit
        • Play On Up
        • Pointer Hold
        • Scenes Manager
        • Selectable Object
        • Selection Manager
        • Tooltip Trigger
        • Tooltip Window Controller
        • Window
        • Window Clamping Bounds
        • Window Focus Change Event Data
      • Objects
        • Command Data
        • Command Library
        • Cursor Animation
        • Cursor State
        • DragAndDropItemChangeData
        • LogData
      • Enums
        • Clear Drop Behaviour
        • Drag Effect
        • Drag End Behaviours
        • Grab Handle
        • Mask Mode
        • Recieve Mode
        • Window Snap To Location
  • More Heathen Tools
    • 🎨Art Assets
      • Breakable
        • Wood Props
          • Installation
    • ⚙️System Core
      • Installation
      • Learning
        • Asset Developers
      • Command Line
      • Game Events
      • Scriptable Tags
      • Scriptable Variables
      • Heathen Behaviour
      • Heathen UI Behaviour
    • 📋Tips for Asset Developers
      • Editor Coroutines
      • Package Manger in C#
      • Session State Values
  • Codex
    • Introduction
      • Article Design Guide
        • Evolution
          • Early Period
          • Middle Period
          • Late Period
      • Codex Organization
    • Irish
      • Folklore
        • Introduction
        • Characters
          • Déithe
            • Cacht
            • Lugh
            • Dag Dia
              • Donn
              • Nuada
              • Ogma
            • Mother?
              • Banba
                • Appearance
                • Name
              • Érui
                • Appearance
                • Name
              • Fódla
                • Appearance
                • Name
            • Father ?
              • Éthur Mac Cuill
              • Céthur Mac Gréine
              • Téthur Mac Cecht
        • Concepts
          • Binding Tablet
          • Druids
          • Sociaty
          • Patron Gods
          • Bile
          • Time
        • Food
          • Elderberry Capers
          • Elderberry Wine
          • Mead
        • Peoples
          • Fomóire
          • Research Note
            • Hunter Gathers
            • Neolithic Farmers
            • Bronze Age
        • Locations
          • Lughmhagh
          • Temair
            • Name
      • Research
        • Historical Backdrop
        • Disambiguation
          • Banshee
          • Celt
          • Gods and Goddesses
          • Lebor Gabála Érenn
          • Milesians
          • Mother Goddess
          • Sovereignty Goddess
          • The Morrígan
          • Triple Persona
          • Tuatha Dé
          • Wicker Man Sacrafice
        • Links
          • Social Factors
          • Lugh
            • Name
          • Ogma
          • Astronomy
          • Time
        • Sources
        • WIP
          • Artefacts
          • Beings
            • Cannon
              • Belgae
              • Fomorians
              • Síog
              • Tuatha Dé Danann
            • Derivative
              • Milesians
              • Muintir Nemid
          • Characters
            • Cannon
            • Derivative
          • Concepts
          • Events
          • Languages
          • Music
          • Places
          • Sources
          • Stories
          • Styles
Powered by GitBook
On this page
  • Introduction
  • Fundamentals
  • Registration and Administration
  • Accounting
  • Legal
  • Platform
  • Marketing
  • Community
  • Production
  • Design
  • Engineering
  • Visuals
  • Audio
  • Testing
  • Localization
  • Operations
  • DevOps
  • LiveOps
  1. General
  2. Getting Started

Indie Check List

Did you think about [ ... ]

PreviousGetting StartedNextSourcing Resources

Last updated 10 months ago

Like what you're seeing?

Consider supporting us as a and get instant access to all our Unity assets, exclusive tools and assets, escalated support and issue tracking and our gratitude. These articles are made possible by our ... become a sponsor today!

Introduction

The following are major areas that you should seriously think of how you will staff. These are the major functions that you will need to staff internally, contract someone to do for you, or select a partner to help you with.

Read over every entry here, but don't panic yet.

There are indie-friendly ways to account for every aspect of this journey, it's not free, it's not easy but it is worth it if this is your passion.

Fundamentals

Registration and Administration

In many regions, you are legally required to register a business, even if it's just you. In most cases, it's strongly advised that you incorporate and not simply "DBA" (doing business as). The specifics of this are highly dependent on region, deal with legal matters and are not appropriately advised on via a community forum or even this article.

Go see a professional that deals with Company Formation in your region and understand what your obligations are, and seek advice on what options might best work for you. Finding a local advisor or partner to help you here is key. Most regions will have state/government ran programs and initiatives meant to support new businesses, this is particularly common with new arts, technical and consequently game businesses.

Accounting

If you're going to be buying anything or making any money then you need an accountant. You will always need an accountant so rather you staff this or partner, this will be a permanent relationship for you and your company. It's worth noting that many accounting firms also handle company registration and can advise on administration aspects. This is also highly specific to each region and deals with legal matters so taking the advice of some community forum or even this article is insufficient. Seek a local professional for advice.

Legal

As a game developer, even before you have a game ready to publish, you will be creating and using other people's creations. Making sure you're complying with any legal requirements and registering any IP, names, marks, etc. as required by your local regulations is critical and often overlooked. This is usually something that your Registration and Administration and/or Accounting partner may handle; that is you can usually find a partner that is suitable to advise and guide on all three of these aspects.

Platform

We strongly recommend Steam as your first and core platform. Steam is the gaming platform for PC, it has a low barrier to entry and you build your game on a PC so it's the most native to the project ... there is no reason to not launch on Steam.

How will you distribute your product? This is something you should think about early. It will dictate many other aspects of your organization and likely have a significant impact on the design and implementation of any apps/games you create.

You will need to choose a trusted platform or multiple platforms. While it is technically possible to distribute your games and apps yourself, platforms do much more than just distribution. A key aspect of choosing a platform is the "Trust and Security" aspect. Why should a customer trust your app? How do they know it's not malware? Simple, if it's on a trusted platform it's "safe" or at least there is recourse if things go sideways.

Examples of Trusted Platforms, non-exhaustive (means there are other options)

  • PC, Mac, Linux

    • Steam

    • GOG

    • Xbox (yes they have a PC tool. Sony is working on something similar)

    • Epic Game Store

  • Consoles Each has its official store

  • Android and iOS Each has its official store

Do be careful of the platforms you choose, especially if you're considering exclusivity.

Small studios can often land some much-needed funding via exclusive deals, however, some platforms especially when you are available exclusively on them can be harmful to your project and organization. In general PC gamers have an active hate of "exclusivity" to the point that some do track this behaviour and actively avoid developers and publishers that avail of it.

Marketing

Another commonly outsourced aspect of game development as a business, especially for small studios and solo developers. Marketing requires time, expertise and scale to be effective. The marketing needs of small indies are unique to the needs of other businesses and even other forms of game development (mobile, AA and AAA). Be sure to consider the unique challenges of marketing and understand that developing your marketing strategy should generally happen before the production of your game.

Marketing for note involves much more than advertising your game. Your marketing strategy will include an assessment of the market, audience targeting and other factors that will influence your design process and in particular will influence any potential investors. Engaging a professional marketing firm early to help establish a sound marketing strategy doesn't cost as much as you might think and will greatly improve your chances of success.

Community

Community is an ever-evolving requirement of game development. In the early days, games were a matter of "fire and forget", released into the wild and not so much as a post-release update. One-way community management via "Blue Posts" ... looking at you Blizzard ... are likewise no longer viable. The current market effectively demands rich community engagement. A happy community can prop up a small scrappy game and a pissed-off community can tank a AAA title with ease.

Classically community management has been handled by a "go-to-man" in each studio acting as a sort of "frontman" like one sees with rock bands ... and that is a major problem.

Good business will tell you that having any system depend on a "go-to-man" is a critical point of failure that will go wrong, it's only a matter of time. Treat the community and its management as you would any other important part of your business, and project and invest in it wisely.

Production

These are the major aspects of production that you simply cannot get away with cutting corners on.

As "indie game dev" has grown in popularity, some tools, guides and articles might have led you to believe that you can just buy the solution on the Unity Asset Store or DIY with some magical tool that trivializes it.

This however is not reality. In reality, each of these areas is skilled creative functions that involve more work than the uninitiated realizes, and so require consideration on how you will source these needs.

Design

Seems obvious right? This is usually the one common thing we all (game developers) do or are interested in. That however doesn't mean we are all game designers and that we have a passion for it as our core skill. If you're not the game designer, you need to source for this fundamental requirement. Staffing up is usually the preference here but it is possible to contract or even outsource your game design.

Keep in mind having a "great idea" is not game design, game design is devising all those little hidden and often obscure factors that work together to create an experience that the user wants to pay you money for. This is often held up as the "rock star" role in a studio but in reality, its the most thankless and difficult job usually done by a team of dedicated people who most people don't even realize exist.

It just so happens that a couple of influential people in the industry at current are people who started as designers, they however are no longer designers they are now executives (full-time job), managers (full-time job), or otherwise not dealing with the day to day design of given areas of the project.

Engineering

No, you cannot create a professional fully featured game without dealing with engineering. I don't care what XXXX tool says on the box, that is not reality.

Engineering is not typing words into a compiler to "make the computer go". 'The act of analyzing requirements, designing, building, testing and integrating tools and systems to resolve those requirements.' That is engineering. Or at least the main part of it you need an engineer for.

Visual scripting tools, blueprints, "code free" development tools ... they can all help your prototype. However, they are not a replacement for an engineer. Even if your project never requires a single line of code to be typed out, you will still require engineering as a skill to complete your project.

Visuals

If you want to release a professional game you cannot be releasing it with Unity Asset Store artwork in it. Art assets on the Unity Asset Store and similar marketplaces are wonderful placeholders, inspiration pieces or even as a base or bash kit to work from when creating custom works. UAS Art Assets however are not production-ready regardless of what is said on the store page. You might get away with it as a passion project done by a hobbyist but the moment you put that professional hat on and try to be a business, your clients and probably some of your peers are going to rip you apart.

Rather it's for your UI, world design, characters, VFX ... just like Engineering is more than "type words make the computer go", visual art is a lot more than 2D images and 3D models. Sourcing a solution to create your visual design style and then producing the content in that style to meet your project's requirements is an obvious requirement for any game project.

Audio

As with visual assets, grabbing some royalty-free SFX and music off some asset store, while perfectly fine for that passion project you did as a hobby, just isn't appropriate for a professional game.

Audio assets tend to be even harder to hide or mask in your project, even infrequently played sounds tend to be very memorable to players. Couple that with the comparatively smaller pool of assets to choose from, the risk of using off-the-shelf audio assets is high.

Beyond the fact that a solid portion of your user base is likely to identify your off-the-shelf audio selection. Audio design and direction is an art unto itself that has less to do with the recording of noise you purchased and more to do with how they are used. A well-thought-out audio design for your game can not only save some egg on the face but also reduce the cost and need for custom audio. Proper use of less will get you more than throwing a lot of off-the-shelf content at the problem.

Testing

No, community testing and public beta are not even close to sufficient.

This is one of the factors that separates the hobbyist game from the professional game. Nothing wrong with being the passion project of a talented hobbyist, but a professional game is held to a stricter standard.

If you outsourced your engineering that firm probably also provides for testing. If you're handling engineering needs in-house, then you're going to need to solve for testing as well. Testing is one of those areas that only works at scale. That is to say, it requires a larger entity to do well. Consequently, small studios, even ones specialized in engineering, will outsource some or all of their testing. Even "testing studios" who are the ones often contracted to be that outsourced testing solution are typically leaning very heavily on contractors to meet the demand.

Localization

While listed at the end you need to be thinking about this from the start. Localizing a game with hard-coded strings is far more expensive than localizing a game with well-thought-out and implemented dialogue.

Do not auto-translate

As with every other aspect of production, you cannot cut corners here. You are far better to support just 1 common language than you are to auto-translate your game in the modern market. Aside from a lack of professionalism, some regions and cultures can be easily offended by naïve attempts and in some cases that offence can bring real consequences.

Localization is perhaps the most commonly outsourced requirement a game will have, as it requires local cultural expertise for each location. Localization more so than other aspects simply shouldn't be corner-cut. Poor translation can be offensive and result in harm to your product and company. It simply isn't excusable in the modern market. If your budget is tight and you can't afford a professional localization of your project, simply skip it. You are better off having fewer localizations than you are letting auto-translate shoot you in the foot.

Operations

So much more than keeping the lights on, but often thought of that way. Operations cover the factors of, well, operating whatever it is.

DevOps

This is part of ALM (Application Lifecycle Management) ALM is far too huge of a concept to detail here, but something we will start to cover over time. If you have more questions about ALM reach out. Heathen has decades of experience in Enterprise Software Engineering where we lived and breathed this day to day.

DevOps, sometimes confused for ALM or even simply called "source control", encompasses a lot of your day-to-day operations as a software development house.

Make no mistake, if you build video games, whether you like it or not you are a software development business, and need to be aware of and conform to that reality.

DevOps is largely an internal process with some tooling sprinkled in, so not something you will be outsourcing unless you outsource all of your development. DevOps is however a concept you're likely new to, not to mention its parent concept ALM. Finding a consultancy that can help you ramp up these concepts and tools is key to the healthy operation of your business. No amount of good ideas or even great production will save you if you fail at DevOps.

... Dramatic ... so what is it exactly?

DevOps is a collection of practices, and the tooling to support them. It defines and enables the creation of your "content" be that source code, art assets, audio files or anything else for that matter. It defines how they will be logged, backed up, reviewed, tested, built and deployed.

In short, it defines how you will "operate" your "development", hence DevOps.

... wait isn't it for code stuff? but I outsourced Engineering

No this is not just for your code monkeys, it covers all of your "dev" so art, audio, testing, and design. The entire "production" process as we would typically call it in game development is driven through your DevOps tools according to your DevOps processes.

LiveOps

This is again part of ALM (Application Lifecycle Management) ALM is far too huge of a concept to detail here but something we will start to cover over time. If you have more questions about ALM reach out. Heathen has decades of experience in Enterprise Software Engineering where we lived and breathed this day to day.

LiveOps or "Live" "Operations" deals with the processes and tools you employ to operate your released game. What exactly this includes depends on your game and truly standalone games have a very minimal "LiveOps" requirement whereas something more "live service" such as an MMO or MOBA would have a very complex "LiveOps" requirement.

As with DevOps, this is a matter of processes and the tools that enable them so not something you would "outsource" though consultancy firms can help you understand the concepts and apply them to your specific project.

For "PC" games (that is Windows, Mac and Linux games) the Steam platform is the largest and most dominant by a very long shot. If you plan to release a game on PC then you should plan to release that game on Steam. is a feature available freely to all Steam games and can add a lot of value to your game for your players. Heathen of course provides great tooling around .

Our is that you should treat Steam as your primary platform and then add additional platforms to your supported list as your bandwidth (skill and resource availability) allows. This recommendation applies to console games and "major" mobile games as well. PC is the most "native" platform to any bit of software and Steam is king on PC. There is little to no reason to not release on Steam and in general, your Steam release should be the easiest to accomplish.

Visuals (usually just called art but audio guys get offended )

🤩
😉
Steamworks
Steamworks
biased opinion
Love him or hate him this is not his story. Epic Game Store tends to be a place of forgetting for game releases big and small which is true for indie and AAA. If you got Epic Game Store make sure it's not your only platform.
GitHub Sponsor
GitHub Sponsors
A curator that recommends against any game that formerly had Epic Store Exclusivity
LogoSteam Curator: Epic Games Suckssteam
Become a sponsor and Do More