[Home]Vitenka/TechnologyGenerator

ec2-3-19-31-73.us-east-2.compute.amazonaws.com | ToothyWiki | Vitenka | RecentChanges | Login | Webcomic

[Generate some sci-fi]
SeeAlso /TechnologyAdvertGenerator for blurb.

Recource for a SciFi RPG.  Or a ShootEmUp.  Comes up with names for items of equipment.

Fairly standard stuff; a bit of humour.  The occasional things at the start in brackets are supposed to be the names of the companies or star systems that make them.

Maybe someday it'll come up with flavour text too.  (TechnoBabble? generator)

Ideas yoinked from:
StarThugs.  MastersOfOrion?FreeSpaceWingCommanderTranscendenceTyrianStarTrek[Other peoples generators].  SpaceRangers?.


[Generate some sci-fi]



Warning: Code follows from this point.



// We want to build a nice page.  Call 'build_me_a_technology' directly if you want to use this as a sub-generator.

bnf ::= page_header newline hr build_me_a_technology newline hr build_me_a_technology newline hr build_me_a_technology newline hr build_me_a_technology newline hr build_me_a_technology newline hr _EXTRA_BABBLE

_EXTRA_BABBLE ::= And __SPACE what __SPACE does __SPACE this __SPACE technology __SPACE do? __SPACE __SPACE How __SPACE does __SPACE it __SPACE do __SPACE it? newline build_me_some_techno_babble newline That's __SPACE how. newline page_footer

page_header ::= Random __SPACE systems __SPACE and __SPACE cargoes, __SPACE suitable __SPACE for __SPACE a __SPACE SpaceOpera? __SPACE or __SPACE ShootEmUp.  newline [Generate] __SPACE [some] __SPACE [more] __SPACE [sci-fi]

page_footer ::= Names __SPACE stolen __SPACE from __SPACE  [StarThugs StarThugs], __SPACE [MastersOfOrion? MastersOfOrion?], __SPACE [FreeSpaceTwo? FreeSpaceTwo?], __SPACE [WingCommander WingCommander], __SPACE [Tyrian Tyrian], __SPACE [Transcendence Transcendence]... newline Explanation __SPACE and __SPACE see __SPACE how __SPACE it __SPACE is __SPACE done:

