Harmon:i:c

December 2017 (Week 2)

+ Decided to revamp secrets, now secret paths don't rely on the "relative position entry" mechanic which gives me a lot more design freedom, there's still no incentive for doing secret levels but I have some new mechanics in mind
+ Pretty happy with the new Level 1-1
- I will have to redo all levels to accommodate the new secrets design

December 2017 (Week 1)

+ More level design
- Having a hard time balancing difficulty and fun
- Didn't get much done

November 2017 (Week 4)

+ More level design, balancing difficulty while making levels fun is hard
+ Several minor polishing tweaks like black swipe transition removing bridges and CRT shader moving a bit slower
+ Fixed shaders looking odd in non-square resolutions

November 2017 (Week 2)

+ Pixel grid shader
+ CRT hooked up to the bouncy springs
+ Juiced up the map, map toggle and black swipe animation
+ ESC to go back to the level hub and then again to quit the game
+ Fixed the player disappearing for one frame when switching levels
+ Many minor tweaks and fixes to shaders

November 2017 (Week 1)

+ Vignette and blur shader
+ CRT shader with distortion, chromatic aberration and scanlines
+ Tweaked aBridge overlap effect to look less blinky and more dynamic
+ Re-enabled glow effect, now with auto exposure for darkening the scene around very bright stuff
+ The main Viewport's size is now extended instead of everything just being scaled up, now the game is rendered at the window's
size instead of being locked at 320x320
+ Slight bounce effect when the camera moves to give it the impression that it's falling slightly behind the player
+ Fixed shader animations changing with framerate, it should now remain stable no matter how fast the game is running
- Things still look a bit too soft and not sharp enough for my tastes, I need to tweak the scanlines in particular

October 2017 (Week 4)

+ Spring system for bouncy shader animations
+ Pixelization smear shader for map toggling, hitting walls and rewinding
+ mShader module and anShader animation for controlling shaders
+ Some node structural changes

October 2017 (Week 3)

+ Swapped a few levels around
+ Work on level 1-3 (which was level 1-4 before)
+ Added a debug actor that lets me manipulate game progress like unlocked levels and see actor coordinates
+ Boring bugfixes and tweaks

October 2017 (Week 2)

+ Working on Level 1-4
+ Scanline and glow effect, I haven't touched shaders yet though
+ Movement input buffering for animations, now you can speed up animations to skip them and you will also move once the animation is finished
+ More sounds added
+ Fixed many bugs and issues, particularly related to rewinding

October 2017 (Week 1)

+ Kinda finished Level 1-2, didn't test it extensively yet
+ Ported old Level 1-2 (now 1-3) since I liked it, I will probably put the other old levels in some kind of hard mode extra chapter and make new ones with a smoother difficulty curve since that was the main complaint, still trying to figure out what a good curve is
+ Added player step and swipe sounds
+ The experimental module system I made (pic related) is working out fine so far
+ Moved a few variables around to a singleton, wow

September 2017 (Week 4)

+ Animations can now disable input, still have to implement animation skipping
+ Working on level 1-2 which should be a better introduction to pins and bridges than the old version, it should also teach camera mechanics better
+ Secret path for level 1-1
+ Fixed the misaligned map camera

September 2017 (Week 3)

+ Placeholder for what will be the pause menu eventually, no visuals yet but you can now quit the game now, woah
+ A bunch of fixes and improvements to the animations system
- Spent way too much time on fixing a silly bug
- Still not working on fun stuff

September 2017 (Week 2)

+ Finished black swipe animation and fixed level button draw order
+ Some boring bug fixes, cleanup and simplification of the structure
- Didn't work on it much this week

September 2017 (Week 1)

+ Animation Controller fully works now
+ Worked on the basic black swipe animation
+ Decided to simplify the structure a bit by making all objects in a level be part of the same Panel, having them all separate was more trouble than it was worth

August 2017 (Week 5)

