Story Engine first update 2021/04/21

I’ve been working on this Story Engine in stealth mode for several years now. As it turns out, it’s much harder than writing a 3D graphics engine. Basically, a graphics engine has a solid foundation of math and science that is stable for one to build structure on top of. Instead, a story engine has a spongy muddy foundation— because story and narrative content renders completely inside the player’s mind and not on the screen. Thus, you can’t easily capture it with science and math. Whereas you can compare CG rendering techniques to the actual real-life lighting and immediately identify the flaws to improve your rendering algorithms, there is no easy way to discover your flaws in a story engine in order to improve it.

This makes building an interactive narrative engine from scratch a very risky affair. You have to finish your whole game before you can see the flaws and mistakes, whereas in rendering algorithms you can look at particular rendering issues one at a time in isolation (for example, sub-surface scattering) and improve them independently and orthogonally of other rendering techniques. A narrative engine is judged as a whole by its finished content rather than the sum of its parts, so it’s difficult to build it piecemeal by perfecting independent chunks of it piece by piece. 3D render engines have strict separation of concerns throughout its entirety. A story engine is the opposite of that with everything dependent upon everything else by virtue of its very nature as a human artform. That makes it quite a challenge to build it coming from the experience I have had building 3D engines.

A graphics engine has pretty intuitive criteria for judging something to be “correct” or “incorrect” in terms of whether the code is working or not. You simply look at the thing on the screen and ask yourself if it basically does what you intend it to do. Sure, basic lighting techniques aren’t close to realistic lighting if you look with a trained eye. However, at a certain point, any rendering technique gets close enough and you’ll know fairly well that it will work for a large proportion of typical cases.

If it doesn’t look good enough, you can just keep going as you compare it to actual real lighting. You stop because you get diminishing returns for the amount of work required to improve how good it looks. And that will also be a function of what your competitors have put into the market and what the hardware is capable of. After a certain threshold in 3D rendering, most consumers will not notice the difference unless it’s rendering human characters too close to the edge of the uncanny valley. At that point you stop with realistic rendering styles and choose more abstract or cartoony styles and your art direction matters more than your render engine.

In the history of automobile manufacturing, this is akin to the point where top speed had become no longer the chief selling point of automobiles. Instead of top speed, the main selling points became such things as luxury and safety and aesthetics and other more “human” concerns. We are at this juncture in games, as well. However, AAA titles still must have outstanding rendering in the same way that for a while top speeds for automobiles were no longer a strong selling point, yet were still a prerequisite for selling cars for a long time even after driving 120 mph was not really something that anyone wanted to do or actually cared about to buy in a car.

Despite these challenges with writing the story engine, I believe that I have found some structural commonalities in interactive narrative design that can translate into a competitive edge over competitors’ offerings in the arena of interactive narrative design. I have, to the best of my ability, identified the areas in which my 3D graphics engine background allows me to recognize structure and patterns in narrative designs that can translate to a unique product that differentiates itself by virtue of the competitors not being able to politically nor financially afford the kind of random walk style of learn-as-you-go engine development that I can afford myself. This style of development for an engine is expensive and scheduleless that for a traditional studio is a nightmare to budget and staff. This is one small area where an indie one-person shop such as myself has a very minor advantage.

Because traditional studios can’t afford to wander and explore and to trust their people to come to some sort of profitable conclusion, what I am making will seem to come out of the nowhere from a nobody— namely me. However, what big commercial studios don’t understand is that I personally have always been overlooked by them throughout my career. Yet during all that time, I have been constantly honing and refining my skills as a game developer and programmer. So it is not entirely out of the blue, but has been a long time coming to fruition. I feel like I have reached a mastery of my craft and I am enjoying every day adding more capabilities to the story engine that still surprise and delight me.

Even so, I am still not ready to show anything. I keep getting closer and closer. But my instinct for what is a good cost-benefit slows me down because when I random walk into a feature that I think will save time or improve quality down the line, I work on it which halts my progress towards a showable demo. But it is progress in a different way. It’s very grindy, but I cannot ask (nor pay) anyone to do this grind for me. Only I know what the right balance of a good cost-benefit is to the features I’m adding. I have a pretty good vision and feel for the product now. At the beginning of this project, my scope was too wide and constantly expanding— because I am too curious about everything and all the possibilities are too intriguing to abandon for the sake of progress. I have a pretty good handle on the scope now, but alas I am still so easily distracted by cool features that I think will be useful later on down the line that it seems like I’m not moving forward.

