Looking for a game, cannot remember the name of it

I am unsure it it’s actually an RPG game, but it’s kind of like Scrutinized, i am like 65% sure it has made by EA because i have a medium-strong memory of playing it through Origin. It has an abstract art style and is called something like Disgruntled or something, you are playing as a detective if remember correctly, and the game cover is blue abstract art with a man with a monocle (or whatever it’s called, glasses on only one eye). Does anybody have any idea which game this might be?
Also sorry it this is not the right forum, i don’t know where else to ask this.

unity – How can I integrate between the audio volumes settings in the main menu scene and the audio in the game scene?

I have two scenes only : Main Menu and Game
In the Game scene I keep all the game data and gameplay stuff.

In the Main Menu scene I have two sliders for volumes. One for the music and one for the sfx effects.
Both volumes and sliders are working fine and save the music/sfx volumes.

The problem is that the music in the main menu is not the same background music in the game scene.
Same for the sfx effect. In the main menu I just took some sfx effect and playing it when changing the volume.
In the game scene the background music is another one and I have also many audio sources with sfx effects. For example on the player I have a audio source with foot steps audio. On my droid I have audio source with shooting audio clip and so on.

What I want to do in my logic is when I change the volume/s in the main menu that it will effect the volume/s also in the game scene.

When the game start first time the main menu scene is loading and playing a music. Then when making a new game or loading a game the main menu is unloaded and the game scene is loaded with his own music and effects.

I also have in the game scene a script to return to the main menu with the escape key and back to the game. It’s a script for pausing/resuming the game and I want to pause/resume the game audio as well.
When making escape key and the game pause I want to pause also the audio in the game scene when pressing escape again back to the game to resume the audio from the last point.

This screenshot show the main menu with the two audio sources for music and sfx :

Main Menu audio settings

And this is the settings script in the main menu that control also the audio volumes :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;
using TMPro;
using System;
using UnityEngine.Events;
using System.Linq;

public class Settings : MonoBehaviour
{
    (SerializeField) private AudioSource() audioSources;
    public AudioMixer audioMixer;
    public TMP_Dropdown resolutionDropdown;
    public TMP_Dropdown qualityDropdown;
    public Text musicText;
    public Text sfxText;
    public Slider() audioSliders;
    public Toggle fullScreenToggle;

    private Resolution() resolutions;

    private void Awake()
    {
        audioSources = GetComponents<AudioSource>();

        resolutionDropdown.onValueChanged.AddListener(new UnityAction<int>(index =>
        {
            PlayerPrefs.SetInt("resolutionvalue", resolutionDropdown.value);
            PlayerPrefs.Save();

        }));

        qualityDropdown.onValueChanged.AddListener(new UnityAction<int>(index =>
        {
            PlayerPrefs.SetInt("qualityvalue", qualityDropdown.value);
            PlayerPrefs.Save();

        }));

        fullScreenToggle.onValueChanged.AddListener(new UnityAction<bool>(index =>
        {
            PlayerPrefs.SetInt("fullscreen", boolToInt(fullScreenToggle.isOn));
            PlayerPrefs.Save();

        }));
    }

    private void Start()
    {
        qualityDropdown.value = PlayerPrefs.GetInt("qualityvalue");

        var resolutions = Screen.resolutions.Where(resolution => resolution.refreshRate == 60).ToArray();
        resolutionDropdown.ClearOptions();

        List<string> options = new List<string>();

        int currentResolutionIndex = 0;
        for(int i = 0; i < resolutions.Length; i++)
        {
            string option = resolutions(i).width + " x " + resolutions(i).height;
            options.Add(option);

            if(resolutions(i).width == Screen.currentResolution.width &&
                resolutions(i).height == Screen.currentResolution.height)
            {
                currentResolutionIndex = i;
            }
        }

        resolutionDropdown.AddOptions(options);
        resolutionDropdown.value = PlayerPrefs.GetInt("resolutionvalue", currentResolutionIndex);
        resolutionDropdown.RefreshShownValue();

        float musicvolume = PlayerPrefs.GetFloat("musicvolume");
        float sfxvolume = PlayerPrefs.GetFloat("sfxvolume");

        musicText.text = musicvolume.ToString();
        sfxText.text = sfxvolume.ToString();
        audioSliders(0).value = musicvolume / 100f;
        audioSliders(1).value = sfxvolume / 100f;

        fullScreenToggle.isOn = intToBool(PlayerPrefs.GetInt("fullscreen", 0));
        
    }

