date: 2015-08-18

2015-08-18 - Entry 1400 - TOGoS's Journal

I beat the rain home, mostly.  It had started drizzling on me as I
biked between Odana and Midvale, but it didn't really start coming
down until I'd been home for 40 minutes.

I'm having some tea right now.  Shaina took all her Whistling Kettle
tea-of-the-month tea with her when she moved her stuff out.  I kind of
expect that this month's package will still show up at my house in a
few days, though.  If not I might get myself a new subscription.

I haven't written about dreams much lately because they haven't been
all that interesting.

I'm doing all sorts of cool things today:

- Cleaned the coffee pot for the first time ever

- Ate some granola bars

- Bailed on OC meeting where I might otherwise have met up with
  Connie, assuming she's feeling better than she did yesterday when
  she didn't show up at Dennis's corn roast.

- Stopped listening to Awesome (the tracker guy) music so that I could
  listen to rain, instead.

I got a MacBook at work last week.  Just started using it as my primary
computer.  The keyboard shortcuts are all wrong and annoying.  I got
the home key to do the right thing in Chrome's address bar, though, by
editing some DefaultKeyBinding.dict file.

On Sunday Becky and I went to Great America.  We spent most of the day
waiting in lines at Hurricane Harbor, which I'd never been to before.
After 'lunch' (which we ate at like 7, so I guess it was more dinner)
we went on some of the wet log rides and then the Viper and Giant Drop
and Raging Bull, after which it turned out the park closed.  We had
thought we had another hour because the bracelet lady on the way out
of HH said the park was open until 9.  Oh well, we got to go on the
important ones.

I was thinking about programmable robots in my dumb NetworkRTS engine
which I haven't touched for like a year.  I decided that it would be a
good idea to, instead of defining custom behavior for different types
of things in Java code...

- Have object behavior defined entirely by some Forth scripts.

- Read network packet, check sender, possibly authenticate, and
  interpret the contents as another Forth script would just be
  additional Forth procedures.

- Properties of objects influencing physics would be the same for all
  objects and handled by the physics engine.

- The physics engine would handle all of:
  - Collisions
  - Message sending/receiving
  - Interpreting Forth programs

So rather than objects 'sending messages' to each other, the behaviour
would only be able to set a property on the object indicating that it
wants to send a message.  The physics engine would then take care of
the actual sending and just update bits in the program's memory.

Other thoughts:

- The half-pure 'objects are mutable until frozen' approach seemed to
  work well for that one bouncy things demo I did and I think it's a good
  idea to use for next attempt at game writing, as it gives a nice
  balance between safety and the ability to build up objects without
  dealing with the overhead of immutable data structures.

- Holdable items could grant abilities to the containing object.
  Interactions would be pretty much hard-coded by the physics engine.
  Inventory slots would indicate whether the item is removable or not
  (without destroying the containing object, I guess)
  e.g.
  - a radio
  - a CPU
  - a fuel tank
  - a battery