Well, I ripped out the periodic Gameplay Effect and hacked together my custom ticking stat drain client prediction (with server side ping compensation) and it already looks waaay better than it did before, no lag on begin/end and generally way smoother. Server has final say at the end and at thresholds but the client behaves way better. Am I a proper multiplayer game programmer now? 🙃
@MyCody thanks, I’m still using the AttributeSet right now because I didn’t really like separating it, and my manual local prediction seems to be working. I didn’t know you can temporarily override replication though, I should probably be doing that to avoid the attribute replication spam that I’m essentially ignoring
I'm thinking I just don't use GameplayEffect for this at all since without prediction it's useless. Instead I have server & client ticking read a tag that the ability sets, and do their own calculations. I'm not sure if there will be a little fighting over the value during attribute replication because of lag - on the server I guess I could account for that by incorporating the average lag in the start/stop calculation 🤔
I guess I just have to roll my own prediction? Say I have a drain effect which periodically reduces a bar by X every second. The server ultimately decides the drain (attributes replicated) and I can smooth the bar animation, but unless I predict it there's a nasty lag i both starting and finishing the drain. I already predict the action start/stop locally so there's no lag, but that's built in GAS. Ticking down the bar immediately while the ability is activated needs to happen locally 🤔
I *thought* my periodic gameplay effects (Gameplay Ability System) weren't being locally predicted on a multiplayer client (quick ticking was janky). I wasn't doing anything wrong, it's because #unrealengine specifically disallows local prediction of periodic gameplay effects. Not mentioned anywhere that I could find, but it's right there in the source code 😐
This makes periodic effects a bit useless in multiplayer, except for coarse-grained loosey goosey things. Time for another approach
@thisnorthernboy Often it's just learning to post-process the original asset (e.g. make LODs, bake tiny gribblies into textures etc) but it always starts from the original model and works from there so it's just an extension to your process, not an invalidation of it. And UE now even actively promotes plugging original high poly meshes directly in and letting the engine sort it out. But it's a lot of experimentation & iteration for everyone since the tech is constantly changing anyhow
@thisnorthernboy A lot of people would (correctly) comment about art not needing to be "for" anything, but I'm a practical programmer who struggles to motivate if there isn't any end goal in mind. I can say that having been around gamedev a long time, your models would be great in a space game. I wouldn't worry too much about specialist asset knowledge; games & film etc aren't as far apart as they used to be asset wise and you can usually make most things work in the pipeline
@cloudthethings yeah we went with Hue too, only 15 here although that’s way more than I ever expected to buy when I started experimenting with it last year
For the bedroom I’ve forgone buying 2 extra physical buttons on the bedside tables in favour of adding a shortcut to our phone lock screens, which are on the bedside anyway. This is how I discovered how bad the Shortcuts app is in iOS - you *can* make it do what you want (like use a nightlight setting when you ask for light at 3am rather than 8am) but man is that shit unintuitive, and in a programmer for fecks sake. Really terrible, from the company supposedly all about user friendliness
I’m a skeptic on smart home stuff, I like to keep things simple, but I have been convinced to install smart lighting in the living room and bedroom. The benefits of variable mood lighting and a bedroom light that automatically doesn’t blind you when you switch it on in the middle of the night is too useful.
I still use physical buttons though. I’ve been to people’s houses where they shout at privacy nightmare Alexa 3 times when they could have just hit a button in a tenth of the time, so daft
Jedi Survivor is quite buggy but I’m still enjoying the hell out of it. It saves some of its best stuff for the mid game, and I’ve had a few unexpected genuine belly laughs out of it. Rick the Door Technician was great and the folks who modelled, animated, wrote and voiced Skooma Stev (an inexplicably Glaswegian moustachioed slug in a diving suit) were doing some of their best work
As someone who lost a good 18 months of productivity (and life in general) to chair-lifestyle related back problems I advocate for the Hag Capisco all the time; I’ve had one for 15 years and I genuinely credit it with having saved my programming career. I consider all other chairs to be junk in comparison.
After years of being the only person I know with one, quite a few people I know have converted to one recently, and it’s great when they report improvements in their back health too 🤘
“Vetting” can mean delegating due diligence to the publisher (or repackager) rather than personally reading the source, but that means vetting the publisher instead. And there is a finite number of those that you can maintain vetted trust in at any one time. You can’t just assume that the “community” somehow automatically protects you against bad actors. It might, but it’s been shown many times that it might not; sometimes everyone thinks someone else would have spotted a problem and no-one does
It makes me laugh when I see programmers harping on about their memory safe languages and how they’re not subject to buffer overruns like the old man languages, while auto-pulling 500 dependencies from randos on the Internet into their projects without even looking at them
Every week there’s an article about the high vulnerability of package managers to supply chain attacks and I’m just amazed it’s taken this long for people to figure out that routinely auto-pulling 500 disparate third party libraries unseen into your project is a terrible idea
I remember back in my MacOS dev days being told that I should be using CocoaPods and when I told them that was a stupid idea (I had like 3 dependencies and regularly poked around in the source for all of them) I was the old fashioned old man. “But it automates all the updates!”. So what? There’s 3. a) I don’t need it, it’s super easy to pull changes from source and b) when I do it manually I actually *look* at the updates like a sane person would https://arstechnica.com/?p=2034866
Of course there’s no reason you can’t use automated package managers *and* do the kind of due diligence a responsible developer would do when pulling code from third parties into their project, but I don’t think I’ve ever seen anyone do this. Instead it seems normal to implicitly trust anything that comes out of a package management system no matter who controls it and that’s always been wild to me.