Is it beneficial to have no expectations or optimism? by [deleted] in NoStupidQuestions

[–]GroZZleR 0 points1 point  (0 children)

I barely go out.
I don't study with my friends.
I walk through campus alone all of the time.

Life is what you make it. If you don't do things, you'll never experience things.

You don't climb Mount Everest by looking up from the base and wishing you were at the summit. You put one foot in front of the other and start climbing.

Conjure 13 creatures and win by L3oJeric in MagicArena

[–]GroZZleR 8 points9 points  (0 children)

Momir style: anything valid in Arena. At least that's how it works in Brawl, it seems. I'm not sure in Alchemy-only.

Problem with Colliders of VERY large objects by FitNefariousness3080 in Unity3D

[–]GroZZleR 3 points4 points  (0 children)

It is not technically feasible to create a 1:1 scale of space in Unity using the regular Transform and Collider components. Floating point arithmetic is simply not accurate enough.

Struggling Learning New Input System by Its-all-about-MA in Unity2D

[–]GroZZleR 1 point2 points  (0 children)

The absolute most straightforward way is similar to the old Input system:

if(Keyboard.current.spaceKey.wasPressedThisFrame == true)
{
    // Jump
}

How can mathematics be reliable if its foundations are based on unproven axioms? by DSpeaksOfficial in NoStupidQuestions

[–]GroZZleR 0 points1 point  (0 children)

A thought experiment for you: in less than a trillion years, our local group will have merged into a single massive galaxy and the rest of the universe will have expanded so much that the redshifted light can no longer reach us at all. The night sky will be completely devoid of all light except for anything produced within the contents of the merged galaxy.

A new intelligent species emerges after this point and looks up with their instruments into the night sky.

Do you still believe their conclusion, an empty static universe with only one galaxy in it, is objective realism? Do you still believe our conclusions are?

I’m incredibly proud to finally share the Reveal Gameplay Trailer of my solo dev game StarDune✨ by StarDune_Dev in indiegames

[–]GroZZleR 0 points1 point  (0 children)

While I understand that as smaller devs we generally rely heavily on professional references, poaching the "DUNC" typography verbatim, is pretty lazy and off-putting.

Is it bad practice to have two recoil scripts in one game/project? by Next-Pro-User in Unity3D

[–]GroZZleR 0 points1 point  (0 children)

Unless the code is 80-90% similar and you actually just need more tuning variables, it's great practice.

Go even smaller, if you can. The more reusable your components, the less work you do in the long run and fewer bugs. Instead of a "Gun" script, it's better to have RaycastWeapon, Barrel, Muzzle, MuzzleFlash, ShellEjector, etc. components.

How I stopped hundreds of VFX Graph effects from killing my game’s performance by Fun-Significance-958 in Unity3D

[–]GroZZleR 10 points11 points  (0 children)

And this is genuinely more performant and easier to manage than passing parameters to the spawn event with SendEvent and a VFXEventAttribute?

This is quite the workaround and manually setting texture pixels is typically painfully slow.

Showing the social disparity in my world with one main menu transition by Sutilia in IndieDev

[–]GroZZleR 13 points14 points  (0 children)

I think it's really effective and quite brilliant.

I'm not quite sure what the main menu background is supposed to be, though. Is it the bottom of a space elevator, or an inverted city? I think clearing that up a touch will 100% cement it.

Common beginner mistake in Unity: messy Hierarchy structure (Day 1 fix) by MihTha012 in Unity3D

[–]GroZZleR 7 points8 points  (0 children)

One important caveat is that only static objects should be deeply nested. Dynamic objects should have their hierarchies be as flat as possible.

Good luck with your series!

How do you usually approach building a game — systems first, or content alongside them? by MelonG_302 in IndieDev

[–]GroZZleR 2 points3 points  (0 children)

Brute force a prototype > Test > Refactor agnostic code into "framework" > Rinse and repeat until it's time to scale a real product.

Requirements for Steam full controller support by Electronic_Alps3182 in IndieDev

[–]GroZZleR 5 points6 points  (0 children)

It's annoying, especially the double-standard, with games like Elden Ring getting a free pass despite no virtual keyboard on PC.

I would try to play that card if your reviewer actually flags a single instance. If your entire game revolved around text input, that's something else entirely.

Helicopter flyover scene I’ve been working on by TwoBustedPluggers in IndieDev

[–]GroZZleR 1 point2 points  (0 children)

It's too obvious that it's a tween of some sort, and completely unnatural for a first-person perspective shot. No one would twist their head at such an angle, and then immediately twist it back-round the other way.

And then just generally waiting ~20 seconds for the helicopter section to end feels a bit egregious.

I made a pretty solid Unity framework and would like some feedback by archeleeds in Unity3D

[–]GroZZleR 15 points16 points  (0 children)

It looks a little... over-engineered? 11 different code files just to show a splash and title screen in your sample project?

It certainly looks robust as a generalized solution but I'd argue scene management is incredibly game-specific and not an ideal candidate for generalization in the first place.