As I do move forward, I must refactor and retrofit previous quick hacks to accommodate the more solid systems I put in. This seems like negative progress since the game content doesn’t make progress when I work on system features rather than adding content. But adding content on top of a shaky system just feels wrong, so when I come to a point where I find myself adding content on top of a system that could be improved, I can’t help but pause the adding of content to work on the system until it has a better chance of being production-ready.

This is quite a lot of info for a first update on the story engine. However, it is long overdue. I am not even a free range programmer anymore. I am tied to a place that allows me to spend more quality programming time on this thing now.

But I don’t like to talk or write about things until it’s done. I’ve had a history of people not believing me. So showing a finished concrete thing that demonstrates exactly what’s in a very abstract form in my head is how I’ve been able to communicate my ideas to other people. I’ve done this several times with 3D render engines. I believe that this story engine is the same kind of thing. It’s not really enough to talk about it in the abstract. It has to exist and function and be capable of doing things that you don’t see in other interactive narrative systems to be worthwhile to talk about.

Also, my personal problem is that I have way too many ideas that it distracts me from execution. So, it’s quite common to hear some crazy ideas from me that I’ll never get around to completing. And I’m kind of terrible at completing things because in some ways my imagination is too good— such that it makes them so concrete and real to me, that I lose interest in finishing it and making it real for everyone else besides me.

I seem to feel that if I can imagine it, it’s good enough because it’s real to me. Well, part of the exciting thing for me now is that as it becomes more and more real, I begin to discover more and more capability and freedom of expression within the system that I could not envision until I got to the point after I made it exist. So once it becomes real, it actually engenders more ideas and more imagination and that’s what keeps me going. That’s a key dynamo to keep me self-motivated that I had forgotten had occurred in the late development stages of my 3D engines. And that’s why I make this update now rather than after I’ve finished the thing which was the original plan. I have more confidence that I’m not going to give this up as some fanciful fever dream as I have with so many other ideas that have wandered into my brain and trickled out to die somewhere. I never ever had confidence that I would finish anything. It’s kind of a wonder that I finished any of those aforementioned 3D engines now that I have had a long couple of years trying to find self-motivation. But now I have discovered the secret— that late in development, this threshold can be crossed where I reach the turbo or dynamo stage where there’s enough solidity to all of the previous work that you can stand on top of the edifice of it all and see much farther out into the landscape and be excited about all of that unexplored territory to conquer.

So, I’m just grinding away at it, making it more and more real. I have gotten close to reaching my secondary goal which is to make the story engine so pleasant to create content in that I’m mostly writing content (which I kind of loathe doing) rather than writing systems. I think once I reach that point, it becomes worthwhile to show off to actual content creators who do this sort of thing for a living and ask them what I could do to really impress them and make their content creation more enjoyable. But first, I have to get to the point where I am enjoying writing content myself. I think once I reach that critical threshold, then I can begin considering polishing it up for other people to lay their eyes on it.

And so ends update 1. I don’t think I’ll make many more updates— I have lots more grinding to do. This pretty much sums up where I’ve been the last couple of years. I’m still going kind of slow, but I’m still going and haven’t gotten bored which I think is pretty amazing given my easily distracted brain.

-Ming
April 21, 2021

Featured

How I dropped Out of Society Into a Fourth Social Class

There are three social classes in America. I have chosen to be in none of them. This is not a choice normally available to people. Let me explain a little bit why I dropped out and how I’m basically classless now.

First, let me define the three classes.

There is a worker class who produces material goods. Then, secondly, there is a capitalist class who creates an organization to collect the surplus value of the workers after paying the workers. The market decides what the workers get paid. In America, we rely on the market to balance many things, and worker wages is one of these things. However, when only a single class (the capitalist class) competes in the market for workers, it is difficult for the workers to receive full value for the product of their work whose labor surplus is inevitably skimmed for profit by the capitalist class. What capitalists are competing for in “the market” is this labor surplus. However, competition for this surplus never causes the surplus to go to zero, otherwise, the capitalist has no incentive to start the company at all. Thus, by the very nature of the system of capitalism, it is guaranteed that the worker class can never receive the full total of their labors, for by nature, the capitalist must be incentivized by equity in order to risk his capital to receive the surplus.
The worker’s only choice is which capitalist they choose to skim their profits. Occasionally, workers may band together in a start-up company in hopes that their skills and labor allow them to become elevated to the capitalist class themselves. Ironically, such a gamble requires selling a significant share of their labor to the capitalist class in the form of equity to angel investors, venture capitalists, or Wall Street investors.

Aside from the worker class and the capitalist class, there is one other class that I am not a part of. That class is the incarcerated class. That is the class you fall into by design if you choose not to be a worker for the capitalist class. As a person who has chosen not to be in any of those three classes, I am constantly in danger of falling into the incarcerated class due the laws which rig it that way.

An example of a law which would put me into the incarcerated class is the law which bans sleeping in vehicles. Although you can eat in your vehicle or do just about anything else in your vehicle, many cities have outlawed sleeping in your vehicle because they don’t want homeless people living in their cars.

Our society purposely doesn’t want homeless people because they fall into a non-category of peoples who have rejected the rat-race of being a worker who has her surplus value skimmed by profiteering capitalists. Once you have decided you don’t need a home, then you certainly don’t need a job and thus you don’t need to enter the job market for various capitalists to choose how to exploit you. This is very bad for a society of capitalists. So, it is discouraged. And one way it is discouraged is to arrest you and fine you so that you remain trapped in a cycle of poverty and incarceration so that you will want to join the worker class to escape your spiraling predicament.

I have to be very careful while skirting the fringes of society not to accidentally fall into the incarcerated class. Once one tendril of poverty has grabbed you, it won’t let go until you are trapped in the incarcerated class. So far, I have managed to avoid it with previous wealth accumulated when I was a worker and by continually disguising myself as a “decent” worker class citizen.

Worker class people are afforded certain privileges in society that we take for granted, and I know how to act and present myself as a worker having been one myself for decades. Fortunately, many well-to-do technologists look poverty-stricken and disheveled; so a crazy homeless van dweller, a wealthy start-up app creator, and a math professor at Berkeley are indistinguishable to a police officer.
It is this guise of normalcy which affords my safety in society. It is not the laws which protect me. It is the disheveled appearance of my fellow Silicon Valley workers which affords me the most security.

Let me make this clear. It is not the laws which make me safe from imprisonment and harassment from police. It is my old CodeWarrior and OpenGL t-shirts from 10 years ago that allow me a disguise to slip past laws intended for homeless people. These old clothes are mostly still stored in my storage area. Ten years ago, I could not have known that they would serve me as a uniform of the worker class that I dropped out of and be as valuable as a literal license to participate in society.

There have been many times I have been told to move or threatened with a ticket or various anti-homeless measures that I have been able to thwart by convincing the police that I was “programming” or “visiting someone” in my obviously expensive van and then hastily moving away. I have had the privilege of select enforcement of the law because of the privilege or illusion of wealth, I am not ashamed to admit. I am truly sorry for the treatment that less wealthy citizens would receive due to these laws, but that is not something I am prepared to go to jail for and fight a civil liberties battle over at this point. Such a move would certainly put me into the incarceration class for good. And these laws will remain precisely because no one who is ever put into that legal position could afford to fight those laws.

One of the “solutions” to the homeless problem is to put people to work. I see this as problematic for various reasons. For one, some people may have chosen to drop out of the rigged game of workers and capitalists. I know that we in the worker class believe in the stigma of being homeless as being mentally ill or having substance abuse problems. I don’t know enough about the topic to determine whether this stigma is one of causation or correlation or whether the stigma serves more as a warning to the worker class to not become homeless and to keep maintaining a steady pace on the treadmill for their capitalist of choice.

For me, I tried to get out of the worker class by starting my own company and joining many various start ups. I didn’t quite succeed. I’m not sure I have what it takes to be a capitalist anyway. So, now, I’m adrift neither here nor there.

What I want to do is just create stories and experiences for people to enjoy using the skills that I’ve learned over a couple of decades. I think I can do that without spiraling into the incarcerated class.
But I’ve also chosen to do that without attempting to join the capitalist class or to beg them for help. This is not really a rational thing to do because what I would like to do requires resources beyond what I can muster myself.

And so, things are going slow. That’s okay. I don’t care about deadlines, and I don’t care about milestones, and I don’t care about making money. I’ll let things sort out on its own. Maybe I’ll make money, but I’m certainly not counting on it. And if I don’t count on it, I think I can properly enjoy the process of creating. I think the journey of creation is what matters to me now. Once I strip away all of the stress of starting a company that has to balance income with expenses and has to hit a market window and has to choose the right people, choose the right platform, and choose the right moment, I can truly enjoy what I always wanted to do when I first played Space Invaders in 1977 as a 7 year-old kid— to make his own game.

