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

Author Topic: What are the differences between _, E_, and HE_ scripts in the clean engine?  (Read 1823 times)

PRatliff

  • World Owners
  • ****
  • Posts: 14
    • View Profile

There is _CharacterCreationSystem (required package) and E_CharacterCreationSystem (game package), but also HE_CharacterCreationSystem (optionalgame package).

I understand the first and second, but the third seems redundant. The ClassMethods implement essentially nothing; just debug, CCSEnabled and CharacterSpecificationForVisibleCharacter. I know it isn't registered as a System Node, but being in optionalgame package means you can't move it to game package (can't change package except on game) and can't delete (can't delete non-game package classes). That means it just sits there uselessly. For the ODC among us, is there any way to scrub it?
« Last Edit: Jan 23, 13, 11:12:05 AM by HE-Cooper »
Logged

PRatliff

  • World Owners
  • ****
  • Posts: 14
    • View Profile
Re: HE_CharacterCreationSystem seems redundant with E_CCS
« Reply #1 on: Jul 09, 12, 03:34:45 PM »

Actually, I think I'm confused about the HE_ classes in general. http://wiki.heroengine.com/wiki/Adapting_Clean_Engine seems to say that HE_ Classes are the HeroEngine classes, and that they should be overridden with a game specific class, ala GAMENAME_Account.

But for most of the system nodes, I see a version prepended with _, HE_ and E_.. e.g. _Account, HE_Account and E_Account. Only _Account and E_Account were listed in the System Nodes Configuration Tool as being a system node.

So are all of the HE_ ones redudant? We should create game-specific classes in the style of the E_ Classes, overriding the _ Classes with HE_ prefixed methods? My plan was to create GameName_ classes (and scripts) for all of the major things, removing the E_ prefixed ones from this UI, leaving only _ and GAMENAME_.. Yes?
Logged

PRatliff

  • World Owners
  • ****
  • Posts: 14
    • View Profile
Re: HE_CharacterCreationSystem seems redundant with E_CCS
« Reply #2 on: Jul 09, 12, 03:37:20 PM »

And by extension, could I then somehow delete the E_ and HE_ prefixed ones from the DOM entirely?
Logged

HE-CHRISTOPHER

  • HeroEngine
  • *****
  • Posts: 424
    • View Profile
Re: HE_CharacterCreationSystem seems redundant with E_CCS
« Reply #3 on: Jul 09, 12, 03:54:03 PM »

  • _<class> - required class that is overwritten when we update the required portion of HeroEngine's Scripts/DOM.  This class should not be altered (other than debug messaging to understand logic flow or fixing a bug you've reported to us pending a permanent fix in the next major update)
  • HE_<class> - optional/optionalgame class that extends the base system nodes to provide a bare minimum of some game-like functionality that may be overwritten with changes by us
  • E_<class> - game class that often started as a copy of the HE_ versions.  This class is contains some game specific code supporting the minimal game functionality provided in the standard HeroCloud template world (i.e. the world you start with).  This class may be freely altered extending it for your purposes or replaced with your own game specific class.

As a rule, you should have 0..1 extension classes (HE_, E_, or your game specific class) added to a system node as multiples will (generally) result in method conflicts if they both attempt to implement the same HE_ extension method.

Until you fully understand the implications of deleting something, we recommend not deleting it.  Many developers start off by deleting everything, only to find out there are things that the engine requires to function at all or that those things supported functionality a developer actually needed.

Logged
Christopher Larsen
CTO
HeroEngine

DarkOMEN

  • General Accounts
  • *
  • Posts: 16
    • View Profile
Re: [Solved] HE_CharacterCreationSystem seems redundant with E_CCS
« Reply #4 on: Aug 06, 12, 11:42:43 PM »

Just to add an alternate explanation regarding E_ classes, they serve as examples of how HeroEngine classes can be extended to create game specific code.  If you start a new world, E_ classes create the ability bar, basic character that you run around with, and other game-like code which may or may not apply to the type of game that you actually intend to build.
Logged