Game Dev and overall pretty chill dude.
🐰 CTO at Killabunnies
⚙️ Unreal Engine shaman
🔥 Hated Unity before it was cool
Maybe? 👀
Read more about it on my new, organic, 100% human written blog post.
miltoncandelero.github.io/coloring-out...
(Special thanks to @unreal-garden.com 🌱)
Maybe? 👀
Read more about it on my new, organic, 100% human written blog post.
miltoncandelero.github.io/coloring-out...
(Special thanks to @unreal-garden.com 🌱)
Maybe 👀
But hey, at least I can boast that it is a 100% organic, human written article. 😎
miltoncandelero.github.io/iceberg-vers...
Maybe 👀
But hey, at least I can boast that it is a 100% organic, human written article. 😎
miltoncandelero.github.io/iceberg-vers...
Not 100% sure why, also hasn't happened 100% of the time, but the worst corruptions I've got where because of this.
Be esoteric, be paranoid, be safe ❤️
Not 100% sure why, also hasn't happened 100% of the time, but the worst corruptions I've got where because of this.
Be esoteric, be paranoid, be safe ❤️
What do you mean you don't have to jump between 3 different engines on the same week?!?!
What do you mean you don't have to jump between 3 different engines on the same week?!?!
Use Facade to create a simple API like Data.Write("stuff")
Use Strategy to swap the actual implementation under the hood: send it to your server or write on toilet paper, the rest of your game will never know!
Use Facade to create a simple API like Data.Write("stuff")
Use Strategy to swap the actual implementation under the hood: send it to your server or write on toilet paper, the rest of your game will never know!
Spawning is just cloning the Class Default Object (CDO)
The constructor already ran once when the class loaded.
Want to set up logic? Use BeginPlay().
Constructor is for defaults only.
Spawning is just cloning the Class Default Object (CDO)
The constructor already ran once when the class loaded.
Want to set up logic? Use BeginPlay().
Constructor is for defaults only.
Use the function that your engine gave you, or use an epsilon (nerd name for "a kinda small number).
Unity: Mathf.Approximately(a, b)
Unreal: FMath::IsNearlyEqual(a, b)
With an epsilon: abs(a - b) < 0.0001
Use the function that your engine gave you, or use an epsilon (nerd name for "a kinda small number).
Unity: Mathf.Approximately(a, b)
Unreal: FMath::IsNearlyEqual(a, b)
With an epsilon: abs(a - b) < 0.0001
If something must exist, don’t write
if (thing == null){
// This should never happen
return;
}
Assert that shit!
Assert(thing != null, "This should never happen because bla bla bla...")
If something must exist, don’t write
if (thing == null){
// This should never happen
return;
}
Assert that shit!
Assert(thing != null, "This should never happen because bla bla bla...")
Sometimes… you just need a spring.
Sometimes… you just need a spring.
At this point, "simple" just means "I haven't thought about edge cases yet"
At this point, "simple" just means "I haven't thought about edge cases yet"
I think I might need another me.
I think I might need another me.
🤔
🤔
🤹 Juggling
🃏 Cardistry
✒️ Pen flipping
🪙 Rolling a coin on my knuckles
🔪 Balisong tricks
🔥 Zippo tricks
🪀 Yoyo tricks
🔐 Lockpicking
At this point I'm not a dev, I'm a circus act with good version control.
🤹 Juggling
🃏 Cardistry
✒️ Pen flipping
🪙 Rolling a coin on my knuckles
🔪 Balisong tricks
🔥 Zippo tricks
🪀 Yoyo tricks
🔐 Lockpicking
At this point I'm not a dev, I'm a circus act with good version control.
In Unity, it's not null… it just pretends to be via a custom == operator.
So "if (obj == null)" works,
but "obj is null" or "obj ?? fallback" can silently fail.
Stuff of nightmares, yo.
In Unity, it's not null… it just pretends to be via a custom == operator.
So "if (obj == null)" works,
but "obj is null" or "obj ?? fallback" can silently fail.
Stuff of nightmares, yo.
Those are generator functions, not sleep timers!
I'm all for redlining your tools but please learn the proper use first, then twist it into shape.
Those are generator functions, not sleep timers!
I'm all for redlining your tools but please learn the proper use first, then twist it into shape.
Just because it’s “your own protocol” doesn’t make it safe.
Clients lie. They will send impossible positions, invalid actions, and corrupt packets. Yes, even in mobile games.
Validate everything. Always.
Just because it’s “your own protocol” doesn’t make it safe.
Clients lie. They will send impossible positions, invalid actions, and corrupt packets. Yes, even in mobile games.
Validate everything. Always.
🔥🔥
🔥🔥