1. A method of programming an entity in an environment with a rule set: respective rules grouped according to at least one rule group having a rule group name; at least one group designated as a start rule group for the entity; the entity configured to accept input from an entity controller; at least one rule specified according to a rule-based programming language comprising: at least one language condition, comprising: at least one entity controller input condition; and at least one environment test comprising: a sensory condition comprising at least one of: an entity type condition; an entity status condition; an entity possessory condition; an entity sensory input condition; and an environment status condition; a language verb parameter representing a sensory object; and at least zero language adjectives representing the sensory object; at least one language verb, comprising at least one rule group transition verb; at least one language verb parameter, comprising: names associated with the respective rules; and a sensory object reference representing the sensory object of the language condition of the at least one rule; at least one language adjective; and at least one Boolean logic connector; the at least one rule comprising a rule priority, at least one language condition representing an action condition, at least one language verb representing an action, and at least one language verb parameter representing an action object; the entity comprising a rule group identifier; and the method comprising: receiving the rule set comprising the at least one rule; and programming the entity to: upon initialization of the entity, set the rule group identifier to one of the start rule groups; and for a rule cycle, to: evaluate one or more action conditions of respective rules of the one of the start rule groups identified by the rule group identifier and in descending priority order, within the environment to identify a satisfied rule having satisfied action conditions according to Boolean logic connectors of the satisfied rule; upon identifying a first satisfied rule, perform the first satisfied rule within the environment; and upon failing to identify a second satisfied rule, remain idle for the rule cycle.