Will's Blog: Dev 101

Started by WillLem, April 14, 2020, 09:17:16 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Which would you rather ask for: permission, or forgiveness?

Permission
1 (16.7%)
Forgiveness
5 (83.3%)

Total Members Voted: 6

WillLem

I completely forgot to upload the link to the GameCube refurbishing video!

Anyways, here it is! I hope you enjoy it :lemcat:

WillLem

Paradoxes

Is it possible to read something that you haven't already read?

WillLem

#77
I've added a poll.

Which would you rather ask for: permission to do something, or forgiveness for having done it already?

WillLem

Dev 101

One of the issues with performing regular updates to a program is that, inevitably, more bugs are introduced as the feature set grows. It's also possible for bugfixes themselves to introduce more bugs as a bi-product.

It becomes necessary, then, to take greater and greater care with individual features. Testing becomes more important than implementing ideas, and it can sometimes feel like tail-chasing.

"Do first, think later" gets things done, but the second step is just as important (if not more so) than the first. Perhaps "think first, do later" comes with experience, but can this then prevent a more experienced dev from getting things done?

Simon

#79
Quote from: WillLem on April 13, 2025, 05:29:39 PM"think first, do later" comes with experience

Motivation: It's more expensive/annoying/time-consuming to put the bugs in, test, and take them out, than it is to write the correct code in the first place.

With experience, you can anticipate the typical bugs that can arise.

It's better to design the bugs out of existence than to test for them. With experience and sense, you'll see more opportunities to design bugs out of existence. You can't always do it: The better design can be expensive to retrofit, or you must remain backward-compatible to the old design, or there isn't even a theoretical way to design the bugs away.

Quotecan this then prevent a more experienced dev from getting things done?

Yes.

Neutral Lix don't exist yet because I want the level format to express loose single lix (pre-placed lemmings) and player-assigned hatches/exits, and this cannot be backward-compatible. Roadmap for neutral lix. Physics changes in general are hard, everybody must update to netplay with each other. I like to bunch physics changes and have them at most once per year, but it makes public testing really hard; can't iterate naturally.

TripleA, a networked turn-based strategy game, is still on version 2.5 from 2020-2022. They didn't release 2.6 in 2022 and they've had trouble releasing 2.7 since October 2024, i.e., for half a year now. One problem is manpower, the other is getting everything to work with public netgame servers.

The stable 2.5 has at least one nasty bug that affects normal players. When you assign casualties to your aircraft, you usually want to kill your aircraft with the least fuel remaining. Instead, the engine kills a random aircraft (probably according to internal unit IDs), and you're stuck with surviving aircraft that can't land and will ditch into the ocean in addition to the assigned casualty. This was fixed in 2021, 4 years ago, but that fix hasn't made it into stable yet.

It's fundamentally the same problem as in Lix: Some backward compatibility concern in the ecosystem is blocking the release of perfectly good things. I don't need the server-side back-compat, I haven't played people from the internet. Instead, I'll host on my own machine and tell friends to grab the same TripleA nightly from github for netplay. Aircraft survive, and happy Simon.

-- Simon