RubixsQube

[Release] The Stuff Dreams Are Made Of

Recommended Posts

Hello.

 

For my fourth (!) Wizard Jam entry, I am going to making a game based on Idle Thumbs Episode 32 (and Maltese Falcon reference) The Stuff Dreams Are Made Of. My first game was made using this Mac engine Stencyl, my second was made using Lua/Love, my third was made with Pico-8, and I've finally decided to just take a jump and learn Unity, because I am a "glutton for punishment."

 

I really like the idea of making a 3D space, perhaps one where you can fly around to various objects that float there, maybe exploring them closer if you'd like to. Perhaps there will be nice music that plays. I want this to be a 3D Floating Simulator, maybe. 

 

But before I can do that, I have to learn how to use this entire game engine. So, that's exciting. For the time being, I found a fun skybox, and it's not hard to populate it with various simple assets.

 

Z97qSZ0.gif

 

It was pretty hard to figure out how to have the mouse allow for the camera to swing around, although for now I can only make this work horizontally. And the controls are tank controls.

 

Welp, as it is with these things, I have a long way between here and whatever the final game becomes. 

 

EDIT:

 

THE GAME IS OUT, in both Mac and PC versions.

4TSozqK.png

 

https://rubixsqube.itch.io/the-stuff-dreams-are-made-of

 

It's a comedy game? Where you wander around an island and listen to me yammer on? And I hope it's funny? It's got some things that I think are funny, which is mostly the point. Maybe try to wait until one of the audio triggers is done before wandering off to find another one, or in some cases the audio might play over itself. 

 

(I haven't tested the PC version, but the Mac version runs.)

 

Share this post


Link to post
Share on other sites

w9BtpJw.gif

 

I am way in over my head here. Unity is profoundly powerful

 

god forbid I just start throwing in four hundred million assets all rotating through space

Share this post


Link to post
Share on other sites

So, after messing around a bunch with Unity last night, I have some questions. I recognize that these questions are things that like, indicate that I don't know what I am doing. I don't. I'm not a game developer at all. I'm just a person who has some ideas and I want to manifest those ideas, perhaps through Unity.

 

Do you have to add everything in a given scene individually? Like, in what I've done (shown in the shots/gifs above), I've had to go and manually add individual cubes and cylinders and rectangular prisms and planes. I even went to the asset store to see what that was all about and added a few buildings from some buildings asset pack. But that seems like perhaps it's not really the way I want to go. Presumably people use some other program to generate objects and settings, right? That seems like a heck of a lot of work. 

 

Is it cool to go and raid the asset store for things, for this game jam? Is there a limit to the amount of stuff you can put into a given scene? 

 

Again, forgive the fact that these questions sound like they are from someone who probably shouldn't be making games. I have mostly just been spending time trying to figure out how to get it so that you can look around while you're pulled around an area. 

 

 

Share this post


Link to post
Share on other sites
21 minutes ago, RubixsQube said:

So, after messing around a bunch with Unity last night, I have some questions. I recognize that these questions are things that like, indicate that I don't know what I am doing. I don't. I'm not a game developer at all. I'm just a person who has some ideas and I want to manifest those ideas, perhaps through Unity.

 

Do you have to add everything in a given scene individually? Like, in what I've done (shown in the shots/gifs above), I've had to go and manually add individual cubes and cylinders and rectangular prisms and planes. I even went to the asset store to see what that was all about and added a few buildings from some buildings asset pack. But that seems like perhaps it's not really the way I want to go. Presumably people use some other program to generate objects and settings, right? That seems like a heck of a lot of work. 

 

Is it cool to go and raid the asset store for things, for this game jam? Is there a limit to the amount of stuff you can put into a given scene? 

 

Again, forgive the fact that these questions sound like they are from someone who probably shouldn't be making games. I have mostly just been spending time trying to figure out how to get it so that you can look around while you're pulled around an area. 

 

 

People generally make their 3D assets in programs like Blender or Maya and import them to Unity. They can be intimidating especially if you've never used a 3D program before, it might be a bit much to try to learn one of these programs on top of Unity in a two week game jam. I don't think theres any shame in just raiding the Unity store! And I'm sure there are plenty of talented modelers on the forums that can help as well!

 

Share this post


Link to post
Share on other sites

VTXuXYf.gif

 

So, I have discovered the terrain editor, as well as the FPS prefab controller. While I have a feeling that just continuing to add stuff to the game is going to make the game chug, I may not actually care. I have figured out my idea, and now I just have to create the island. 

Share this post


Link to post
Share on other sites
7 hours ago, RubixsQube said:

I am having a lot of fun. Hey, Wizard Jam, you're the best. 

 

This. All this. What a cool looking entry! Can't wait to play:D

Share this post


Link to post
Share on other sites

Quick question - I need to create triggers such that when the player character walks through them, audio is played. 

 

I've taken an object, and created a box collider, checked the "is trigger" box, and then also created an audio source with a clip. Both "play on awake" and "loop" are unchecked. I then went and wrote a script:

 

Quote

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

public class AudioTrigger : MonoBehaviour {

    public AudioSource SoundSource;
    public AudioClip Sound;
    public float Volume;
    public bool alreadyplayed = false;

        void OnTriggerEnger (Collider other) {

        if (other.CompareTag ("Player") && alreadyplayed == false) 
        {
            SoundSource.PlayOneShot (Sound, Volume);
            alreadyplayed = true;
        
        }
    }

 

 

and in the box for SoundSource I've put my audio source object, and for sound, I've put my clip. The volume is set to 1.0. I've also made sure that the FPS Controller has the "Player" tag for the comparison.

 

When I walk over the trigger box, nothing happens. Any help? 

Share this post


Link to post
Share on other sites

HxhBOFA.png

 

I need to add a lot more weird floating hypercolor primitives, but I am really liking this weird island. Also, I should sit down and start recording. 

Share this post


Link to post
Share on other sites

Hey, Unity people, I have a few questions, now that I've created the bulk of the game.

 

1) What is the best way to create an opening title/start menu? Similarly, it'd be great to create an ending credits sequence when you've finished the game.

 

2) Also, is there a way for me to create a sequence before you are dropped into the primary scene, like, an audio cutscene before you have control of the player? 

 