I only need to get back a fraction of the value of work that I put into my own game to make it worth my while. After all, I’m only getting paid a fraction of my value by any capitalist that’s making a profit anyway. So, for now, I’m not going to worry about what that fraction is going to be. I must accept that that fraction is exactly zero and go on doing what I want to do anyway. It’s not worth worrying about at this point. I’m too far from completion on any of the projects to even think that far ahead anyway.

And so I’m hoping there is a fourth social class in America that joins me. Perhaps there will be enough wealth from an automated and nearly workerless society that a fourth social class can emerge and can simply create art, literature, and entertainment while sustaining themselves with occasional gifts or purchases from the worker and capitalist classes.

This class, like me, will leverage the skills gained from years in the worker class to create novel things that could never be commercially successful enough for the capitalist class to want to exploit.

There are many small things too specific and niche and weird to ever be mass market and thus never be commercially viable to a capitalist class. Such things can be created by a mature post-worker artisan class simply because artisans love to create things and such crafts were not allowed to even be attempted when under the yoke of a capitalist.

And so that’s what I’m going to be doing— sometimes. I hope I can succeed, not so much to make money, but as to serve as an example to others that it is possible to be done. If freedom affords you this luxury, I hope you can take it as I have. I don’t think you have to be brave or anything to do this.

You have to realize that being in the worker class is merely a more comfy kind of incarcerated class. I think Fight Club touched on this a little bit. But you don’t have to be violent or disruptive to break free of the seeming stranglehold of the worker class. The prison is an illusion.

You can live just fine and be happy with less. You can be happy with your relationships without your things. It’s a matter of elevating your most important values to the top of the priority list and then shedding the rest. Once you’re accustomed to not dealing with the rest anyway, it becomes easy to focus on only the necessities.

It’s simpler and less complicated and more fun to focus only on what matters to you, even if it’s trivial or not understood by others. In fact, not being understood by others is what makes it special and enjoyable to you and only you. People might ask, “won’t you get tired of it?” I don’t think you can ever get tired of being a kid every day. Besides, if you miss any aspects of worker society, you can always put on a uniform and blend in and experience a taste every now and again.

Now, granted, I have built myself a bit of a cushion in finances in order to do this, and not everyone will have the same flexibility. But I think the fundamental concept is sound. We are really much more wealthy and capable than we think we are. We’re under an illusion that running out of money will result in homelessness or mental illness or substance abuse as if all of the latter were one thing.

I’m amazed at people who grow up poor but wind up having a huge number of kids anyway. Well, if they can do , then anybody who works in tech in Silicon Valley can also. People working tech jobs in Silicon Valley have a tremendous amount of wealth compared to people in other parts of the United States and other parts of the world. Yet, they’re always comparing themselves with each other and their neighbors which makes them feel poor.

So rather than bemoaning that you can’t buy a house in Silicon Valley, be grateful that you can do things that many people in the world cannot even begin to comprehend, like spending $5 for a cup of coffee and then not even finishing it.

Because wealth is relative like this, I have chosen to focus on how wealthy I am compared to the rest of America even though I’m not working, and to change my perspective on life to appreciate the luxuries that that wealth affords me. And what it really affords me is time. I can have time to do the things that I want to do without worrying about spiraling down into the incarcerated class. I see the danger in that for those who are closer to poverty. Perhaps I am skirting a bit close to the edge of poverty, but I have chosen to not be afraid of it and to be confident in my ability to stay out of the trap of poverty.

So, maybe for this part, you do have to be a little brave. If you or your family has fought hard to come out of poverty, I can see how this part would be scary. However, if you’ve made it into the worker class and saved up some money, have confidence in yourself that you can re-enter the worker class at some level if you so choose. It may be at a lower level than you were accustomed to, but just accept that that was part of the cost for chasing your dreams and experiencing real freedom in your life.

I understand. You don’t want to lose your place on the ladder. You’ve worked very hard to get to that rung and you don’t want to lose it, so you grip tightly. I get that. But don’t cling to the ladder just for the sake of the ladder’s position itself. Remember that you got to that rung for some reason. What was that reason? Do you still remember? You had something else you wanted to do and climbing that ladder was the way to achieve it. It’s not too late to try to achieve it. Even though you haven’t reached the top of the ladder, maybe you’ve reached a high enough rung that you can simply let go and try and achieve the original goal you had in mind. Climbing the ladder certainly wasn’t your only goal until you got onto the first rung, right? The ladder was meant to lead somewhere. Maybe you don’t need to climb the rest of the ladder to get there right now. That’s what is worth considering.

 