// Useful rules
newline ::= "
"
hr ::= "<hr>" newline
quote_mark ::= """
__NOTHING ::= ""
__SPACE ::= " "

// And turn spacing off, so that prefix and suffix rules work
option ::= spaces = 0

build_me_a_technology ::= optional_brand model __SPACE some_thing __SPACE whatsit | optional_brand __SPACE whatsit | optional_brand __SPACE model __SPACE whatsit | some_thing __SPACE whatsit | optional_brand __SPACE some_thing __SPACE whatsit | model __SPACE whatsit | optional_brand __SPACE physical_thing __SPACE whatsit | physical_thing __SPACE whatsit | physical_thing

// Branding is important.  And utterly random.  There's a fair amount of cross-collaboration when you're working with high-science.

optional_brand ::= __NOTHING | __NOTHING | __NOTHING | __NOTHING | ( select_brand ) __SPACE
select_brand ::= minor_brand | major_brand | major_brand | major_brand " / " minor_brand | major_brand " / " major_brand | major_brand | minor_brand | minor_brand | major_brand | major_brand | major_brand | minor_brand " and " minor_brand

major_brand ::= Universal-Starship-Works | Vector | Commodore-Dockyards | Corallis | Superior-Starship-Systems | Starmine | Leviathan | Darkside | Monicker | Affatron-Shipyards | Triple-I

minor_brand ::= Boeing | BAE | Instrukt systems | Vekati | Subach | Terran | Pegassus | Triton-systems | Fenris-Labs | Morning-star | Vasuden | Ringer | Astral | Maggottonian | Uberclesian | Ventraxxian | Mandrigonian | Zargian | Commonwealth | Hierarchy | Charon | Domina | Sung | Ares | Iocrym | Ventari | Auton | Yoroi | Akan | Rasiermesser | Gotha | Strelka | Kytryn | Wolfen | Korolov | Qian | CSC | Ares | Cometfall | Cydonian | Majellen | Heliotrope | Ventari | Abbasid | Centauri | Luminous-Armature | Ferian | Sol | Hasudra | Microsol | Savana | Gencore | Fauchi | Fokat | Midway | Nova | Hawkins | Durril | Tallok | Zinglon | Gyges | Torm | Zica | Downstar | USP | Maloq | Peleng | Faeyan | Gaelian | Blazer | Keller
// But within a brand you need to come up with names.

model ::= quote_mark pre_model quote_mark | quote_mark unquoted_model quote_mark | quote_mark unquoted_post_model quote_mark | quote_mark pre_model __SPACE unquoted_model quote_mark | quote_mark pre_model __SPACE quoted_post_model | quote_mark unquoted_model __SPACE quoted_post_model | quote_mark pre_model __SPACE unquoted_model __SPACE quoted_post_model

unquoted_model ::= model_names | model_names __SPACE unquoted_post_model
pre_model ::= letter_model | colour_model
quoted_post_model ::= number_model quote_mark | mark_model quote_mark | acronym_model quote_mark | quote_mark __SPACE size_model | quote_mark __SPACE wattage_model
unquoted_post_model ::= number_model | mark_model | acronym_model | size_model | wattage_model

model_names ::= common_model_names | common_model_names | rare_model_names
common_model_names ::= Horseman | Nomi | Mikta | Rittica | Mantis | Griffin | Hydra | Firestorm | Ulysses | Loki | Perseus | Medusa | Boanerges | Amazon | Poseidon | Faustus | Orion | Arcadia | Iceni | Elysium | Argo | Watchdog | Cerebus | Alastor | Hermes | Seth | Sathanus | Maxim | Lamprey | Rockeye | Tempest | Tornado | Harpoon | Mekhu | Akheton | Stilletto | Inferon | Rogue | Mikeno |  Huari | Hurin | Zulu | Sotho | Oromo | Tripoli | Drake | Viking | Barbary | Oracus | Himal | Borer | Anarchist | Tinker | Ranx | Hornet | Wasp | Cyclone | Lance | Typhoon | Rapier | Medusa | Hammerhead | Mace | Achilles | Parasite | Guardian | Screambat | Hellforce | Laserwing | Nephtys | Seteky | Sekhmet | Argo | Hecate | Erinyes | Charbydis | Hygenia | Sobek | Aeolus | Bakha | Ganymede | Hatshepstut | Hippocrates | Myrmidon | Mara | Deimos | Zephyrus | Artemis | Tauret | Boanerges | Aunket | Achilles | Cyclopse | Firefly | Partisan | Camanais | Talon | Stalker | Storm
rare_model_names ::= Cratermaster | Assflatter | Absolution | Perseus | Mentu | Horus | Thoth | Serapis | Osiris | Isis | Bes | Satis | Aten | Ankh | Ra | Asteroth | Azrael | Dis | Mephisto | Asmodeus | Lilith | Rakshasa | Cain | Ravana | belial | Rahu | Tenhove __SPACE Sentinel

letter_model ::= T-22 | T-38 | T-41 | T-27 | T-83 | G-22 | G-38 | G-41 | G-27 | G-83 | K-22 | K-38 | K-41 | K-27 | K-83
number_model ::= 100 | 200 | 400 | 302 | 961 | 804 | 600 | S100 | S200 | S500
colour_model ::= White | Red | Green | Black | Blue
mark_model ::= Mk. II | Mk. IV | Mk. VI | Mk. IX | Mk. XII | Mk. XIV | Mk. XVII | Mark I | Mark II | Mark III
acronym_model ::= GTF | GTB | GTDR | DTFR | TC | TTC | TAG | GTI | GVF | GTEP | VAC | SF | ST | SB | IFR | SC | SD | SJ | SSG | HL7 | HL9 | F1 | F2 | F7 | SV2 | SV4 | SVT | X | XL | ML70 | 5a | MX-6 | MX-64 | II | MX | EI100X | TeV9?
size_model ::= 4.03 | 5mm | 12mm | 18mm | 30mm | 42mm | 45mm | 92mm  | 160mm
wattage_model ::= 18kW | 4MW | 8MW | 10MW | 18MW | 24MW | 40MW | 80MW | 135MW | 200MW

// It's cute.  But what the hell is it?

whatsit ::= device_modifier __SPACE device_list | device_list

device_modifier ::= Stun | Mini | Personal | Assault | Automatic | Blade | Charged | Face-Eater | Flash | Frag | Light | Heavy | Powered | Body | Stealth | Space | Pulse | Sonic | Shard | Scatter | Multi | Protron | Wing | Construction | Attack | Medium | Rear | Prime | Faulty | Thermal | Burglariser | Thief | Prototype | Blairite

device_list ::= commmon_device_list | commmon_device_list | rare_device_list
commmon_device_list ::= starship_thing | Armour | Generator | Shield | Engine | Weapon | Drive | Beam | Technology | Scanner | Device
rare_device_list ::= Pistol | Rifle | Gun | Blade | Grenade | Suit | Sensor | Kit | Pack | Chip | Rack | Launcher | Field | Missile | Torpedo | Plating | Computer | Simulator | Cannon | Drive | Droid | Gate | Turret | Gun | Launcher | Hyper | Shard | Cannon | Bomb | Pod | Wing | Ball | Wave | Drone | Plant | Flare | Ray | Radiation | Emitter | Anomaly | Container | Core | Blaster | Cutter | Resonator | Condenser | Scope | Cleanser

// Starships are special - they come in various classes.

starship_thing ::= real_starhip_thing | starship_modifier __SPACE real_starhip_thing | starship_modifier __SPACE starship_modifier __SPACE real_starhip_thing
starship_modifier ::= light | heavy | police | battle | attack | guardian | civilian
real_starhip_thing ::= model_names "-class" __SPACE totally_real_starhip_thing
totally_real_starhip_thing ::= Starship | Freighter | Cruiser | Destroyer | Fighter | Gunship | Transport | Interceptor | Raider | Bomber | Ship | Battleship | Titan | Liner | Shuttle | Carrier

// One day, I'll come up with better words than 'thing' and 'whatsit'.  This is intended to generate names like 'dual carborundum'  It can also sometimes include brand-names.

some_thing ::= unquoted_model | medium_thing | medium_thing __SPACE unquoted_model

medium_thing ::= physical_thing | modifier_thing physical_thing | physical_thing suffix_thing | modifier_thing physical_thing suffix_thing | modifier_thing suffix_thing

modifier_thing ::= modifier_list | modifier_list | modifier_list | modifier_list | outer_modifier | outer_modifier modifier_list | modifier_list modifier_list

outer_modifier ::= spaced_outer_modifier __SPACE | spaced_outer_modifier __SPACE | spaced_outer_modifier __SPACE | unspaced_outer_modifier
unspaced_outer_modifier ::= Anti- | Sub-
spaced_outer_modifier ::= Kilo | Mega | Omega | Ultra | Dual | Quad | Multi | Basic | High-grade | Advanced | Hyper | Stealth | Enhanced  | Inter | Fast | Rapid | Enhanced | Disposable

modifier_list ::= spaced_modifier_list __SPACE | spaced_modifier_list __SPACE | spaced_modifier_list __SPACE | spaced_modifier_list_and_suffix __SPACE | unspaced_modifier_list
unspaced_modifier_list ::= Multi- | minor_brand "-" | Trans- | Endo | Exo | Gyro | Oct | Pieza
spaced_modifier_list ::= common_spaced_modifier_list | common_spaced_modifier_list | rare_spaced_modifier_list
spaced_modifier_list_and_suffix ::= spaced_modifier_list spaced_modifier_list_suffix
spaced_modifier_list_suffix ::= -charge | -nuke | -action | -stabilised | -print
common_spaced_modifier_list ::= Phased | Generic | Support | Performance | Extended | Deluxe | Smart | Turbo | Military | Double | bolt | personal | emag | gyro | smart | hypersonic | switchable | shaped | gestalt | palm | recognition | over | under | over-and-under | integral | tac
rare_spaced_modifier_list ::= Retrofit | Quasi | Molecular | Quantum | Poly | Plasma | Neuro | Ferro | Core | Holographic | Hyper | Phased | Hard | Flux | Pirate | Quantum | Pulse | Rail | Police | Displacement | Cyclic | Vulcan | Mining | Cluster | Industrial | Survival | Robo | Battle | Cryo | Combat | Auto | Aegis | Reactive | Duralloy | Dark | Heiro | Beam | XRay | Calligraphic | Recoilless | Bio | Ablative | Reflective | Regenerating | Ink | Black | Cluster | Siege | Hardened | Blast | Radioactive | Active | Archaeo | Thermo | FTL | Jump | Arch | Meteo | Metro | Miniature | Tiny | Massive | Active | Infra | Null | Modified | Skeletal | Security | Mainline | Secret | Private | Feline | Unknown | Chemical | Inverse | Temporal | Phasic | Holo | Fragment | Flow | Matrix | Zero | Erime | Unobtanium
// TODO: Modify the ratio of generated things as I add more generated tings
physical_thing ::= known_physical_thing | known_physical_thing | known_physical_thing | known_physical_thing | generated_physical_thing

known_physical_thing ::= Steel | Titanium | Kalrite | Chromite | Crystal | Gel | Weave | Plasma | Deuterium | Merculite | Iridium | Pulson | Zotrium | Neutroniuum | Zeon | Uridium | Thorium | Gravity | Lightning | Pulsar | Stealth | Laser | Fusion | Tachyon | Neutron | Graviton | Phasor | Plasma | Stellar | Mauler | Fission | Fusion | Ion | Matter | X | Proton | Guass | Prysm | Flail | Suppression | Space | Force | Discipline | Sapphire | Carbon | Transuranic | Plasteel | Carbide | Prometheum | Ceramic | Mnemonic | Hydrocarbon | Ice | Pteracnium | Fiber | Gold | Platinum | Trenton | Lazarus | Silicon | Arbalest | Kinetic | Solon | Kevlar | Teflon | Hexagene | Flenser | Superconducting | Solar | Neolinen | Star | Glyph | Gusoku | Monopole | Meteorsteel | Hex | Boson | Muon | Hadron | Zubrin | Tharsis | Nuclear | Sphere | Veil | Cocoon | Berillium | Dralicite | Morenzium | Kitten | Carborundum | Warp | Antimatter | Lezka | Trethone | Rogust | Bromed | Chrobyte | Tecrine | One | Colloid | Brain | railgun  | slugs | ammo | AI | disintegration

generated_physical_thing ::= drug_name | particle_name | particle_name | particle_name

// Pseudo-chemical names are a subset of physical things
// TODO: Really we'd like brand-name alikes, not long chemical names
drug_name::= "{" drugprefixes chemicalname drugmiddle drugending "}"
drugending::="ene" | "ane" | "azine" | "ene" | "ine" | "one" | "onine" | "in" | "abine" | "yl"
drugprefixes::= "3-" drugprefix | drugprefix drugprefix | __NOTHING
drugprefix::="pseudo" | "kyto" | "bena" | "ultra" | "myto" | "kino" | "alpha"
drugmiddle::="tolu" | "dril" | "morph" | "artic" | "arthr" | "grit" | "cortiz" | "herm" | "verm" | "acet"
chemicalname::=3- chemicalnameadd | __NOTHING
chemicalname2::=chemicalnameadd | __NOTHING
chemicalnameadd::=chemical_name __SPACE chemicalname2
chemical_name::=chemprefix chemname
chemprefix::="bi" | "tri" | "iso" | "di" | "pheno" | "hexa" | __NOTHING
chemname::="phenyl" | "propyl" | "butyl" | "chloro" | "methyl" | "ethyl"

// As are trekkie style particles
particle_name ::= particle_root optional_dual_particle_suffix
particle_root::="decion" | "baryon" | "electron" | "positron" | "proton" | "neutron" | "cordion" | "tachyon" | "ion" | "muon" | "pion"
optional_dual_particle_suffix::= particle_suffix | particle_suffix particle_suffix | __NOTHING
particle_suffix::= "ic" | "al" | "ite" | "ix" | __NOTHING
particle_man::= hates triangle_man

suffix_thing ::= unspaced_suffix_thing | __SPACE spaced_suffix_thing
spaced_suffix_thing ::=  Disruptor |  Shunt |  Core | Locked |  Flux |  Barrier |  Nullifier |  Defence |  Deluxe |  Array |  Controlled |  Beam |  Field | Panel |  Sail |  Grid |  Assembly |  Flare |  Deflector |  Bolt |  Torch |  Condesate |  Seed |  FTL | Fragment | Slot | Bubble | Cluster | penetration | feedback | sighting  | tracking | capabilitysome
unspaced_suffix_thing ::= -tronic | -active | -reactive | -negator | -mesh | -weave | -web | -repeater | -X | -driven | -composite | aur | trone | troid

// Let's try generating explanations.  Trying to be organised about naming convention now.

build_me_some_techno_babble ::= tb_what_c __SPACE tb_connection_c __SPACE tb_tech_c __SPACE tb_effect_c "."

tb_what_c ::= tb_name_c | "This" __SPACE tb_action_c __SPACE "device"
tb_connection_c ::= tb_connection
tb_effect_c ::= tb_connector2_c __SPACE  tb_effect | tb_connector2_c __SPACE tb_effect __SPACE tb_target_c | tb_connector2_c __SPACE tb_effect __SPACE "and" __SPACE tb_effect __SPACE tb_target_c
tb_target_c ::= "its" __SPACE tb_target
tb_tech_c ::= tb_tech
// TODO: Get action and name from variables from the main generator.  For now using generic actions, rather than per device type.
tb_action_c ::= tb_action
tb_name_c ::= tb_name
tb_connector2_c ::= tb_connector2

// Actual words
tb_connector2 ::= "to" __SPACE <verbstyle::=inorderto> | "in order to" __SPACE <verbstyle::=inorderto> | "for the purpose of" __SPACE <verbstyle::=purposeof>
tb_connection ::= "uses" | "applies"
tb_target ::= "owner" | "enemies" | "user"
// TODO: Good effects and bad effects.
tb_effect ::= tb_effect##verbstyle
tb_effect_inorderto ::= "shield" | "vaporise" | "destroy" | "protect" | "tap" | "tickle" | "explode"
tb_effect_purposeof ::= "shielding" | "vaporising" | "destroying" | "protecting" | "tapping" | "hurting"
tb_action ::= "advanced" | "important" | "strange" | "deadly" | "reactive" | "generic"
tb_name ::= " ~name of device~ "
tb_tech ::= whatsit | whatsit | whatsit | medium_thing | medium_thing | medium_thing | "alien super-science" | "technobabble"



CategoryGenerator | BNF | SciFi | RPG | TechnoBabble?

And again, that URL:
[Generate some sci-fi]


ec2-3-19-31-73.us-east-2.compute.amazonaws.com | ToothyWiki | Vitenka | RecentChanges | Login | Webcomic
This page is read-only | View other revisions | Recently used referrers
Last edited June 30, 2016 4:41 pm (viewing revision 82, which is the newest) (diff)
Search: