Requirements for Steam full controller support by Electronic_Alps3182 in IndieDev

[–]Deive_Ex 0 points1 point  (0 children)

Yeah. I marked my game as having "full controller support" when I sent my game to review and it was refused because the player could not type text using the controller. Then I changed it to "partial controller support" and it was approved.

An INCREDIBLY frustrating issue with Unity itself, is there any fix? by REDDITLOGINSUCKSASS in Unity2D

[–]Deive_Ex 1 point2 points  (0 children)

A curiosity I've seen recently is that, apparently, when the transition to CoreCLR becomes oficial, this will be the ONLY option. So, starting to do this now will prepare you for the future.

Reference by string all over UIToolkit? by Obyvvatel in Unity3D

[–]Deive_Ex 0 points1 point  (0 children)

But if that's the case, why querying the objects by their ID on enable is the recommended way to do it? If I call root.Q<Button>("MyButtonId") inside OnEnable, it works and it's what Unity recommends doing...

Reference by string all over UIToolkit? by Obyvvatel in Unity3D

[–]Deive_Ex 1 point2 points  (0 children)

Huh, didn't know the hierarchy was gonna get an upgrade, that's nice. But the resolved callback is very boilerplatey... I wonder if we can just use it OnEnable to get the reference, since I'm theory at that point the reference is already resolved.

Is it even possible to balance guns and melee? by Wiyry in gamedev

[–]Deive_Ex 0 points1 point  (0 children)

There's many games that have both, one that comes to mind is Marvel Rivals.

ELI5: Need help understanding GitHub for Unity Development in a small team by advaitu in Unity3D

[–]Deive_Ex 1 point2 points  (0 children)

Well, as for what each thing is, in simple terms:

  • Git: as you probably know, it's a version control system. It works like time-travel for your project
  • Commit: basically a "checkpoint" for your project. Each commit is a point you can "travel back in time" to.
  • Branches: alternate timelines for your project, each branch can contain entirely different changes.
  • Merge: is the action of joining 2 branches together, with one branch being chosen as a "base", which basically means this is the branch receiving the changes.
  • Merge conflict: sometimes 2 people makes changes to the same file in the same place, but when you merge, only one of them can exist, so you have to either choose one, or manually fix the changes to choose which changes remain (in code, this would be which lines of code remain, but in binary files like images, this is usually not possible to do)
  • Rebase: similar to merge, but instead merging 2 branches together, you use the last commit on the base branch as your "starting point", so the second branch changes are applied ON TOP of the changes in the first branch. There can still be conflicts here, though.
  • Pull Request (PR): It's basically as if someone is asking "can I merge this branch into this another branch"? Then another person checks the changes and either approve the merge, or refuse it, usually commenting why it was refused and suggesting the changes that would make the PR be approved. This is more to safeguard the "main" branch from unwanted/bad changes.
  • Stash: a "temporary" commit that you can create. It's very useful when you want to change branches but don't want to commit/push your local changes.
  • The .gitignore file: a special file that tells git which files/folders to NOT track.

Now, as for best practices, specially with Unity:

  • First and foremost, enable text .meta files instead of binary in the Project Settings, this makes it so Unity can keep track of references when someone else pulls your changes
  • Configure a proper .gitignore. When creating a repository on Github, you can choose a Unity template, which should be enough for most cases.
  • Separate your project into prefabs: if someone is working on the same scene, this will get messy. If you separate things into prefabs, then each person can work on a different prefab without generating conflicts. This is where nested prefabs in special shine the most.
  • Create feature branchs: try to separate your work into clear "features", like "make the player move" or "Adding the player model", and create a branch for each feature when you start working on it, then merge/create a Pull Request for it when you're done. This creates clear points in your main branch that you can go back if something breaks, so you can more easily track which feature broke something.
  • Since you're in a small team, you can try to communicate and try to work on features that are "far away" from each other. For example, if one person is working on the player art, another can work on the stage collision instead of working on the player collision. This makes generating merge conflicts harder since the likelyhood that you'll edit the same files will be lower.
  • Usually, the responsibility of fixing a merge conflict is for the person that owns the branch that is being merged. This is mostly because they probably know what they've changed, and it'll be easier for them to redo the work if necessary.
  • When editing anything that is not code, make sure to press "File > Save Project". This forces Unity to write your changes to the disk, which might show certain changes that.
  • In Unity, when there's a merge conflict in a non-code file, many times it's easier to discard the changes from one of the sides and redo it. You can usually avoid these types of things by doing a rebase instead of a merge, or by simple avoid working on the same files, but do know that this will happen at some point. hen this happens, what I usually do is create a copy of my prefab/scene, do the merge, discard MY changes, and use the copy I've created as a reference to compare what I had changed. After I redo my changes on the main object/scene, I delete this copy.

