
Tatsu also places greater faith in the Empire's technology than his father and believes that destiny is not a blueprint to follow, but rather something that can be made through bold actions and force of will. Contents BackgroundThe Western-educated Tatsu is the one responsible for the modernization reforms of the Imperial army, and the development of much of their new technologies, including nanotechnology and the, as well as the.A hotheaded and ruthless figure, Tatsu often clashes with his more stoic and conservative father, believing that victory against the Empire's enemies will not come from intimidating them into submission, but on the battlefield. If some updates seem to take too long, it’s because I have to embark on this kind of adventures.TatsuBiographical informationGenderMalePolitical informationAffiliationOccupationCrown Prince of the Empire, Second-in-Command of the Imperial forcesRankSupreme GeneralGame informationActorRon Yuan“'My Son, I am proud of you.' 'Thank you, father.' 'You have destroyed their Time Machine and restored the inevitability of our destiny.' - Yoshiro, proud of the Commander who eliminated the Soviets, in the aftermath of Operation: '”Crown Prince Tatsu is the only son of Emperor and thus his second-in-command. It’s just an example of what I work on, when I’m not adding new features. The resulting design will be much better, but it will need a lot of testing before it’s released to the public.Īnyway, this is what I’ve been doing in the past week. These existing objects and their functionality needed to be translated to “furniture”, which caused a chain reaction of other necessary changes deep in the game’s internals. This was the straw that broke the camel’s back, and I went and added the new type of entity, temporarily called “furniture”, although it includes other things, like trees, walls, etc. I wanted to allow replacing the floor under an already existing object, like a door, but the existing design couldn’t handle it.
#Keeperrl graphics manual#
Until a few weeks ago, when I started implementing manual placement of floors.
#Keeperrl graphics code#
On the other hand, there was a solid reason against it: the existing code was already well tested and working.

#Keeperrl graphics license#
Protected by: GNU GENERAL PUBLIC LICENSE (excluding graphics tiles). The change is not simple though, as a lot of things would be influenced: pathfinding, building, lighting, spreading of fire, etc. All Discussions Screenshots Artwork Broadcasts Videos Workshop News Guides Reviews. It would also take care of all interactions between the static object and a creature. The right way to do it was to have another type of entity represent all the objects that can be built, replaced, etc. When I added graphics to the game (about 10 months into development), the squares had to remember what they replaced and draw that as a background, so you could see the grass under a tree (with ascii you don’t have this problem, as each position is always rendered as one character).Īs I was adding features to the game, more logic piled up on top of this design, and it stopped being pretty. Even cutting trees meant replacing a tree with a tree trunk. When I added the dungeon management features, building and digging was as simple as replacing one square with another.

A square is also responsible for tracking any creature that enters its grid cell, and any items that are dropped on it.

There may be only one square at a given position, so when, for example, a chest is placed on a floor, it replaces the floor square. All non-moving objects in the game are described by one type of entity, called a square (because each one occupies one square on the grid). There is a particular bastion of bad design that goes back to the days when KeeperRL was a simple ascii roguelike. It pays off given the long term nature of the project, and also because working with well designed code simply makes me a happier programmer. When I added graphics to the game (about 10 months into development), the squares had to remember what they replaced and draw that as a background. Between adding features and making other changes visible to the players, I spend quite a bit of time working on the code architecture in KeeperRL.
