Thanks for the advice. In your example, what does the update() method do? I see a lot of examples with it and I never understood what it was for.
In this specific case, I would guess it Bullet.update updates the bullet's position (e.g. based on direction and velocity), and checks if it hits something (in which case, it modifies the bullet's dead variable).
I checked the UE4 engine, and it seems to be 19 dollars per month + 5% out of 3k I would make. I honestly doubt I will make any money, and I would have gladly pay even 50 dollars for ue4 but having it as a 19€ monthly fee I probably am too cheap for paying at least for now.
You can pay for 1 month and cancel the subscription. You'll still have access to whatever you had access to, but you will not be able to get updates and patches until you resubscribe.
Actually, Donald Knuth. And the full quote is a bit more nuanced:
"Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%."