A 2D speedrunning platformer built in Unreal Engine 5.6, starring a grappling-hook movement system layered on top of classic run/jump/inhale platforming.
🏆 盛り上がるで賞 (Most Exciting Award) — 24th UE5ぷちコン (24th UE5 Petit-Con)
HookRacer is a fast-paced 2D racer where the player fires a grappling hook to swing, pull, and chain momentum through hazard-filled levels — competing against opponents for race position instead of just a clock. Classic Kirby-style abilities (inhale/spit, wheel dash) are repurposed as movement and combat tools for traversal speed rather than puzzle-solving.
- Engine: Unreal Engine 5.6, C++ gameplay code with Blueprint-driven animation/VFX
- Paper2D — sprite flipbook rendering and 2D collision for all characters and gameplay elements
- PaperZD — animation state machines and blueprint-callable animation notifies driving character movement states (walk/run/hurt/wheel), VFX, and enemy behavior
- Custom
UCharacterMovementComponentsubclass for the hook-swing/wheel-dash movement model
- Hook (
AKSTongueTip) — a fired grapple point that detects hookable surfaces/objects and retracts the player toward it, the core traversal mechanic the game is named after - Wheel dash — an energy-metered roll state (
EMovementState::Wheel) for short bursts of speed - Inhale / spit (
IInhalable) — enemies and objects can be inhaled and fired back out as projectiles - Race position tracking — players are ranked live (
CurrentRacePosition) against opponents rather than racing a bare timer - Level hazards & tools — breakable blocks, spikes (static & moving), kill zones, one-way platforms, moving platforms, explosive barrels, missile launch pads, and speed boosters
- Checkpoints & goal flags for respawn and race-completion logic
- AI enemies, including a dedicated wheel-based enemy archetype
- UI/VFX — an off-screen indicator for tracking opponents/hazards outside the camera, plus a speed after-image effect
This repository showcases the project's C++ gameplay source and configuration. Binary art/audio/level assets are excluded to keep the repo lightweight — the YouTube demo above shows the game in action.
Source/ C++ gameplay code (characters, movement, gameplay elements, UI, VFX)
Config/ Project configuration (input, engine defaults)
Curious about the design intent behind the movement feel, level pacing, and art direction? See docs/GDD.md (English/日本語).
HookRacerは、フックを発射してスイング・牽引しながら勢いをつなぎ、罠だらけのステージを駆け抜ける高速2Dレースアクションです。単なるタイムアタックではなく、他のレーサーと着順を競い合うのが特徴です。クラシックなカービィ風のアビリティ(吸い込み・吐き出し、ホイールダッシュ)を、パズル要素ではなく移動・戦闘のための高速化ツールとして再構築しています。
- エンジン: Unreal Engine 5.6。ゲームプレイはC++で実装し、アニメーションやVFXはBlueprintで制御
- Paper2D — 全キャラクター・ギミックのスプライトフリップブック描画と2Dコリジョンに使用
- PaperZD — キャラクターの移動状態(歩行/走行/被弾/ホイール)、VFX、敵の挙動を制御するアニメーションステートマシンとBlueprintから呼び出せるアニメーション通知に使用
- フックスイング/ホイールダッシュの移動モデル用に、カスタムの
UCharacterMovementComponentサブクラスを実装
- フック(
AKSTongueTip) — 発射したグラップルポイントがフック可能な地形・オブジェクトを検知し、プレイヤーを引き寄せる。ゲームタイトルの由来となったコア移動メカニクス - ホイールダッシュ — エネルギーゲージ制のロール状態(
EMovementState::Wheel)による短時間の加速 - 吸い込み・吐き出し(
IInhalable) — 敵やオブジェクトを吸い込み、弾として吐き出すことができる - 順位トラッキング — 単なるタイム計測ではなく、他のレーサーとのリアルタイムな順位(
CurrentRacePosition)を管理 - ステージギミック — 壊せるブロック、固定/移動式のトゲ、即死ゾーン、一方通行の足場、移動する足場、爆発樽、ミサイル発射台、スピードブースターなど
- チェックポイントとゴールフラッグ — リスポーンとレース完了処理を担当
- ホイール型の専用アーキタイプを含む敵AI
- UI/VFX — 画面外の対戦相手や障害物を示すオフスクリーンインジケーター、およびスピード時の残像エフェクト
このリポジトリではプロジェクトのC++ゲームプレイソースとプロジェクト設定を公開しています。リポジトリを軽量に保つため、アート・音声・レベルなどのバイナリアセットは含まれていません — 実際のプレイの様子は上記のYouTubeデモをご覧ください。
Source/ C++ゲームプレイコード(キャラクター、移動処理、ギミック、UI、VFX)
Config/ プロジェクト設定(入力、エンジンのデフォルト設定)
移動の手触り、レベルのペース配分、アートの方向性など、設計意図に興味がある方は docs/GDD.md(English/日本語)をご覧ください。
