Cultcow EvaXephon / Yanderedev / Alex Mahan / Alexander Stuart Mahan - Developer of Osana from 2014 till September 2020, Crowdfunding Soon

What will happen to Yansim?

  • Alex works less and less on his game as he rides out his tugboat

    Votes: 1,331 43.4%
  • Alex drops the game and becomes a fulltime streamer

    Votes: 436 14.2%
  • Alex opens up a Kickstarter that will fail because of gremlins (no refunds)

    Votes: 585 19.1%
  • Alex adds more useless features asking for more money

    Votes: 1,115 36.4%
  • Alex goes full skitzo drawing crayon comics about his battles with gremlins

    Votes: 337 11.0%
  • Alex takes all the criticism to heart and improve his life

    Votes: 71 2.3%
  • Alex will troon out becoming Alexia

    Votes: 836 27.3%
  • Alex does a flip

    Votes: 682 22.3%

  • Total voters
    3,064

afv01s

kiwifarms.net
In spite of people saying that the game is lagging due to long if-else chains, it is not anywhere close to being the reason for the game's poor performance. Alex likes to use the Unity profiler as a way to dismiss claims about him being a bad programmer; it's simply beneficial for him if the only argument presented against his bad coding practices is the long if-else chains, because he knows that these are easy to dismiss.

Personally speaking, I cringe hard when someone brings that argument up. I never liked Alex and I'd never protect him, but I am in favor of using well-constructed and correct arguments that can't be easily dismissed - these sting harder.
With that in mind, here's my TOP 10 Arguments that Alex can't dismiss:
1. Unity profiler doesn't accurately represent what causes the performance drops. If physics, rendering and pathfinding take majority of your frametime, it's because you were too incompetent to set them up correctly.
2. Tying into the previous argument, the pathfinding is a broken and laggy piece of mess because it was integrated incorrectly; A simple event system and one pathfinding brain could create an NPC hivemind that would be both easy to manage and efficient.
3. The game doesn't use multithreading, despite the fact that a good portion of the plugins used in the project come with that functionality out of the box.
4. Data oriented NPC approach would work well with data oriented pattern like ECS, but Yandere Simulator is using Unity's EC; it makes no sense to use a JSON file for students over inheriting from a base class and implementing their routines in there. It would also make creating special events much easier, maybe we could have had 7 rivals by this point if only these concepts were applied properly.
5. Implementing new character models would take a day of work for a competent developer. If Yandere Simulator can't have that, then there is something fundamentally wrong with the amount of cohesion present in the project.
6. Rendering is the most performance tanking task of the engine running Yandere Simulator; we're 6 years into the project and the school still isn't combined into a single mesh, which could halve the amount of time required to render it.
7. Using linear interpolation for easing movement in and out is framerate dependent and only introduces new bugs. It is also a sign that you have no idea what you're doing.
8. Lack of any statemachine for NPCs; they can be in many different states (one at a time) and a competent programmer would think of implementing a transition system which would cut both the error potential and development time. Instead, we get hundreds of lines of code dedicated to edge case scenarios.
9. The game does not digress between the gameplay and presentation layer. A competent game designer would create a game that would run 'blindly', and then present that data in a read-only graphical format. Yandere Simulator introduces strong connection between its graphical representation and internal elements of game's structure, which makes the code dependant on the presentation layer that would have otherwise been read-only. This is the worst kind of cohesion, because the player can feel it while playing the game.
10. If speedrunning your Discord server provides people with more fun than playing your game, then there is clearly something wrong with your game design.

Ditch the if-else argument and feel free to pester Alex with these instead; He will have much harder time trying to find excuses for them.
 

Audioponics🎵⛲

kiwifarms.net
You know, I'm something of a programmer myself.
I agree with you in spirit. If-else does not degrade performance, but cause lots of bugs.
But your arguments are not that hard to dismiss and are sometimes pretty vague. Let me take a try.

1. Unity profiler doesn't accurately represent what causes the performance drops. If physics, rendering and pathfinding take majority of your frametime, it's because you were too incompetent to set them up correctly.
You would have to prove to me, that the profile does not accurately represent performance drops. Thats kinda its whole reason for existing and its not like Eva developed it him self. It shows correctly, that physics, pathfinding and rendering are the cause of the bad performance. Experiments like looking down, looking away from the school or killing all students proves this.