On the Nature of Freedom

FREEDOM!! We all want it… whatever it is. People in movies will die for it. So it must be pretty good. No one dies for CARAMEL ICE CREAM, though maybe they should.

I scream for ice cream, but maybe it’s not worth dying for.

But freedom is.

Why?

Have you wondered what freedom is? Well, I have thought about it a little bit after being a nomad. Nomading around means finding a new place to stay every night. Every night, I have to make a decision. I have to make a choice. What are the risks staying here? How much will it cost me to move from here to where I want to go tomorrow? Will I need to visit my storage area, PO box, my friends, or a gym where I can take a shower? Is it legal to stay here? Will the police knock on my van? Will taggers graffiti up the van while I’m asleep?

I weigh up the pros and cons and make a decision about where to stay… mostly a different place every night. Those of you who stay in the same place every night don’t have to make this decision. Those of you who have a mortgage or rent have made a decision to remove this choice from your every day life. For you non-nomads, this one long-term decision to rent or buy a house is safe and free of consequences. There are no variables in cost, safety, access to wifi or showers, or many numerous considerations that you wouldn’t want to be bothered with.

But there is a subtle difference of thinking when you do this. When I make a choice, I’m aware of the consequences. I’m aware of when I’m in a high crime area. I’m aware of when I’ve commuted kinda far from my friends. I’m aware of many kinds of risks of having my entire home with me and possibly losing it at any time to an accident or to crime. I’ve already damaged the van a few times in my travels, but I accept that is a consequence and cost to this kind of lifestyle. I accept the consequences because I made a conscious choice which weighed those risks.

I find this in contrast to my pre-nomadic lifestyle which removed choice and decision from my life so that I could follow a pattern. A lot of self-help books and blogs write about success. And a lot of those writings suggest following a routine in order to be more efficient. Einstein and Steve Jobs famously had a closet full of the same shirt so that they wouldn’t have to think about what to wear each day. Removing this decision, this choice, allowed a little more time each day for their other activities. Every day they wear the same shirt, they have made an unconscious choice to do so. It’s still a choice. They can still choose a different shirt on any day. But mostly, they don’t because they no longer consider it a choice that can be made.

But how many of you would go as far as to have only one outfit? How many of you enjoy the small choice of something different to wear each day. How many of you enjoy eliciting compliments or showing off your personal style? That small amount of choice is freedom. And what that freedom grants us is a little bit of joy. A little bit of human connection every day. Relinquishing that freedom and sending it into the unconscious means you’re giving up on a small amount of joy in order to be efficient!

Now, what I’ve discovered after nomading around is that I had to stop many patterns of living a typical silicon valley lifestyle that had taken away the joy that I never knew existed underneath! Today, I feel more connected, present, and aware. I have far fewer patterns and thus am far less robotic. And less robotic means more human.

Freedom. It’s worth dying for because it is the same as choice. And choice is the same as joy and happiness.

But you don’t have to die for it. We all are privileged enough to live in a time and place that has an enormous capacity for personal freedom. But we constrain ourselves from ever coming close to realizing the potential freedom that our lives grant us. We are constrained by our own patterns in order to make our lives efficient and regimented and structured and safe.

But I challenge you to break those patterns every so often. Try the opposite of all of the above: Less efficient, less regimented, less structured, less safe. Going on vacation is a good break in the pattern. Make conscious choices about things that have seemingly already been decided. If you find yourself saying, “I keep doing this, but I’m not even sure I like it,” then stop. I found that was easy with video games. They have an addictive nature. But once I stopped, I didn’t feel the need to start again.

Ask yourself what percentage of your life could be reproduced by a computer program? Are you that consistent that you are running a loop that is the same from day to day? If the percentage of routine is how much of a robot you are, then the remaining percentage of non-routine is how human you are. Now, there is a purpose to the robotic regimented side of us, which is to buy more time for us when we are doing the human things in life. But, it’s easy for us to get carried away and take too much joy away from our day-to-day lives by regimenting it so strictly.

Einstein and Steve Jobs were each free to choose not to wear that same shirt on each day. Mostly, they chose not to exercise that particular freedom. What particular freedom are you choosing not to exercise today?