Show newer
i am making radiator basil alfredo with chicken. its called radiator because im making it with radiatori pasta and they look like little radiators. thank you for coming to my kitchen nightmare

It didn't work. Going to throw the entire thing out and try again with a different system.

Show thread

I think I know what is wrong with my tickrate system now.

I calculate the amount it steps in time to move forward depending on how much time has passed since the last tick, divided by the expected delay between ticks (1 over w_tickrate, in this case, 1/120th of a second).

The math is sound. I have gone over it again and again and again and again. However:

There is always microscopic differences in latency which are simply out of my control. And because everything is on a single thread, the speed at which the graphics are drawn every frame can have a wild influence on the latency between world updates. There's clue number one.

Clue number two: I do not store the delta anywhere as a member within the world class. I only truncate the result down to an 8-bit counter telling how many ticks to process. The time measurement then gets thrown away because I reset w_lastUpdate every tick without storing the remainder of the w_ticksDue calculation. There's clue number 2.

Clue number 3: certain events within the world only deviate from their intended speed up to a certain point, before wrapping around to being slow again.

I think what's happening is I am constantly throwing away microscopic delays which are introduced during the rendering loop and this causes the world's internal clock to rapidly desync even though it is very close, because it simply forgets about that extra time when calculating w_ticksDue.

Gonna try a fix when I get home.

@xianc78
This is genuinely something I've been struggling with for the last four or five years. I graduated in 2020 and spent 2 years living with my parents looking for work, which I found at a mindless data entry position only to get laid off 1.5 years later when the company - surprise! - slashed 25% of its workforce to reduce costs.

Meanwhile it seems like indie devs are having a lot of fun (those of them who aren't fags, at least) and they have roughly equivalent or better odds of making it big with some memetic idea.

I'm going to start buying stacks of 4K BD-ROMs to move my old gaming clips and blender projects and stuff to. I can't keep taking care of more and more 8TB hard drives that are going to die someday and having to hoard and replace them.

The price-to-capacity ratio is worse, sure you can get an 8TB WD Blue for 130 dollars now, but those are mechanical and electronic, they get old and die. SSDs, they get old and die and those are twice as expensive. I'm on low income.

Discs only rot and even then they take way longer. I'll be able to procrastinate on revising that old stuff for as long as I am alive.

While I'm deciding what to move to those discs it will also be a good opportunity to finally delete years of stuff I just don't want anymore. The data hoarding is only half because I'm overprotective but also because that shit piles up and gets hard to sift through.

@bronze hey ai how can I get into the pants of that girl who keeps ignoring me

Okay so I've tried about a million different things and everything either just A. goes super speed, B. Freezes after Tick #2 or C. Behaves exactly the same

I am 100% certain this should be working because it is exactly what I did with the FPS cap...

Show thread

Somehow my timings are wrong...?
It's gotta be some kind of typo in my delta timer, I've checked everything else.

It is a good thing I have not started writing enemy AI yet or else the whole thing would have to be rebalanced.

Short C++17 question, expert help wanted 

I have been doing some research on the inline keyword in C++, since my IDE (CLion) is... giving it a lot of preferential treatment.

From what I have read, correct me if I am wrong, it is primarily an optimization **when used on functions**. Forcing the compiler to insert the function contents directly wherever it's called when it assembles into opcode, removing the overhead of calling a subroutine, but potentially decreasing efficiency in other ways--low level CPU cache/branch predict stuff the compiler will probably decide for me anyway and that I don't have a great understanding of yet.

However, I cannot find a super clear answer on what cons this may have for *variables*.

Say I have a static variable in a namespace:

namespace stuff {
uint8_t x = 69;
}

What are some potential DRAWBACKS, if any, to making this inline? I can only find information on advantages, but that it should otherwise be left alone because the compiler will do it anyway if it's analysis deems necessary. The consensus seems to be "none" but I want to be sure because there is a lot of bad advice out there.

Thanks

Gonna mess with id tech 4 soon btw I wanna make a 00s style fps or similar before gaming got bad
don't click on any of those links it makes a bomb
a remake of Grand Theft Auto: Vice City (arguably the best of the entire series) ported to the GTA 4 engine by Revolution Team (based ruskies) is scheduled to release sometime this month and my body is ready. i will play this. even if im on vacation.

I wonder what alternate DE's exist for AmigaOS 3? Workbench isn't my thing, but I'm trying.

Show older
Game Liberty Mastodon

Mainly gaming/nerd instance for people who value free speech. Everyone is welcome.