2. Tying into the previous argument, the pathfinding is a broken and laggy piece of mess because it was integrated incorrectly; A simple event system and one pathfinding brain could create an NPC hivemind that would be both easy to manage and efficient.
Thats a really weird thing to say. How would an NPC hivemind speed up pathfinding? Every NPC still needs its own path calculated. It makes no difference, if a student asks the pathfinding brain, who ask the pathfinder for a path, or if a student directly asks the pathfinder. An idea, that would actually speed up pathfinding, is to precalculate paths. Every NPC is on a fixed route and the enviroment doesnt change. So just calculate some necessary paths in advanced.

3. The game doesn't use multithreading, despite the fact that a good portion of the plugins used in the project come with that functionality out of the box.
If you mean he should tick the "multithread" checkbox on his pathfinding plugin, then I agree. If you mean he should multithread his own code however, we already established that his code is not the cause of performance drops. Multithreading introduces just more bugs and is not worth it in this context.

4. Data oriented NPC approach would work well with data oriented pattern like ECS, but Yandere Simulator is using Unity's EC; it makes no sense to use a JSON file for students over inheriting from a base class and implementing their routines in there. It would also make creating special events much easier, maybe we could have had 7 rivals by this point if only these concepts were applied properly.
The json file is for properties and does not implement behavior. Many games use such files to load properties from. Its quite common. As for the different behavior of the different student, yeah he should at least make them different classes. The json file doesn't hurt much. It actually introduces *ABSTRACTION* (I knew you could do it devpai).
5. Implementing new character models would take a day of work for a competent developer. If Yandere Simulator can't have that, then there is something fundamentally wrong with the amount of cohesion present in the project.
You do read this thread right?? The problem with new character models is NOT that they are hard to drop in, but that they would screw up animations. Also this far in, these models this games face. To late to change that ever IMO.

6. Rendering is the most performance tanking task of the engine running Yandere Simulator; we're 6 years into the project and the school still isn't combined into a single mesh, which could halve the amount of time required to render it.
Maybe, maybe. But on the other hand, keeping the school in separate meshes allows the engine to do Occlusion culling or at least Viewport culling. That means, only the visible parts of the school need to be drawn. Not the entire school, which you would have to, if it was just one mesh.

7. Using linear interpolation for easing movement in and out is framerate dependent and only introduces new bugs. It is also a sign that you have no idea what you're doing.
Not unless the value determining the interpolation amount is itself time dependent.
y = interpol(x)
x += delta time
Perfectly frame rate independent.

y = interpol(x)
x += 5
Frame rate dependent

Would help if you could cite some code for you arguments.
8. Lack of any statemachine for NPCs; they can be in many different states (one at a time) and a competent programmer would think of implementing a transition system which would cut both the error potential and development time. Instead, we get hundreds of lines of code dedicated to edge case scenarios.
100% correct.

9. The game does not digress between the gameplay and presentation layer. A competent game designer would create a game that would run 'blindly', and then present that data in a read-only graphical format. Yandere Simulator introduces strong connection between its graphical representation and internal elements of game's structure, which makes the code dependant on the presentation layer that would have otherwise been read-only. This is the worst kind of cohesion, because the player can feel it while playing the game.
Again, some code citation would help. Unity kinda already does this for you, if you consider GameObjects to be gameplay objects and not presentation objects. For example, it does not matter, what model Yandere-chan uses, what hair style she has, what texture is applied or what material she uses. In that sense, the game already does abstract gameplay from presentation.

10. If speedrunning your Discord server provides people with more fun than playing your game, then there is clearly something wrong with your game design.
CONSUME THE you know it. Lol. Agreed.
There is a good video, that makes points I have never seen on here about YandereSims bad gamedesign. Yandere dev cant decide between an open sandbox game and a linear story game and it fucks both modes hard.
The real problem with Yandere Simulator (and no, it's not the YandereDev drama)
 
Last edited by a moderator:

afv01s

kiwifarms.net
You would have to prove to me, that the profile does not accurately represent performance drops.
I do agree that this could have been worded better; I did not mean to imply that it doesn't represent the drops accurately, but rather that it does not accurately represent source of the drops; If you continously add force to rigidbodies, move character controllers or shoot raycasts through unity components, the profiler will still list these under "Physics" and not under the component that actually made the engine perform all of these calculations. Alex uses this to manipulate his audience - he claims that Physics simulation is something out of his reach and is solely dependant on Unity, but that's just not the case.

How would an NPC hivemind speed up pathfinding?
NPCs could subscribe to the hivemind's event system in order for it to know whether a certain event took place, and then the brain could determine whether or not a recalculation of the path is necessary - this is better than running pathfinding on every frame; Since it's event based, if you started moving objects around the school to somehow block the path, the NPC would first have to encounter these objects, determine that the path is blocked and ask the brain for recalculation. This is not only more performant, but also far more immersive than having your NPCs be all knowing of the available paths by calculating them every frame. This simple solution that could kill two birds with one stone (pathfinding performance issues & lack of immersive behaviour) somehow flew over Alex's head.

The json file is for properties and does not implement behavior
This is exactly why it does not fit into the Entity-Component model provided by Unity. Data is meant to be stored directly in components, so that they can operate on it. This is because the EC model strictly couples data and the code that will operate on it; There is no reason to choose JSON parsing over setting up the components, not only is that an inferior way of defining an NPC - it also means that you have to write a parser and may this embrace you if Alex breaks it again. The JSON file would make sense if Yandere Simulator used the ECS pattern, because then the data would have to be decoupled from the code operating on it anyway.

But on the other hand, keeping the school in seperate meshes allows the engine to do Occlusion culling or at least Viewport culling
You need to remember that even when baked, occlusion culling can be very expensive to run; In Yandere Simulator's case, the school is simple enough to render its base (walls, empty rooms, floor etc) as one combined mesh, and only cull details inside of various rooms. We are talking about >50% rendering speed boost, but for some reason Alex does not want to do it (or maybe he simply doesn't know how to do it).

Not unless the value determining the interpolation amount is itself time dependent.
I specifically said that using linear interpolation for easing in and out is framerate dependent, because then it is no longer linear.
The way that Alex does this, is by interpolating between points A and B over deltaTime; This is a beginner mistake.

In that sense, the game already does abstract gameplay from presentation.
Prompts are operating by modifying the fill value of a radial-masked UI element over time if a certain button is pressed; The action associated with the prompt will be executed only if that fill amount is equal to 1 (100%). This is just one example of Alex writing extremely cohesive and unsafe code - if Unity were to change the range of fill on the images from 0-1 to 0-100, Alex would have to rewrite a lot of code which would only slow down the development even further.

I really enjoy discussing these, because the further you delve into these points, the more problems with Alex's coding become apparent.
While we're on the topic of his incompetency, let's not forget about this gem on the debunk page;
1593356675854.png
 

Audioponics🎵⛲

kiwifarms.net
he claims that Physics simulation is something out of his reach and is solely dependant on Unity
Anything more expensive than an empty scene is 100% under his control and anyone how believes otherwise is brainwashed.

NPCs could subscribe to the hivemind's event system in order for it to know whether a certain event took place, and then the brain could determine whether or not a recalculation of the path is necessary
I have never seen something like this IRL, atleast not under the name "hivemind". In Yanderesim there are no dynamic obstacles anyway, thus the point is kinda mute. A student hivemind and realism don't go together either. Being informed of moving obstacles blocking paths and acting on it, is another level of complicated. I wouldn't attempt that, unless it is really necessary.
Is he actually using a navmesh or a grid graph? If grid graph, that would explain the bad performance a lot.
There is something weird going on there, 90 students should be able to pathfind every other frame without causing too much of a problem.

In Yandere Simulator's case, the school is simple enough to render its base
If that is the case, how would combining it be a 50% improvement? I think we really can't say what would be better, without trying it. And that will never happen.

The way that Alex does this, is by interpolating between points A and B over deltaTime; This is a beginner mistake.
He does this?
a = Interpol(a, b, delta time)
Yeah, that would be kinda not linear.

The action associated with the prompt will be executed only if that fill amount is equal to 1 (100%).
Wierd? Yes. Would I do that? No. Will that hurt him in the long run? Dont think so.
Sometimes its okay to do something stupid but simple. In a well writen project, that wouldn't be an issue, but this is yandere sim, sooooo.


A thing I'd like to add.
His project is rather huge and I have seen him complain about recompile time. For those who don't know, every time he make changes to the code and wants to try them out, the code needs to be recompiled and that takes time.
The more code, the longer it takes.
So I guess his current workflow is:
Make a small code change.
Wait for recompile.
Get bored.
Watch youtube video.
5min passed. Only small change done.

You can really lose time this way. I know I have.
 

afv01s

kiwifarms.net
If that is the case, how would combining it be a 50% improvement? I think we really can't say what would be better, without trying it. And that will never happen.
This can easily happen, and it applies to every mesh. Combining meshes means that all of their information is stored in a single buffer on the GPU, and can be drawn with a single call. Exchanging data between CPU and GPU (including calls) is very costly,even with Unity's batching system.

And yes, he does use a grid graph for pathfinding; weird choice, switching to NavMesh would be beneficial since it's available for free, but with the amount of cohesion it's probably unfeasible now.
 

Audioponics🎵⛲

kiwifarms.net
Wow, gridgraph really?? That explains everything.

Thats how a gridgraph looks like.
Every point is a potential search candidate. Its madness.
gridgraph_graph.png

This is how a navmesh looks like.
navmesh_layer.png
Every polygon is the equivalent of one point in a gridgraph.
The pure autism of using a gridgraph in CURRENT year is mind boggeling.

You would only ever use a grid graph if:
A: its easier to implement than alternatives (does not apply, a prebuild, free alternative exists)
B: its faster to construct at runtime (does not apply, he pregenerates the graph)
C: u are called yanderdev and don't know what you are doing (does apply)
 
Last edited:

Catgirls are Love

Make Catgirls Purr Again
kiwifarms.net
If we're mentioning our favorite technical shortcomings of Alex's making, I'd like to once again mention my favorite which had not been fixed as of April 16th and likely is still a problem now.
EatShitAlex.PNG
I've said it before and I'll say it again; this is something I've seen new Unity developers do several times, and they fix it pretty damn quick once it's brought to their attention because GPUs making a high pitched whine is not a good thing. Alex is thus far the sole exception, and all opening images and loading screens do this (with maybe the exception of some of the loading screens if you start a new game) instead of having the framerate be capped at a sensible level.
 

Canned Bread

Wow, they have it!
kiwifarms.net
Wow, gridgraph really?? That explains everything.

Thats how a gridgraph looks like.
Every point is a potential search candidate. Its madness.
View attachment 1413671
This is how a navmesh looks like.
Every polygon is the equivalent of one point in a gridgraph.
The pure autism of using a gridgraph in CURRENT year is mind boggeling.

You would only ever use a grid graph if:
A: its easier to implement than alternatives (does not apply, a prebuild, free alternative exists)
B: its faster to construct at runtime (does not apply, he pregenerates the graph)
C: u are called yanderdev and don't know what you are doing (does apply)

Alex seems to love taking the most inefficient programing approach at all times. At this point I wouldn't be surprised if any form of sorting done in this game uses Bubble Sort.
 

stupid moron

Manic pixie retard
kiwifarms.net
Not going to quote that giga-post but from what I've seen Alex is using delta time already, which is one thing I can commend him on. Otherwise a game with this fucky of a frame rate could very easily get more fucky.

I already made a post in this thread a while ago on a different account explaining why this is important, but basically it makes it so you can calculate time outside of the programs frame rate. Say I want something to happen once per second, I could just tell the game to do something once every 60 frames assuming my game is running at 60 fps, but if i later change the frame rate to 30 this action will happen every other second. If I use delta time instead I can actually measure out the time I want in microseconds.

If you want a real world example of this fucking up just look at fallout 76. The game had uncapped frame rates when the other gamebyro games previously didn't , so when people started getting high frame rates their characters ran way faster than they should have. Also a ton of Japanese games don't use delta timing for some reason, so that's why you see them capped at 60 for their pc ports.
 
Last edited:

Scarred Platypus

