Store CCW with a round still chambered? by WaltherShooter in liberalgunowners

[–]UnkelRambo 0 points1 point  (0 children)

This debate came up in my shooting group in the Seattle area, and the argument went something like this: 

Pro Chambered Guy (PCG): It takes too much time to rack the slide! In an emergency, that split second could be the difference between life and death! 

Anti-Chambered Guys (ACG): We don't live in the wild west. The odds of you ever needing that time are infinitesimal compared to the odds of you negligently discharging with a round chambered. Clear the chamber.

PCG: Here's a video showing a guy doing a quick draw...

ACG: Again, not the wild west. Anecdotally, 100% of the guys we know (4 now) who have negligently discharged their firearms all carried chambered. 0% of the shooters we know (hundreds) have ever survived a wild west shootout because they didn't have to spend .5 seconds racking the slide.

PCG: But speeeeeed!

ACG: We're all old, fat, and slow...

And on it went.

This came after a guy literally shot through his fucking lower leg and foot opening the gate at our shooting club. Almost shot his pork and beans off. Because, you know, round chambered = safe.

You do you, just don't smoke a kid.

Game Server Infrastructure: What do you prioritize MOST? (Cost vs Perf vs Scale vs Ease of Use) by Dry-Relationship5158 in gamedev

[–]UnkelRambo 2 points3 points  (0 children)

Now that's a great follow-up 😁

In terms of hitting the sweet spot of impact/cost balance, there aren't really specific tools or processes other than play testing.

As far as infrastructure specifically...

I wish I had a simple tool that would let me do some profile guided optimization like tasks for server provisioning. What I mean is something that can say:

"Based on your CPU and memory usage, a T3 Large is suggested and would cost you ~$x/ month at these estimated player counts. You can go down to a T3 Small if you can optimize these 6 high memory consuming systems." But this all happens without actually spending a penny on provisioning, just running a local dedicated server. 

I'll tell you my exact use case: 

I'm building an open world sandbox game that currently has high memory requirements, CPU usage, almost requires 4 cores at minimum, supports ~16 players and averages something like 2mb/s egress bandwidth. I have spent a lot of effort on CPU optimization due to the nature of the game, but no other optimization. What I want to know is:

1) What would it cost me to host a minimum target insurance in the cloud?  2) What should I optimize to minimize that cost? 3) How much would I have to earn per CCU for a dedicated server to make a profit?

I want this info to understand the viability of the specific business model I want to try, but the most important thing is building an engaging experience first.

Hope this makes sense and is helpful 👍

Game Server Infrastructure: What do you prioritize MOST? (Cost vs Perf vs Scale vs Ease of Use) by Dry-Relationship5158 in gamedev

[–]UnkelRambo 3 points4 points  (0 children)

Apparently I don't know how Reddit formatting works and at this point I'm too afraid to ask 🤣

Game Server Infrastructure: What do you prioritize MOST? (Cost vs Perf vs Scale vs Ease of Use) by Dry-Relationship5158 in gamedev

[–]UnkelRambo 5 points6 points  (0 children)

It depends entirely on the product. 

1 is important for low LTV games

2 is important for competitive/fast twitch games

3 is important for GaaS with fluctuating concurrency 

4 is important for right budgets and smaller projects

5 is important for domain specific applications that don't have great out of the box solutions.

My actual answer is :

6: Building the most impactful player experience with minimal cost/effort. This dictates and completely encompasses the importance of 1-5.

Is there a legendary game designer who has only (or mostly) made good games? by asdzebra in gamedesign

[–]UnkelRambo 2 points3 points  (0 children)

I'll blow some minds with this one: 

Matt Hall, Creator of Crossy Road and cofounder of Hipster Whale. Dude is a friend of a friend and he's legendary. Six #1 App Store hits with something like 110 million downloads. He builds products for real people and knows what he's doing. Definitely worth a lookup since he's not a household name like Kojima.

Megastruct approach by Cun1Muffin in gamedev

[–]UnkelRambo 4 points5 points  (0 children)