+ The Hub is back
+ Hub buttons are the same as before but now they dynamically draw their connection paths based on the level's Goals instead of being hardcoded
+ Sprite colors are now taken from a dictionary instead of being hardcoded, now I can change the goal color for example and the hub button's core color will be changed together with it
+ Working on an animation queue system, this will be used for the black swipe transition and possibly other animations with the added benefits of automatically queuing several animations together with arbitrary durations without having to manually set timers for each combination of animations, the ability to invert animations automatically depending on whether the panel is being enabled or disabled and without spilling animation code spaghetti all over the place
+ Levels are now preloaded on startup, they aren't pre-instanced yet though
- I might be over-engineering the whole animations thing
- No Demo Day this month since there's nothing interesting to play with yet

August 2017 (Week 4)

+ Settings, progress and map fog are now saved and loaded
+ Initial level positions are recorded now too based on the player's relative position to the camera, it already worked like that in the old version of the game but here's a short explanation for those who don't know: reaching a Goal keeps the player's relative position to the camera which allows them to start in slightly different positions in the level, if there's a Wall in their position then it permanently becomes a Ghost Wall (the dark gray block in the screenshot) which lets the player pass through it and potentially open up new paths
+ Fullscreen toggle

August 2017 (Week 3)

+ Actors are separated by each of their Panels: Level, Persistent (Player and Camera), Map, Bridges and possibly more in the future like menus, each Panel can be moved around and the Actors within still work fine as if they didn't move in the level, the screenshot shows the first three panels side-by-side. This required quite a bit of refactoring since the Map wasn't equipped to deal with separate viewports and I might have to rewrite it since it currently makes a new viewport for each Panel which might be a resource hog
+ Each Panel receives input individually, it can block any Panel behind it from receiving that input so it can be used for stuff like navigating a menu without the arrow keys controlling the player character or another menu at the same time for example
+ Panel logic should be done for now, I wanted them to be 3D hinged glass panels that rotate into view but using viewports as textures for 3D objects seems to be currently broken in the Godot alpha, so that's a job for later
- A lot of work for what should be mostly a visual effect
- Didn't get much done

August 2017 (Week 2)

+ Worked on Panels
- Didn't work on it much this week
- No visual progress so have this random tidbit of code from the map instead

August 2017 (Week 1)

+ All known rewind issues fixed
+ Lots of minor changes and fixes
+ Planned up a "Panels" system, the idea is that every UI element (like the map or menus) is a glass panel that slides into view and polarizes the screen's light
- More ideas than actual doings

July 2017 (Week 4)

+ Death state and level resetting
+ aStart actor for defining the player's starting position in a level (while keeping the player's relative position to the camera)
+ Map and fog
+ Rewind - only movement rewind has been tested, some rewindable actions like object creation and state changes might need some tweaking

July 2017 (Week 3)

+ Sentinel actor
+ mTimer module which is... a countdown timer, it's used for the Sentinel's blinking and impatience timers
+ A lot of changes and fixes to the mTrigger and mMove modules to support Sentinels properly
+ Tiny changes and fixes to a bunch of other things

July 2017 (Week 2)

+ New Actors: Box, Bridge, Pin, Camera and Goal - only a few actors are missing now in the refactor
+ State system for Actors - a Bridge for example has a "Bridged" state which makes it flicker when overlapping a Wall
+ Level loading and switching
+ Persistent Actors system - the Camera and Player actors are persistent between levels now like in the old version
+ Viewport is scaled correctly to the window size
+ Played around with HDR and glow graphics
+ Feeling good about the code structure and Module system I made, it's holding up nicely and actually making my job easier, the Camera and Bridge actors for example share the mFollow module - Camera follows the Player with a maximum range of 1, which makes it lag behind 1 tile max, and Bridges follow the Camera at range 0 plus initial offset, which makes their relative position always the same to the Camera

July 2017 (Week 1)

+ First week of the refactor/port to Godot 3.0
+ I made a module system that lets me build actors using generic nodes, a wall is made of an mSolid which defines its shape and layer in the level's grid, I can combine several mSolid modules to make bigger objects, I can also easily add an mControl module to the wall to make it controllable by the player (or AI) and an mAudio module to make a sound every time the move function is called for example
+ Expanded debug message system that shows which node is sending the message and its position
+ Input (with configurable echo timings), level grid, module logic, collision, the very basics are done
- Nothing visually interesting to show so have debug messages instead