Everyday we stray further from God's light.
kiwifarms.net
There is this recent thread in r/Osana about when the mods are going to leave YanDev, juicy stuff as adolfin4ever, one of the main mods of the official subreddit (don't know if you guys discuss the people that surround YanDev but some of them are worthy lolcows on their own) came to discuss how a good parent she is by letting her kid play the game.

Sharing a full page screenshot and the thread for those interested.
 

Attachments

  • screencapture-reddit-r-Osana-comments-hhg755-theory-that-the-concept-of-time-is-a-medicine-202...png
    7 MB · Views: 97

Catgirls are Love

Make Catgirls Purr Again
kiwifarms.net
There is this recent thread in r/Osana about when the mods are going to leave YanDev, juicy stuff as adolfin4ever, one of the main mods of the official subreddit (don't know if you guys discuss the people that surround YanDev but some of them are worthy lolcows on their own) came to discuss how a good parent she is by letting her kid play the game.

Sharing a full page screenshot and the thread for those interested.
That discussion is interesting. Adolfin's logic is the rough equivalent of "I allow my child to watch the random five minutes of surprisingly child-friendly content that's in the middle of this hardcore pornography, but they can only watch that five minutes in my presence and with me micromanaging them so it's fine. And I control ALL of their electronic usage so there's no possible way they can look it up on their own and see anything that isn't carefully curated by myself." Not exactly the brightest idea, especially since there's no end to the supply of other games children can play that aren't half a second away from classmate murder simulator.
 

Neurotic Loser

Lurker who needs to Lurk MOAR
kiwifarms.net
That discussion is interesting. Adolfin's logic is the rough equivalent of "I allow my child to watch the random five minutes of surprisingly child-friendly content that's in the middle of this hardcore pornography, but they can only watch that five minutes in my presence and with me micromanaging them so it's fine. And I control ALL of their electronic usage so there's no possible way they can look it up on their own and see anything that isn't carefully curated by myself." Not exactly the brightest idea, especially since there's no end to the supply of other games children can play that aren't half a second away from classmate murder simulator.
Adolfin's a mother? I thought she was, at most, 22-23. Her artstyle screams teenager/young adult. What the fuck.
Anyways, being that controlling is going to breed HEAVY resentment if she isn't careful. Also why is she allowing a child to interact with a game with heavy adult themes that can be accessed easily (especially in the easter egg mode the child is using). It would be inifintely easier to give her a E rated game and not helicopter parent.

There's only one "logical" reason why Adolfin would do something like this, narcissism. She wants to appear like cool mom working on a game so the child looks up to her. This is highly irresponsible though, but I doubt she cares about that.

Edit:- this is me also being a prude, I guess, but children shouldn't be playing M+ or over games.
 

Colloid

kiwifarms.net
There is this recent thread in r/Osana about when the mods are going to leave YanDev, juicy stuff as adolfin4ever, one of the main mods of the official subreddit (don't know if you guys discuss the people that surround YanDev but some of them are worthy lolcows on their own) came to discuss how a good parent she is by letting her kid play the game.

Sharing a full page screenshot and the thread for those interested.
The real horror here is that adolfin's a mom, and one of those batshit helicopter moms who mistakenly thinks that they can moderate their kids 24/7 at that. It doesn't help that the dumb bitch whips out the classic "You have no say because you aren't a parent," excuse to defend her idiotic parenting; as if it doesn't take common sense to see why this is a bad idea. At first I had a little sympathy for her since I assumed she was some naive tween, but no more. I hope she does something to piss Alex off so he throws her under the bus and perma-bans her while calling her a disgrace to the community because she fully deserves it. If she's this reckless about everything with her kid then she truly is one of the worst YanSim fans I've ever seen in the 5 years that I've watched the community.

If there's one thing on this site that make me genuinely upset, it's when cows start hurting their own kids with their idiocy so feel free to give me top hats over this.
 

JuanButNotForgotten

Friendly Mexican Ghost
kiwifarms.net
There is this recent thread in r/Osana about when the mods are going to leave YanDev, juicy stuff as adolfin4ever, one of the main mods of the official subreddit (don't know if you guys discuss the people that surround YanDev but some of them are worthy lolcows on their own) came to discuss how a good parent she is by letting her kid play the game.

Sharing a full page screenshot and the thread for those interested.
You know, on the one hand I'm shocked that she has a child, but on the other her parenting techniques don't surprise me at all, because she is an adult with a kid, who spends her time being a free janitor for a manchild. If someone says to me, that parenthood forces people to grow up, I'll just show them this.
 

Similar threads

Yandere Wars: The Clone Wars. No, the games aren't coming out.
Replies
4K
Views
662K
Gearbox's magical fuck-up of a CEO, lost a USB drive full of porn.
Replies
663
Views
175K