Scripts are loaded from text assets in the Resources, so they can be edited and re-loaded while the game is running.
Bullets now destroy tanks.
This is much more quickly than expected getting me to the point where I can start designing the commands and sensors that the tanks (soon to be robots) expose to the player.
I’ve dived into a fun side project called tinysmash, and it’s an homage to RoboWar, the 1990 Mac programming robot battle game.
There are certain very magical things about RoboWar, summarized as follows:
The concept of a “robot” is very abstract, since you can create any icon art you want. This allowed for conceptual robots and subverting and playing with robot design.
The game held tournaments, and you could build your robot against copies of the recent tournament winners, so the overall metagame continued to evolve.
I also want to make at least one change to the RoboWar formula:
RoboWar’s very low-level programming language RoboTalk actually gets in the way of tactical focus. I want to use a higher level language that gets the players thinking strategically right away. This comes at a cost of “hotrodding” your robot by shaving off clock cycles, etc.
I mocked up a basic arena, and today I searched for interpreters that could run the code to control my robots. I considered Python and LUA interpreters, but decided on Dynamic C# by TrivialInteractive. It’s a wonderful, simple package, and I’m using their tank game demo as a basis for further tinkering:
In my first few conversations about adapting Watership Down to a game, some fellow game designers told me about Shelter and Shelter 2 by Might and Delight. In these games, you play as a mother badger and mother lynx, respectively, each with a litter of babies that they must lead around, feed, and keep out of danger. Shelter seems the more relevant piece to mine, since it focuses on (mostly) prey animals facing the dangers of a journey through the wild, toward a new home.
Warning: Spoilers below
Here are some of my takeaways:
The simple mechanic of bushes as cover is quite effective. It feels right that the cover should be an entirely safe zone, as well.
The bird is very interesting. It felt good that the bird travels in a repeating path; it doesn’t end up feeling stale of lifelike. And the sense of danger that the bird imparts feels appropriate tempered by the repetitive pathing. If the bird were any smarter or more random, that section of the game would feel absolutely awful and punishing.
The game missed an important narrative beat when one of my badger cubs was snatched away by the bird. In fact, since I was moving quickly toward cover, I know for sure that it had happened until I counted the cubs later.
The game felt very level-designed. It did not feel like wilderness. I believe there is room for a blend of open world with authored encounters. The manual level authoring was quite important for the bird encounter to work well.
Similarly to Leafcutters, Shelter uses color saturation of characters’ textures to show overall health—which in this case, seems equivalent to hunger and nourishment. It felt good to have information represented in the world, without a GUI. It was also a bit frustrating, however, because it was a bit overly subtle, and I didn’t realize until far into the gameplay that some of my cubs were hungrier than the others. I think that for Watership Down, I’ll want to further the techniques of conveying game state information via diegetic effects, whether realist or abstract.
The babies moving on their own felt very important. It gave me a sense of suspense, and forced me to watch them, slow down for them, and count them. I’d been toying with some ideas of having rabbit wander a bit in Watership Down, and this makes me feel much more sure of that direction. Whether they’ll each be directly controllable, or they’ll follow along with a single player character rabbit, I don’t know yet.