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.
## [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)