Leonard Ray Conradson
Gameplay Designer
Bow & Arrow Juggling System
A bow & arrow combat system that tries to integrate a mid-ranged launch ability into it's primary gameplay loop.
Development Time: 4 weeks full time - First Time Learning Technical Animation
Team Size: Solo Role: Gameplay & Technical Design
Tech: Unreal Engine 5, Blueprints (Visual Scripting)
Game Overview
Carving wooden bows with my uncle was once a favorite pastime of mine. Since then, I've been a huge fan of bow & arrow combat design, specifically in games like 'Horizon Zero Dawn' & 'The Last of Us'. This first year summer project was my attempt at constructing my own. My understanding of technical implementation & programming practices has improved a lot since then, but I'm happy with how the user experience of it turned out.
- Have 2 combat states to support differently paced playstyles. 1 fast & 1 slow. Balance their DPS.
- Use input buffering to make the system feel more reliable and allow players to 'preload' the next arrow.
- Add 'sticky aim' to subtly improve the usability & accuracy of a bow for players.
- Implement an ability launching enemies, to then juggle them with the bow.
Gamepad / Keyboard Controls
Character Movement = Left Stick / WASD, Aim = Right Stick / Move Mouse
Roll = Right Face Button / R-Key, Bow Aim = LT / R-Mouse
Bow Charge = RT Down / L-Mouse Down, Bow Fire = RT Release / L-Mouse Release
Ability Aim = LB / Ctrl + R-Mouse, Ability Fire = RB / L-Mouse Release
States Of Using A Bow
Looking back on this project, there's a lot to improve, but the states hold up.
Charging - the "drawing" of the bow, animation charges until at an end pose.
Charged - The pose held at the end of the charge, full range & damage potential.
Uncharging - If minimum charge time wasn't met, undraw the bow without firing.
Firing - When the charge is released after meeting a minimum charge time.
Aiming In - The process of pulling the bow up & changing the camera view.
Aiming Out - Swapping out of the combat aim state and into normal locomotion.
Aiming In & Out
Slower Charging Combat State
This is what the alternate firing mode looked like, it being slower and more deliberate gave it a significantly different feel. Shots did more damage and if developed further, I would have liked to give it a more unique gameplay purpose or differentiator from the quick firing method.
Minimum Charge Times
This is something I would've changed. At the time, I kept slowly making things faster and faster, falling victim to my own human aversion to delayed gratification. Currently, I now think this went against the player fantasy I had intended. Although I wanted the combat to be quick in it's pace, there still should have been a higher minimum draw time to increase the satisfaction players got from firing. A fraction more time invested in an interaction can make it much more meaningful.
Other Successfully Implemented Design Features
- Sticky aim (aim sensitivity slows making things easier when over a valid target)
- Basic wandering & patrolling AI targets
- Evade Roll & Dodge while aiming (temporarily disrupts aim & charge)
- Directional Hit Reactions (Uses rotator yaw to split & select animation montages)
Input Buffering
Being my first attempt at input buffering, I do like that I used the notify method, but the supporting logic in the character blueprint should have been further decoupled than it was.

Draw / Charge Logic
I've taken a lot of classes on programming since this, so no doubt it's not perfect. Yet, it does function. The input buffer calls could be done more elegantly I think.