    public void SetResolution(int resolutionIndex)
    {
        if (resolutions != null)
        {
            Resolution resolution = resolutions(resolutionIndex);
            Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
        }
    }

    public void SetMusicVolume(float volume)
    {
        audioMixer.SetFloat("musicvol", Mathf.Log10(volume) * 20);
        musicText.text = Math.Round(volume * 100, MidpointRounding.AwayFromZero).ToString();

        PlayerPrefs.SetFloat("musicvolume", (float)Math.Round(volume * 100, MidpointRounding.AwayFromZero));
    }

    public void SetSfxVolume(float volume)
    {
        audioMixer.SetFloat("sfxvol", Mathf.Log10(volume) * 20);
        sfxText.text = Math.Round(volume * 100, MidpointRounding.AwayFromZero).ToString();

        PlayerPrefs.SetFloat("sfxvolume", (float)Math.Round(volume * 100, MidpointRounding.AwayFromZero));

        if (!audioSources(1).isPlaying)
            audioSources(1).Play();
    }

    public void SetQuality(int qualityIndex)
    {
        QualitySettings.SetQualityLevel(qualityIndex);
    }

    public void SetFullscreen(bool isFullscreen)
    {
        Screen.fullScreen = isFullscreen;        
    }

    int boolToInt(bool val)
    {
        if (val)
            return 1;
        else
            return 0;
    }

    bool intToBool(int val)
    {
        if (val != 0)
            return true;
        else
            return false;
    }
}

At lines 97 and 105 I’m setting and saving the volumes : function SetMusicVolume and SetSfxVolume.
The music and sfx are working fine in the main menu.

Now the Game scene :

In the Game scene I have this script to pause the game and to resume, still without the audio pause/resume part that I’m not sure how to do : And also here it should keep the changes of the volumes in both scenes in case I press the escape key and make changes in the main menu and then back to the game scene it should resume the audio but also to apply the volume/s changes if made :

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class BackToMainMenu : MonoBehaviour
{
    public GameObject() objsToDisable;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (Time.timeScale == 0)
            {
                DisableEnableUiTexts(true);
                SceneManager.UnloadSceneAsync(0);
                Cursor.visible = false;
                Time.timeScale = 1;
            }
            else
            {
                Time.timeScale = 0;
                MenuController.LoadSceneForSavedGame = false;
                SceneManager.LoadScene(0, LoadSceneMode.Additive);
                SceneManager.sceneLoaded += SceneManager_sceneLoaded;

                Cursor.visible = true;
            }
        }
    }

    private void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1)
    {
        DisableEnableUiTexts(false);
    }

    private void DisableEnableUiTexts(bool enabled)
    {
        foreach (GameObject go in objsToDisable)
        {
            if (go.name == "Cameras")
            {
                foreach(Transform child in go.transform)
                {
                    if(child.name == "Main Camera")
                    {
                        if (enabled == false)
                        {
                            child.GetComponent<Camera>().enabled = false;
                        }
                        else
                        {
                            child.GetComponent<Camera>().enabled = true;
                        }
                    }
                }
            }
            else
            {
                go.SetActive(enabled);
            }
        }
    }
}

I also created one audio mixer with two groups name : Main Menu Audio and Game Audio all the Music’s and sfx’s are exposed already :

Audio mixer

My problem is that I can’t figure out how to make the volumes in the main menu to affect the volumes in the game scene too. and how to resume/pause the audio in the game scene in the back to the main menu script ?

game controllers – Using Android phone to control a raspberry pi nintendo 64 emulator

Say I make a nintendo 64 emulator on a raspberry pi 4, and I want to use my phone as a wireless controller ether over bluetooth or WiFi.

I doubt that any Android software would have support for linux, let alone support an N64 emulator.

So what would be the best course of action here, make a python translator that catches the signal sent by the phone, reads it, then simulates button presses on the raspberry? If anyone has a better solution, please let me know!

What is the obfuscation method utilised in Playdead’s ‘LIMBO’ video game?

The game uses Unity3D engine, perhaps with a custom render pipeline. Reports have been made, it is not possible to disassemble it. How did they achieve that?

dnd 5e – Why would “dice sharing” be an issue at a game?

Various Reasons

The reasons people have expressed for offense about dice sharing are varied and often personal. Common (three or more instances) reasons I have heard are:

  • Dice luck: the superstitious belief that using other players’ dice, or allowing others to use your dice, causes those dice to roll poorly.
  • Dice loss: the players borrowing dice do not properly care for or keep track of the borrowed property.
  • Power Play: borrowing dice from others is a kind of social dominance move, a kind of bullying, especially if the lenders are not enthusiastic or trusting of the borrowers.

There have been a dozen or so other reasons given but those were rare enough that they were probably personal opinions rather than common reasons.

Bonus answer: It probably made the list because it seems to be a relatively common concern – around 40% of the 300+ players that I have personally gamed with have expressed a similar issue. Not a majority frustration but common, and severe, enough to justify inclusion.

modding – Making mods for Game Pass/Microsoft Store Starbound

I want to make mods for the Game Pass/Microsoft Store version of Starbound. I know it is possible to install mods for this version, because I have seen people talk about it (but not write it), and I have seen the mod gear in the bottom right.

But, I have tried everything I could find, and cannot for the life of me find a way to actually get access to these folders. But this probably isn’t the place to go into that. Instead, I would like to know how to unpack the files to write a mod. When I try to use the “unpack_assets.exe” it just says I don’t have permission.

architecture – Best way to approach drop-in out Online Web Game

I’m attempting to conceptualize a browser-based “office” style game where users will connect, do their actions, then disconnect. As the main concept of the game can last from a day to a week.

With the above general concept I want to establish a front-end and back-end. Where in the front-end it would use REST requests to the back-end server which will then based on that information draw the game world and it’s components accordingly. For reference, I’m considering using phaser.js for my front end game engine, with the rest of the site running on some front-end framework. As for my back-end my thought was to store the game data in a SQL database then serve it up via some web framework (eg. Flask).

My question being would this be a valid approach to creating a game like this, where a game world is persisted in a SQL environment. I’ve read that generally this is not the case due to long I/O times. However the game instead will operate on ticks (anywhere from 5-30 minutes), so I/O time is not really an issue.

opengl – How do I make the 3rd person camera follow the space ship in my Space Shooter game?

I am making a 3D space shooter game using OpenGL and Bullet Physics. I am having a hard time with the 3rd person Camera though. If you take a look at the video above you can see that the camera follows the spaceship rotating on the X axis without a problem and rotating on Z axis also without a problem when the spaceship is is oriented towards the horizon and parallel to the ground. When I roll to the right and move the spaceship up I am totally losing it from the camera. The code for my camera is as follows:

float CalculateHorizontalDistance() {
    if (!mpPlayer) return 0.f;

    return distanceFromPlayer * glm::cos(glm::radians(-UpAngle));
}

float CalculateVerticalDistance() {
    if (!mpPlayer) return 0.f;

    return distanceFromPlayer * glm::sin(glm::radians(-UpAngle));
}