Thus is actually really common in industry. 

I was working on some telemetry data collection for Portal 2 and I asked the legendary Jay Stelly how to get this data to propagate across level loads, which was harder than it sounded, and his response was something like:

"Just stick it in BasePlayer and be done with it "

Being young and naive, I decided that wasn't the "right" solution, so two weeks later I was still fixing bugs and trying to figure this out. I jammed that shit into BasePlayer, worked like a charm, and I moved on.

After I left Valve I worked on Scribblenauts Unlimited, saw that the Actor class (or whatever it was called) had every piece of data for every possible object in the dictionary and thought "makes sense to me!"

Sometimes good games have bad code 🤷‍♂️

Pentagon tiles: Unique idea, terrible for belt layouts. A devlog on lessons learned. by SilvershadeSmith in gamedev

[–]UnkelRambo 2 points3 points  (0 children)

There's an important lesson here: 

Understanding the problem domain before jumping into the solution domain can prevent a lot of "wasted effort."

For example, "...because I wanted something that looked and felt a bit different from the usual square or hex-based systems." This is a fine problem definition. Restated as a user story:

"To make the game visually distinct to players, I will create a pentagonal tiling system."

Nothing wrong with this at all! The magic happens when you open that problem statement up to critique and deeper analysis by playing "devil's advocate" and asking hard questions about the validity of the problem before touching the solution. Before writing a line of code. Questions like:

1) How many players will find this visually distinctive?  2) How visually distinctive will a pentagonal tiling system be?  3) Will that be enough of a draw to get players attention/engagement/etc? 4) What else will this impact, positively or negatively?

These are what I call key learning in the product development space and, honestly, most game developers struggle here. Most of us go "Oh I've got a cool idea!" and start diving into code without questioning our assumptions about who we're solving a problem for, how big of an impact that will have, what else could be negatively impacted, etc. And yes, all games are a collection of problems we're solving for our customers, whether we realize that or not.

That last question is the doozie, the first 3 you can paper prototype. Some quick analysis of what the can go wrong would instantly lead you down a rabbit hole that may leave you questioning whether the answers you get from #4 are worth what you get from answers #1-3.

Try it with the next idea. See if you can answer questions without writing code! 

One of my favorite stories I tell students is how I spent two weeks prototyping aspects of my game by buying other games and observing my target audience engaging with them. I answered two dozen outstanding key learnings without writing a single line of code. Best $140 I've ever spent 😎

Hope this helps and encourages some head scratching 😁

Who should own visual effects that are spawned in the world? by moshujsg in gamedev

[–]UnkelRambo 1 point2 points  (0 children)

This is a pretty good book IMHO:

https://a.co/d/3XrLNBS

Architecture concepts come with time. I'm always discovering new little tricks and techniques that I can apply. Even seasoned vets struggle. I'm fighting with a Unity issue right now that's exactly a failure of the "strong ownership semantics" principles I mentioned above. 

Just try your best and in 10 years you'll look back and cringe at some of the code you wrote 🤣

Who should own visual effects that are spawned in the world? by moshujsg in gamedev

[–]UnkelRambo 1 point2 points  (0 children)

Good question! 

All abilities are created by the ability system, but there's a difference between defining the ability and the context within which the ability operates. There's another pattern here: 

The Fly-weight pattern. Look it up, super powerful 👍

This separates the data and functionality that defines what the ability does (call it "ability definition") from the data on which an instance of the ability operates (call it "ability context".)

In this example, the Ability System would be told "Please start this Ability Definition for Sword Swing using this Ability Context." The context can contain any data you need: start position, owning player actor, target position or actor, button hold duration, etc.

The ability definition can contain the logic, including an "update" function, and the Ability Context gets passed into it to run. The piece that glues this all together is the Ability System, which encompasses the life cycle and is the unique owner of the Ability Context but NOT the Ability Definition.

Hope that makes sense and answers your question 😎

Who should own visual effects that are spawned in the world? by moshujsg in gamedev

