Yep. We ended up thinking in terms of entities passing messages to each other and being described in terms of functions mapping their current state to their next state.
And then we'd badly reinvented Erlang, in C++. :(
And then we'd badly reinvented Erlang, in C++. :(