void calculateCameraPosition(float horizDistance, float verticDistance)
{
    if (!mpPlayer) return;

    glm::vec3 playerFront = mpPlayer->GetFront();
    glm::vec3 playerPos = mpPlayer->GetPosition();

    Position = playerPos + ((-playerFront) * distanceFromPlayer);

    UpAngle = 180.f - mpPlayer->GetRoll();
    //RightAngle = -mpPlayer->GetPitch();
    RollAngle =  mpPlayer->GetYaw() - 180.f;

    //float theta = mpPlayer->GetRotationY() + angleAroundPlayer;
    //float offsetX = horizDistance * glm::sin(glm::radians(theta));
    //float offsetZ = horizDistance * glm::cos(glm::radians(theta));

    //Position.x = mpPlayer->GetPosition().x - offsetX;
    //Position.y = mpPlayer->GetPosition().y + verticDistance;
    //Position.z = mpPlayer->GetPosition().z - offsetZ;
}

The above code is used to calculate the position and rotation of the camera. The commented out code was used to calculate the position based on trigonometrical calculations for the x and z sides of the triangle created from the camera position to the player position. This didn’t work right because I could never set the camera behind the spaceship, only the position worked well.

On the non-commented out code I use as a camera position the player position – back vector * offset. This works fine for the simple purpose that the camera is always on the back side of the spaceship. I also update pitch and roll which works almost fine and here is where I need help mostly to get this right. I also never update the yaw of the camera.

This is how I get yaw, pitch and roll from Bullet Physics rigid body of the player (spaceship):

btScalar yaw;
btScalar pitch;
btScalar roll;
body->getCenterOfMassTransform().getBasis().getEulerZYX(yaw, pitch, roll, 1);

The following code is how the orientation of the camera is calculated :

void updateCameraVectors()
{
    // Yaw
    glm::quat aroundY = glm::angleAxis(glm::radians(-RightAngle), glm::vec3(0, 1, 0));

    // Pitch
    glm::quat aroundX = glm::angleAxis(glm::radians(UpAngle), glm::vec3(1, 0, 0));

    // Roll
    glm::quat aroundZ = glm::angleAxis(glm::radians(RollAngle), glm::vec3(0, 0, 1));

    Orientation = aroundY * aroundX * aroundZ;

    glm::quat qF = Orientation * glm::quat(0, 0, 0, -1) * glm::conjugate(Orientation);
    Front = { qF.x, qF.y, qF.z };
    Right = glm::normalize(glm::cross(Front, WorldUp));
    Up = glm::normalize(glm::cross(Right, Front));
}

and lastly how the view matrix of the camera is calculated:

glm::mat4 GetViewMatrix()
{
    // You should know the camera move reversely relative to the user input.
    // That's the point of Graphics Camera

    glm::quat reverseOrient = glm::conjugate(Orientation);
    glm::mat4 rot = glm::mat4_cast(reverseOrient);
    glm::mat4 translation = glm::translate(glm::mat4(1.0), -Position);

    return rot * translation;
}

Can someone help me fix the rotational problems that I am facing? I am open to modify also the Camera Class to make it work better with Bullet’s quaternions instead of the Euler’s angles that I am trying to use. Any code or ideas are very welcomed. Thank you for reading through.

game – Dwarf Fortress Clone – C++

I have written a game. Its a very simple clone of the Dwarf Fortress. The game seems to be working fine at least from my testing. I would like to improve my programming game and fix all the bad design, bad practices and possible performance bottlenecks in my code. So any comment that would help me become a better developer is welcome.

Since the game contains multiple classes it seems kind of pointless to paste every class here so here is the link to repository: https://github.com/th3v0ice/Dwarf_Fortress_Clone

player = std::shared_ptr<Player>(new Player(), ()(Player* plyr){ if(plyr) delete plyr;});
player->testFillInventory();
shrdMap = std::make_shared<Map>();


Thanks!

favourite game

what is your favourite game?

.