Loading...
114
Game
Hayami-Chan 3D
3 years ago

Working on the hunting AI. I'm using the nodes in the apartment and chances to let #Hayamichan choose a new destination...

Useful c# script is in the article!

#MadeWithUnity #GameDev


With this script you can draw an index based on chances. It's really useful!

PropabilityPool.cs

		
			using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace DonutStudio.Utilities.Propability
{
    /// <summary>
    /// Class to draw a random element from a pool of rates.
    /// </summary>
    public class PropabilityPool
    {
        float[] rates;
        float total;

        /// <summary>
        /// Create an object of the PropabilityPool class with the rates.
        /// </summary>
        /// <param name="_rates">The rates of the single elements.</param>
        public PropabilityPool(float[] _rates)
        {
            rates = _rates;

            UpdateTotal();
        }

        /// <summary>
        /// Draw a random element for a pool of rates. The higher the rate the higher the chance.
        /// </summary>
        /// <returns></returns>
        public int DrawElement()
        {
            float r = Random.Range(0f, total);
            float accumulatedProbability = 0f;

            for (int i = 0; i < rates.Length; i++)
            {
                accumulatedProbability += rates[i];
                if (r <= accumulatedProbability)
                    return i;
            }
            return 0;
        }

        /// <summary>
        /// Change the value of a rate.
        /// </summary>
        /// <param name="index">The index of the rate.</param>
        /// <param name="newRate">The new value of the rate.</param>
        public void ChangeRate(int index, float newRate)
        {
            if (index < 0 && index < rates.Length)
                return;
            rates[index] = newRate;
            UpdateTotal();
        }
        /// <summary>
        /// Change all the rates.
        /// </summary>
        /// <param name="newRates">The rates.</param>
        public void ChangeRates(float[] newRates)
        {
            rates = newRates;
            UpdateTotal();
        }
    
        /// <summary>
        /// Update the total value of all rates
        /// </summary>
        void UpdateTotal()
        {
            total = 0;
            foreach (float f in rates)
                total += f;
        }
    }
}
		
	


8 comments

Loading...

Next up

Yes, I'm still alive!

AND I've finally fixed major bugs in the game. The new release should be out soon!

#GameDev #Hayamichan

Damn,

if this ain't spectacular, I don't know what is. The game has six different languages to select.

Special thanks to @FriendlyFrenchyFoxOff for translating. Be sure to check out his account. He rocks!

#MadeWithUnity #GameDev #Hayamichan

Working hard on the game, so you can play it (hopefully this month).

I think it might not be that scary, but good enough for my first #Horror game

#MadeWithUnity #GameDev #Hayamichan

Valentine’s Day is coming soon! @OperaGX is celebrating by dropping the Valentine’s-inspired game Maximum Load. Step into the wardrobe and guide PC Man through a satisfying install. 🄵 Play #MaximumLoad here: https://bit.ly/MaximumLoad

The animations are working!

#MadeWithUnity #GameDev #Hayamichan

Happy #WIPWednesday! Are you working on a game? Making some art? Practicing a song? Something else? Tell us in the comments!

HAYAMI-CHAN 3D IS NOW OUT

How long will you survive when your waifu comes to life & starts hunting you down?

Log in with your Game Token & compete for the highest score!

Yeah, I've built myself a controller and it's so awesome! Just add a few buttons, two joysticks, a microchip and of course some rgb leds. That makes the build complete!

Check out the link to build yourself one too!

#DIY

Happy Devruary! Devruary Day 11 celebrates @Asthon_ES ! They're an Indie studio recently created to produce their own games including Magic Frog! We also have a question for the devs of Game Jolt: How do you usually plan a game dev project?

Can you guess what this could be?