Skip to content

Latest commit

 

History

History
174 lines (141 loc) · 7.49 KB

README.md

File metadata and controls

174 lines (141 loc) · 7.49 KB

Bootstrapped with DCollage (Digital Collage Boilerplate w/ PIXIJS)

The goal of DCollage is to facilitate the creation of multi-layered, interactive, collages similar to those I created back in the days of Flash. Surprise it works for simple games too!

Ludum Dare #46 - Theme: Keep it Alive

Keep Ye Alive is a game began as a Ludum Dare compo submission. It was created alone, and from scratch (boilerplate aside) in 24 hours. The first commit and tag are the state in which the game was submitted. Future commits are my efforts to flesh it out into the game I conceptualized.

Cover Image

Concept and Mechanics

The concept is simple. It's your classic warrior versus the world side-scroller except that it isn't. The Hero fights on his own earning coin for enemies slain and taking his lumps if he doesn't land the critical hit precisely. Your role is to manage The Heroes purchasing habits in order to keep ye alive. By clicking items in Ye Shoppe, for example a health potion, you purchase it and The Hero will quaf it immediately; replenishing their hitpoints and expending coin.

The initial build only had a single red potion which cost one coin and a single enemy which was placeholder art.

Roadmap

Given the opportunity I'll keep working on this on and off until the next LD in October of 2020. These are some things I would like to add:

  • Additional shop items: other potions, weapons, armor, etc

    • Potion ideas:
      • Invisibility - enemies do not attack the hero
      • Coin magnet - all couns are automatically gatherd for X seconds
  • Real enemy artwork and enemy variety

    • slime
    • skeleton
    • giant head (final boss 1)
  • End of level SHOP/CHEST: at the end of the level, before the boss there will be

    • a SHOP which allows The Hero to purchase ONE of TWO types of items

      • give a permanent DODGE abilities ( dash, roll, jump, back-step )
      • new WEAPON ( bow, pole axe, better swort)
    • a CHEST which spawns an item that permanently buffs The Hero

      • rezilience - reduce damage taken by 1% - stacks
      • strength - increase damage done by 1% - stacks
      • health - increase max health by 1% - stacks
      • metabolizm - increase potion duration by 1% - stacks
      • luck - increase chance for gem drop (gem is worth 10 coins) - stacks
  • End of level BOSS

  • Refactor enemy manamgement system to make it more dynamic

  • Refactor Component Type definitions to use a base type and extend as needed

  • A time survived clock

  • Title and instructions

  • [ ]More music and sound

    • main theme
    • menu theme
    • longer main theme w/ melody
    • fanfare for wave complete
  • Post effects like glows and sparks

  • Additional animation frames for all the things

  • Ground block variety

    • Fix up tiling
  • Background parallax layer variety

    • updated backgrounds with perfect tiling
    • first biome backgrounds
    • second biome backgrounds
    • third biome backgrounds
  • Finish a run (sorry the princes is in another castle), get bonus/buff, next level (?)

  • Custom bitmap fonts

    • Small font (for menus and tool tips)
    • Large font (big one for time and coins)
  • Finish the first iteration of the shop

    • Fix up shop panel graphics
    • Get haste potion working
    • Tooltips for potions
  • Add a proper preloader

  • Options Panel

    • Adjust Music Volume
    • Adjust SFX Volume
    • Pause button or keyboard command
    • Other game options...
  • Balance Audio - some sounds effects are much louder than others

  • High scores

    • Online leaderboard w/ database (later)
  • Tooltips for potions

Up Next : Round of Polish / Odds and Ends

  • ** Get haste potion working -> switch this to be a coin magnet potion **
  • Tint-friendly enemy sprites (can we use a single gray sprite set and tint it to make any color cubes?)
  • add gem drop (rarely, 0 to 1 times per wave based on luck attribute)
    • make gem sprite
    • add drop mechanic and luck chance (gem is worth 10 coin)

Completed!

General Polish / Odds and Ends

  • Get all "oldschool" sprite sheets into main sprite sheet

    • Hero
    • Others?
  • Make PIXI stop updating when window is unfocused

  • REFACTOR: Use enums for particle keys (heroParticles)

  • TEMPFIX: Reset wave counter when on final wave

  • TEMPFIX: When on final wave, reduce spawn time by 250 each time you clear the final wave

  • High scores

    • Store personal best
  • Tweak Hero attack animation

    • Add a glint/shine to the sword to indicate "kill frame"
  • Dynamic coin drops

    • Enemies drop different number of coins
    • Coin drop functionality
    • Coin drop animation
    • Spinning coin animation
    • Design and add SFX for coins
  • Fix up ground tiling (more subtle variation, perfect tiling)

  • Fix Background/Sky (perfect tiling)

  • Faded effect when hero is dead (now w/ godrays)

  • Potion effects on hero

    • Hand animated effect layer / tintable swirl animation
    • Particle effect layer
    • Filters or post effects
    • Bonus: Try something with PIXI particle container
    • Bonus: Magic sound for potion
    • Bonus 2X: Get particles working for potion effects

Getting Enemy Waves Working

  • A wave system and increasing difficulty over time
    • Wave manager
    • Wave display
    • Data structure to define waves
      • Allowing for variation in enemy speed
      • Allowing for multiple enemy types within a single wave
      • Wave enemies should be weighted
    • Refactor existing enemy manager to work with wave system

Getting the Shop Working

  • Get armor potion workin
  • Have the heart be mask based rather than frames based to show 0-100 HP
  • Tweak potions so they can't be purchased until they respawn
  • Get spritesheets working
  • Add cooldown to potions
  • Add cooldown visual
  • Further refactoring of shop inventory to make it more dynamic

Libraries Used

Tools Used

  • Visual Studio Code
  • Sublime Text
  • Aesprite
  • Audacity
  • Reason

Build Scripts

  • yarn start to go into development mode with live reload
  • yarn clean to clean the /dist directory
  • yarn build to create a distributable bundle in /dist
  • yarn docs to generate markdown documentation in /docs

The Stack

  • Pixi.JS
  • TypeScript
  • Prettier
  • Rollup
  • TSDoc / TypeDoc