3) Also...when I create the builds, the game is pretty big on disk. Is this bad? Is there a way to cut down on the size of a game, or is it just the fact that I've imported a bunch of assets to decorate this island? 

 

Thanks!

Share this post


Link to post
Share on other sites
24 minutes ago, RubixsQube said:

Hey, Unity people...

 

1) What is the best way to create an opening title/start menu? Similarly, it'd be great to create an ending credits sequence when you've finished the game.

 

A simple way, depending on desired amount of interactivity, is to just create a separate scene for that and load the game play scene when the player clicks start (or whatever). You could something similar for closing credits. For the actual UI, I recommend using Unity's UI system. You can make a basic main menu canvas with buttons, images and words, and hook the button click events to things like "start game" functions, etc.

 

2) Also, is there a way for me to create a sequence before you are dropped into the primary scene, like, an audio cutscene before you have control of the player? 

 

Same as 1), really. You can create another cutscene kind of scene then load the main one after some seconds, or after the sound is done playing, etc. You could get fancy and let the player look around (mouselook script on a camera) to give some feels, but basically restrict it to a basic experience.

 

3) Also...when I create the builds, the game is pretty big on disk. Is this bad? Is there a way to cut down on the size of a game, or is it just the fact that I've imported a bunch of assets to decorate this island? 

 

How big? If there's a .pdb file included in the build folder, you can discard it. I believe you just need the exe and the _Data folder to run the game (for Windows x64 anyway)

Share this post


Link to post
Share on other sites
3 hours ago, brendonsmall said:

(cool stuff about UI)

 

