Fledgeling Fragments

Fledgeling Fragment Games

You may have noticed that I have talked about several different games here. I am attempting to zero in on the concepts that I am exploring; To approach Fledgeling from a variety of angles. So, quite recently, it occurred that I thought to map out these aspects, and see where each sub-game might lie in relation to the whole.

Here I have made a Venn diagram of the five major topics which interest me in game design. Continue reading

Does anyone actually read this?

Aside

I’m thinking about putting up some more content here, but first I’m wondering if anyone actually reads this stuff. It was started as a rather self-indulgent excercise, and I’ll probably continue it in that vein, but if anyone else is interested, I’d like to know what you come here for. Respond in the comments below, and otherwise, I’ll update when I feel like it!

What’s in a Starship?

We see a lot of depictions of starships. Star Trek, Starwars, and countless others. I’d like to teach computers to make starships, and explore the design-space. But to do that, I’d have to know what a starship was in the first place!

Excerpt from Ship 082

What is this? Is it really a starship? How can we be sure?

So I turned to Jeff Zugale, who recently published Starshipwright One: Science Fiction Spaceships, a collection of 178 of his sketches and renderings, a few of which I have included sections of here as examples, but without permission. Hopefully he doesn’t mind. In perusing the pages, several patterns jumped out at me, which I have cataloged here for your perusal. I’d like to go over the major ones, and offer my own criteria for what it seems like would identify a starship, but apparently doesn’t, as well as what it seems to me is the single defining characteristic.

Continue reading

Influences and Paralells

Where did these ideas come from? Some are seeds which spawned concepts, others are examples of where these same ideas have cropped up independently.

Life: Most things, including deep nesting. I attribute most of the independent consensus to this aspect.

Revelation: The book in the Bible. Axies of merit and paralell spiritual hierarchies.

Dungeon Siege: Linked limitless spatial nodes.

Megatokyo: PCs with emotional stats and independent behavior.

A Fire Upon the Deep: Vast scope fiction and data-intense societal development.

D&D and GURPS: role playing games (a mixture of positive and negative examples in both).

StarTrek Enterprise Floorplans: Vessels really can be fleshed out internally.

Dwarf Fortress: Lots of deep and broad world simulation. Taking over historical characters, etc.

A Reflection on: “Five Problems with Modern Video Games”

The video in question.
If you’re not interested in watching, here’s the summary:

Video Games have become lame since the 90s, because:

  1. They’re all the same.
    Targeted mostly at AAA FPS titles.
  2. They treat you like you are an idiot.
    Hand-holding, QTE, omniscient mini-map, lack of fast travel.
  3. They are too focused on realistic graphics.
    Want to be too much like movies. Continue reading

Warmth – an attention engineering game

Core Concept

This is an idea for a shared awareness based exploration and building game called Warmth. The core concept of Warmth is cultivating, directing and then using a magical mana-like resource called “Warmth.” The mechanics of warmth generation, collection, and use encourage emergent game play that creates cozy, fractal patterns of building and interaction. Warmth itself manifests as a faint fire like glow which can be collected by the player for various uses. Continue reading

Python Scripts

Over the years I’ve written quite a few python utilities. Most of them are really short, and too specific to be useful to others. Those that aren’t are so long that they don’t feel elegant enough to share.

And then, between these two extremes, are the gems that I find myself coming back to time and again. I thought I’d share these with you. Keep in mind that all of these are covered by the Paul Spooner “IP is Wicked Nonsense” license, and you are encouraged to evaluate them on their own merits as distinct from their history. If you insist that the origins of ideas are important, then go pledge your support to my efforts.

TextOddifier.py is a text manipulation script to convert letters in UTF-8 to fairly similar looking letters. It makes text that looks like this ḽӧœĸ ŀįҟԙ ҭԡ༑ṩ ѩʼnᵴťӕаԂ. You can find the source below, or through the link at the start of the description.

# Similar letter substituter
# To make text look a bit strange

from random import choice

