Important remarks

A few relevant remarks are listed below.

Engine versions

  • If you are reading this documentation on-line from the official Ethanon Engine website, make sure you have the lastest Ethanon Engine binaries.
  • Always read the change log after updating your Ethanon Engine version.
  • Binary files and default shaders in your projects directories (machine.exe, data/*.cg, etc.) won't get automatically updated when you install a new version of Ethanon Engine. In order to update your project, open the project manager in the Ethanon Editor, choose the "New project..." option and overwrite your old *.ethproj file. Don't worry, you source code will remain intact, only .EXE and .DLL files will be replaced.

Optimization tips

  • Minimize the number of tile entities (floor, ground, etc.) by using bigger bitmaps when possible. It'll make your game run faster.
  • Avoid using the SeekEntity function too many times during the game loop because it may become slow. Prefer manipulating entities through exclusive callback functions. Global processes with loops that scan all entities must be avoided and most of them can be replaced by callback functions or entity arrays.
  • Using aligned power-of-two sized ground tiles (32x32, 64x64, 128x128, 256x256...) will make the occlusion system run much more efficiently.
  • Good level design is very important. If the scene doesn't have big entities that exceed their bucket seams, the border drawing may be turned off and the frame rate may increase drastically.

Safety tips

  • The ETHEntity object is reference counted. Which means that as long as the application keeps a handle (ETHEntity@) alive, the entity will still be allocated, even if it has already been deleted from the scene. It will only be freed when all handles are destroyed, so avoid having more than one handle at the same time. Global handles are the most unsafe.
  • The console window will output any relevant information about the program. Watch it closely specially in case of an abnormal functioning.
  • All boolean functions will return false if they fail. Error checking is always a good habit.

Miscellaneous tips and remarks

  • If the particle system in the first slot (A) is not infinite, its activity will control the entity's light brightness.
  • Whenever a spriteless entity has both particle systems finished (if they are not infinite) it will be automatically deleted.
  • The LoadScene function will not immediately load a new scene. Instead, it will request the change as shown in the main loop diagram.
  • Once an entity is placed into the scene using the Scene Editor, its original name will remain the same even if the original ENT file is renamed outside the editor. In other words, the method ETHEntity::GetEntityName will always return the entity name as it was at the moment it was first placed in scene. However, it can be manually renamed at any time in the Scene Editor.
  • Changing a particle PAR effect won't automatically update particle effects in the entities.