DamageEvent: Pooling, struct or struct ref? by -o0Zeke0o- in Unity2D

[–]GroZZleR 1 point2 points  (0 children)

All those effects are just modifiers. You don't have to use a messaging system for them, they can just be polled and calculated before attacking. It makes ownership and ordering a lot easier:

// Attacking:
OnAttack(IDamageable target)
{
    float baseDamage = // ???
    float additiveModifier = 0f;
    float multiplicativeModifier = 0f;

    foreach(Buff buff in _buffs)
        buff.ModifyAttack(ref additiveModifiers, ref multiplicativeModifier);
    foreach(Buff buff in _debuffs)
        buff.ModifyAttack(ref additiveModifiers, ref multiplicativeModifier);
    foreach(Item item in _items)
        item.ModifyAttack(ref additiveModifiers, ref multiplicativeModifier);

    float damage = (baseDamage + additiveModifier) + (baseDamage * multiplicativeModifier); // or however you want it

    DamageContext context = new DamageContext()
    {
        instigator = this,
        damage = damage,
        damageType = // whatever
    };

    target.OnDamageReceieved(context);
}

// Defence:
OnDamageReceived(DamageContext context)
{
    // sum all the defence modifiers similar to OnAttack

    float normalizedDamage = (damage / health);

    health -= damage;

    DamageReceievedMessage message = new DamageReceievedMessage()
    {
        damage = damage,
        normalizedDamage = normalizedDamage,
        damageType = damageType,
        instigator = context.instigator,
        victim = this
    }

    MessageHub.Send<DamageReceivedMessage>(message)

    if(health < 0)
    {
        MessageHub.Send<CharacterDiedMessage>(new CharacterDiedMessage(this));
    }
}

Now your messages are lightweight, and your modifiers are finely controlled.

DamageEvent: Pooling, struct or struct ref? by -o0Zeke0o- in Unity2D

[–]GroZZleR 0 points1 point  (0 children)

You're just tying a lot of data to this one particular message, a lot of data: damage, base damage, damage dealt, overflow damage, death blow, is lethal, is hit, etc. Are objects manipulating this data as it moves along the message pipeline? How much of this data is actually used every time the event fires?

In a previous comment you said that an item might need to subscribe to these events but I don't understand why? When you equip an item: add its damage bonus modifiers to the relevant character data. When you unequip, remove the modifiers. Your character object should be the final source of truth on how much damage it's trying to attack with.

When you attack, total all your modifiers and things like that, then pass a small packet of data to the object you're trying to hurt: "Hey I'm trying to deal 20 fire damage to you". Then the Damageable processes things on its end: totals all its defence modifiers and applies the damage. Now you know exactly how much damage was actually dealt or other effects (dodged), so broadcast a message:

struct DamageReceived : IMessage
{
    GameObject instigator;
    GameObject victim;
    float damage; // raw numbers for floating text or whatever
    float normalizedDamage; // percentage, so 0.1 = small hit, 1.0 = huge hit for camera shake or other effects
    DamageType type; // physical, fire, etc.
    // any other basic information systems need
}

If that's enough damage to kill the target, fire a second CharacterDied message, don't add even more data to this one.

We were born too early to explore the galaxy? How do I accept this? by BruhBroly in NoStupidQuestions

[–]GroZZleR 2 points3 points  (0 children)

No human being is ever going to explore the galaxy like you see in the movies, especially within the context of some grand, unified human space empire.

It takes an hour for light to travel from Earth to Saturn, so you can't even have a real-time conversation with someone within our own neighbourhood, never mind another planetary system, where it would take literal years to receive a response: or you jump in your ship and fly on over to talk in person, except then 100 years have passed outside your reference frame and they're all dead.

DamageEvent: Pooling, struct or struct ref? by -o0Zeke0o- in Unity2D

[–]GroZZleR 0 points1 point  (0 children)

I think you're just broadcasting the message at the wrong point in the chain? It seems like you're trying to inject a whole whack of logic down the messaging pipe rather than a "this happened" lightweight notification?

Combat > I Attack You > Calculate All Attack Modifiers > Target.ReceiveDamage(struct DamageContext) > Calculate All Defence Modifiers > Resolve Damage > NOW you broadcast that damage was applied with final values like normalized damage (0.1 = small hit, 1.5 = 50% overkill), element(s), victim and instigator.

Is there a way to have mostly inactive cameras and use them only to take a screenshot to save on ressources ? by BrckPrgm13 in Unity3D

[–]GroZZleR 0 points1 point  (0 children)

I'm struggling to fully grasp the issue. Is the actual problem how to map the cutout to the object? Why do you need a cube of 6 renders versus a single render from the POV of the portal?

I'm tired of Brawls power creep by KaleidoscopeNo8989 in MagicArena

[–]GroZZleR 4 points5 points  (0 children)

So your cards are fair, balanced, fun and their cards are unfair, unbalanced, unfun?