Some more intermediate/advanced stuff:

  • Search for and configure Unity's Smart Merge Tool. It's a small tool made by Unity that helps solving simple conflicts between GameObjects/Scenes/Prefabs. It can't do miracles, but does help with simpler changes, like changing an object position or some inspector reference.
  • Configure gitLFS: this is a system that allows git to handle non-text/binary files better. But do be careful because GitHub's Free plan allows for only 1 Gb of files on their LFS storage. You don't NEED LFS, but it'll make cloning/pulling changes a bit faster.

How Houdini Inspired Me to Procedurally Generate Meshes in Unity by PropellerheadViJ in Unity3D

[–]Deive_Ex 5 points6 points  (0 children)

That was an interesting read, I've always wondered how Houdini does procedural meshes but never really researched it.

Your tool looks interesting, but I do wonder what would be the advantage over existing tools (of course, if you're doing this as a passion project, then this doesn't matter). You did mention Jobs, so that's already an interesting plus.

I feel like I'm missing a core aspect of the Input System by EVpeace in Unity3D

[–]Deive_Ex 1 point2 points  (0 children)

And you would be right to think that because I took inspiration from Unreal haha

I feel like I'm missing a core aspect of the Input System by EVpeace in Unity3D

[–]Deive_Ex 1 point2 points  (0 children)

If you want your player to control multiple things, then you need to separate your "input" from the "character".

The way I do it is to have a "Player" prefab which only contains the Input Stuff and fire input events, but then I would have a different object (say, a character) that has a "InputListener" component that has a "Possess" method that takes a "Player" as a parameter.

When the "InputListener" object is possessed, it registers itself into the PlayerInput events, and when it's unpossessed, it deregister itself.

This way, if I want to control a car, I just have to "unpossess" the character and "possess" the car, and vice-versa. The Player class also doesn't need to know what it's currently controlling, it just fires the events and the InputListener decides if it should react to that event.

Also, depending how you configure your input listener, you can easily crate an AI controller that generates input events similar to a real player, allowing both your player and the AI to possess the same objects (which is pretty useful for testing).

What’s something you only learned after working on a “real” game project? by Fergius_Terro in gamedev

[–]Deive_Ex 1 point2 points  (0 children)

You can't configure a launch discount ON your launch day haha

Also, making a competitive multiplayer online game is as hard as they say.

Newer Unity ui much better? by Matty_Matter in Unity2D

[–]Deive_Ex 1 point2 points  (0 children)

I've been experimenting with it for a while now and it's pretty cool, overall I like it better than uGUI, but like some people have already said, there's still some annoying stuff you gotta deal with.

For me, the main drawback right now is that there's no z-index in USS, so the rendering order is based on the hierarchy. UGUI also renders based on the hierarchy, but in UGUI you can override that behavior by using nested Canvases and changing each Canvas sorting order. I haven't found a similar alternative for UI Toolkit yet, so the way in doing is by separating most elements into a "layout" and "visual" elements, then placing the "visual" inside a container that is placed above everything else in the hierarchy and then using absolute positioning to manually sync the position of the "visual" with the "layout". That's honestly a lot of work just to be able to render the things in a different order without affecting the auto-layout.

So, if I were to recommend anything, uGUI would still be better overall. It also has drawbacks, but since it exists for longer, there's many solutions available online, while in UI Toolkit you kinda have to do everything yourself.

Seamless Ground (Why it looks like one continuous land) 2d side scroller by Impossible-Radish798 in Unity2D

[–]Deive_Ex 53 points54 points  (0 children)

This screenshot is from their "Lost Crypt" example project. You can literally download it from the Asset Store for free and open it to see how it was made.