So, I created the menu as a new scene, and following some tutorials online, I got the start menu to transition to a new scene (I had to fiddle around with integers that referred to objects on the "build order" and "0" seemed to reference the game...presumably "1" just reference the main menu I created, and if I made a third scene, that might be "2." I think that I'll create a kind of interstitial intro cut scene that will come before the gameplay. Is there a way to do a fade transition between scenes? Right now, when I click on the start button, I use SceneManager.LoadScene, referencing the index:

 

Quote

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class LoadSceneOnClick : MonoBehaviour {

    public void LoadByIndex(int sceneIndex)
    {
        SceneManager.LoadScene (sceneIndex);
    }
}

 

But I suppose I could find someone's C# script that I put in lieu of SceneManager.LoadScene to instead fade between scenes. 

 

Also, the game is currently somewhere around 200 MB when I make a build, which seems profoundly big. I'll have to wait until I include the audio to find the final size, but I really wonder if maybe I'm doing something with too much stuff. Itch.io supports up to 500 MB, but I really don't know if people are going to be willing to download a giant-ass itch.io game, even if it's not hours and hours of content. 

Share this post


Link to post
Share on other sites

Regarding size, I wonder if you can resample the textures in Unity so that the final build quality is less than source (see screen shot below). If you've got a bunch of 4k textures, for example, and they aren't downsampled in the image's settings, it will (i think) build with a 4k texture, even if you don't need it. Audio is definitely another culprit for build size. And anything in Resources folder gets put in the build. So be sure to keep that clear of anything that you don't need to load at runtime using Resources.Load()

 

For fading, I usually use a fairly cheap hack involving a Quad and a Fade material of a small black texture. You can set the alpha of the material's color to any value you want. So, to fade out (to black), set the material color to have an alpha of zero, enable the Quad's Mesh Renderer, then increment the alpha to 1.0 over time (using simple addition or lerps or whatever). Once the alpha value is set to 1.0 ish, your fade is done (screen is all black)

 

You can attach the Quad as a child of the main camera, and just make it really big and really close. Alternatively, you can do this with a screen space UI Image element, and essentially it does the same effect. UI is better (I guess?) because you don't have to worry about any 3D objects getting in between your camera and the fade image since it's rendered "in the camera". 

 

(Foot Note: My lingo is not really "correct" (screen space, "in the camera", etc.) but it's correct enough to achieve the desired result. I'm sure you could get fancy with a shader or do something more elegant, but this will work.)

 

Share this post


Link to post
Share on other sites
44 minutes ago, brendonsmall said:

For fading, I usually use a fairly cheap hack involving a Quad and a Fade material of a small black texture. You can set the alpha of the material's color to any value you want. So, to fade out (to black), set the material color to have an alpha of zero, enable the Quad's Mesh Renderer, then increment the alpha to 1.0 over time (using simple addition or lerps or whatever). Once the alpha value is set to 1.0 ish, your fade is done (screen is all black)

 

You can attach the Quad as a child of the main camera, and just make it really big and really close. Alternatively, you can do this with a screen space UI Image element, and essentially it does the same effect. UI is better (I guess?) because you don't have to worry about any 3D objects getting in between your camera and the fade image since it's rendered "in the camera". 

 

So, as a weird kludgy thing, I've had to make three black quads attached to the primary camera:

 

lfDDZQP.png

 

Otherwise, for some reason, while the quad in front would rotate with the left/right movements of the mouse, the player could look up and down and see the edges of the quad. Less than ideal. I've written a script that changes the alpha over time, and it fades in quite nicely, but because of the weird box, there is a horizontal line of overlap on the bottom of the viewing window. I kind of wish that I didn't have to do this by forcing the central quad to just stay in the center of the camera, but it only seems to want to inherit the left/right mouse movements. Do you have any idea what might be going on? 

 

Share this post


Link to post
Share on other sites

A quick workaround might be to disable the MouseLook script while doing the fade out. That way, the inputs won't matter and the camera shouldn't move.

 

Edit:Oh, and don't forget to re-enable it when the fade is back to normal :D 

Share this post


Link to post
Share on other sites

It seems like if you have one black plane attached to the camera as a child, the player looking around shouldn't matter? Maybe I'm missing something?

Share this post


Link to post
Share on other sites
7 minutes ago, Travis said:

It seems like if you have one black plane attached to the camera as a child, the player looking around shouldn't matter? Maybe I'm missing something?

 

Oh shit, I didn't have it attached to the actual "First Person Character" as a child, but instead I put it as a child of the Unity FPS Controller...when I went and did this, the black plane started working both with horizontal and vertical movement. Which is great, so now I don't have to worry about this at all.  

Share this post


Link to post
Share on other sites
4 minutes ago, RubixsQube said:

 

Oh shit, I didn't have it attached to the actual "First Person Character" as a child, but instead I put it as a child of the Unity FPS Controller...when I went and did this, the black plane started working both with horizontal and vertical movement. Which is great, so now I don't have to worry about this at all.  

Excellent! 

Share this post


Link to post
Share on other sites

Two things:

 

1) I made a quick credits sequence and right now it's scored by Kid Cudi's Pursuit of Happiness until I find something I can actually use in the final finished build. For now, though, it's a super appropriate song

 

y4AQ6Am.gif

 

2) Does anybody know how to make it so that my text scales in size depending on the size/resolution of the screen people use?

 

Share this post


Link to post
Share on other sites
10 hours ago, RubixsQube said:

2) Does anybody know how to make it so that my text scales in size depending on the size/resolution of the screen people use?

 

It's not failsafe, but setting your Canvas Scaler helps if you set to Scale With Screen Size rather than Constant Pixel Size. You need to play with the other variables like expand/shrink, your reference screen resolution, etc. but it should get you most of the way there.

 

More details about the different modes here: https://docs.unity3d.com/Manual/script-CanvasScaler.html

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now