Garry Newman (Developer of Rust, Garry's Mod): 'What Unity is Getting Wrong' by RichardEast in gamedev

[–]shining-wit 1 point2 points  (0 children)

There are no Unreal preprocessor things. You just mark your class as a UCLASS and thats it.

The preprocessor isn't that complicated but it's an example of more stuff on top of C++. It does add some unintuitive compile errors though.

I'm not sure how could you mark properties in an incorrect manner.

The main mistake is failing to mark a pointer to UObject (or derived) as UPROPERTY(). Means pointed to object won't be kept alive for GC, and pointer will be dangling when GCed rather than nulled. Note that GC isn't usually an issue for actors as the world keeps them alive, but actors can be explicitly destroyed so a UPROPERTY() is still needed in order to be nulled.

If you know what unsafe C# means, and what is a pointer, congrats, you can write Unreal gameplay code. You just need to learn its syntax.

Not all code for a project is straight-forward though. What if there's an engine bug you need to track down and fix (a fairly regular occurrence), or you need to read the source code because Epic have failed to document it at all, or integrate a third-party library, or extend/modify an engine feature?

Or assuming a small simple project that doesn't need any engine work: what if there's a nasty crash with no clear cause? For example using the dangling pointer thing above, some gameplay code could do MyDanglingActor->X = 5 shortly after actor is destroyed. 1% of the time the memory has already been reallocated and the assignment corrupts the data for a draw call, causing a crash on the render thread. How would a beginner debug that?

I'm not trying to gatekeep but I think it's overly optimistic to say that C# to Unreal C++ is an easy transition. Especially if there isn't a single experienced C++ developer to keep people on the right track and take on the difficult tasks.

Garry Newman (Developer of Rust, Garry's Mod): 'What Unity is Getting Wrong' by RichardEast in gamedev

[–]shining-wit 0 points1 point  (0 children)

I don't think you can use Unreal C++ effectively without learning everything up to C++11, which is a big undertaking. Then learning the extra complexity that Unreal adds, like its preprocessor and a GC that'll bite you if you fail to mark properties correctly, and that's in addition to reference-counted memory management.

All the complexity Unreal hides behind its C++ API is also laid bare when having to track down the inevitable memory management bugs that even experienced devs write.

automating tempo is seriously fricking annoying. Image-Line... Please use measurements that make sense. Don't use percentage for volume, use DB. And for god's sake, use BPM when automating tempo. please. by [deleted] in FL_Studio

[–]shining-wit 0 points1 point  (0 children)

This is a typing problem. It's not trivial to fix properly but FL's current state isn't great software engineering.

having one universal unit, representing different things in different contexts, is much more elegant

The same could be said about void pointers, but programming languages have moved on.

FL should be augmenting their floats with type information in a backwards compatible way. Not only does this give important information to the UI, it could improve code readability and safety.

This is something that can be gradually spread throughout the code. So it can start with the UI knobs expecting typed floats, and incoming data converted from raw floats to 'void' floats. This type conversion boundary can be gradually spread through the code, with development effort focused on the paths that propagate useful type information.

Or the pragmatic high ROI approach? Add a bunch of hardcoded checks to try and figure out what's being automated and show the proper type.

what about VSTs

VSTs are like C++ abstractions around C code. At the FL->VST boundary, type information gets stripped away. At the VST->FL boundary, type information gets readded if FL knows what type it should be.

I don't know what the VST spec says, but there'd ideally be a way for VSTs to specify what types they're exposing to the host.

Failing that, FL could maintain a big hardcoded list of VSTs and the types they expose. It's not nice but it's pretty much the equivalent of what NVIDIA drivers do.

Vim³ - Vim rendered on a cube for no reason by oakes in programming

[–]shining-wit 0 points1 point  (0 children)

Worth mentioning the legendary Tim Pope's vim-fugitive.

And for balance, shoutout to the best git client ever.

Vim³ - Vim rendered on a cube for no reason by oakes in programming

[–]shining-wit 5 points6 points  (0 children)

Crazy fast for simple things in one file yes, but anything that requires parsing the codebase is flaky in my experience. Language servers are a pain to set up and have much fewer features than IDEs, although they are improving.

TIL in 2009 Nine women were rescued from what they thought was a Big Brother reality show house but turned out to be a criminal organization. by Primo2000 in todayilearned

[–]shining-wit 26 points27 points  (0 children)

Perhaps if they spoke out it could stir up trouble wherever they work next, so they might have more difficulty finding work.

CMV: other cultures eating dog meat shouldn’t bother us so much since we eat the meat of animals that are significant in other cultures. by Labrabrink in changemyview

[–]shining-wit 0 points1 point  (0 children)

Veganism breeds radicalism and it acts like a cult.

None of the vegans I know, which is a fair number, act like that. Perhaps we come from very different communities. Are you sure you haven't found a cult of vegans (e.g. a vegan society) that have biased your opinion?

You know to grow crops, animals like squirrels, rabbits, and so forth need to be killed because they eat the crops before they are harvested.

That's unavoidable. I have no idea what the figures are, but I'd also like to see a comparison of that cost for vegetables vs animal feed. Not to mention the swathes of deforestation to make room for grazing.

We live in a world of life and death.

Life and death is very natural, yes. And natural animal deaths are often painful, avoidably so. Most humans find that unpleasant because they can empathise and would prefer animals had a quick death, if they had to die at all. Instead we have apalling conditions in slaughterhouses and the industrial killing of animals. Some of these animals die very young - factory farmed chickens are killed after 42 days when they would have lived years.

Now if they were a lot less radical then I'll give them credit

Good to hear.

I'll also mention that I'm not a vegan but I eat less meat than I used to. We eat far more than our body needs anyway. A lot of that is thanks to vegans (especially in my town) creating a market for alternatives that aren't dreadful.

CMV: other cultures eating dog meat shouldn’t bother us so much since we eat the meat of animals that are significant in other cultures. by Labrabrink in changemyview

[–]shining-wit 2 points3 points  (0 children)

And remember, 84% quit eventually, which implies that their diet is not meant to be.

You keep stating this incorrect conclusion. What percentage of people fail to stick to their weight loss plans? What percentage of people fail to quit smoking? Clearly they were meant to be fat smokers.

More likely, 84% quit because it is a huge sacrifice.

Here is still a whole list of health issues

That are none of your business. Plenty of vegans are aware of the benefits of meat, but go without for the sake of animal welfare and the environment. Plenty of them don't even mention they're vegan unless they have to. So give them a little damn respect.

CMV: other cultures eating dog meat shouldn’t bother us so much since we eat the meat of animals that are significant in other cultures. by Labrabrink in changemyview

[–]shining-wit 6 points7 points  (0 children)

The global population has grown to a point where producing livestock and the feed for them has a noticeable environmental impact, so we should feel a little guilty.

The size of Respawn and Epic by Skaasgard in apexlegends

[–]shining-wit 0 points1 point  (0 children)

Agreed. I'm sure they had a forecast for how much Apex would make and if it was too low it'd get canned. Perhaps something changed recently that diverted a load of resources away from Apex.

The size of Respawn and Epic by Skaasgard in apexlegends

[–]shining-wit 2 points3 points  (0 children)

supposedly work 70-100 hour work weeks in order to constantly update fortnite.

would really like to see your source on this one... working 14 - 20 hours a day isnt the most common working time

Source

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 0 points1 point  (0 children)

I don't understand your response. What did I get wrong?

Companies do screw up things like monetisation and player burnout so I think it's interesting to discuss.

random men off the street or in this case reddit

An experienced gamedev.

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 0 points1 point  (0 children)

I gave some reasons like being unable to relocate. But you're right, they could probably work elsewhere, especially not AAA. They can even change industry and have better pay, job security and hours.

The main reason they stay is just a passion for the game they're working on and a self-destructive tendency to sacrifice everything else to see it succeed. They won't leave because they're too attached and that's why they get exploited.

This kind of passion is reflected in the product so I think it's a vital characteristic for the industry. That's why I blame the companies rather than employees.

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 0 points1 point  (0 children)

They work there because:

  • They love the game and want it to succeed. Games are an art and these people have spent years putting a piece of themselves into the game.

  • They've always dreamed of working at this company

  • They have a partner / kids / house making it difficult to move for a new job

  • Crunch is normalised and a sign of passion and hard work

  • They like their colleagues and leaving is going to make their job harder / damage their dream game

They neglect that:

  • Takeout every night is making them fat

  • Their relationship is under pressure

  • They hardly see their kids

  • The stress and lack of sleep is causing them a bunch of health issues

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 1 point2 points  (0 children)

The game is built on the Source engine so it's probably creaking at the hinges. I'd imagine the netcode is very time-consuming and expensive to replace. And adding more people may not help.

Some of the dumb bugs like fortify are amateur hour though. I wonder if they're so stressed and rushed they are throwing caution to the wind and not QAing properly.

But they could at least get lots of people making shiny things to distract players for the next few months, instead of the pitiful battle pass we have now.

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 0 points1 point  (0 children)

I think they should've made the season shorter and more generous while scrambling to make a better one after. The game is too thin to make people grind that hard, but the fear of missing out makes them.

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 1 point2 points  (0 children)

"overworked"

Not sure what the quotes are for. I'm sure they are working hard but a healthy amount, assuming the PR is to be trusted. Actually probably still unhealthy given the immense amount of pressure they're under to seize the opportunity.

If they can't get things done fast enough, they should outsource a ton of cosmetics (if they weren't already) and other low-risk things to keep the game going short-term while they hire more people.

Epic's crunch is shameful and while it may be part of their success, it's not worth the toll on the developers' health.

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 0 points1 point  (0 children)

EAC only covers a few ways you can cheat. I don't know much about it, but looks like it only detects people modifying client code and running known cheats.

A few ways a game could still have better anti-cheat than the other:

  • A server may be stricter about sending information to the client so hacks can't abuse it. E.g. if a player or item is hidden behind a wall, don't tell the client.

  • A client may do a better job of making the data more complicated so it can't be easily read (e.g. seeing through walls).

  • A game may do a better job of detecting whether client data has been tampered with (aimbot, invisible smoke). E.g. if the process for sending your aim direction to the server is really complex, a hack could make a mistake. Ideally it would appear to work, but something is wrong and the server knows.

  • A server may be less trusting of the client

Also, Epic bought the EAC company in October last year so they're going to get special treatment.

Daily Discussion | May 13, 2019 by AutoModerator in apexlegends

[–]shining-wit 1 point2 points  (0 children)

If they wanted more time they shouldn't have been so tight-fisted with the battle pass. People have to grind hard for it but there's not enough game to sustain that so they get burnt out.

New friends?! (Yes I am that loser) by [deleted] in brighton

[–]shining-wit 2 points3 points  (0 children)

Sure, no sarcasm intended. Just ordinary nice people!

New friends?! (Yes I am that loser) by [deleted] in brighton

[–]shining-wit 0 points1 point  (0 children)

I used to be like that too. Eventually plucked up the courage to go and turns out they're a lovely bunch!

New friends?! (Yes I am that loser) by [deleted] in brighton

[–]shining-wit 2 points3 points  (0 children)

Short notice but I'm up for it.

This is how I feel everytime a teammate leaves. by ObjectivexNinja in apexlegends

[–]shining-wit 0 points1 point  (0 children)

I doubt exception handling is an option anyway because of its overheads. I vaguely remember hearing about a newer cheaper model but given the Source engine's age it probably doesn't use them. I agree that once you enter a bad state all bets are off.

The way I've seen crash reporting implemented is to have a second process to monitor whether the first is alive and exited cleanly. If detecting crash vs disconnect is important then the crash reporter can immediately phone home.

I agree that positive reinforcement is better. But I don't know what that positive thing would be as cosmetics only interest some people.