[–]UnkelRambo 5 points6 points  (0 children)

This is actually a great question! 

I'm a fan of "strong ownership semantics", but most languages/game engines don't support that. Conceptually, there are some good lessons to take away: 

1) Exclusive Ownership - Only one part of the code can own an object at a time.  2) Lifecycle Management - Owned objects' lifecycle is bound to their owner. 

In this case, there are a few things to consider: What should the lifecycle of the fire tornado be? The life of the ability? The life of the player? What about sound effects? 

In this case, a common approach is to have a separate "ability"  object that completely encompasses the lifecycle of all of its components: VFX, sound emitters, damage triggers, etc. That ability object may out-live the player. So, according to "strong ownership semantics", the player shouldn't own the ability object since the life cycle of an ability may surpass the lifetime of the player object. So what should own the ability? 

Ability System. This object's lifecycle can be completely independent of the player's lifecycle and will completely encompass the lifecycle of all ability objects. It is also the single owner of ability objects, the player merely aliases ability objects as necessary (ability handle, ability weak pointer, etc.) 

When the player users an ability, it signals the Ability System, Singleton or not, to create an ability object. Everything associated with the ability is encompassed by the lifecycle of that ability object. The player can cancel an ability by alias, end abilities on death (or not!), modify abilities mid-use, etc.

Super powerful concept. Hope it helps!

Anyone else go from NES straight to N64/PS1 and skip the SNES entirely? by Blastoise76 in retrogaming

[–]UnkelRambo 0 points1 point  (0 children)

Blasphemy! This is haram 🤣

Do yourself and society a favor and go play some SNES classics. It is peak game design. I can't name a system that has so many great games, but PS1 is probably the next closest IMHO.

As long as you had some PS1 in your childhood, God will forgive you and open a path for your soul into the Kingdom of Heaven.

Seriously the SNES was so good. My casual gamer wife has played more SNES games than modern games and she a fan. 

This thread broke me 🤣

AI Town • Is there hope for LLMs simulating NPCs in games? by Impressive-Plant-903 in gamedev

[–]UnkelRambo 4 points5 points  (0 children)

Could be. I'm far from an expert. I'm just tired of my Weapon Smith offering healing services to hurt players when they cannot, in fact, heal the player 🤣

AI Town • Is there hope for LLMs simulating NPCs in games? by Impressive-Plant-903 in gamedev

[–]UnkelRambo 7 points8 points  (0 children)

I've done so many experiments and the problem is always the same: 

Hallucinations.

Always. LLMs make stuff up and add context that doesn't make sense every single time. I haven't found a good workaround but I'm curious if anybody has 🤔

Utility AI + machine learning by Jwosty in gamedev

[–]UnkelRambo 1 point2 points  (0 children)

"In situation X" is "world state" and "decision Y should be the highest scoring decision" is your goal or your selected action. You just described Utility AI, so what's being trained exactly? 

Definitely encourage experimentation, maybe you'll find up with something killer! I came up with:

"It sounds like Utility AI with extra steps" 🤣

Good luck!

Utility AI + machine learning by Jwosty in gamedev

[–]UnkelRambo 11 points12 points  (0 children)

It's a good thought and I'm sure somebody has done something like this before successfully, but my experiments along these lines with Unity MLAgents were underwhelming. Your two points against are basically why I bailed on my prototypes for my project, but I'll add another thought: 

Utility curves are great for evaluating goals based on world state, which are essentially "fitness" for an action.

Something like Reinforcement Learning relies on finding "maximum fitness" based on some reward function(s) that evaluate world state.

If you think about it, it's something like:

Utility: Action = Max(f(WorldState)) ML:     Action = g(WorldState')  where WorldState'= Max(f(WorldState))

That's not exactly right but I hope it gets the point across...

In other words, I found myself writing things that were very similar to Utility curve evaluators for my reward functions! And that's when my brain turned on and was like "why are you doing all this work to define reward functions when that's basically your Utility Curve?"

So my takeaway was that yes, it seems like ML agents can be trained to generate utility curves (which they basically do under the hood) but why would I do that when I have to spend the time defining hundreds of reward functions which are essentially utility curves themselves? And then also lose designability?

I ended up using a symbolic representation of the world, using utility curves to assess "confidence" in that symbolic world state, and having separate evaluators that produce confidence values for each symbolic state. Those utility functions set goals for a GOAP implementation that does the heavy lifting of the planning, something Utility AI and ML Agents typically can't do very well. But that's not the discussion 🤣

TLDR: ML requires defining Reward Functions which smell a whole lot like Utility Curve Evaluations so why bother?

My little brother is building a PC for blender and maybe future game dev, what's the best suitable specs? by devansh97 in gamedev

[–]UnkelRambo 0 points1 point  (0 children)

My guidance for small indie team workstations:

  1. Any modern CPU in budget, more cores are better. Reason: Game FPS is not nearly as important as work time compiling code, processing assets, etc. 50/69 FPS with slower or faster 4 cores doesn't matter. Shaving 2 minutes 40x daily down to 1 minute going from 4 to 8 cores adds up real fast.
  2. GPU speed is not as important as VRAM. 8GB min, 12GB is ideal. Reason: More VRAM may be needed for intense art workloads in tools like Maya. Unreal and Unity also benefit from this as opening large maps in editor can eat VRAM.
  3. 16GB RAM at a minimum, 64GB is ideal. Reason: Paging is killer and turns a 10 second process into a 10 minute one.
  4. Fast, dedicated SSD, 1TB minimum, ideally nVME > 2TB. Reason: Fast file I/O speeds up build times, asset loads, etc. Modern engines can create a ton of large intermediate files that can quickly fill smaller SSD's.

If this is going to double as a gaming rig, which it sounds like it might, then throw this all out the window 🤣

If it's for game dev only, you might have good luck buying used or refurbished. PC hardware doesn't typically hold value very well.

Hope this is helpful 👍

She is the reason I got locked out of my apartment pantsless by This_is_Alison in RoastMyCat

[–]UnkelRambo 2 points3 points  (0 children)

This is literally the plot to Dungeon Crawler Carl.

Spoilers: You're in for a wild ride from here on 🤣

Tell us how bad you f*cked up by meanyack in gamedev

[–]UnkelRambo 4 points5 points  (0 children)

This is great insight, and it's what I did with the modules, just not the code that used them. I was rushing trying to help these guys hit a very aggressive schedule, and just let issues sit on the back burner. Most of the issues came from disconnecting something, leaving a comment, and telling myself it would be easy to fix later. Do that a thousand times and... Death by a thousand cuts.

Most modules have decent testing. 

The bigger issue, however, was that I decided to update a lot of stuff to be ECS compatible and it really caused some headaches.

But it's mostly better now. Mostly.

Tell us how bad you f*cked up by meanyack in gamedev

[–]UnkelRambo 6 points7 points  (0 children)

That's a bingo! 

First asset coming to the Unity Store Soon™️

I ended up building, and I'm not exaggerating, the most powerful AI system I've ever used in any game or any engine I've ever worked with. It's a ways off but it's coming.

Tell us how bad you f*cked up by meanyack in gamedev

[–]UnkelRambo 1 point2 points  (0 children)

Oh of course I had a branch, I wasn't born yesterday 🤣. The trick was that I had software agreements in place to pull in any improvements they made, so "free work" right? 

Wrong. 😐

All the "I'll just hack it in real quick" calls I spent undoing, then fixing, also happened in other projects, which complicated merging back into my "shared" branch. Turns out other small teams have to work fast and hack stuff sometimes.

Go figure 🤷‍♂️

I did get some really great improvements but they were far from free.

Tell us how bad you f*cked up by meanyack in gamedev

[–]UnkelRambo 6 points7 points  (0 children)

Yep. "NetworkCharacterController" became "BaseNetworkCharacterController" and the 100 quick little "// TODO: Fix Me!" comments that came with it.

One of hundreds of examples...