SLD = { 'A':'ĀĂĄАѦѨӐӒӔḀẲⰡ⍲ᗗ','a':'āăąаѧѩӑӓӕḁẳ⎀',
        'B':'ВѢҌ฿ḂḄḆᙗᙫ','b':'ЉЊБЪЬъыьѣҍḃḅḇᒀᖲ',
        'C':'ĆĊČСҪℂ℃','c':'ćĉċčсҫ',
        'D':'ĎĐḊḌḎḐḒ⫐⫒ᗫᗤ','d':'ďđԀԁԂԃḓḑḏḍḋᑽᖱ',
        'E':'ĒĔĖĘĚŒЀЁЄЕѤӔӖԘ⋵⋶ᕮ','e':'ēĕėęěœеѐёѥӕӗԙ',
        'F':'ҒӺḞ℉ᖴ','f':'ſғӻẛẜẝḟ',
        'G':'ĜĞĠĢԌḠ','g':'ĝğġģḡ',
        'H':'ĤĦЊНҔҢҤӇӉԊԢԨԪ','h':'ĥħЂЋђћҕңҥӈӊԡԦԧℎℏ',
        'I':'ĨĪĬİIJІЇЮѤѨӀ','i':'ĩīĭįıijіїѩ༐༑',
        'J':'IJĴЈЉӇԈԒԔᒏ','j':'ijĵЛјӈԓԕ',
        'K':'ĶЌЖКҖҚҜҞҠӃԖԞԪ','k':'ķĸкҗқҝҟҡӄԗԟ',
        'L':'ĹĻĽĿŁḶḸḺḼᒺ','l':'ĺļľŀłӏḷḹḻḽ',
        'M':'МӍᴍḾṀṂ','m':'ӎᵚᵯmṃṁḿ',
        'N':'ŃŅŇŊЍИЙҊӢӤ','n':'ńņňʼnŋҋᵰ',
        'O':'ŌŎŐŒОЮѺӦ⥀⥁','o':'ōŏőœбоѻӧ',
        'P':'РҎԖⰒⰐᑬᑭᑮᑶᑸ','p':'рҏԗᵱⱀᖰ',
        'Q':'ҀԚⰢ','q':'ҁԛⱉᖳ',
        'R':'ŔŖŘЯԄԆԖԘ℞ᖇ','r':'ŕŗřѓг',
        'S':'ŚŜŞŠЅṦṨᔡ','s':'śŝşšѕᵴṩṧṥ',
        'T':'ŢŤŦЂЃЋГТѢѢҬԎ','t':'ţťŧҭԏ',
        'U':'ŨŪŬŮŰŲ⩂⩁⋃ᙈᙀ','u':'ũūŭůűų',
        'V':'ѴѶṼṾⰜ⩢⩣⩛⩝⍱⋁ᐻ','v':'ѵѷṿṽⱌ⩡',
        'W':'ŴѠѼѾԜ','w':'ŵѡѽѿԝ⍹',
        'X':'ЖХҖӁӜӼӾԔ','x':'жхҗӂӝӽӿԕẋ',
        'Y':'ŶŸЎУҮӮӰӲ','y':'ŷуўӯӱӳ',
        'Z':'ŹŻŽᤏᤁ','z':'źżžᙇ',
        '.':'.․⁝⁞',
        '?':'?‽⁇⁈',
        '!':'!‽⁉',
       }

def oddify(text):
    result = ""
    for i in text:
        try: result += choice(SLD[i])
        except: result += i
    return result

s = input("enter the text you want to oddify: ")
#s = "I don't even really know how this is going to work any more"

print(oddify(s))
input("Press enter when done:")

BaseConverter_py.py is a number base converter that we collaborated on to convert numbers to and from arbitrary radix. The neat thing about it is it works on floating point numbers as well as integers. The example (and test case) is 135.5 converted to base 12 is B3.6. Going the other way around, S4 in base 35 is 984 in decimal! You can find the source below, or through the link at the start of the description.

#!python
# dozinal.py

BASE = 12
PREC = 8
GLYPHS = {}
VALUES = {}

def compute_glyphs():
	global GLYPHS, VALUES
	GLYPHS = {}
	VALUES = {}

	for i in range(BASE):
		if i < 10: GLYPHS[i] = str(i)
		else: GLYPHS[i] = chr(i+55)

	for i in range(len(GLYPHS)):
		VALUES[GLYPHS[i]] = i

def rebase(num):
	if len(GLYPHS) != BASE: compute_glyphs()
	if num < 0:
		sign = '-'
		num = -num
	else: sign = ''
	whole = int(num)
	frac = num - whole

	whole_parts = []
	frac_parts = []
	prec = PREC
	while prec > 0:
		prec -= 1
		frac *= BASE

		part = int(frac)
		frac -= part
		if part == 0: break

		frac_parts.append(GLYPHS[part])

	while whole > 0:
		mod = whole % BASE
		whole = whole // BASE
		whole_parts.append(GLYPHS[mod])

	if len(whole_parts) == 0:
		whole_parts.append(GLYPHS[0])
	if len(frac_parts) == 0:
		return sign + "".join(reversed(whole_parts))

	return sign + "{}.{}".format("".join(reversed(whole_parts)),
			      "".join(frac_parts))

