TUXDB - LINUX GAMING AGGREGATE
by NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 8 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Arch Toasty][Benedikt][David Martínez Martí]


The joy of cleaning up old code

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. 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. There is a particular bastion of bad design that goes back to the days when KeeperRL was a simple ascii roguelike. 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 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. A square is also responsible for tracking any creature that enters its grid cell, and any items that are dropped on it. When I added the dungeon management features, building and digging was as simple as replacing one square with another. Even cutting trees meant replacing a tree with a tree trunk. 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). As I was adding features to the game, more logic piled up on top of this design, and it stopped being pretty. The right way to do it was to have another type of entity represent all the objects that can be built, replaced, etc. It would also take care of all interactions between the static object and a creature. The change is not simple though, as a lot of things would be influenced: pathfinding, building, lighting, spreading of fire, etc. On the other hand, there was a solid reason against it: the existing code was already well tested and working. Until a few weeks ago, when I started implementing manual placement of floors. I wanted to allow replacing the floor under an already existing object, like a door, but the existing design couldn't handle it. 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. 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. The resulting design will be much better, but it will need a lot of testing before it's released to the public. Anyway, this is what I've been doing in the past week. It's just an example of what I work on, when I'm not adding new features. If some updates seem to take too long, it's because I have to embark on this kind of adventures. :)


[ 2016-08-25 16:29:18 CET ] [ Original post ]



KeeperRL
Michal Brzozowski
  • Developer

  • Michal Brzozowski
  • Publisher

  • 2015-03-31
  • Release

  • Strategy Singleplayer EA
  • Tags

  • Game News Posts 238  
    🎹🖱️Keyboard + Mouse
  • Controls

  • Very Positive

    (1407 reviews)


  • Review Score

  • http://keeperrl.com
  • Website

  • https://store.steampowered.com/app/329970 
  • Steam Store

  • The Game includes VR Support



    KeeperRL Linux [28.66 M]KeeperRL Depot Linux 64-bit [30.57 M]

  • Public Linux depots

  • KeeperRL Soundtrack
  • Available DLCs

  • KeeperRL is an ambitious dungeon simulator with roguelike and RPG elements. Take the role of an evil wizard and study the methods of black magic. Equip your minions and explore the world, murder innocent villagers and burn their homes. Build your dungeon, lay traps and prepare for an assault of angry heroes.

    When you control your minions the game changes into a classic roguelike, with turn-based and very tactical combat. You can also play as an adventurer and assault dungeons made by you or other players.

    Dungeon management

    You will dig deep into the mountain and build dozens of rooms, corridors and traps. Your minions will train and produce weapons and armor. Prisoners will be tortured. You will research new technologies like alchemy, beast mutation and sorcery.

    Roguelike mechanics

    The world is simulated on a very detailed level. Creatures use equipment and consumable items. There are dozens of special items, spells, attributes and special attacks. You can cut off heads and limbs and blind or poison your enemies. If you're not careful with fire, you can burn an entire forest or even your own dungeon.

    Large, procedurally generated maps

    In your neighborhood you'll find castles, villages, other dungeons and special locations. Slay heroes, dragons and witches for their loot. Every game you play will be different.

    Online map sharing

    Download dungeons made by other players and explore them as an adventurer.
    MINIMAL SETUP
    • OS: Ubuntu
    • Processor: Dual Core CPU - 2.4GHz+Memory: 4 GB RAMStorage: 1 GB available space
    • Memory: 4 GB RAMStorage: 1 GB available space
    • Storage: 1 GB available space
    RECOMMENDED SETUP
    • OS: Ubuntu
    • Processor: Dual Core CPU - 4GHz+Memory: 8 GB RAMStorage: 1 GB available space
    • Memory: 8 GB RAMStorage: 1 GB available space
    • Storage: 1 GB available space
    GAMEBILLET

    [ 5950 ]

    1.63$ (18%)
    6.00$ (70%)
    8.89$ (78%)
    8.00$ (60%)
    10.00$ (75%)
    6.77$ (15%)
    16.99$ (15%)
    10.19$ (15%)
    16.52$ (17%)
    7.19$ (40%)
    16.39$ (18%)
    2.75$ (8%)
    4.00$ (80%)
    4.87$ (19%)
    12.44$ (17%)
    9.89$ (34%)
    12.44$ (17%)
    21.34$ (64%)
    4.59$ (8%)
    9.23$ (16%)
    20.95$ (40%)
    3.00$ (70%)
    16.97$ (15%)
    26.29$ (12%)
    4.12$ (17%)
    16.79$ (16%)
    7.20$ (64%)
    16.99$ (15%)
    2.50$ (75%)
    40.95$ (18%)
    GAMERSGATE

    [ 1903 ]

    34.99$ (30%)
    0.45$ (92%)
    0.53$ (92%)
    2.63$ (62%)
    1.84$ (74%)
    7.5$ (70%)
    0.94$ (81%)
    3.99$ (20%)
    0.53$ (92%)
    1.84$ (74%)
    3.38$ (92%)
    0.56$ (81%)
    0.79$ (89%)
    1.5$ (92%)
    7.34$ (48%)
    7.5$ (70%)
    1.69$ (89%)
    3.75$ (62%)
    0.9$ (85%)
    1.13$ (89%)
    2.63$ (92%)
    6.74$ (63%)
    0.51$ (83%)
    2.0$ (80%)
    1.5$ (92%)
    3.75$ (85%)
    1.88$ (81%)
    0.75$ (85%)
    1.58$ (77%)
    9.0$ (77%)

    FANATICAL BUNDLES

    Time left:

    3 days, 12 hours, 30 minutes


    Time left:

    26 days, 12 hours, 30 minutes


    Time left:

    8 days, 12 hours, 30 minutes


    Time left:

    39 days, 12 hours, 30 minutes


    Time left:

    45 days, 12 hours, 30 minutes


    HUMBLE BUNDLES

    Time left:

    6 days, 6 hours, 30 minutes


    Time left:

    6 days, 6 hours, 30 minutes


    Time left:

    15 days, 6 hours, 30 minutes

    by buying games/dlcs from affiliate links you are supporting tuxDB
    🔴 LIVE