I'm so excited for this game. I don't know why no one else has tried a stealth metroidvania before but it sounds brilliant. Plus it helps that the game looks so pretty! ❤️
I'm using InControl right now and love it. You barely have to do anything and it just works.
Rewired is currently the best, in my opinion. It basically does everything you could ever need, and is the most cross-platform as it supports the various input types (XInput, etc.).
It's not free, but honestly the time saved is well worth $45. I have no complaints. I can even control the lightbar on a DS4 (on PC) if I wanted to (without a specific driver).
Haven't used it myself yet but I've heard good things about rewired?
Got Hollow Bliss up on Greenlight, a game I'm hoping to release on Halloween.
Appreciate anyone who takes a moment to look at it, I want to get this game greenlit before Halloween to release then, but if not I'll release in November. Original soundtrack by me, has full voice acting, number of the 3D models are by me, has a branching story, and has been my Halloween project this year.
The trailer currently up was a bit quickly done since I needed to post it on Greenlight around now to hopefully get it Greenlit by Halloween, but there is more and much better gameplay videos coming to the page soon, I just made that one quickly as I've been focused working on the game first off Steam and now on Steam.
I'll post some more about it in this topic as we get closer to Halloween, I've been experimenting with a lot of engines recently, and this is one of the results of it. I like doing a Halloween project each year to try out new things, and this is this years.
Is this an upcoming game? Ready to buy
Oh, looks like I already have it then.Mine? Yep, it's two upcoming games to be specific! The first part, Gunmetal Arcadia Zero, was released as a timed exclusive through Humble Monthly back in May, and it'll be out on other storefronts before long. That one's a more linear Castlevania 1 sort of game, with a set of handcrafted levels, each with an end boss, etc. It also serves as a prequel to the second part, the roguelike/lite Gunmetal Arcadia, which will be out February 7, 2017. That's the one I'm working on now, trying to procedurally generate content that roughly approximates the sort of levels I'd build by hand.
Been a while since I posted anything here, but I'm still plugging away at the roguelike half of the Gunmetal Arcadia cycle. Today I've been working on background deco for the forest level. There are two layers of leaf canopies that can drop from the top of the screen. They conform to the shape of any solid geometry in the room, plus they have some random height variations, and the near canopy layer cannot exceed the bounds of the far layer.
For comparison, here's a handdrawn scene from Gunmetal Arcadia Zero with a similar two-layer canopy. This is the sort of decorative element I'm trying to generalize and recreate procedurally. I'll probably take a stab at randomly placing trees and distant tree silhouettes next.
Pretty! I get a Odin's sphere vibe from itAfter changing character design for the 1231294th time, I finished the ground attack combo animation and made a quick control/attack script, and there are still millions of thing I need to do ;_;
The screen capture looks choppy for some reasons, but whatever, I will look into it when I have time.
I kind of went the silly route and coded my own sort of interface layered over the top of the unity input system. I wouldn't go so far as to call it a wrapper though :3Hmm...alright. Out of curiosity, are you using any special input wrapper for Advance? Multiplayer gamepad input has been a pain in my ass so far, with inconsistent player numbers and things swapping around randomly on builds. But maybe their some secret sauce I'm not doing in Unity.
Cool! Always interested in what people get up to with procedural stuff and your game still looks neat with that whole NES aestheticBeen a while since I posted anything here, but I'm still plugging away at the roguelike half of the Gunmetal Arcadia cycle. Today I've been working on background deco for the forest level. There are two layers of leaf canopies that can drop from the top of the screen. They conform to the shape of any solid geometry in the room, plus they have some random height variations, and the near canopy layer cannot exceed the bounds of the far layer.
For comparison, here's a handdrawn scene from Gunmetal Arcadia Zero with a similar two-layer canopy. This is the sort of decorative element I'm trying to generalize and recreate procedurally. I'll probably take a stab at randomly placing trees and distant tree silhouettes next.
What do you think of the Smile engine? How versatile is it? Could somebody make a basic Animal Crossing-like game in it?
While I'm using it for this project, I actually wouldn't say to go all in until they update it more, unless you want to be ambitious like me and try something in it. Sometimes you'll have to fight the engine to do what you want, but with cleverness you can overcome limitations. For an example, doing a harvest moon farming system is possible, just tricky. You'd have to use specific models, timers, switches, etc.
I kind of went the silly route and coded my own sort of interface layered over the top of the unity input system. I wouldn't go so far as to call it a wrapper though :3
At the start of the game I ask players to set their controls and use that to generate a list of actions and buttons. Then from there I just poll GetKey and GetKeyDown stuff based on what they set Due to ignoring the actual binding system that Unity uses I don't seem to run into most of the issues people mention, heck my game doesn't even care which pad is which
D
Good Luck if you do go that route XDHaha, nice. Not really silly at all, that's the best way to do it honestly. Maybe I should just bite the bullet and go that route as well.
public InputSlot(InputMaster _master, int _joystickNumber, int _buttonQuantity, int _axisQuantity){
iM = _master;
if (_joystickNumber >= 0) {
string joystickName = string.Format ("Joystick{0}", _joystickNumber + 1);
string buttonName = "Joystick1Button0";
for (int button=0; button<_buttonQuantity; button++) {
buttonName = string.Format ("{0}Button{1}", joystickName, button);
buttons.Add ((KeyCode)System.Enum.Parse (typeof(KeyCode), buttonName));
buttonBinds.Add (buttonAction.None);
}
for (int axis=0; axis<_axisQuantity; axis++) {
axises.Add (string.Format ("{0}Axis{1}", joystickName, axis + 1));
axisBinds.Add (buttonAction.None);
axisInversion.Add (false);
}
}
else {
if(_joystickNumber==-1) keyboardUser = true;
else aiPlayer = true;
}
idleLimit = _master.idleLimit;
ResetUnboundHeldDuration(-1);
}
Looking goodhttps://www.youtube.com/watch?v=m1ayDMPHq8g
Finally getting back into making development videos. They take a long time to produce but hopefully they're worth it.
Up until now, the map has been identical on both the friendly and enemy sides. The geometry is still symmetrical for balance, but I created a system that lets me assign a gradient to geometry via vertex colors so that each area can have a different color scheme and change gradually -- and because this stuff isn't baked into the art assets, I can still have everything be relative to the local player.
IMG
So both players are in the bottom player's home base, but it looks completely different. No matter which team you're on, your base will always look friendly and the enemy base will always look.. less friendly. When you switch teams, the colors swap. I might use this system for other effects in the future, but it does have limitations.
IMG
(for some reason imgur's mp4/webm is cut off... gif is fine tho)
To compliment this, I've also made a shader that lets me shift the skybox gradient depending on player position to help give different areas a more distinct feel.
IMG
Also added a new medium sized building asset -- nothing fancy, but better than the placeholder box I had before. As I add more details like this, I hope to do a better job communicating the player scale -- they're piloting a mech that's about 3 stories tall.
IMG
Also replaced the placeholder bridges with this energy bridge thing. That gradient is driven by the shader -- a bit more expensive to render, but it means I don't have to spend time creating different texture assets for different sized bridges. Later I'll probably try to create a system to export the result into an actual texture to save on that runtime rendering time, but in the meantime I'm trying to optimize my workload more than the game itself.
IMG
These new team-based force fields use a similar shader effect. Because I'm designing everything -- the maps, weapons, equipment etc -- around the custom progressive CTF game mode, I think these turned out pretty neat. When the enemy's flag is off the flag stand, your forcefields go offline and this opens up some pretty neat possibilities.
IMG
Big changes came to the magnet surfaces -- special surfaces that exist in zero gravity that you can land on and stick to, move around, jump off of, etc. I have it so that your mouselook is oriented to your particular magnet surface's up direction -- because zero gravity lacks conventional reference points (trees, sky, etc), this can make it hard to aim effectively. So now I have the skybox gradient dynamically change to help with that. There's a gradient that's oriented to that surface's up direction, darker near bottom, lighter at top, even some horizontal lines that line up with mouse movement. I got into more details in the video so I suggest watching that (starts around 1:30), but this is one of the many challenges I've come up across trying to make a game with mixed gravity and I'm glad to finally have a workable solution for this particular issue
After changing character design for the 1231294th time, I finished the ground attack combo animation and made a quick control/attack script, and there are still millions of thing I need to do ;_;
The screen capture looks choppy for some reasons, but whatever, I will look into it when I have time.
http://screentogif.codeplex.com/Seeing you guys hard at work is inspiring! I've been meaning to make use of Steam Greenlight myself soon, so I'd like to ask what programs you use to take screenshots and film video, as I'll be in need of both. There are a lot of options, but what's worked out best for you?
Seeing you guys hard at work is inspiring! I've been meaning to make use of Steam Greenlight myself soon, so I'd like to ask what programs you use to take screenshots and film video, as I'll be in need of both. There are a lot of options, but what's worked out best for you?
Are you using unity out of interest?Seeing you guys hard at work is inspiring! I've been meaning to make use of Steam Greenlight myself soon, so I'd like to ask what programs you use to take screenshots and film video, as I'll be in need of both. There are a lot of options, but what's worked out best for you?
#if UNITY_EDITOR
if(Input.GetKeyUp(KeyCode.F12)){
Application.CaptureScreenshot(string.Format("Screenshot{0}.png",screenshotNumber),4);
Debug.Log(string.Format("Screenshot {0} taken!",screenshotNumber));
screenshotNumber++;
}
#endif
Seeing you guys hard at work is inspiring! I've been meaning to make use of Steam Greenlight myself soon, so I'd like to ask what programs you use to take screenshots and film video, as I'll be in need of both. There are a lot of options, but what's worked out best for you?
For videos, I just record with OBS. It's made for video streaming and it's free, but it can be used as a really confident game recorder. For screenshot grabbing, I just print screen and edit out or use Gyazo.
I use a capture card so I can record video without additional strain on the computer running the game -- Elgato HD is what I have, though I'm considering upgrading to the HD60. Sometimes I'll use OBS or quicktime to record for quick gifs. For screenshots, check Geminosity's post -- other engines may have something similar.
Are you using unity out of interest?
For those who are, it actually has an in-built screenshot capability, allowing you to take screenshots at resolutions even higher than you're actually displaying
There's no judgement here: use whatever engine works best for you and to hell with any haters The game is what's important, not the tools used to make it :3No Unity. I'm just one of those lowly RPG Maker people, I'm afraid. It's making me feel bad to even post here. Haha. Thanks for the kind suggestions, you guys!
I assume that even though each object now use an audiomanager instance to play the sound effect, the fact that the audio object is attached to the audiomanager prefab, is what screws up the 3D effect? The audio manager is located at 0,0,0 though, yet it still sounds like the sounds are in your face regardless of position :/
AudioSource.PlayClipAtPoint( audioClip, worldPosition, volume);
Thanks, I'll try that spatial blend, that's probably also why my min/max distance and rolloffmodes don't seem to have any effect. Got any tips on good rolloff settings?That seems like the Spatial Blend is on the 2D side of things, if you look at the AudioSource there's a slider for that in the inspector and it's 2D - 3D with 1 being 3D. This can also be changed in code for the audioSource by making .spatialBlend = 1f;
If you don't want to have audio sources on objects, then one way I can think of doing it is having your AudioManager have an object pool of AudioSources so that when you want to play a clip, you find one that's not currently being used, give it the clip and then change its position to where you want it to play at, then calling .Play();
The other way you can do it is to do:
But this creates a new GameObject at the location which is then destroyed when finished, which could be problematic for garbage collection which is why I suggest using an object pool so you can reuse stuff.Code:AudioSource.PlayClipAtPoint( audioClip, worldPosition, volume);
This would be ideal for one off sounds (gunshots, explosions etc), but would be tricky for static objects in the scenes such as say fire torches, which would be better to have the audio source attached to them. Things like footsteps I'd have an audio source located at the feet of the character and then having an event fire off in the animation curve into the script so I can play the ideal footstep audio clip.
If you have any more questions then don't hesitate to ask, I feel like I may have thrown quite a bit extra at you, which if that's the case then sorry! D:
Thanks, I'll try that spatial blend, that's probably also why my min/max distance and rolloffmodes don't seem to have any effect. Got any tips on good rolloff settings?
I did use normal audio sources attached to prefabs and objects before but I wanted finer control over how and where to trigger sounds. But maybe static objects would be better off with the attached sources? I just figured that there isn't much point in having an audio manager if it doesn't manage the audio I was under the impression that it's difficult/impossible to use code to trigger audio sources unless they're created with code, perhaps that's completely wrong?
Let's take my static torches for example, they have an audio source that loops but is not "play on awake" (I guess they could be, they used to), can I somehow use a Play() command on that sound to start it? If so, maybe it's better to just skip an audio manager altogether and use this technique on each separate object.
Currently, my manager is supposed to handle music transitions during events and level changes, and it also deals with saving audio level settings in the main menu. I'm not sure what method is the smartest to be honest. All I need is for music to change depending on what level is playing and when certain events happen during gameplay, along with objects to have sound effects, like you mentioned, like bullets etc. I did have all of that in 3D but it felt a bit hacky code standard wise. I'm the least experienced programmer on the team :lol Two basic courses compared to 6 years that my team mates sit on.
Edit: Thus, some of the code you mentioned went slightly over my head but I get the principle of having a pool, it seems dumb to spawn in a new explosion sound each time it's required, if every event can use the same sound file over and over. I guess that's kinda what my manager does right now, but it seems also a bit dumb to front load 5 music tracks and about 10 sound effects while in the main menu, when only one song is played at a time.
On that note, would it be smart performance wise to just turn off sounds when they're too far away for anyone to hear them? Seems dumb to have audio playing if nobody can hear it, but maybe the rolloffmode takes care of that automatically? Now we're getting deep though :lol
Long post is long.
public class Torch
{
[SerializeField]
private AudioSource _audioSource;
public void OnLit()
{
_audioSource.Play();
}
public void PutOut()
{
_audioSource.Stop();
}
}
I'm a little late to the Unity Input wrapper party, but I thought this might be of interest to some of you. When I first wrote my own input system, I wrote up a little tutorial that might help some folk interested in creating their own.
Although it says it in the tutorial, I'll re-iterate anyway. This is just the method I am using, and not necessarily the best way to do it. It works fine for the purposes of my project anyway.
Also, It's slightly out of date. It uses some "foreach" which I have now replaced, and also has some features missing (Such as the process of creating user binds at run-time) but it should provide an overview of what to do and might be of some help to somebody. I might update it one day when my game is a bit more "done"
Anyway, here it is if anyone is interested.
Keycode GeneralButton1 = (KeyCode)System.Enum.Parse (typeof(KeyCode), "JoystickButton1"));
Keycode Pad1Button1 = (KeyCode)System.Enum.Parse (typeof(KeyCode), "Joystick1Button1"));
Keycode Pad2Button1 = (KeyCode)System.Enum.Parse (typeof(KeyCode), "Joystick2Button1"));
Keycode Pad3Button1 = (KeyCode)System.Enum.Parse (typeof(KeyCode), "Joystick3Button1"));
Keycode Pad4Button1 = (KeyCode)System.Enum.Parse (typeof(KeyCode), "Joystick4Button1"));
if(Input.GetKey(GeneralButton1){
if(Input.GetKey(Pad1Button1) DoButtonThingy(joystick1,button1);
if(Input.GetKey(Pad2Button1) DoButtonThingy(joystick2,button1);
if(Input.GetKey(Pad3Button1) DoButtonThingy(joystick3,button1);
if(Input.GetKey(Pad4Button1) DoButtonThingy(joystick4,button1);
}
Sounds like my original setup was much better overall :lol The biggest reason for the change was clean-up, and to make a 2D background music switch to another 3D-based music track, during an event the game triggers. So if I make a reference to an audio clip on a prefab, I can easily start that track with a built-in .Play() function like above? I just need to re-implement my cross fader system I've currently commented outUnfortunatly audio is prob the one area I've spent least on in Unity so not sure if I can provide many tips. I find myself tweaking a lot of sounds individually to find ideal settings but end up leaving them at default cause I move onto other things. The max distance on rolloff by default is very high with a very steep curve which I think for quiter sounds that you would only hear close up was a bit much though.
An AudioManager is good for dealing with dynamic audio and music, but using it for everything is probably not ideal as personally I'd feel you're creating more work for yourself as a lot of it Unity will handle for you.
Kind of curious why you don't want the torches playing audio on awake? Is it because the rolloff was not working? Or because they were not lit? The rolloff should fix the issue of hearing them across the map because they are too far away for example so they should happily just play on awake in that case. If the latter, then you could have a script on the torch that when it's lit, it has a reference of the audio source on the torch and you can just call Play() on that audio source, or Stop() when it's suddenly unlit.
So something like this would be ok
Code:public class Torch { [SerializeField] private AudioSource _audioSource; public void OnLit() { _audioSource.Play(); } public void PutOut() { _audioSource.Stop(); } }
I recently wrote a basic music manager in my game which I'm still messing about with, but it has two audio source components with one of them being the "active" one.
When I want to change music, I make the inactive one take the new music clip, I then have the current ones volume go down to 0 while the new ones volume go up to 1 (in a coroutine), so there's some cross fading going on. It's very simple but works very well imo.
But yes I would not have all music loaded for every scene in one scene, this MusicManager would live throughout every scene (via DontDestroyOnLoad), and when a scene loads that has different music, it will tell the MusicManager to change the music (either by MusicManager being a Singleton or via Events or some other means)
Not sure about the last bit about performance, but as you mentioned, I'd hope Unity would handle this in the background via the rolloff
Sounds like my original setup was much better overall :lol The biggest reason for the change was clean-up, and to make a 2D background music switch to another 3D-based music track, during an event the game triggers. So if I make a reference to an audio clip on a prefab, I can easily start that track with a built-in .Play() function like above? I just need to re-implement my cross fader system I've currently commented out
Sounds like I should keep my audio manager for certain things like the dynamic gunshots and ability effects, but remove static things like the torches. The torches were just an example, really, they were perfectly fine before. I was just under the impression that it was a bit weird to have a manager which doesn't manage everything audio related.
What I don't get though, is how do I reference an already created audio source component? If I make the script above with the SerializeField, wouldn't that create another entry box in the editor for me to place an audio clip in, and that would create a duplicate sound for no reason? Can't I just reference the already attached audio source? I'm a bit lost at this Unity quirkyness.
Given the weird rolloff numbers, it's probably easier to just place audio clips on objects and from there modify its values.
I'll have to check this out somehow, thanks for the help, I'll return if I run into trouble or when it's all done.You can change what clip an AudioSource has with its .clip field. I think you may have to Stop() it though first and then Play() again for it to play the different clip though.
The SerializeField will create another box in the editor yes (like public does, but just with private variables). It will be null however until you put something in it in the editor, so yes just drag the AudioSource on that object into that box.
Finally
I was using Rigidbody.MovePosition() to move everything, as I should be. But to grab an object, I childed it under my hand - which uses transform.localPosition to move the child behind the scenes. Used a joint to connect them instead - Fixed Joint for now - Spring Joint or similar after I figure out knocking stuff out of my hand.Nice, what was the solution? Mismatched Rigidbody/Transform move operations, or something else?
using your shield for combat is so passe
Wanted to give an update on my level visuals, so here it is !
https://www.youtube.com/watch?v=s59zFtsjEcY
Looking fancy AF. Now i can finally go back to making new moves and fixing bugs
using your shield for combat is so passe
That is total indulgence but when she kicks her shield back into her hand it would be awesome if it could hit/stun close enemies along the way
That is total indulgence but when she kicks her shield back into her hand it would be awesome if it could hit/stun close enemies along the way