I’ve recently read an article that was actually about work environment and building and maintaining a supportive team but one sentence struck me in a way that made me think about real life bullies and how villains are portrayed in media.
[…] Management expert and author Douglas W. Hubbard [in his] book The Failure of Risk Management: Why it’s Broken and How to Fix It [rewrote Hanlon’s Razor as]: “Never attribute to malice or stupidity that which can be explained by moderately rational individuals following incentives in a complex system of interactions.”
[…] not only are people’s actions rarely malicious, they’re most likely not about you at all. Malice is simply not a probable explanation for people’s actions, and it’s not reasonable to assume it is.
So, if you take that to the realm of story villains, the best ones are not just there to be an antagonist but would exist and do their thing even if the hero wasn’t there at all. A good villain is not about the hero. A good villain is only about themselves and what they want to achieve. Think about that when you craft your next villain for your story or game, either forwards as who they are, what’s their motivations and what incentives exist that they will follow down the wrong path; or backwards as what you need the villain to be and come up with the system of incentives that could put someone in that position.
But this same conversation got me thinking about bullies and generally dickish people. Because people in all walks of life just follow the incentives that fit their world view: the guy going into a particular field of work just because of the money or the people who cut you off on the highway who are probably stressed enough to get somewhere on time that they’re willing to take that risk because they have a baby on the way or they had a hard day at work and just really want to get home. The bullies who had such a stunted development that the only way they know how to express themselves or get any interaction is by hurting someone.
I’ve learned all of this by talking to professional people about my communication and social skills and it changed the way I think about people. I’m not saying it completely cured my misanthropy but now I try to think about that when someone annoys me: what happened to them in life or this week or this day that got them to that point? Because, I know that sometimes I get to that point too. It’s not fun and a system should be put in place to handle young bullies or hurtful children in a supportive and accepting way. A competent adult that breaks a law should be punished because they know what they did. A child who hurts someone should have someone to talk to about the troubles that brought them there.
In Marvel’s What If, episode 2 (spoiler warning), we see Thanos as part of T’Challa’s crew and he says that they talked about his plan and found a way to fix the problem that doesn’t result in wiping out half the universe. It’s amusing in the moment but it also make sense if you think about it. A villain usually becomes a villain because their goal, that they think is just is unachievable through normal means (and fixing societal ailments is usually very hard and is heavily opposed) but they have the drive, the ambition, and the dire need to get it done so they break societal norms and go off the rails to do it. But if the heroes could focus on finding the root of the issue and pushing the fix through normal means, maybe the whole ‘boss battle’ thing can be avoided?
P.S. Small comfort: If you have a bully in your life and they seem fixated on you then they are making it about you. They are playing an antagonist role, an NPC, in your story. You could use that to your advantage.
Posted in Life by Eran with no comments yet.
I want to talk a bit about Vampire: The Masquerade Bloodhunt.
Let’s put aside for now the fact that this game tries to take Vampire: The Masquerade, a deeply dramatic, gothic horror RPG that deals much more with social interactions and tries to make it about vampires shooting other vampires with exploding crossbow bolts. What I want to talk about is onboarding.
Battle Royale focused games are very popular right now. Such games are always on the top spots of Twitch’s most popular directory. The problem is usually with the new ones. Every once in a while, a new one comes out and very few of them actually penetrate and even fewer dethrone the big players, even if just a little bit. And I think it’s rarely about the theme, even more rarely about the mechanics. I think it’s mostly about the onboarding.
What do I mean by onboarding? For those not fluent with the lingo, onboarding is “the action or process of […] familiarizing a new customer or client with one’s products or services.” In more plain language, a game’s onboarding is the experience a new player gets when they install and run the game for the first time. It’s the main menu, it’s the tutorial, it’s the first 10 minutes to the first few hours of the game. If you’re a known popular developer, you usually get the latter but, if not, you get the former as the time you have to convince players to actually play your game.
This is especially important when the game is free to play. This makes your game easy to get into but also easy to leave. If it’s premium game and you got a player bought in, they already paid money for it, no matter how they got there, and so they will be determined, at first, to get their money’s worth. But, with Fortnite leading the pack, it’s hard to get people invested in a premium BR.
Which is all to say that onboarding is important. That’s the general sentiment. What is it specifically about Battle Royales? I’m getting to it now.
Let’s say you’re a game studio developing a new Battle Royale. You’re getting into a red ocean market, a market that is big and wide but also saturated with a lot of other players in the space. Competition will be hard. So, who is your target audience? Most likely players of other Battle Royales or similar games. While it is often the case that a player will pick the BR they like and stick to it, it is not unlikely that players might like several of them for different reasons at the same time or try a new one to see if they should switch. That is where you should fit in. You should entice them with new mechanics, a new interesting theme, or doing the same thing significantly better with better quality of life. That’s your hard battle.
But your customer-base is also other players of the same genre, and even random players who might want to pick up a new, cool-looking free game. So, your job might also be: How do I convince a random person to play my game? That’s where I come in. I’m not really into BRs but if a new game comes out that is good-looking, based on a known franchise, or just exciting to get into, I’ll definitely try it.
And you need to think about those people because, in a red ocean, it’s usually easier to make the playground bigger than try to steal what space is already occupied. That’s why I mentioned Bloodhunt. That game looks like it tried to meld the known tropes floating in the genre right now, lean more into the verticality seen in Hyper Scape and use The Masquerade’s vampire classes as sort of hero templates, but except using blood feeding as a boost or an upgrade, which isn’t a lot, this game did nothing new that I could see. I also think it was a great misstep to use V:TM as the theme because it’s about as different as you can be from a casual deathmatch; On top of regular ludo-narrative dissonance, this generates more narrative-narrative dissonance.
My guess is that they tried to pull in fans of the theme, gothic lovers, and general White Wolf enthusiasts (White Wolf being the owners of the V:TM franchise) but this game feels like a slap in the face to the reason why those same people enjoy White Wolf products in the first place. As a tabletop RPG, Vampire is one of the big differentiators from the pillar of the hobby, Dungeons & Dragons. In D&D you, basically, kill monsters to get gold and loot so you can get better at killing monsters, etc. but Vampire is the kind of game that says, ‘If you want less murder-hoboing and more deep, dark roleplaying, we’ve got you covered’. You can probably make a BR based on the D&D franchise but Vampire? It doesn’t jive.
In the end, this game feels like an afterthought of design with no real effort put into it, thematically and mechanically, except making it a good looking BR. And that, my friends, is not enough today.
Posted in Life by Eran with no comments yet.
Posted in Humanity, Life, Me, Thinking Out Loud by Eran with no comments yet.
אואטר ישב על כיסא קשה במשרד מפקד הנוטרים. הוא הספיק להחליף בגדים למשהו יותר נוח למרות שלא היה קל להשיג משהו שמתאים למידות החדשות שלו. הוא לא הספיק להתרחץ או לישון אבל, לפחות, הוא נפטר מנעלי העקב הבלתי אפשריות ההן. לידו עמדו סטטית ומפקד היחידה ושניהם הסתכלו עליו באופן שכבר התחיל להיות מטריד.
“ככה זיקית נראית?” המפקד שאל לבסוף.
“ככה זיקית נראתה,” סטטית תיקנה אותו. “עכשיו זה אואטר.”
המפקד התכופף כדי להסתכל לו בפנים. “אתה בסדר, ילד?”
“עד כמה שאפשר, המפקד,” אואטר ענה, עדיין לא מסוגל לקבל את הקול הגבוה. “שיווי המשקל שלי מוזר עכשיו.”
“אתה יכול להשתנות לגוף המקורי שלך?”
“עוד לא. זה בדרך כלל לוקח קצת זמן להתרגל וללמוד עד שאני מצליח להשתלט על זה.”
“אואטר עשה עבודה מצוינת, המפקד,” סטטית הוסיפה. “הוא לקח יוזמה וסיכון על עצמו שמאוד השתלם ו–”
המפקד הרים את ידו וסטטית השתתקה. רגע מתוח עבר בחדר כשסטטית ואואטר חיכו שיגיד משהו.
“אתה,” הוא הסתכל על אואטר, “לך למגורים. תתרחץ. לך לישון.” הוא הסתכל על שעון היד שלו והחמיץ פרצוף על השעה. “אתה לא חייב לקום לתדריך בוקר. אבל, ברגע שאתה יכול, תתייצב אצל דוקטור ליבנשטיין לבדיקה מלאה. בסדר?”
“כן, המפקד,” אואטר אמר חלושות, נעמד ופיהק.
“משוחרר. ואת,” אואטר שמע את המפקד פונה לסטטית כשהלך אל הדלת, “אני רוצה סיכום מלא של מה קרה הלילה. ואל תדלגי על שום פרט.”
“נו, מה פספסנו?” דממה שאל כשאייל הגיע למגורים. הדף עמדה לידו, זרועותיה משולבות, מסתכלת על אייל.
“לא משהו נורא חשוב, אהמ,” אייל כחכח בגרונו, כאילו זה יעזור לו להוריד אוקטבה. “כנראה שסטטית עכשיו מקבלת שטיפה אבל אני חושב שיהיה בסדר. אני רק צריך למצוא דרך לשלוט בגוף הזה. בינתיים, אני בעיקר רוצה לישון.”
“רעיון טוב,” הדף אומרת ומיד מסתובבת והולכת, נכנסת לאחד החדרים.
“כן,” דממה מוסיף. “נראה מה יהיה המצב בבוקר.”
Posted in From the Writing Desk, Stories by Eran with no comments yet.
אני חושב שמשכורות זה משהו שצריך להיות פומבי במקום העבודה. בדרך כלל, התגובה שאני מקבל היא שזה יגרום לאנשים לקנא. לדעתי, זה דבר טוב. כי רוב האנשים לא חושבים על זה אבל יש שני סוגים של קנאה. השפה העברית פשוט לא מכילה את המילים בשביל זה.
באנגלית, אפשר להבדיל בין Jealousy ל-Envy (למרות שגם דוברי אנגלית לרוב לא יתייחסו להבדל הזה). כשאומרים קנאה, רוב האנשים חושבים על Jealousy. זאת המחשבה שלמישהו לא צריך להיות משהו בגלל שלך אין אותו. זאת מחשבה מאוד שלילית ועוינת ואני מבין למה עדיף להימנע ממנה, במיוחד בין אנשים שאמורים לעבוד ביחד. אבל זאת הגישה הנמוכה והשלילית ואני מעדיף לנקוט בתער של האנלון. Envy היא הרצון גם להשיג משהו שלמישהו אחר יש. ואלא אם כן מדובר במשהו ייחודי (כמו בן זוג של מישהו), רוב הזמן לא מדובר בלקחת לאותו מישהו את מה שיש לו.
איך שאני רואה את זה, אם אני רואה שלמישהו יש משהו מגניב שאני אוהב, אני אחפש איפה אני גם יכול להשיג כזה. אם למישהו באותו תפקיד כמו שלי יש זכויות מסוימות או משכורת טובה יותר ממני, אני אבדוק מה אני יכול לעשות כדי שגם יגיע לי, אני ארצה להשתפר. ומה רע בזה? בכלל, מה רע בלשאול את הבוסים ישירות, “מה אני יכול לעשות כדי שיעריכו אותי יותר? מה המדדים פה? תפוקת קוד גבוהה יותר, יותר יוזמה, הצעות ייעול, הדרכה של חדשים? אני רק רוצה לדעת מה חשוב פה כדי לדעת איפה לרכז מאמצים.”
אז תזכרו להבדיל, קנאה (Jealousy) זה לא דבר טוב אבל קנאה (Envy) זה סבבה אם זה גורם לכם לרצות להשתפר בעצמכם ולא להוריד אנשים אחרים.
Posted in Humanity, Thinking Out Loud by Eran with no comments yet.
Let’s say you have a bunch of code you want to drag around with you to every new Unity project, or maybe just the next project you’re doing for the same company. Don’t just copy and paste the same directory over and over again forcing you to also copy changes and updates. Create a package instead!
Unity has switched over to a package model for a lot of the engine’s capabilities. And it also allows you to import non-Asset Store packages straight from GitHub or even locally. So how do you take what you have and make it an easily distributable package? Follow these steps.
- In your Project window, below all your regular files is a Packages folder. Right click on it and select Show in Explorer.
- In that Packages folder, create a new directory and name it however you like. This will be the root of your package.
- Do remember that the folder name can not contain spaces.
- Create a new “package.json” file.
- Back in Unity, your new package should be visible with the name you gave it.
- Clicking on package file will open it in the Editor UI, allowing you to edit it more conveniently so you don’t have to go back to the JSON.
- In that Inspector window, you can also easily add Dependencies if your package requires it which is a much easier workflow than typing them out.
- After this basic set up, you’ll want to add your content, this link here will show you the folder and file structure required of a package.
- You need the package.json file.
- Adding a “README.md”, “CHANGELOG.md”, and “LICENSE.md” files is general practice and provides a better user experience.
- The “Editor” folder should contain your editor scripts.
- The “Runtime” folder should contain your runtime scripts.
- And you can add additional “Tests” and “Documentation~” under their respective folders.
- Under “Tests” you do have to add “Editor” and/or “Runtime” sub-folders depending on what you’re testing.
- You may also add additional folders and files as you wish.
- Just drop your scripts, assets, and whatever else you want from your current project into the correct folder in the package (Regular scripts into “Runtime”, editor scripts into “Editor”, and test scripts into “Tests”).
- Then, for every folder you have files in, right click it and select “Create\Assembly Definition”.
- It is recommended to name them in reverse web notation in a way that is easy to understand.
- For tests, you need to add a reference to your relevant assembly definition file (The runtime file for runtime tests and editor file for editor tests) and to the Unity TestRunner assemblies (Yes, both).
- Also, make sure that Editor is the only platform selected.
- That’s it, your done defining.
- If you move the package anywhere else for safe keeping, you can add it from the Package Manager by pressing the ‘+’ sign, selecting “Add from Disk” and finding your package.json file.
- But it is recommended that you upload the contents of your package (Not the folder itself but everything in it) to some Git repository and then you can always add it from Git and your users will be much happier for a constantly updated package.
Posted in Practice, Programming, Thinking Out Loud by Eran with no comments yet.
I apologise to anyone who was expecting something from me recently. I’m feeling sick and this might take a while.
Posted in Life by Eran with no comments yet.
Everyone has their mountain. You don’t find it. It’s not there to begin with. You have to build it.
Some people like their mountains small, easy to build, easy to climb. They top it off in some short time and feel satisfied with themselves.
But, as they say, it’s the darers and the dreamers who look at the blueprints for all the tiny mountains and then look away. They dig and scramble and find the parts and the scraps. They design their own mountain. They build it from trash, from non-existence, and from hope. They make it tower over the others and change the skyline.
When other people see that mountain rise up on the landscape, they ooh and ahh. Some cheer, some deride. But they are all intrigued. Will this one succeed? Is this one even climbable? Who is that person that built this mountain? How will the climb be? Who will they be if and when they reach the top? Who will we all be?
Not all of them reach the top. Usually just a scant few do. But, when they do, they change everything.
Posted in From the Writing Desk, Life, Stories by Eran with no comments yet.
I grew up in a desert. I lived in a desert all my life.
Sometimes people came to my desert, mostly to throw sand at me, or show me how cool trees are and that I couldn’t have any.
I tried to stay inside my desert, keep away from the edges.
A desert isn’t the most comfortable place. I know that. But it’s what I’m familiar with. The outside is more scary.
A desert is vast. It’s very hard to see outside of it, when you’re standing in the middle.
The sand gets everywhere. It makes everything heavy and coarse and annoying. But if you live in the desert, you stay in the desert. Even though it’s hard, it can be harder to get out.
In 2020, a lot more people found their way into their own private desert.
I didn’t choose my desert. It found me. But now I’m working my way out. And it’s ok to ask for help.
Posted in From the Writing Desk, Life, Stories by Eran with no comments yet.