def debase(string):
	if len(GLYPHS) != BASE: compute_glyphs()
	if string[0] == '-':
		negative = True
		string = string[1:]
	else: negative = False
	try:
		whole_parts, frac_parts = string.split(".")
	except:
		whole_parts = string
		frac_parts = ''

	whole = 0

	for idx in range(len(whole_parts)):
		whole += VALUES[whole_parts[idx]]
		if idx < len(whole_parts) - 1:
			whole *= BASE

	frac = 0
	max_idx = len(frac_parts) - 1

	for idx in range(len(frac_parts)):
		part = frac_parts[max_idx - idx]
		frac += VALUES[part] / BASE

		if idx < max_idx:
			frac /= BASE

	result = whole + round(frac,PREC)
	if negative: return -result
	return result

TestConvert = 135.5
TestDozenal = rebase(TestConvert)
print("{} converted to base {} is".format(TestConvert,BASE), TestDozenal)
ConvertedBack = debase(TestDozenal)
print("{} in base {} is".format(TestDozenal,BASE), ConvertedBack, "in decimal")
if TestConvert == ConvertedBack: print("success!")
else: print("Something went wrong")
print("Assign BASE to set the number base,\nand PREC to set the precision.\nCall rebase() to convert,\nand debase() to convert back to decimal.")

Renamer.py Is a short program I wrote to do simple renaming operations on files. It only operates on the files in the folder, so it’s pretty easy to target. I include it here mostly as a syntax reminder. Change “rename” to “renames” to create directories (folders), which are separated by a forward slash.

# Rename files to add "_"

from os import rename, listdir
thesefiles = listdir()
target = "Prefix"
tlen = len(target)
	for f in thesefiles:
	if f[:tlen] == target:
		n = f
		n = n[:tlen] + '_' + n[tlen:]
		rename(f, n)
		print(n)

mcm_page.py is kind of an odd one. I really like the McMaster-Carr website, and enjoy browsing their catalog for inspiration. Time was when the catalog was paper that you could turn to a random page and peruse it. However, the online catalog is so efficient at delivering what you want that this becomes difficult. I’d also like to ensure that I don’t keep seeing the same page over again, at least until I’ve gone through the whole catalog. This script does all of that, opening a random page of the catalog when you start it, and allowing a save file listing all the pages you haven’t visited yet. Could be easily modified for other things… monte-carlo webcomic binges for example.

# opens a random McMaster Carr catalog page
from random import choice
import webbrowser

# 3873 fetched on 2017-09-20
# 3939 fetched on 2018-11-29, catalog 124
# 4061 fetched on 2020-11-17, catalog 126
HIGHEST_PAGE_NUMBER = 4061

try:
    f = open('mcm_page_numbers.txt','r')
    maxpgraw = f.readline()
    raw = f.readline()
    f.close()
    maxpg = int(maxpgraw)
    rem_pgs = eval(raw)
    if maxpg == HIGHEST_PAGE_NUMBER: pass
    elif maxpg > HIGHEST_PAGE_NUMBER:
        while len(rem_pgs)>0:
            if rem_pgs[-1] > HIGHEST_PAGE_NUMBER: rem_pgs.pop()
            else: break
    elif maxpg < HIGHEST_PAGE_NUMBER:
        for i in range(maxpg,HIGHEST_PAGE_NUMBER+1):
            rem_pgs.append(i)
    else: print("Something went terribly wrong")
except:
    rem_pgs = &#91;i for i in range(1,HIGHEST_PAGE_NUMBER+1)&#93;

