Today a lot of the groundwork from yesterday paid off. managed to fix the transparency issues (my original solution was a little too neat and the direct solution worked better).
I fixed a bunch of small bugs with regards to viewports. Now my map scrolls and can work on screens smaller than the entire console. An example (using my new “take a recording” functionality):
While this might look similar to the early gifs, there’s a lot more going on here. The viewport is actually a sub-window (and I can put like character stats in that area to the right). The game is updating in real-time (both animating and simulating). Map scrolling is a perennial bugbear for newbies and I’ve seemingly nailed it. The game is all loosely-connected and data-driven so if I mess with things, it should all work the same.
Time to start working on gameplay and the world simulation. I need to add in object collision (currently objects are blocked by walls). I’m deciding whether I need an event system with publish-subscribe, so that you can decouple things a bit better. I’m worried that I’m on Day 5 and have no gameplay other than wandering around.
I like that I’ve piqued the interest of a few people. Some who are trying their hand at 7DRL too!
I might have dinner, watch another episode of Mr Robot and then hack away at gameplay code.
Changelog
## [0.0.5] - 2017-03-12
### Added
- Scrolling maps!
- Objects have a render order so we can have objects above/below each other.
- Double the ways to quit the game
### Changed
- Rendering is now done differently. Instead of layers, objects need to draw directly onto the viewport.
- Ticker now welcomes "RogueAgent"
### Removed
- No need for object render maps now.
### Fixed
- BUG #2 "Rendering overlays are weird"
- Fixed by the render process. Alpha is only during writing. Chroma keys are only for blitting whole characters.
- BUG #5 "Ticker screen doesn't render"
- Fixed by the render process.
- BUG #6 "Character input keys not working"
- Unnoticed bug with regards to viewport extents (height was width)
- BUG #7 "console_print won't work if you ask for a point outside the console"
- Just need to truncate explicitly
## [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)