-# Littlest Roadmap
+# A Lttl Roadmap
-- Items
-- Levels
-- Level transitions
-- Improve friendly fire of AI
+[TOC]
+## Components
+
+### Physics
+
+* Weapon collisions deal damage
+* Non-unit detection zones
+* Shields and Armor move with unit, collide with things, but have independent stats (unit-to-component joint)
+* Player-aligned shields and armor (only blocks enemies)
+* Terrain types with different characteristics
+
+### Ability & Buff System
+
+* Units have stats, buffs & status effects, inventory, abilities
+* Ability qualities & properties
+ * Costs: HP, MP, Cooldown, Cast-time, Charges
+ * active/passive/proc
+ * projectile/targeted/area/shields/armor/summon
+* Ability UI feedback for targeting, cast, results
+* Ability help/tooltips
+
+### Items
+
+* Loots vs Stuff vs Powerups:
+ * **Loots:** Collectable items (see below).
+ * **Powerups:** Transient items found in the world, activated on acquision--the powerup is consumed, triggering its ability/buff. A powerup requires no inventory space to activate.
+ * **Stuff:** Stuff resides in your tank inventory, taking up space, potentially providing an effect or ability. There are many types of stuff:
+ * *Plot:* Plot items take up inventory space and generally have no combat/mechanical effect. Examples include keys to locks and items used by triggers to advance the plot.
+ * *Consumables:* Triggered (and consumed) on demand.
+ * *Equipment:* Stuff that provide a passive buff or add an active ability (usually with a cooldown). Losing the equipment removes the buff or ability (but doesn't reset the cooldown :P).
+ * *Conjured:* Stuff created by an ability, usually persisting on a timeout.
+* Currency:
+ * World Currency for shops/plot (gold or whatever we end up calling it)
+ * App Currency for packs/perks/hats via in-app purchase?
+* Ways items are acquired
+ * Found in world (monster drop, bought from shop, quest reward); persistent until used/sold/destroyed.
+ * Granted by loadout; disappears when loadout changes.
+ * Conjured by ability.
+
+### Collectabile Loots
+
+* Loots are collectable items. Think your deck in MTG, talents in WoW/Diablo, or your plants in PvZ.
+ * Loots take up no tank inventory space, and only take effect when loaded onto a tank; tank loadout slots are limited.
+ * You can activate a different tank loadout only at checkpoints, but you can configure/manage/fiddle with your loots and loadouts at any time.
+ * So like in MTG, once you pick a deck to play, you can't change it mid-game. However, you can organize your cards and build decks any time (even if it would annoy your friends if you did it while playing ;)).
+ * Loots have different rarities, and are acquired like items (see above).
+ * Booster Packs via in-app purchase?
+ * Your collection is attached to that player; loots can probably be sold at shops (or traded between players somehow, like how people used to do with pokemon?)
+* Loot needs a better name: badges, metals? components, widgets? hats, baubles, trinkets, gewgaw, foobars?
+
+### Unit Behavior & AI
+
+* All units have sleep behavior stats
+* DSL for writing AI
+* Unit decision trees for behavior
+* Provides high-level convenience functions for pathfinding (A*), sight-tests, world queries, collision-lookahead (this might suck in Box2D)
+* Personalities for flavor (aka "autotrolling"): decision-trees for AI yelling commentary on battles ("Holy~ You might rival my grandmother at video game skill!"; "You always get hit when I do that~"; "Gah! Why can't I see through walls!")
+
+### Triggers
+
+* DSL for scripting the game, responding to events.
+ * Has logic, commands, event-handlers
+ * Loaded dynamically: script tied to unit, or location, or condition to unload
+* Primarily for cinematics & encounters
+ * Plot, NPC dialogue, cutscenes
+ * Bosses, custom encounters
+ * Enemies have "personalities", react to combat?
+* Could also use trigger system for...
+ * AI scripting?
+ * Building complex abilities from basic building blocks? Ex. ability type & properties (ex: projectile w/ size, speed, bounces?), effects (ex: deal damage, heal), cooldown & costs, etc. *(This would be cool, but more likely to have bugs. Do it the dumb way first.)*
+
+### Level Builder
+
+* Content definition files: units (players, helpers, NPCs, enemies, bosses, projectiles, shields, armor), buffs, abilities, items, loots, tilesets, terrain, walls, rocks, doodads, rooms, levels, triggers, AI behaviors
+* A Level is a collection of Rooms come in two flavors: pre-built and generative
+* Levels have many Rooms
+* A Room is a modular chunk of space:
+ * tileset (background (sky + parallax layers), art for terrain, walls, rocks, doodads?) -- flag to inherit from Level
+ * pathing info (entry/exit points, terrain map, wall locations, horizon bounds)
+ * content and spawn info (doodads, units, shops, loots, checkpoints, triggers)
+
+### Art & FX
+
+* Raw materials: animations, special effects, particles
+* Units
+ * Movement/facing sprites
+ * Status states
+ * Idle animations
+* Environment
+ * Tilesets
+ * Terrain animations
+ * Background parallax
+ * Doodads
+* Abilities
+ * Casting animation, effect art+animation
+
+### User Interface
+
+* Viewport is pannable, zoomable; moves with player
+* Controls:
+ * Draw path from tank to move
+ * Touch to shoot
+* HUD:
+ * Tank stats, status, buffs
+ * Tank inventory
+* Palette for abilities and commands (w/ modal support)
+* Loot Loadout UI: the "deckbuilder" for your loot collection
+* Maps:
+ * Local minimap
+ * Expanded map of current Level (w/ fog of war?)
+ * World Map (w/ fog of war from exploration progress?)
+
+### Menus
+
+* The expected/necessary shit
+ * New Game
+ * Play/Pause
+ * Save? Autosave?
+ * Options
+* Interstitials for free version?
+ * Buy full version
+ * Share to XYZ
+ * Buy full version
+ * Rate this on the App Store
+ * Buy full version, dicknose
+
+### Options
+
+* UI driven by config; created with scaffold lib... surely one exists for iOS?
+* Sound: Music, Volume (Scrobble would be neat)
+* Help: Show Tutorial, Notes, Tips
+
+### Help
+
+* Modal help overlay on viewport w/ "tooltips" for most everything (terrain, enemies, projectiles, the UI...)
+* Tutorials?
+* Codex/Tanklopedia of concepts, collectble loot, terrain, traps, enemies, bosses?
+
+### Sever
+
+* Ability to push datafile updates from server to client
+* Geo stuff!!
+* <Insert Huge Wishlist Here>
+
+
+## Roadmap
+
+Everything. Done Tomorrow.