inchoice = ""
print('{} pages left'.format(len(rem_pgs)))
print('Enter to bring up a McMaster page\n"s" to save, "sc" to save and close, "p" to print')
while len(rem_pgs) > 0:
    printflag = False
    if len(inchoice)!= 0:
        inchoice = inchoice.lower()
        initial = inchoice[0]
        if initial == 's':
            print("Saving")
            f = open('mcm_page_numbers.txt','w')
            f.write(str(HIGHEST_PAGE_NUMBER)+'\n')
            f.write(str(rem_pgs))
            f.close()
            if inchoice == 'sc': break
            else: print('{} pages left'.format(len(rem_pgs)))
            inchoice = input('Saved :')
            continue
        elif initial == 'p':
            print(rem_pgs)
            inchoice = input('Those are the currently loaded indicies :')
            continue
    idx = choice(range(len(rem_pgs)))
    chosen_page = rem_pgs.pop(idx)
    webbrowser.open('https://www.mcmaster.com/catalog/126/{}'.format(chosen_page))
    inchoice = input('Page {} queued:'.format(chosen_page))

input("There are no more pages. Press return to close.")

NatoPhoneticAlphabet.py Is a dumb little thing that converts characters into their equivalent in the NATO Phonetic Alphabet. More of a fun toy than a useful tool.

#NATO Phonetic Alphabetizer

SLD = { 'A':'Alfa',
        'B':'Bravo',
        'C':'Charlie',
        'D':'Delta',
        'E':'Echo',
        'F':'Foxtrot',
        'G':'Golf',
        'H':'Hotel',
        'I':'India',
        'J':'Juliet',
        'K':'Kilo',
        'L':'Lima',
        'M':'Mike',
        'N':'November',
        'O':'Oscar',
        'P':'Papa',
        'Q':'Quebec',
        'R':'Romeo',
        'S':'Sierra',
        'T':'Tango',
        'U':'Uniform',
        'V':'Victor',
        'W':'Whiskey',
        'X':'X-Ray',
        'Y':'Yankee',
        'Z':'Zulu',
        '9':'9er',
        '0':'Zero',
       }

def phoneticize(text):
    result = []
    for i in text.upper():
        try: result += [SLD[i]]
        except: result += [i]
    return " ".join(result)

while(True):
    s = input("enter text: ")
    #s = "I don't even really know how this is going to work any more"

    print(phoneticize(s))

I have enjoyed playing with the Fantasy Genesis book for several years now, and at one point wrote this python script to cut out all the dice rolling.

# A Fantasy Genesis Nested Lists

# The Lists:
# Anima
Anim_1_Sea_Life = ["Mollusk",
                   "Crab, Lobster",
                   "Squid, Mudskipper",
                   ["Fish: Deep sea", "Fish: Fresh water"],
                   "Jellyfish",
                   [["Whale", "Killer Whale", "Narwhale"], "Dolphin", "Walrus", "Otter"],
                   ["Shell: spiral", "Conch", "Shell: ribbed, clam"],
                   "Eel, Leech, Hagfish",
                   "Coral, Anemone",
                   "Shark, ray"]

Anim_2_Insect = ["Worm",
                 "Ant",
                 "Mosquito",
                 "Moth, Butterfly",
                 "Fly, dragonfly",
                 "Lotus, Mantis",
                 "Bee, Wasp",
                 "Caterpillar, Centipede, Milipede",
                 "Beetle, Scarab",
                 "Flea, Mite",
                 "Spider"]

Anim_3_Mammal = ["Sheep, cow",
                 "Mouse, Rabbit",
                 "Pig, Boar",
                 "Deer, Pronghorn",
                 "Ram, Bull, Buck",
                 "Elephant, Giraffe",
                 "Bat",
                 "Bear",
                 "Lupine: Wild Dog",
                 "Horse, Zeebra",
                 "Feline: Wild Cat",
                 "Primate"]

Anim_4_Reptile = ["Crocodile, Gila",
                  "Frog, Newt",
                  "Lizard, Snake",
                  "Turtle"]

Anim_5_Bird = ["Wild Fowl, Duck, Goose",
               "Farm Fowl, Rooster",
               "Seabird, Penguin, Gull",
               "City bird: Raven, Sparrow",
               "Tropical bird: Parrot, Heron",
               "Bird of Prey: Hawk, Owl",
               "Hummingbird"]

# Veggie

Vegi_1_Plant = ["Seaweed",
                "Fern",
                "Desert Cacti",
                "Thick Leaf Plant, Jade",
                "Flower: Domestic",
                "Vine",
                "Poppy",
                "Grass, Dandelion",
                "Bamboo",
                "Flower: Wild",
                "Carnivorous Plant"]

Vegi_2_Fruit_Vegi = ["Asparagus",
                     "Pinecone",
                     "Berry, Grapes",
                     "Ginger",
                     "Tree fruit (apple, orange)",
                     "Bean",
                     "Pumpkin, Gourd",
                     "Broccoli, Artichoke",
                     "Corn",
                     "Grain, Wheat",
                     "Pineapple"]

