Machine Smith
Documentation
Not logged in

@pagedown # Death of the Vele: Machine Smith

## Todo

* better screen handling * turn physics off when not on main screen * maybe put a tick function into State, instead of a draw function? * parse SVG (HaXml?) * layer labeled as "ground", etc. * see drawing.svg

## Premise

* You play a machine smith, confined to his shop * as time progresses, maybe he can make his shop bigger? * You rely on your machines for your survival * You create your machines * creating machines should be 1/2 the game * hard to do * how well you do affects the quality of your machine * model ruche manipulation symbolically * if you're not careful, you can get burned * resources can heal the machine smith * difficult process * place crystals * crystals eminate an amount of ruche * place components * ruche flows like mercury and makes connections * use convex hull to create a Cairo spline * gain smithing tools with skill * beginner: dig trenches for ruche to flow * bad work can cause problems -- ruche can flow from one into another * trenches weaken the ruche * longer trenches weakens the ruche even more * hard to draw a straight line (increasing length of trench) * advanced: place attractors to attract the ruche flow * number and strength of attractors increases with skill (starts at 0) * gravity shifts around and changes strength * ruche can detach * more useful components have more connections * connections have types * different connection types require different machine smith skills * skill makes it easier to route ruche * "allocate" some ruche to temporarily "fasten" the flow to a point * more components impact stability (skill helps stability) * gravity shifts more often * ruche detaches more often * resources * You can salvage resources from other machines (maybe a limited number of times) * materials * Materials can provide different capabilities (flight, fire, bombs, climbing, etc.) * energy * mental capacity * mental speed * machines are autonomous * brains * user-supplied brain code * code subject to mental limitations * share your code on the market * your machines can switch brains in other machines * field updating * recover rogue machines * change orders * attack and defense * other machines * hazards * overcome geographic and architectural features * no remote communication * trade machines on the market using couriers

## Screens * meanwhile, outside...: machine cameras * hazards * monsters * machines * traders * pirates * destroyers * spies * machine chooser: choose a machine to work with * work bench: parts inventory * smithing: use ruche crystals, parts, and skill to create machines * there is an unlimited supply of large, heavy, weak crystals and low quality, limitied functionality parts * higher quality parts and crystals are outside

## Implementation Notes

* run in cairo (SDL) on nD * hopefully run in HTML5 (converted to JavaScript) * start with haskell's cairo-gtk layer and work out how to do it with SDL after that * cairo tut(http://www.muitovar.com/gtk2hs/app1.html)

# creature abilities * mobility * slither/walk/run * jump * climb * fly * swim

* perception * better vision/hearing/smell * heat * tremor sense

* creatures leave trails * other creatures can follow * fade over time

* armor

* weapons * beak/claws/tail * spikes * fire

* capacity * pouch * carry/drag * wagon

* brain * speed * memory

## Done

* Bill: cairo version of HipmunkPlayground (see Simple.hs(//artifact?ci=tip&filename=src/Simple.hs))