In Hedgerow Hazard, you - a little white duck - must navigate mazes to rescue lost ducklings. Each one will give you a key to further open up the maze.
In your way are a cast of monsters that will send you back to the beginning if they catch you.
To avoid these rambunctious rascals you must either time your movements carefully to slip past them...
Or use a special power to rotate the world around you!
But this is no leisurely stroll! You're on the clock, and every second counts. If you don't save every duckling and make it to the exit in time, it's game over. Though any time remaining when you finish a course will be added to your score!
If you can complete 4 courses, then you can play a bonus course. Just see for yourself where you go from there!
Controls
- Arrow keys / D-pad / Joystick to move
- X key / button to rotate the tiles around you. Each press rotates a quarter turn clockwise. After a second, you can no longer rotate a spot. New spots cannot be rotated until the rotation cooldown is done.
Additional Credits:
Thank you to Grumpydev for the persistent high scores code snippet!
Change log:
- Changed name to Hedgerow Hazard
- Removed flag, coin, and hourglass sprites/items
- Changed keys to ducklings
- Added enemy variant, environment variant, spawn point, rotation, and teleporting player sprites
- Changed floor palettes
- Added waggle to items in the stage
- Overhauled UI, game over and transition screens, and fade-in/out screening
- Rearranged and simplified drawing logic
- Overhauled how levels are built to ensure better quality
- Made levels square so that a single dimension variable may be used
- Increased spawning of fruit and change placement priority
- Increased spawning of enemeies and evenly disrtributed their placement
- Spawn point now marked with unique sprite
- Opening the exit now only requires collecting all ducklings
- Adjusted stage time limits
- Changed completion bonus to be the time remaining when finished and removed bonus time
- Changed bonus game to a small room that continuously spawns fruit
- Added timers and changed logic from frame-dependent to time-dependent
- Removed alternate control type
- Overhauled input handling and changed polling frequency
- Changed player movement to immediately jump to tile while screen scrolls to catch up
- Changed player animation to always run
- Removed manually teleporting
- Added tile rotation mechanic
- Rotation plays an animation and site of active rotation is marked by unique sprite
- Rotation has a limited life time and can only be modified at the start of that lifetime
- Duration of rotation effect is displayed at bottom of screen
- Unified separate grids into one grid with layers to better accommodate roation
- Changed enemy movement timing to accommodate sneaking
- Overhauled enemy AI to utilize a distance map radiating from the player
- Enemies reserve their spots so as to not clobber each other and to accommodate rotation mechanic
- Changed penalty for getting hit from a direct time deduction to being sent back to spawn
- Added invincibility frames when hit to avoid being repeatedly hit by same enemy
- Overhauled scoreboard logic, variables, drawing, and default scores
- Changed variable names for consistancy
- Added, changed, fixed, moved, and removed various functions to support all these changes
Older Versions:
Important Note:
older versions that use the sub-nil syntax will no longer work
Old Controls:
Movement:
Keyboard style 1 (default): SFED for quick hops, cursor/arrow keys for smooth movement
Keyboard style 2: cursor/arrow keys for quick hops, SFED for smooth movement
(Deprecated) Gamepad style: Tap d-pad for quick hops, hold for smooth movement
(The control style can be changed in the menu)
Aiming:
Hold Z/W and tap directional keys (useful for shooting around corners)
Smooth movement will also use hops instead when aiming.
Shoot:
X/Q
Portals
When standing in a portal, release all buttons then press:
Z to cancel portal operation
Left cursor/arrow key to go counterclockwise in the portal loop
Right cursor/arrow key to go clockwise in the portal loop
Version 0.5
- Massive code overhaul including rewriting the controls again (now utilizes the adjustable autofire delay to allow use of the default APIs)
- Removed Gamepad control scheme
- Interacting with portals now allows some control over destination (or whether you even want to use the portal at all)
- Stage exit is now always visible, but still only accessible when all keys have been collected and doors opened
- "Par time" for each level has been adjusted to account for changes in movement
- Number of coins now scales better with the size of the bonus stage
- Time allowed in bonus stage adjust to account for changes in movement and number of coins
- Number of enemies has been adjusted so that larger levels are more populated
- Number of shots has been fixed to twice the number of enemies
- Various fruits have been added as an additional source of points in each regular level
- Added indicators when a park/room contains keys/doors/hourglasses/enemies/fruit
- Removed game over screen
Version 0.4
- Replaced level transition/pause with a fade out/in of the level and a results screen
- Added bonus level that appears once every 8 stages
- Added time bonus for completing levels quickly
- Renamed levels/rooms to parks/plots and colored score blue
Version 0.3
- Smoothed player movement
- Added smooth movement and three control schemes (keyboard styles 1 and 2 and gamepad style)
- Teleportation now runs at a consistent speed rather than taking the same time regardless of distance
- Added animation to ghost movements
- More lenient with door placement so more map configurations are considered valid
- Removed inaccessible doors
Version 0.2
- Fixed some issues with level generation
- Animated the wormhole sprites
- The camera now pans from the wormhole you entered to your new destination
Version 0.1
For an action game where the enemies move whether you do or don't, I would definitely consider not having fixed grid movements, @amatkins but move per pixel. Here is an example:
https://www.lexaloffle.com/bbs/?pid=71476
Notice you can move diagonally to enter corridors and rooms. The RED at the top shows collision values.
Given the way the game plays I think locking the character to a grid makes sense -- it's not like the player has anything to gain by moving only half a tile. Moving one pixel per input can also cause headache with turning corners.
Although it would be nice if the duck moves to the next tile more smoothly, as it looks a bit choppy. Maybe something like this, it's from one of my WIP projects.
if btn(0) and p.newx==p.x then p.newx-=8 end //check collision against p.newx //if can walk: if p.newx < p.x then p.x-=1 end //sprite moves one pixel per frame and stops after arriving at the destination //if can't walk: p.newx=p.x |
Thank you for the feedback dw817 and katiusza! I have something like that implemented already for the bubble shot so I can try adding it for the player and enemies as well. This is a fairly early version so it's still pretty rough, but I think bits of polish like that will help round it out!
Alright, @amatkins. This is definitely better. And playable. The music between levels reminds me of the opening pieces for Chew Man Fu for the Turbo Graphics system.
In any case, quite the improvement. Very playable. Your first gold star, duly earned.
I don't mean to be the bearer of bad news, @amatkins, but it is entirely possible to get stuck. Not from lack of keys but places to travel.
I got into one place where there was a warp to an empty place, nowhere to go, I warped back and it also led nowhere. It was at the start of the 2nd level.
I was playing online so there is no way to record the video. I hope you know where I was talking about. Can you confirm all warps and rooms do not dead end and lead back to each other ?
@dw817 unfortunately, because every level is procedurally generated, there is no way of knowing what specific layout you had. However, in theory, every room should be reachable by a door and every room should contain a key that can open those doors. Thank you for the heads up, I'll have to keep an eye out to make sure that the door placing logic is correct to establish those connections in any given configuration.
[Please log in to post a comment]