This is known as the "fun and good" phase of game development. Then as you approach shipping, the code base gets more fixed and brittle and hard to work with as you make optimizations, make things scale as needed, make everything work with multiplayer, &c.
You start doing bugfixes in the way that is least likely to introduce new bugs, the most localized way rather than the "right" way, so you end up with e.g. weird shitty special case checks all over the place. Then you ship, maybe do a couple patches, and leave that code base behind forever.
It's analogous to how sculptors do the design work in clay, then once they know exactly what they're making, then they make that shape in marble.
This finalization step is one of the reasons games are so much more performant than traditionally-made software. Make it go fast at the expense of any semblance of future-proofing or maintainability. (Another major reason is that, y'know, performance is any kind of priority at all.)
In a live service/early access game, you do all those optimizations that make the code base fixed and brittle and hard to work with in order to ship it, then you keep working on it in that state forever. It's like if the sculptor had to patch their existing marble statue to add new features every three months. This is known as the "unremitting hellscape" phase of game development, and early access developers live there permanently.