I am almost 26 years old this year and I have been a dedicated computer user for 19 years. I have been charmed and fascinated by the fact that I can move a plastic, rodent-like thing and make an impact on people. I recall the first language I tried to learn is C++ but I ended up drawn to C# and .Net for writing Windows Phone App. The word “instantiate” feels magical to me, for I have created something virtually yet I can see it and make changes to it, in my mind and in the computer’s memory. Since I wrote my first line of code, I know one thing - if I messed up my code, the code won’t work. Fix it, and try again.
That, my friend, is what this technology world has always meant to me. This is a world where you have to prove your knowledge. This is a world where we only have two answers: right or wrong. If computer says it is wrong, either you are wrong or something else is wrong. That is also what motivated me to study and work everyday, as my success proves my knowledge. My idol has been people like John Carmack who knows how to fast inverse square root with a magic number and used it towards something innovative. You know what I mean now. The finite, discrete outcome from what you choose to input to computer, from what you have learned, is what keeps me forward.
Fast forward to 2017, one year before I graduated high school, we all know what happened - a new paper was published, named “Attention is All You Need”. It laid foundation for GPT: Generative Pre-Trained Transformer. Of course I didn’t know about this paper at the time, but now almost everyone in the computer industry can recite you how GPT works now: you buy a bunch of GPU card, get a big chunk of training data, apply the contextualization algorithm from the paper for self-attention and signal transformations, and bam you have your LLM now (this is not for educational purpose). When GPT2.0 was released in 2019, I saw a lot of compliments from social media, so I did try on Huggingface. I still vividly recall that day. I was in my freshman writing class, distracted, and I put in the writing assignment prompt into the prompt. The thing it returned, was at best at middle school level, so I was not impressed.
My reflection on what LLM has evolved to today, is that I lacked the ability to predict the worst when not having the expertise to examine the issue thoroughly. I was naive and irrationally optimistic towards the evoluation of the LLM technology, since GPT 3/ChatGPT or other models at the time had their obvious flaws - hallucination, limited context window, etc. I didn’t buy what those industry leaders had to say since they would say anything to keep their stock price afloat. Three years after ChatGPT was introduced, we have several models that don’t hallucinate after 200k tokens. Did I say 200k tokens? Yeh their context window is now at 400k tokens now (context window is how much context/words the model can ingest in for the conversation; 400k tokens is ~300k words). And also, we now know how to delegate the models via natural languages. Models can write code within 10sec, debug it and run it; Models can write government documents within 10sec, critique it and revise it; Models can call your restaurants for reservations. In one way, now we have a technology that can literally does anything as long as it can be done on computer. I didn’t see this coming so soon.
US Tech industry is having its storm right now, as tech giants slash their employee numbers. They say it is AI innovation now so they can have less people to work on the same stuff. I call that bullshit for now, as we all know how companies like Oracle is having a smaller wallet as they invest in building more data centers to feed the AI. But we have to see that once we have a better model than today’s, it will know how to architect new applications and code it. And it will be a lot cheaper than hire a whole team. Now, being pessimistic since I am not an AI researcher (learned from my lesson), I think scaling law is still in effect. Give companies like Anthropic, OpenAI or Deepseek more computational power and time, they will have a more powerful and knowledgeable model with more parameters. So in the end, we are all going to be out of work. With robotics evolving, I would say no one’s job, even for plumber Mike’s job, is secure.
I have explained how ChatGPT works to my friends and parents, who know less about computer: it takes in your prompt, and generate a probability distribution of what to say next, sample it and then choose the highest probable word. So practically we have no control over what it will say back to you, although with the same prompt. It is not the technology I prepared myself to, I embarrassingly admit. With those LLM being the core of all the things that can substitute, you can call it agent, skill, or whatever, we no longer know what work it will create. But we know it is highly probable that it will be better than what a human can generate. How can we calculate our future’s probability, for individual and for society?
The fallen leaves tell a story.
In our home, across the fog, in the Lands Between.
Our seed will look back upon us and recall, An Age of Probability
朋友,这就是科技世界对我一直以来的意义:这是一个你必须证明自己懂的世界;这是一个只有两种答案的世界——对或错。计算机说你错了,要么就是你错了,要么就是别的地方出了问题。也正因为如此,我才会每天学习、每天工作,因为我的成功能证明我学到的知识。我的偶像是像 John Carmack 那样的人:他知道如何用一个“魔法数字”去算出快速反平方根,并把它用在真正创新的东西上。你现在懂我在说什么了吧——你输入给计算机什么、你学到了什么,就会得到有限、离散的输出结果。正是这种确定性,让我一直向前。
时间快进到 2017 年,也就是我高中毕业前一年。现在我们都知道发生了什么——一篇新的论文发表了,名字叫《Attention is All You Need》(注意力就是你需要的全部)。它为 GPT(Generative Pre-Trained Transformer,生成式预训练 Transformer)奠定了基础。当然,那时候我并不知道这篇论文;但现在,几乎每个计算机行业的人都能给你背一遍 GPT 的工作原理:你买一堆 GPU 显卡,找一大块训练数据,用论文里的上下文化算法去做自注意力和信号变换,然后“啪”一下,你就有了自己的大语言模型(这段不做教学用途)。2019 年 GPT-2 发布时,我在社交媒体上看到很多夸赞,所以我也在 Hugging Face 上试了试。我到现在还清晰记得那一天:我在大一写作课上心不在焉,把写作作业的题目当作 prompt 输入进去。它返回的东西,顶多也就初中水平,我并不觉得惊艳。
Well it is 2026 already. If you take a look at my last post here, it was four years ago when I started my first job at Amazon. Welp, a lot has happened. I just got laid off, but I still feel lucky. Here is the pièce de résistance: I enjoyed my time at Amazon, but it started to feel less interesting and less learning for me. So I actually feel lucky to have Amazon pay me to switch jobs. Anyway, here are all the interesting bits I learned from my past 4 years without violating my NDA.
I joined Amazon back on Valentine’s day, 2022, and I was assigned to a team called Your Orders, which is mostly known for developing the order history page on Amazon.com (and all the other marketplaces around the world besides US). We also owned other pages like Order Details, mobile Product Owner Page. I vividly recall my first 1 on 1 with my manager before the start date, and I asked her what I should do to prepare myself for the role for it being the first actual tech industry experience for me. She said, well, reading Effective Java would be a good start. So I bought the book and read it. Three months after I joined, most of the changes I have made are on Perl-Mason. My knowledge on Perl was on the same level as my knowledge on developing quantum computers - close to none.
Why did my manager ask me to learn Java while we worked on Perl? It’s because Amazon is old. Jeff Bezos was working on a door panel in 1994 when Amazon started selling books online. When Amazon started selling other stuff than books around 1997, they created an architecture called Obidos which is a monolithic architecture for the whole website. Actually ‘architecture’ isn’t the right word, as it was basically a giant giant package. The engineers soon found the architecture hard to scale (ofc) so they started a new architecture called Gurupa, named after the Amazon river in Pará. This new architecture is written solely in Perl-Mason which I was too young to learn from school. BTW there is a lawsuit between Amazon and IRS which interestingly adds a lot of technical details about Gurupa. Check it out here.
So what changed? (Speculation (said confidently) as I didn’t talk to Amazon CTO or Bezos) Why do we need to use Java if Gurupa is already an improvement? Well, first of all, it is Perl. It makes you feel old when you look back on what you have written 3 months ago - you simply have to stare at it for a while before realizing what you did there; It’s utterly unreadable if author doesn’t like comment in code and has a bad variable naming habit. I spent hours looking through all the Perl files just to understand what that $s is and why it can call functions not defined in the package. Because of this, you can see how it would not be the teacher’s pet in colleges or online classes. Almost twenty years later, new engineers like me do not know how to read or write Perl. So here is the second point - Amazon cannot find low level engineers who can code Perl anymore. Oh-if I didn’t mention it, Gurupa is a monolithic architecture too. Bro Bezos replaced Monolith with another Monolith (but better, people can own their services packages now). Every deployment had to be coordinated weekly with people cross checking their changes, making sure they were not the one who blocks the whole company’s deployment.
Now you understand why a change was needed. Most my time I had with Amazon was trying to migrate that big old Perl stack off to Java and the projects derived from that goal. The migration was long overdue, as it should have finished before I joined Amazon. It was hard also - we are serving 30+ marketplaces over the world, while new marketplaces are launching. We had to ensure customers doesn’t notice the change, and we had to ensure we support all the things we have launched since 1995 while launching new features.
Anyway, during the first 3 years my effort was mostly in building the new Your Orders page. I was exposed to so many cool things at the same time it overwhelmed me for the first few months and I had serious imposter syndrome. Build system (brazil, you can ask ChatGPT what it is. It’s the best, the BEST building system I have ever used ever), native pipelines, code-based monitoring system, ticketing, federation system, codeless microservices, you name it.
I started my own project the second year I joined Amazon, trying to migrate the payment alert logics from Perl to Java. Essentially, previously we had this page central controller which calls a payment dependency and then replace the text in-place on the page, and we wanted to move away from that. In-place replacement on the page basically means you have to keep all the payment business logics in the page controller. Like this:
page.allPreparations();
alert = page.callPaymentDependencyAndTransformIntoPresentableAlert()
page.getAllContent()
if (alert) page.order.text.replaceWith(alert);
page.render()
And that’s bad. Having the business logics in our frontend service is already bad, not to mention we don’t own or know the busines logics. We are lucky that our services are already designed as tiered services, separating business logics, display logics from presentation logics, so we don’t have business logics in presentation layer; also we are lucky that our awesome team has just built a federation system to our services. Basically, federation system allows us to build a separate application solely for the purpose of sending display-ready page customization based on different use cases. So I scoped the work, talked to different teams, traverse through different payment methods (there are a lot of ways to pay for Amazon orders around the world; e.g. you can go to 711 to pay for your order in Japan) and solved those edge cases. An interesting thing was, the project was actually created before I joined but because of its ownership complexity and people moving around, it didn’t gain traction until I picked it up. I am giving myself a little trophy here. One thing to mention is Datapath (listen here to get more idea on the platform), which is a fast data access and data join platform. I dived into their codebase with one question in mind: how did they resolve the logic dependency with super fast latency? I can only say the code I have read are just pure brilliant.
I have more fun development stories to tell but I feel like I need to mention the operational side of things before dragging too long; so I will probably save the stories for the future. I cannot stress how lucky I feel jumping into a team who owns one of the most important pages on Amazon platform. It was a bless for a fresh graduate to touch services that have more than 30k+ transactions per second (PER SECOND!). My site here has 0.0005787 transaction per second. I learned how to design and implement distributed systems correctly so it won’t break under 3x the traffic during Black Friday. You would assume such teams get a lot of tickets, especially sev-2+s, but I actually only got paged twice during my last oncall and none during Black Friday. That’s the outcome from good design, good code, proper monitoring, and proactive incident prevention. I learned so much while not getting overwhelmed during oncall week, which is insane if you compare to other companies or teams (AWS, wink wink). But we do get customer service tickets though, and some of them are just… fun. I did resolve a ticket which claimed a customer was “having trouble seeing his orders when the Wifi is not connected”. Another classic one was “customer not being able to see the tracking of the order” and the phone was on Android Lollipop (released Nov 2014). Can’t do much for you bro except helping you find a newer phone on Amazon.
Looking back, I did feel the pressure increasing as I know more and more about the services, frameworks, and tools. Mostly because I now know how to improve them. I spent a significant amount of time last year streamlining my workflow, while improving our team’s workflow. I did launch a bunch of stuff last year, and if you see the “Ask about your purchases” pills on your Amazon app, that’s my work too. One day before the layoff, I had my last 1 on 1 with my manager. She told me I had a good performance standing among the team, and the next morning our whole team was just gone. I guess performance and luck don’t always intersect.
My God, In God We Trust
But we never really know what got discussed
Click boom! Then it happened
But no one else was in the room where it happened
It is almost a year since I wrote on this blog last time. The internship last summer turned out not to be great. I finished my undergrad degree. I moved twice.
There are so much to talk about right now with all the things I have been through and the totally different world. I will try to keep up the blog just as a new sport. I know there rarely is any viewer and that is actually a relief for me. If no one is reading, I can express freely.
On the tech side, I pinned most fintech companies on my blacklist now. I have been asked many times by different fintech companies about possible jobs and I politely refused or ghosted them (sorry). I am not against money technology, I really don’t. I really wish I can make something that makes me money directly. It’s just my past experience as a Fintech intern does not call to me as a tech zealot. Developers or other tech-related jobs are just the backups to the sales, and all the dirty work fell down to them, and that is not what I anticipated. I had many conversations with the CTO of my past company, and while I do agree customers should be focused first (I work at Amazon now and “customer obsession” is the phrase I hear everyday) I don’t believe customer obsession equals to crappy tech works. Tight deadlines do not equal to non-documentation and maaaaaasive messy codebase setup. No. It’s not a way to maintain future business and hell you will see more and more developers reject working on such codebase. In Chinese there is a lingo for such codebases: 屎堆, meaning shitpile. No one wants to dig the legacy shitpile, so we just keep shitting on it until someone is required to hold his breath and go in dirty. We just hope we are not the ones forced to stain ourselves.
I have started at Amazon for three weeks now and so far it’s good. It’s better than I thought because of all the Blind posts I read before I join (I have mixed feeling about the PIP policy), but it is not as depressing as those victims stated (survivorship bias?). My manager is kind and helpful and so is my onboarding buddy. There is many internal tools and lingos and they make me confuse from time to time but at least I am learning. I used to disagree about the software engineering being a MS major, but now I understand there can be many different little things to learn. That’s some insight one can never learn from school I guess.
I don’t really want to talk more about my life in this post since I am listing its theme to tech. So that’s about it I guess, I promise I will write more often.
It has been so long since I last updated my site. A lot of stuff is changing.
For Cachecash, we are rewriting the codebase with python now. It will not run as fast as golang (of course) but for the sake of readability, we have to use a more intuitive language at this moment with better comments and documentations. A lot of structures have to change because of the lack of channel and thread support in python, but we will figure it out once we have some time.
BTW, since I am graduating next semester, I surprisingly found myself not so hateful towards school now. It’s amazing. Please don’t change me back in the next two weeks.
I am not doing the todo list project now because I ran into Notion. I use it for everything now and I am more than happy about it. I made my first build of my own todo list and the moment I learned how to use Notion I literally cried for a second. It is more than my expectations. Good job.
Oh yeh I was recruited to be the SWE intern at MarketAxess. It’s a fintech company and I really want to try it out. I have been learning finance courses for two years now and frankly they bored me hard. Only the mathematical models are interesting like GARCH and so on. Can’t wait to apply my knowledge in Machine Learning and finance models to a trading program. I might open a gofundme project when that happens because my debit account won’t allow me to take the risk of market.
I have been thinking more stuff in social science than computer science. I was reading a book regarding the money flow in the world and for a quick second I thought capital inheritance should not be a thing. I was shocked by the thought because of its socialism core but it intrigued me to read more into capitalism and communism.
Anyway, life has been good. My cat has been taking care of me really well.
After reviewing my disappointing academic gain in this remote semester even though the grade is good, I decide to make something that I can have passion about. For the first time I decide to make an application that is cross-platform (I used middlewares like Electrons before but never really tried it on different platform) and useful for me.
For now, I think I am going to make a todo list that is suitable for me. The most convenient todo list I used before was microsoft todo, but there are more functionalities that I would like to have on my own and many existing functions I would like to cut off. For me, the items in the todo list does not need start/finish time, since I always urge to finish all the things on the list as soon as possible. Setting those things up actually wastes time. For now, I just want a list with item description that is short but enough for memorizing, and a status showing if it is done or not. If it is done, it automatically disappears, so I don’t have to delete them one by one in the list even though they are done (please microsoft why would I want to see the stuff I have done already).
I think for software like this simplicity is the key. It should be simple enough that users don’t have to waste ten minutes setting up stuff to do for next week. If you are done with an item, click on the button and boom it’s gone forever. Maybe I can add a counter somewhere just to tell myself how many things I have done today.
Anyway it should be a challenging thing to do since I have never developed something from the ground up totally by myself but I will see. It should be fun.
I also would like to talk about my work at BD but I don’t think it is a good time now so I will save it for future. Classes are fine, life is a bit boring 24h indoor. So good I guess.
I just finished my Machine Learning midterm, which was one of the most stressful midterms this semester, and it was surprisingly good.
I mean of course I made mistakes, like I totally forgot the gradient of the ridge function when performing a gradient descent (I thought it would just be the partial derivative when I was taking the test, but in fact I have done the reviewing on the subject the night before; so I guess my mind was just too anxious). But overall, I appreciate my effort and I believe I can get a good grade out of it.
The subject I want to talk about todayis about college and how I feel about it as a CS student. I have been thinking about this for some time now and I want to pout it out.
For starters, let me put my attitude here: I can live with the system, but I don’t like it. Especially when the tuition of these colleges are surging madly ($70k per year for four years and that’s without the living expenses. I can buy a HUGE house in the suburb and live probably a happy life with that money), students are forced to be driven by their future earning and student debt. And with the higher tuition, students are having greater expectation of what college diploma can do for them; but ironically, it cannot do much. The best opportunity for college students to have a somewhat great job is majoring in computer science. If you do, you might have a chance to catch a job in the big companies in silicon valley and repay your college debt in like five to six years. It’s crazy. Can you even imagine repaying your college tuition in five to six years? Too short for average people. When I was in high school, there were rumors about a certain teacher who still did not finish his college debt ten years after being a teacher. The time I heard about it, I laughed; and now I realized I was really immature. It’s just sad.
The CS major is a dilemma as well. After being admited as a CS student in NYU, I was really excited to meet others who have the same passion in computer with me, but I couldn’t find many. The most frequent reason I heard about why you go for CS was “it’s just good pay.” I do respect their decisions, but the reality does frustrate me. I just feel sorry for those who are putting pressure onto their shoulder when studying something they don’t really like. On the bright side though, there are people growing passion for this major and they progress fast. But overall, I do expect to meet someone who has similar experience as me, being a script kid in elementary school, trying jailbreak and hackintosh in middle school, etc. I guess I just havn’t met with all of my classmates yet.
Another thing about CS is the curriculum. There was a really BAD course that I HAD to take in my freshman year called “Intro to CS”. That course is a perfect reflection of what CS major has become in many universities in my opinion – a relentless machine that tries to spit out “programmers” to industry but fails for many people. The core idea of “Intro to CS” was to introduce the new CS students what the industry is like and what tools they use. I do like the theory of the course (we all gonna work someday right?), while it ignores the fact that programming for a product is nothing like studying CS in university; a lot more middlewares are used and the scope of “programming” is just too wide to reach for a single programmer. Ultimately, the course became a mixture of different software tryout every week and HTML coding. To be honest, from what I was told, most students are confused between VM and docker since they were introduced briefly in consecutive two lectures and I think one hour for each lecture is not enough for both students and professors to transfer knowledge about those two things. In the end, many students just go to office hours and follow TAs’ instructions to finish their homework. As soon as the professor realized we needed a focus on the course, he turned the course into a intro to web programming and finished the semester with it. I do not blame the professor for the course setting, he is a great professor in my Intro to OS class; it’s just there are too much gap between programming in academic and industry setting.
But the question comes: should the university adapt what the industry needs for undergraduate curriculum? With such high tuition, what is the goal of university now? At least the major is called “computer science” with “science” in it, shouldn’t the students study more science of CS than “this is what you do when you work for big corp”? Even if the university decides to suit students for job is better than preparing them for a scientific research route, how will it work for students without real engineering experience?
I have been through a rough week and while I have not finished my Machine Learning homework (I still have about two hours so I’m fine I think) I decide to write about what have happened since my last serious writing on this blog (which is a long long time ago).
I am having trouble executing my weekly plan right now because there are always something that would mess up my sleep timer. But thanks to COVID I can sleep during class time and use another time to watch the recording. Actually that makes my class easier in some ways, since I always find classes too slow and got bored really easily and now I can just speed the recording up.
Since March I have been spending time on a project named Cachecash (link in my about page if you are interested), and it was a hard time at first understanding anything at all. But reading the dissertation was fun, and now I work for no pay at a Indian start-up who uses the project’s code base. It would be my first official CS-related internship but I do not really feel the work tension, might because of the remote working thing or because of the start-up being in its early phases and only a few people are full-time employees. I am trying my best fitting my schedule in but I guess I still cannot make it up to what the company expected. They are ambitious, which is putting me under some stress. I like the job overall.
So this semester I am a TA (finally). It was kinda surprising that professor chose to reach out to me instead of other A students (about eight of them), but I know I deserve it. Overall that’s good and gosh that’s good pay too.
I am tutoring OS in Trio program now, and that’s fine. OS in my opinion is fairly easy, might due to my early history messing with different OS when I was about 12 and experiences in Hackintosh. Although I did not really understand much at that time, it helps.
I recently learned a word called “quarter-life crisis” and I think I am having one right now. As a junior, I can already see the end of my undergrad life while I have no sense where I should go after. Maybe MS or even PHD but gosh 5-7 years? It’s gonna kill me. I know I would regret straightly going into corporate world and there is no such thing as “go for a job then come back for higher degree” for me. I would definitely be stuck on the dollar sign and never let it go. Besides, even though I love computer science and I know many different fields that may interest me, still I can only select one once I choose to go to a grad school right? I don’t want to be the guy who spent two years learning how to fix pagers in 2000 (my father told me one of his friend did).
Peer pressure is high too when most of my friends are getting offer from FB, MS, Google, you name it. THe rest of them are getting into BSMS as well. I fucked up my freshman year or I would do BSMS as well. I know I would regret this for the rest of my life but there is no one to blame on. Ah geez every time I throw back I wanna throw up.
Ok. Tech thoughts:
After reading Robert Collins’ blog about his experience in Cachecash back when they were a start-up, I was little bit frustrated because of the speed issue they could not fix; I mean they were MIT scholars and they couldn’t do it, which putting me into little chance to fix it. But this comes to my mind yesterday:
So normally, according to Cachecash protocol, a client would have to brute force through the colocation puzzle to gain trust from publisher and cache, and that is the part using most resources, both computing and bandwidth. In order to get faster, Nicole from the Indian start-up BlockDeliver found out the easiest way is to make the chunk bigger. Understandable, when the data chunk is larger, the number of bundles needed is smaller, hence less transactions and transmissions will happen. Ok. Less chucks also means less colocation puzzle steps will be required to brute force through to get the solution. Like this:
"CAPNet ScreenShot"
But what if, let’s say theoretically, instead of looking for a simpler, less secure hashing algorithm to boost the speed, we let the publisher handle a part of the colocation puzzle. So instead of running between the chunks, we put a location puzzle in a single truck then return to the publisher a hash to the solution. In order to confirm every chunk is received, each chunk will be cut into different size between 1024 to 2048 bytes to ensure speed. The size cut will be a secret key only publisher know so if every chunk has returned the hash and all verified, publisher will determine if the size cut is the same, and then confirm the escrow to the cache.
But all those are just some random thoughts, I will look into it once I can.
I really like Davey Wreden’s work, and I wrote “The Stanley Parable: A Carnival of Anti-design and Fantastic Philosophy” seven months ago.
But after some time, I did not try his second game “The Beginner’s Guide” or even write a review, because I knew it would be a game that is hard to comment.
After William Pugh, the co-developer of The Stanley Parable, left the studio, the sense of humor in the studio seemed vanished with him, leaving The Beginner’s Guide fulfilled with Davey Wreden’s dull, repetitive, obscure and heavy emotion.
“The Game Without Player”
“The Beginner’s Guide” does not deconstruct the play element in the game because many kinds of “simulation games” have already done that. Instead, “The Beginner’s Guide” tries to catch the existence of “Player,” and the idea of anti-participation or the bigotry “Coda” expressed in the game.
So let’s start with Coda’s games.
Please think about a question first: Could games ever be “unplayful”? And can games have no players?
In every game design book, all seasoned designers are trying to tell you - “You should let “players” playtest your games, and improve the game with feedbacks continuously,” or “make games players love,” or “we should follow “Player-Centric Design” and making players interested in our games is our priority,” etc. This is also an inner paradox for media expressing themselves when thinking about “games as art” as a game designer.
Although Rembrandt’s “De Nachtwacht” is a product of a commercial order, thinking with the logic of modern art: “art is an expression and exaggeration of ego, so why should I care about players during the design process?”
“No art is meant to entertain others.”
Why should games have to be “playful”?
When games are transforming from an entertaining object into a way to build experience with the multimedia technology, they closely connect with modern art. And Coda’s game follows the logic of modern art, when his experience constructed may be more impressive and private than the installation art in modern art museums, because it should not be “view-only,” but with participation (there have been many attempts such as “The Static Speaks My Name,” “Gone in November,” and “Tale of Tales”)
“Playful” and “entertaining,” are like the perspective rule which has been limiting modern drawing for hundreds of years or the traditional Christian aesthetic standard, “is not or no longer the things that are inseparable in us.”
Coda’s work is not only “unjoyful,” but “unplayable.”
Coda’s work is closed. Programming has already locked in the rules. It is like a safe with designer’s notes inside, and shall never be opened again. During the production, Coda put his conversation with his ego, his loneliness, his craziness and fanatics behind the door you will never trespass. These are the “invisible things in work”, just like Picasso’s drafts before his final painting. They are work with solid content, but meant to be replaced. Or, they are never meant to be shown. What if the game only shows the players little part of the whole? You can never ask games to show you all the content, just like you can never totally figure out Shakespeare’s literature, or the meaning of this real world.
Robert McKee mentioned writers in the twentieth centuries, such as Virginia Woolf, James Joyce, and Samuel Beckett, who all emphasize the importance of “cutting the connections between artists and the outside reality, to further cut down the connection between artists and the majority of audiences.”
He reasoned Dadaism, Stream of Consciousness, Theatre of the Absurd and more as “a conceal of the artists’ private world; and the entrance of this world is controlled by the artists.”
Coda stands on the top of his work, watches the players indifferently like a cold sculpture. Players are not guests who need to be entertained and ingratiated, but passengers outside the show windows who would pass quickly and can only take a glance inside then leave. He inverts the relationship between players and designers in modern game design methodology.
He is like Nietzsche who reevaluate everything.
Coda is not a designer. Coda is God.
“A God Who Dies”
——-
Coda is not only the God for games. He is a God for himself.
He makes games for himself.
When one moves his motivation of making games from pleasing players to pleasing himself, his games are no longer games, but a diary he writes to himself just for locking down his memory. When he leaves his thoughts behind the door that will never open, he burns his memory to leave them in the past forever and hopes will never remember.
Coda’s presentation on his work is not only his portfolio but his growing memory, his notebook. The door puzzle which shows up many times, forms an organized factor in his games, just as himself saying goodbye to the past over and over again.
Only forgetting the past during the struggling present, can make him to the future.
已往之不谏,来者之可追(A Chinese poetic way to express the meaning of last sentence).
That reminds me of a theory of Micro Game shared by someone in AMAZE Indie Game Festival:
“Game production can be a way to try out and practice your design theory, or a way to your self-catharsis, or self-care, or your therapy, or your life snapshot, or even a way to communicate.”
“When Games become the real ‘art,’ its purpose directs to the producer himself.”
Charles Baudelaire thinks modern people can only use ascetic practices to make their own body, behaviors, feelings, emotions, even his existence, to be art. In his opinion, people as modern citizens should not explore themselves, looking for their mysteries or hidden truth, but “creating themselves.”
The modernization of art does not make people free themselves in their existences but force them to face the task, which is, to build themselves.
When making games becomes a lifestyle and game texts become one’s diary, players then can only be the friends who would never understand each other. The rules set the comfort zone of the producers, limiting those emotions that they don’t want, and are not willing to share.
Just as everyone who walks is lonely, his inner tiding emotions and thoughts are not for sharing. Because if they do so, they can be as ludicrous as putting themselves into a zoo, letting others watch and comment publicly.
“The Arrogator”
——-
So the narrator in the game “Davey Wreden” is not only a peeper, but an arrogator.
In the process of presentation, to facilitate players’s move, the protagonist “Davey Wreden” helps us a lot in exploring it. He helps us to modify Coda’s games, to make them “playable.” He makes the walls transparent to show us the hidden items, enter some rooms that are meant to be locked or open the jail that is supposed to be opened in one hour, and solves the puzzle which should take you one hour to think about - you can know the result instantly, instead of suffering from those tedious process.
At the end of the game, we even know he has modified the content, for example, adding light towers to emphasize the game’s meanings, organizing the work into chapters to show closer bonds between each of Coda’s work, improving the credibility of his words commenting on Coda’s work. If the producer Devid Wreden (himself, not the narrator) has made a game using only single piece of Coda’s work, it would be a very impressive User-Experience project, such as “stay in jail for one hour,” or “flying thoughts behind the door you can never open.”
But the most impressive resolution is:
Davey Wreden did not show his work using the logic of artwork. He connects these work by creating a narrator “Davey Wreden” who tries to interpret Coda’s work. The interpretation not only shows his thoughts and creativity in a low tier but also shows high-tier prudence by using interactions between the narrator, the arrogator and the game itself. And the thing makes the whole mechanics perfect is: the arrogator he creates, is “David Wreden”, himself.
He even gives a real email address in the game.
As a game which shows its “meta” element since the first voiceline, it easily confused the players using complex multilayer structure in meta-texts (the narrator’s lines), and implants the question of “Is the narrator misinterpreting these games?” into players’ mind after “tricking” players about commenting on the work. That is important.
Just like you who sit in front of the screen and read this article, you may say “oh so that’s what it is” after reading and close this web tab with satisfaction. But the way how texts can be understood is open. Neither you nor I, nor the writer has the absolute right to explain the work. We can only explain those “maybe” but not “it has to be.”
The sin of the narrator “Davey Wreden” is not his endeavor to interpret Coda’s work, but trying to replace every possibility with his absolute explanation. When he tries to characterize Coda to be “a Coda who is desirous of others’ understanding” even by modifying the game code to form a harmony between his interpretation and the work, he arrogates.
Understanding the producer by his work is the way of interpretation “Davey Wreden” (the narrator) tries to mislead us to. But it is also the way David Wreden tries to eliminate. That is the way which shatters the relationship between producers and their work. Interpreters look through the pinhole of games, states their definite explanation of games and the producers, and leaves no rest space but desperation to designers.
The end of interpretation should be the work. Not the producer.
Is Coda, the creator of all those games, even similar to the words “Davey Wreden” said? Does he really need others’ understanding, comments, or compliments? The compliments towards Davey Wreden’s interpretation makes Davey feels good, but what do those compliments and “understanding” mean to Coda?
The man who stands behind The Beginner’s Guide is the real David Wreden, the narrator “Davey Wreden,” and also the producer Coda. He is the narrator who creates The Stanley Parable. He smiles with his faint heart and his pain. His emotions and values are built based on others’ compliments.
He may want to cut the unbilical cord connecting him with his past, just like the door you must close before moving on; He may want to put down his burden, his fragile proud based on others’ comments. Those things may be the load which drags him from the future, or from himself. It cuts his putrid body like a scalpel, force him saying goodbye to his past.
He may want to be Coda, the man who has his admiration, the man who lives in his past and future.
Appendix I
——-
https://www.youtube.com/watch?v=4N6y6LEwsKc
Appendix II
——-
After the release of The Stanley Parable, Davey Wreden underwent a dramatic change in mind. He published these article when he got an award on 2013.
So I finished the comic, and read back over it, and thought to myself “There’s no way I can post this online.”
The point of the comic was purely just to clarify that financial and critical success does not simply make your insecurities go away. “If you were insecure about other peoples’ opinions of you and addicted to praise in order to feel good about yourself, the dirty truth is that there is no amount of praise you can receive that will make that insecurity goes away. What fire dies when you feed it?”
But if I go posting on the internet about how awful I felt receiving all these Game of the Year awards, no one is going to take that seriously. “Oh, yeah, we get it, real rough life you’ve got there. Sounds pretty miserable to be loved for your art. Maybe go cry about it into a pile of money?” And then of course I’m back in the problem I was trying so hard to avoid in the first place, where I’m stressing out about peoples’ opinions of me and forgetting simply to feel good about myself. I want to be able to like myself and my work, but it becomes SIGNIFICANTLY harder once people on the internet start asking you to feel ashamed of yourself. It’s really really hard to ignore.
So either I share this thing that is simply True, that is a representation of what I actually felt at this time, and risk being shamed for it, or I hide it away and continue to pretend that success means you never feel shitty about anything ever again in your life.
I’m going to post it here, but I also decided to write this preamble to contextualize it. If you do decide to read the comic, all I can ask is that you enter into it open-mindedly. You may not agree with or understand my feelings, but I guarantee you they are True, they are what I felt at that time. If you’ve read this and still think to yourself “oh come on, this guy can’t be serious, there’s no way that receiving game of the year awards would cause anyone to feel upset,” then I’d perhaps tell you that it’s unlikely that the rest of this post will convince you, and maybe now would be a good time to stop reading?
Obviously you get to do whatever you want, that’s how this creator/audience thing works, and no matter what happens I’ll be fine. But I want to stress that the weight I have carried is real and it is heavy. And despite my trepidation about posting this online, I really do want to share it with you. I want to be able to show you this weight, to put you in my head. I am compelled to. It is just in my blood. I have no other explanation. Thank you for joining me.
“Game of the Year”
——-
Basically here’s what happened: after the launch of Stanley Parable, I became a bit depressed. Largely this is because in those months, SO much attention was directed at the game and at me personally. And while I could not even begin to put into words how utterly grateful and astonished and humbled I am by the enormous response to Stanley Parable (all of you are the reason I can now devote my life to this kind of work), those months after launch were intensely intensely stressful.
People don’t just play your game and then shut up, they’ll come back to you in force and really let you know how it made them feel. The vast majority of the response to Stanley was extremely positive, some of it was also extremely negative. I had emails from people who told me I had forever changed the way they saw the world, emails from people who wanted me to know I was a spineless coward who should hate himself, emails from people asking for advice and for tech support and to look at their work and just talk about what they’d been up to, emails from fans and journalists asking over and over and over and over and over where the idea for the game came from, until the answers to those questions simply became stock and lost their meaning and even I began to lose track of where the idea had actually come from.
Thousands of people asking you to carry some amount of weight for them, to hear them, to talk to them, to tell them that things are going to be okay, to not turn them away. I tried, I did the best I knew how to do, but after a certain point the many little requests added up and their collective weight broke my back. I couldn’t do it any more. I couldn’t talk to more people. I couldn’t continue to use other peoples’ opinions of myself to feel good about myself and about my work. Every time I turned to someone else’s opinion of the game, I felt less sure of my own opinion of it. I began to forget why I liked the game. I was losing the thing I had created.
So I withdrew. I basically checked out of the world, told people “I’m just gonna be by myself for a while.” I had never done that before. I spent a few months not really talking to anyone. It was lonely, but it was nice.
Then toward the end of 2013, news outlets begin releasing their Game of the Year awards, and Stanley Parable is back in the spotlight. Suddenly the personal requests start flooding back in again. Suddenly I am the object of peoples’ emotional baggage again. The GotY awards did not cause me to be depressed, they simply unearthed a depression I had been harboring and trying to bury since the launch of the game. But for whatever inexplicable reason, I felt depressed and anxious again. (part of what made the depression worse was that being given awards actually did not help me feel any better. “Is something wrong with me??” one tends to ask in a situation like this)
So: to help myself better understand and isolate the feeling of depression around the GotY awards, I wrote and drew a comic to explain what I had been feeling. It was simply the best expression I had for the thoughts and emotions that were running through my head at the time at the time, I just wanted to put it into some words to help make it less nebulous and unknowable. I wanted something I could hold in front of myself and say “This. This is what I am experiencing.” It’s nice to get it out of your head.
If you try to understand,
this might be the best beginner’s guide ever.
A best, sincere gift from an artist who goes through such vicissitude.