HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.

Author Topic: Guide to Terminology inside the HeroEngine  (Read 3809 times)


  • *****
  • Posts: 2221
    • View Profile
Guide to Terminology inside the HeroEngine
« on: Aug 18, 12, 02:20:58 PM »


Having seen a lot of vague or incorrect uses of terminology, I wanted to make sure people are all speaking the same language and have a basic idea of the relationship between the various parts.

An asset is the template from which things in the game world are made.

    Assets are owned by areas (which are persisted in the GOM and DAT file) and propbuckets (not persisted, added and removed by script calls).
    The data in assets comes from files in the repository, not from the GOM.
    There are a few placeholder assets which don't have any interesting data in them, such as light.lit -- these are there for consistency.

An instance is an object with a unique ID number, created from an asset.  There can be many instances per asset but each instance comes from exactly one asset.

    Instances are owned by rooms (which are persisted in the server GOM and in DAT files) and propbuckets (not persisted, do not exist in the server GOM, added and removed by script calls).
    In the client engine, if an instance is active, it is associated with exactly one node.

    Characters are not instances, since they are not persisted as part of the area.  (They are CharacterNodes in the engine, which derive from GrannyNode.)
    Particle emitters placed into rooms are instances.  The things they emit are not (and don't exist in the GOM).
    Skydomes are not instances and don't exist in the GOM.
    GUIControls are not instances, but they do exist in the GOM.

An asset is the blueprint, an instance is the house.

    A model is the data which drives GrannyNodes, defined by an HGM or GR2 model file.  (Some HGM/GR2 files define animations, not models.)   Models are owned by GrannyAssetSpec.
    A mesh is a single set of geometry, and a reference to the material which it uses.  There may be multiple meshes in a model -- for example, a barrel of apples may consist of a mesh for the wooden barrel and a mesh for the pile of apples.
    A material is a set of textures with defined roles (such as diffuse, normal/specular, macro) and associated properties.  All materials are owned by the MaterialManager.


  • *****
  • Posts: 2221
    • View Profile
Re: Guide to Terminology inside the HeroEngine
« Reply #1 on: Sep 26, 12, 09:30:31 AM »


The Client is the graphics, script, code, and anything else running locally on a developer's or player's machine.
The Server is the concept of the data, code, and scripts stored and executed in the Server Cluster, which is the set of hardware that shares all of that information between all of the clients connected to the server.
A Shard is the term used to refer to what players commonly call their "server" when playing an MMO. "What server are you on in WoW? I'm on darkbladeawesomeelf server." But in reality these are just arbitrary separations of players and do not map directly to a physical piece of hardware or database, though at the large scale AAA MMO level, they frequently do.
A World is simply what we call the development environment you are given when purchasing a HeroCloud license. It is essentially a fully functioning "shard" but contains all of the development code and tools, etc.
The HeroBlade is a client you use to connect to your world and make changes to it.
The Player Client is a client your players will use to connect to your world, your game, your shards, etc, and is essentially identical to clicking "game mode" in the HeroBlade, minus a small amount of overhead, and the editor UI. Specific code can be written to only execute when a player is connected via the a player client, as opposed to the HeroBlade.
« Last Edit: Sep 26, 12, 09:35:05 AM by HE-Cooper »