Vegi_3_Fungi = ["Moss",
                "Slime Fungi: Ooze, Jelly",
                "Lichen",
                "Mushroom"]

Vegi_4_Tree = ["Willow",
               "Birch",
               "Maple, Oak",
               "Banyan",
               "Pine",
               "Palm"]



# Elemental & Mineral

Elem_1_Fire_Electric = ["Fire, Vapor",
                        "Electric Bolt",
                        "Ember, Hot Coal",
                        "Molten Lava"]

Elem_2_Liquid = ["Icicles",
                 "Fog, Vapor",
                 "Wave",
                 "Dew Drops",
                 "Ripple",
                 "Frost, Snow",
                 "Suds, Bubbles",
                 "Tar, Gum"]

Elem_3_Earth_Metal = ["Malachite",
                      "Mountain, Cliff Face",
                      "Brick, Cobblestone",
                      "Rust, Oxide",
                      "Cracked Clay",
                      "Stalactite, Stalagmite",
                      "Glass, Crystals",
                      "Powder, Sand",
                      "Slate, Shale",
                      "Cement, Sediment",
                      "Mercury, Chrome"]

Elem_4_Astral_Atmosphere = ["Moon Cycles",
                            "Starfield",
                            "Crater, Asteroid",
                            "Solar Flare",
                            "Galaxy form",
                            "Volcano",
                            "Planets, Saturn's Rings",
                            "Cloud, Cyclone, Turbulence"]

#Technical

Tech_1_Transportation = ["Car, Truck, Bus",
                         "Aircraft",
                         "Rail, Train, Trolley",
                         "Cycle (motor or bi)",
                         "Sled, Ski",
                         "Boat, Ship",
                         "Spacecraft",
                         "Tank, Caterpillar Tread"]

Tech_2_Architecture = [["Ornament, Gargoyle", "Ornament, Pillar"],
                       "Bridge, Framework",
                       "Castle, Dome",
                       "Modern Skyscraper",
                       ["Place of Worship", "Totem", "Cathedral", "Temple"],
                       ["Doorway, Archway", "Window"],
                       "Old Village, Cottage",
                       "Tent"]

Tech_3_Tool = ["Drill",
               ["Cup", "Bowl", "Plate", "Silverware"],
               "Umbrella",
               "Bundle, Bale",
               "Hammer, Axe",
               "Brush: Hair, Tooth",
               "Razor, Knife",
               "Spigot, Faucet",
               "Rope",
               "Lock, Key",
               "Adhesive, Bandage",
               "Shovel, Pick",
               "Capsule, Tablet",
               "Nuts, Bolts",
               "Chain",
               "Thread, Stitch",
               "Shears, Scissors",
               "Pen, Paintbrush",
               "Spring, Coil",
               "Syringe",
               "Tube, Plumbing",
               "Wrench, Pliers"]

Tech_4_Machine = [["Switch", "Dial, Knob", "Button", "Lever", "Foot Pedal"],
                  ["Bulb, Lamp", "Arc lamp", "Spotlight"],
                  ["Clock, Gears", "Piston, Cylinder"],
                  ["Mechanical Saw","Laser Beam"],
                  ["Reactor Core", "Engine", "Solar Panel"],
                  "Telephone",
                  ["Microchip", "Circuit Board", "Network Room, Cables"],
                  "Dish Antenna",
                  ["Rocket", "Turbine", "Fan, Propeller"]]

#Character Elements

Emotions = ["Embarrassed",
            "Anger",
            "Timid, Bashfull",
            "Giggle, Smiling",
            "Squint, Wink",
            "Bored",
            "Stressed, Fatigued",
            "Fear",
            "Thought, Meditation",
            "Deadpan",
            "Insane, Berserker",
            "Insane, Happy",
            "Pining, Furrowed",
            "Laughing, Hysterical",
            "Attentive, Shock",
            "Stern, Grumpy",
            "Clenched Teeth",
            "Gape, Gawk",
            "Relief",
            "Sneering",
            "Paranoid, Shifty",
            "Bliss, Joy",
            "Confusion"]

