Sign in

Stephen Ulibarri

@druidmechanics.bsky.social
153 followers 21 following 83 posts

Stephen Ulibarri, creator of the Druid Mechanics game developer community

PostsRepliesMedia
Stephen Ulibarri @druidmechanics.bsky.social · 10/01/2025
Stretching and squashing animations really look good on fast-moving characters.
020
Stephen Ulibarri @druidmechanics.bsky.social · 09/01/2025
Yeah, FAB has its kinks to iron out, but think about the artists who now get zero sales. We shouldn't punish them for the platform change they had zero control over.
010
Stephen Ulibarri @druidmechanics.bsky.social · 07/01/2025
Consider pass-by-value instead of reference if the function requires a copy of its argument. This is conceptually identical to taking a reference to const plus doing a copy, and it can help the compiler to better optimize away temporaries.
000
Stephen Ulibarri @druidmechanics.bsky.social · 05/01/2025
Using an object-oriented language like C++, we often forget the power of free functions. They elegantly separate concerns, reduce dependencies, and fulfill the Single-Responsibility Principle.
011
Stephen Ulibarri @druidmechanics.bsky.social · 01/01/2025
"What do you want for your last meal" sounds really ominous if you leave out "of the year"
000
Stephen Ulibarri @druidmechanics.bsky.social · 29/12/2024
Unreal Engine has its own version of many std library utilities. For instance std::accumulate exists in the form Algo::Accumulate. Syntax isn't always 1:1.
000
Stephen Ulibarri @druidmechanics.bsky.social · 28/12/2024
Before naming it C++, Stroustrup was going to call it "C with Classes" lol
110
Stephen Ulibarri @druidmechanics.bsky.social · 26/12/2024
Bjarne Stroustrup knew 25 languages when he invented C++.
020
Reposted by Stephen Ulibarri
Slime 💚🧪 @capernica.bsky.social · 26/12/2024
Game: This weapon is far superior to your current weapon. Me: But it’s ugly and doesn’t match. How can I possibly slay my enemies if I can’t slay the outfit?
2006733724
Stephen Ulibarri @druidmechanics.bsky.social · 26/12/2024
If you lie to the compiler, it will get its revenge. --Henry Spencer
000
Stephen Ulibarri @druidmechanics.bsky.social · 26/12/2024
It is a common fallacy to use list just because "list is obviously the right type for list operations," such as insertion into the middle of a sequence. Using vector for small lists is almost always superior to using list.
100
Stephen Ulibarri @druidmechanics.bsky.social · 26/12/2024
It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free. --Steve McConnell
000
Stephen Ulibarri @druidmechanics.bsky.social · 26/12/2024
Your quote here. --Bjarne Stroustrup
000
Stephen Ulibarri @druidmechanics.bsky.social · 25/12/2024
Remember: it's far, far easier to make a correct program fast than it is to make a fast program correct.
020
Stephen Ulibarri @druidmechanics.bsky.social · 25/12/2024
Don't write namespace usings in a header or before an include. Using namespaces is for your convenience - but should not affect someone else's code - be it code that includes your header, or other headers included after the using.
120
Stephen Ulibarri @druidmechanics.bsky.social · 24/12/2024
Systems have sub-systems and sub-systems have sub-systems and so on ad infinitum - which is why we're always starting over. -Alan Perlis
020
Stephen Ulibarri @druidmechanics.bsky.social · 24/12/2024
I fail to see why a Flettened Green Toaster Toothbrush with Flag could ever be less than desirable.
A funny excerpt from Large-Scale C++, Volume 1 by John Lakos
010
Stephen Ulibarri @druidmechanics.bsky.social · 24/12/2024
Avoid calling virtual functions in constructors/destructors. A parent class's constructor's call to a virtual function will not call the most-derived override as the most-derived child hasn't even been constructed yet.
010
Stephen Ulibarri @druidmechanics.bsky.social · 19/12/2024
Games are made of systems - those systems are made of parts which themselves are little systems of a lower order in the hierarchy. When the hierarchy has multiple levels, we call it "depth." It can be rewarding to make game systems that are deep.
030
Stephen Ulibarri @druidmechanics.bsky.social · 19/12/2024
Marvel Rivals is a clone of Overwatch and I love it
000
Stephen Ulibarri @druidmechanics.bsky.social · 17/12/2024
My new course on UE5 Dedicated Servers is a hit - we have a 5/5 star review! I have created another coupon for the next 5 days - $9.99 - get it now if you missed the last one! www.udemy.com/course/unrea...
udemy.com
Unreal Engine 5 Dedicated Servers with AWS and GameLift
Build UE5 Dedicated Servers with Cloud Backend - Databases, User Pools, Virtual Machine Hosting, all on the Free Tier!
130
Stephen Ulibarri @druidmechanics.bsky.social · 17/12/2024
Just because a pointer isn't null doesn't mean it is safe.
010
Stephen Ulibarri @druidmechanics.bsky.social · 17/12/2024
Clearer code is better code. If your cute semantic trick results in the most miniscule of microoptimizations, yet renders the code harder to read and understand, it is worse code. Period.
110
Stephen Ulibarri @druidmechanics.bsky.social · 14/12/2024
Strip away the assets of your game and replace everything with boxes. If it isn't fun to play, it isn't fun with the asset wrapper either.
130
Stephen Ulibarri @druidmechanics.bsky.social · 12/12/2024
My new course is now LIVE!!! Unreal Engine 5 Dedicated Servers with AWS and GameLift – I teach all about dedicated servers, hosting on the cloud and your own hardware, and cloud backend for your UE5 projects! Get it with this special coupon: www.udemy.com/course/unrea...
udemy.com
Unreal Engine 5 Dedicated Servers with AWS and GameLift
Build Dedicated Servers with Cloud Backend - Databases, User Pools, Virtual Machine Hosting, all on the Free Tier!
1112
Stephen Ulibarri @druidmechanics.bsky.social · 12/12/2024
Choosing an established game genre is to compete with billion-dollar corporations. Choosing a new frontier sets yourself at the top of your field.
020
Stephen Ulibarri @druidmechanics.bsky.social · 09/12/2024
The order in which arguments of a function in C++ are evaluated is unspecified, so don't rely on a specific ordering.
210
Stephen Ulibarri @druidmechanics.bsky.social · 09/12/2024
Proc gen is cool and all, but nothing quite beats a handcrafted piece of the scene.
040
Stephen Ulibarri @druidmechanics.bsky.social · 09/12/2024
I remember this haha
110
Stephen Ulibarri @druidmechanics.bsky.social · 09/12/2024
Don't overload && or || These have short-circuit evaluation, but your overload will not, which is dangerous.
010
Stephen Ulibarri @druidmechanics.bsky.social · 09/12/2024
If your function has 10 parameters, you probably missed some.
010
Stephen Ulibarri @druidmechanics.bsky.social · 09/12/2024
An ancient joke about C++ was that the language is called C++ and not ++C because the language was improved (incremented), but many people still use it as C (the previous value).
140
Stephen Ulibarri @druidmechanics.bsky.social · 08/12/2024
Spur not a willing horse (Latin proverb): Premature optimization is as addictive as it is unproductive. The first rule of optimization is: Don't do it. The second rule of optimization (for experts only) is: Don't do it yet. Measure twice, optimize once. --Sutter & Alexandrescu
000
Stephen Ulibarri @druidmechanics.bsky.social · 08/12/2024
The palest ink is better than the best memory (Chinese proverb) - use a version control system.
000
Stephen Ulibarri @druidmechanics.bsky.social · 06/12/2024
// set health to max health Health = MaxHealth; This is a crap comment. Don't comment the "what," comment the why. Most good code is self-explanatory and needs no comments. // not in order after removal Players.Sort(); Is an example of "why."
010
Stephen Ulibarri @druidmechanics.bsky.social · 03/12/2024
Accurig can automatically rig humanoid characters, even to the Epic skeleton.
010
Stephen Ulibarri @druidmechanics.bsky.social · 01/12/2024
In Seamless Travel, the server moves to a new level without disconnecting players. In fact, their Player Controllers persist in this process. GameModes can perform initialization logic in InitSeamlessTravelPlayer.
000
Stephen Ulibarri @druidmechanics.bsky.social · 30/11/2024
UGameplayStatics::OpenLevel takes in an optional FString called Options. You can pass in any custom options you like. The GameMode receives them in various functions that are called when a client joins, such as PreLogin(), where you can accept/reject the player.
110
Stephen Ulibarri @druidmechanics.bsky.social · 29/11/2024
Attention fellow nerds: Eating too much cake is the sin of gluttony. However, eating too much pie is okay because the sin of pi is zero.
010
Stephen Ulibarri @druidmechanics.bsky.social · 28/11/2024
TArray::RemoveAtSwap is useful for removing items from an array in a more efficient manner. Instead of shifting all elements after the removed item (which can be costly) it instead swaps the element to be removed with the last item in the array, then removes the last element.
000
Stephen Ulibarri @druidmechanics.bsky.social · 28/11/2024
As AI continues to assist creators more and more, we will steadily see a growing world of "content" devoid of soul or character.
020
Stephen Ulibarri @druidmechanics.bsky.social · 28/11/2024
Times in programming when I was blocked for days on end, I learned and grew the most as a developer. Finding the solution to a seemingly impossible challenge is a major breakthrough.
000
Stephen Ulibarri @druidmechanics.bsky.social · 27/11/2024
Gatekeepers' gates are solely dependent on your belief in them.
000
Stephen Ulibarri @druidmechanics.bsky.social · 25/11/2024
If you aren't getting any compiler errors, you aren't challenging yourself enough.
000
Stephen Ulibarri @druidmechanics.bsky.social · 24/11/2024
Life's filled with try/catch blocks. But all the magic happens in the try.
020
Stephen Ulibarri @druidmechanics.bsky.social · 23/11/2024
As a developer, especially an indie, we often do our work isolation. It can be nice to find someone who shares your excitement, so you can revel in your victories together.
030
Stephen Ulibarri @druidmechanics.bsky.social · 23/11/2024
If you're feeling a bit like butter, spread across too much bread, it might be time for a break. Your work will be there when you get back.
000
Stephen Ulibarri @druidmechanics.bsky.social · 22/11/2024
You can create raw C++ classes in Unreal, just like in any other C++ project. I think Unreal devs often forget that and opt for classes in the Unreal hierarchy, taking on unnecessary inherited code and features they don't need. You can even use smart pointers to manage them.
000
Stephen Ulibarri @druidmechanics.bsky.social · 22/11/2024
We get a lot of sus DMs from randos on our Discord. Some can sound quite convincing. I recommend never clicking on links from random unsolicited DMs in general. Lots of phishing and scams going on.
000
Stephen Ulibarri @druidmechanics.bsky.social · 22/11/2024
Check your startup apps. Does Steam really need to be running in the background?
000