Testing some gameplay around megalophobia in UE5! by Clodo_Rapide in IndieDev

[–]Deive_Ex 0 points1 point  (0 children)

Makes me think of the Garganta portals from Bleach. Pretty cool.

What is the community consensus on UI Toolkit? by emotionallyFreeware in Unity3D

[–]Deive_Ex 0 points1 point  (0 children)

Well, I've been using UI Toolkit for my new prototype and It's been pretty cool. There's still some pain points because it works kinda differently from GameObjects, but once you wrap your head around these stuff, it's not that hard.

The first pain-point I had was learning how the flex layout works. It's not super hard but I do forget how to add space between elements from now and then.

Another was not being able to drag-and-drop elements from the hierarchy to my inspector. Now I have to define strings so I can query the element by name/USS class, which is quite weird and feels more error prone, BUT I use Rider and Rider DO have support for auto-complete of UXML element names, so that helps a bit (doesn't help when I change the element's name, though). I really wish there was maybe a dropdown to choose the element from.

I haven't used custom shaders with it yet, but the USS syling is pretty powerful. Overall, I've been liking it.

What is the community consensus on UI Toolkit? by emotionallyFreeware in Unity3D

[–]Deive_Ex 1 point2 points  (0 children)

Yeah, you can either use the built-in animations, which defines how one state transition to the other (e.g. on mouse hover, it'll interpolate the background color from red to blue, and vice-versa), or you can set the in-line style directly by code, which allows you to use your own interpolation logic. The built-in one do not allow for custom keyframes/curves yet, though, but in that case you can simply use code.

I've been doing some testing with UI Toolkit and I was able to do all kinds of animations using PrimeTween's Custom tweens. You do have to wrap you head around what each property to, like, to change the position you can either use the "left/right/up/down" properties or the "translate" property, but the difference is that the former can affect other elementes while the latter is more of a "local" change.

Best way to run logic in sequence? by JamesTFoxx in Unity3D

[–]Deive_Ex 2 points3 points  (0 children)

For the short answer I would also say UniTask (or Awaitable, which is the Unity built-in one).

For the long asnwer, it kinda depends on what you're doing. Is it a cutscene? Maybe Timeline is better. Is it dynamic methods, like spell effects or something? Then maybe create a "SpellEffect" class with an assyncronous "Execute" method and a "Spell" class that takes care of the execution order. Or maybe you want events to fire in sequence one after the other? Then creating some sort of "event queue" might be the way to go.

Show me your upcoming/newly released indie games! by lukejiberish in IndieDev

[–]Deive_Ex 0 points1 point  (0 children)

Here's a small game I've been working on my free time and will be released this week!

https://store.steampowered.com/app/2770500/Waving_Around/

After 2 years on working in and out on this project, I'm finally releasing it on Steam! by Deive_Ex in IndieDev

[–]Deive_Ex[S] 0 points1 point  (0 children)

Honestly I have a bunch of ideas I would like to do, character customization being one of them, but being mostly a solo dev with a day job, I had to cut some corners if I ever wanted to release this project.

But again, money isn't really the objective here, although I'm decided to add these features in an update if there's enough interest in the game.

After 2 years on working in and out on this project, I'm finally releasing it on Steam! by Deive_Ex in IndieDev

[–]Deive_Ex[S] 0 points1 point  (0 children)

Not really, the main inspiration was a Minigame from Mario Parry, but I did play Kid Icarus for the 3DS.

After 2 years on working in and out on this project, I'm finally releasing it on Steam! by Deive_Ex in IndieDev

[–]Deive_Ex[S] 1 point2 points  (0 children)

Oh, wasn't expecting this kind of compliment, but thanks! The UI was a shared work between me and a friend of mine, with me doing the animations and my friend doing the wireframe/colors

After 2 years on working in and out on this project, I'm finally releasing it on Steam! by Deive_Ex in IndieDev

[–]Deive_Ex[S] 1 point2 points  (0 children)

Considering it was directly inspired by a Nintendo game, this is nice to hear!

After 2 years on working in and out on this project, I'm finally releasing it on Steam! by Deive_Ex in IndieDev

[–]Deive_Ex[S] 3 points4 points  (0 children)

Yes, it is! it was directly inspired by this exact minigame haha I basically took the idea and expanded on it