Actions = ["Recoil, Akimbo",
           "Drenched, Thirst",
           "Blown by Cyclone",
           "Push, Pull",
           "Snoop, Listen",
           "Crouched for Attack",
           "Hang, Climb",
           "Recoil, Head/Torso",
           "Float, Levitate",
           "Swinging Weapon",
           "Twisting, Stretching",
           "Kicking, Punching",
           "Squeeze, Tackle",
           "Absorb, Eat",
           "Limp, Injured",
           "Curse, Swear",
           "Run, Jump",
           "Melt, Glow, Fire",
           "Stuck, Trapped",
           "Pull, Push",
           "Shoot Weapon",
           "Dying, Gaunt",
           "Fly, Swim",
           "Shed, Molting",
           "Chant, Recite",
           "Crawl, Emerge"]

# Compliations of the different Sets

Anima = [Anim_1_Sea_Life,
        Anim_2_Insect,
        Anim_3_Mammal,
        Anim_4_Reptile,
        Anim_5_Bird]

EleMineral = [Elem_1_Fire_Electric,
              Elem_2_Liquid,
              Elem_3_Earth_Metal,
              Elem_4_Astral_Atmosphere]

Veggie = [Vegi_1_Plant,
          Vegi_2_Fruit_Vegi,
          Vegi_3_Fungi,
          Vegi_4_Tree]

Techne = [Tech_1_Transportation,
          Tech_2_Architecture,
          Tech_3_Tool,
          Tech_4_Machine]

Visual_Elements = [Anima, Veggie, EleMineral, Techne]

Character_Elements = [Emotions, Actions]

All_Things = [Visual_Elements, Character_Elements]

from random import choice

def RecurseChoice(Root):
    # Randomly select from nested lists until you get to
    # a string instead of a list. Return the string.
    if isinstance(Root,str):
        return Root
    else:
        Sub_Root = choice(Root)
        return RecurseChoice(Sub_Root)

#Choose one from each category

print("Anima: ", end='')
print(RecurseChoice(Anima))
print("Veggie: ", end='')
print(RecurseChoice(Veggie))
print("EleMineral: ", end='')
print(RecurseChoice(EleMineral))
print("Techne: ", end='')
print(RecurseChoice(Techne))

print("Emotions: ", end='')
print(RecurseChoice(Emotions))
print("Actions: ", end='')
print(RecurseChoice(Actions))

# Some test stuff

# Run it a ton of times looking for an entry
# or just checking for a crash, that too.
'''
Search_target = "Narwhale"
Number_of_tries = 4000
for i in range(Number_of_tries):
    result = RecurseChoice(All_Things)
    if result == Search_target: print("Target found! Try #{}".format(i))

'''

I’ve uploaded a bunch of my python files here: http://peripheralarbor.com/Python/
They are also on GitHub: https://github.com/dudecon/python

Game Pitch Pitfalls

Game pitch notes from here:

Two big questions: Is this game worth making? Can this team make it?
Common problems with a game pitch:
Problems with the arrangement:

* Asking the publisher to design the game.
* Pitching to the wrong publisher (mobile, console, pc are all different)
* IP-focused game without rights to IP.
Problems with the team:
* No team. Continue reading

नीडϠ (Nidats: 900 Nests) and Monetization

You may have noticed a recent drought of content for this blog. There’s a number of reasons for that, but the most pressing is that no one is paying us to do this, so we do it whenever we feel like.

So, how do we get paid to work on Fledgeling? We could just take donations, but they don’t work well. Patronage is just regular donations, and this model hasn’t worked well for us either. At least, not so far.

The classic approach is to charge for copies of the software, Continue reading

Informed Action

In the case of the people talking, it seems that the surrounding nodes would need to broadcast their shatter conditions so that the node’s currently being simulated know what factors to calculate… Perhaps even, the only factors that need to be simulated are those that relate to shatter points of surrounding nodes… Like sarcasm, its not even thought about (thus not simulated) amongst those who don’t care. Has this been thought about already?

-Excerpt from a comment by Luke

You raise an interesting point, and one I think bears examination.The idea of simulating only the bare minimum required by circumstances is a sound one. It avoids many of the problems of creating masses of extraneous information, and transmitting this information between characters. On the other hand, one of the core ideas in Fledgeling is that of imperfect perception, either by way of being incomplete, incorrect, or deluded. And, in real life, one of the characteristics of shatter points is that you rarely know where they are until you reach them. In other words, they are very difficult to perceive. Continue reading

while(True): Experience and Expression

Download Audio

I love a beautiful expression. Many others prefer a beautiful experience. Both are necessary.

