7DRL – RogueAgent Day 4

What a slog! Today was some hard-won improvements. The engine is now real-time (60 FPS+) with two game simulation ticks per second. This lets you animate things independently from the game simulation.

The idea behind this was to have something approaching a modern roguelike. I don’t want to play this over a TTY, I want things to look nice. An idea I had was you start outside an evil base. You’re on a sandy beach and that’s signalled by slightly undulating water, rather than just a ragged yellow area with a blue area next to it. Or you know when you’ve tripped the alarms because lights pulse red (even though you have all the time in the world between movements to strategise).

The system is also much more modular and has a primitive window system. So when I want to put some UI on, it won’t be too much of a pain… hopefully! Also I could do lighting and shadow in another pass, but I’m staying well away from that at the moment.

There’s some fundamental flaw in how I’m doing rendering and I can either have humans moving around nicely overlayed on the background, or I can have opaque objects (like the ticker display). I want both, but the way that the console blitting system works, it’s broken. Only very late did I realize that a cell with the blit-transparent chroma key is completely ignored, and not just the background. Basically I was hoping to green-screen some characters and I cut them out entirely.

I’ve started a BUGS list because I’m painfully aware of some goofy stuff in the code already. I added code for scrolling the screen if your guy moves too close to the edge of the screen. That’s broken for some dumb reason. Coding is hard!

I also pushed some magic constants out to configuration files.

I also did a bunch of chores around the house and watched 3 episodes of Mr Robot.

I have an idea to fix my transparency problem tomorrow. Then after some social outings, I might try to quickly fix the graphics problems and then declare graphics done. I’m sick of graphics! I need gameplay!

I have about 20K of code so far, with 750 lines of code.

Changelog

## [0.0.4] - 2017-03-11

The huge graphical update! Lots of rewriting of almost everything.

### Added

- Primitive Windowing system

### Changed

- The entire graphical stack.
    - Slipped in a GUI layer
    - Objects manage their own little render maps
    - Scope for a lighting layer

## [0.0.3] - 2017-03-11

### Added

- Keybindings interface.
- BUGS list
- Engine configuration file

### Changed

- Game loop is now real-time, 2 updates per second, and 60 FPS rendering.
    - GameObjects are given timestamps to adjust rendering.
- Engine controls screenshots.

### Fixed

- Screenshot key now works.

## [0.0.2] - 2017-03-09

### Added

- Generic GameMap code
- `maps/` now contains different maps.
- Filled rectangles utility code
- HQ Map
- Take screenshots with PrintScreen
- Nifty scrolling ticker screen

### Changed

- Maps and GameObjects now render themselves onto a console. This
  allows them to be multi-tile and do things like (fake) glow.
- Tiles now store their own colour
- Test map code moved to its own GameMap
- Player and NPC are now Human objects
- GameObject is very lean

## [0.0.1] - 2017-03-08

### Added

- Core TCOD engine
    - Game loop
    - Clean exit on ESC or Ctrl-C
- Base World functionality (stores a map, a PC and a list of NPCs)
- Base Viewport functionality
    - Walls and floor
    - PCs and NPCs
- Base Object functionality
    - Movement
    - Wall blocking movement
    - Rendering
- Base Map functionality
    - Custom map with some walls
- Utilities
    - Box-drawing (AABB, origin+(width,height), centered)

7DRL – RogueAgent Day 3

No work done yesterday because of my job and spending the night playing a thrilling game of Pathfinder. But I was excited to get up this morning to start coding. More excited than having breakfast and coffee, but in all fairness, breakfast and 7DRL were trumped by a sleep in.

Instead of diving straight in, I’ve decided I’ll do the right thing and eat some food and get caffeinated. I’m reading a few roguelike design articles to get my brain ticking over in a semi-thoughtful way.

I’ve got most of a long weekend open to 7DRL so hopefully I can make something cool!

7DRL – RogueAgent Day 1

After a few hours futzing around, I got things working.

While this is super-lamo, it’s doing a bunch of things right under the hood. There’s a world that chooses maps (from a list of one). There’s a map that draws those walls. The NPC gets an update (and just takes a random step). The PC accepts key-presses and quits cleanly. The walls block movement. I can take screenshots of play.

More importantly, I didn’t fall down a rabbit-hole of planning. Some things are placeholder at the moment, but the structure lets me expand out where I need to, when I need to.

The Day After Dev Report #25 – Minimal Units

I’m thirty-some years old and I’m still learning about my brain. In recent months I was all about the Twitterbots. I still like them, but in the last week or two my brain shifted a few gears suddenly and I was all about the main The Day After game. I guess it’s just my 8 year old brain (last week it was space, this week it’s ninjas) with 20 years of experience behind it.

Continue reading “The Day After Dev Report #25 – Minimal Units”