Expression is moving something inside outward, pouring out what is already in the soul. Experience is drawing something outside inward, lapping up the un-self into the self.

Of course, rarely does one exist without the other. We experience our own expressions, and modify them even as they are pronounced. We respond to our own experiences, and express our reactions even during the event. Experience and expression each chase the other. One leads, and then doubles back, chasing the first; This recursive cycle feeds on both the other and the self, and can quickly lead to surprising places.
Continue reading

Games and Open Source Development

Download Audio

I’m an avid open source software user and would-be contributor and a Linux user. Software patents seem completely backwards to me, and I’m a strong proponent of open source licensing.

That said, I think open source is generally wrong for games.

First, let’s do a simple exercise: make a list of the open source games that you really think are great games. I suspect most of you will have trouble putting one game on that list. Now, cross out any games that are really just clones of commercial titles. How long is your list? Continue reading

Your Mind

Download Audio

Your mind is a complicated set of interconnected ideas, which are themselves interconnected ideas. As far as you know these ideas are insulated from “reality” and have no direct bearing on anything that “actually exists”.

Your mind gets new ideas through experiences, either internal (reflection, thinking, intuition, etc) or external (sensations, sight, smell, pain, etc). Most of the internal experiences seem to have to do with the brain somehow, and nearly all of the external ones appear to be additionally mediated by the rest of your body. Continue reading

What is a GM?

Download Audio

A Game Master, in a free-form role playing game, fulfills a variety of roles. The players in such a game “play the role” of variously limited creatures, usually individuals. One could sum up the GM’s role as “the Game Master plays the role of God”… but that’s too easy! What does God do? What are God’s duties?

Authority and agency, consistency and novelty, growth and challenge. These three pairs of attributes form the core of God’s being and thus the focus of a GM’s efforts. Continue reading

Design Hubris

Download Audio

Everyone thinks that their ideas are the best. No one thinks they are crazy. Yes, we can all admit we were wrong from time to time, but people don’t actively hold beliefs they know are false. We have (and must have) a confidence in our own ability to reliably perceive and interpret the universe.

Despite this, everyone is wrong all the time anyway. Continue reading

Linguistic De-coupling

Aside

Download Audio

Do not abuse language. If you try to bend language too much, it will just delaminate from the hearer’s consciousness, and inhabit a separate space from their perception of reality. You won’t be talking about anything your audience knows or cares about. You’ll just be talking to yourself. Continue reading

On how minds turn

Aside

Download Audio

Fledgeling is, at its core, a game about your mind.

No, not the character’s mind, the player’s mind.

The mind that is reading this sentence right now.

Your mind is dumb. I want to build you a better one. Construct something new with the rubble that is left, once you have seen what I have seen.

Oh? Your “sanity” is strong? Perhaps it is. Perhaps it will withstand the blows, the rocking shift beneath your feet, as the soil turns to sea. Can your philosophy survive at twenty thousand feet underwater? Perhaps it will.

You may be blind to the implications. Perhaps, both unseeing and unhearing (or lashed upon the mast) you will sail past the sirens. You could come, unaltered, to familiar soil, and eat the same bread you ate before.

But then, if Fledgeling does not change you, why would you play at all?

Power Density Ad Absurdum, or Ignorance is Bliss

Download Audio

Hey all, I’m Dru.  I’m a father, an engineer, and an all-around nerd.  I play role playing games on computers and around tables and enjoy reading and writing good and terrible sci-fi, respectively.  Among the things that may be relevant to know about me is that I tend think way too much about a lot of things.  So, naturally, I’ve applied principles from rocket science, engineering, and economics to the implications of starship design and power generation in Star Wars.

In general, most of the numbers that I present here are induced from data presented by Brian Young in his Turbolaser Commentaries.  I’ve assumed the Star Destroyer (and similarly classed ships) to be a baseline for median power generation technology, as they are a mass-produced technology and the books and movies present examples both more and less powerful with consistency.  Another point of clarification: the numbers I present are “big order of magnitude” numbers.  Densities are calculated based on order of magnitude power and order of magnitude volumes, which in turn are calculated from order of magnitude data or length, etc.

A Star Destroyer maintains a power density on the order of petawatts per cubic meter.  For comparison: Star Trek: The Next Generation presents the Enterprise-D around gigawatts per cubic meter, modern tanks and sports cars generate a few kilowatts per cubic meter, and the average human body generates about 27 watts per cubic meter. Continue reading

AI Assist

Download Audio

If the AI is better at this game than I am, why don’t I just let the AI play on my team? Oh, right, because it’s supposed to be “fun” to do this myself. The thing is, I’d love to delegate stuff to the computer. Maybe not everything, but, well, here are some examples.

Minecraft: All about mining and crafting right? Okay, so I know the computer can do pathfinding (the mobs do it) so why can’t I just tell my character to “go home”? I know the computer can do combat too, so I should be able to tell my character to “go fight”. This is super easy stuff, why doesn’t the game help me out? The AI exists, all I want is access to it. I want my character to be at least as smart as the zombies. But no, it’s all manual. Continue reading

An Ode to The Glorious

Download Audio

Some credits up front, most of the ideas that Fledgeling was drawn from are not my own. Many have been drawn from other computer games, or things other people have said. Mostly, however, the ideas have come from God’s creation (which is to say, from experience of the world) or from God’s word (which is to say, the Bible). In recognition, here’s a short psalm.

in his name, from the seat of his personality
for what you have known, the things proceeding from your understanding
right things, the firm knowledge
give glory to the origin, ascribe to Him the just Honor!
when doubt assails you, when your hope grows dim
then make your foundations firm, search out the sound basis
with Him is the right way, in Him can be found the sure path
though you may have good ideas, your reasoning understandable and convincing
all good things come from His hand, the free gifts flow without bounds
take from the Glorious One, receive the good things without shame
rejoice in firmness and health, and make good use of your powers
without Him we are nothing, lacking the Source all streams dry up
continue in His mercies, make sport in the good paths

It doesn’t do Him justice, but I hope it does Him proud. Thanks to all of you who have helped through the years. I really appreciate it.

What does this have to do with Fledgeling? Well, the philosophy of the designer works its way into everything that a game is. It affects what is put in and (more subtle) what is left out. I believe that God made the world good, and understandable. It’s going to come out in anything I do, and especially an everything-sim like Fledgeling. If you want to make a nihilistic ode to destruction, go visit some other series. I serve a different spirit, one that has blessed creation.

Computer Toys

Aside

Download Audio

I’m going to say up front that I can be sloppy with terminology. I re-define words mid-argument and occasionally use words as their antonyms. It should therefore come to no surprise that, on a blog almost entirely focused on computer games, I use the term “computer games” with a bit of latitude.

There is a real and useful distinction between games and toys, and I intend to ignore it. The term “game” is used to denote an activity with a clear win condition. A toy is just something you play with. One could hardly call Minecraft a game; It’s more of a toy really. Yet, no one refers to Minecraft as a “computer toy”. That makes it sound like a pink plastic fake laptop that plays children’s songs when you press any one of the six oversize keys. But, “computer toys” (like Minecraft) are important, and employ many of the same design principles as games. So, throughout this website, I’ll be using the term “game” in all its permutations (computer game, game design, etc) to refer both to computerized games, and computerized toys.

Please forgive me.

Press Start to Begin

Download Audio

Greetings fellow people-persons!

Here is where you can start learning about what Fledgeling is, and how it has driven me partially crazy. I trust these ideas about what games (and computer games in particular) can be (and will become) shall so astound you that you will become a bit crazy as well. Don’t be afraid, “crazy” is what normal people call genius before they understand it. Of course, it’s also what you call someone who has lost touch with reality. You’ll have to judge between those yourself (you always do).

Okay, what am I talking about? I’m talking about the Metaverse, the Ultimate Game, the first Simulated Intelligence. Too abstract? Well, browse some of our articles. There are articles about games, and philosophy, and even a few about Fledgeling itself. If you don’t find what you are looking for, leave comments right here on this post. I’ll be happy to write new articles explaining things. Totally confused? Questions are good too. There’s just so much to say!

Enjoy!

Dudecon AKA Ziggy

Getting Started

Download audio

Project Fledgeling has a blog!  I’m super excited to see this project get off the ground, and to be working with dudecon, a real visionary. -drukargin

Hey Everyone! Dudecon here! Here’s where we get started telling you how to get started thinking about what we’re thinking about, about the new game we’re thinking about.

Woah, that got complicated fast.

Um, maybe this overview will help. Or maybe looking at the stars and the cells in your body and pondering how they are connected. How they are similar, and different. Perhaps thinking about thinking, or figuring out how a string of ants and a road look the same, but act very differently.

Take your time. We’ll be here.