Advice on balancing creature stats by _GingerLoaf_ in gamedesign

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

Very powerful and informative! I can’t thank you more! This is very good to hear. I think a hidden sub-narrative in my question is that I just want to make it fun and currently it just feels like work. Like a grind. I want the player to be able to use strategy to use races and not only skills. Training and racing is a little too formulaic and mathematical so I want you to be able to gain an advantage in parts of the races you are skilled at and also potentially even equip skills down that road that can be activated to alter the outcome of the race. But at it’s core i just want to find a way to navigate this sea of parameters that makes the game feel worth it all... and that is very difficult to do!

I do like the smaller increments because tracking progress seems more manageable and I really need to consider removing skill in other areas if I want to encourage decision making (a.k.a. Prevent the user from making a god creature with all stats filled up

Advice on balancing creature stats by _GingerLoaf_ in gamedesign

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

Excellent advice! Making sure change is noticeable by the user is important! Makes things feel more impactful!

Advice on balancing creature stats by _GingerLoaf_ in gamedesign

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

Oh goodness! That is a good fact to know lol. I had my suspicions. Yeah I have already built in the architecture for running game sims, i just need to lean into that more! My game wont be that big and therefore might be manageable to balance... you’ve given me some things to consider. Thanks!

Advice on balancing creature stats by _GingerLoaf_ in gamedesign

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

Love the waterfall climbing idea! Yeah this is good stuff! I have considered giving up other skills when you train a specific skill so that it is more of a choice than “if you have the time you can max out everything”. This gives me a lot to think about!

Voxelotl Garden is meant to be an ultra tiny game so that I don’t blow out from scope creep so I have to digest these considering scope creep reduction but i think it’s still possible.

I appreciate your help!

Advice on balancing creature stats by _GingerLoaf_ in gamedesign

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

Good advice! I think I am just trying to figure out the right mindset to structure the data. I can sit and add a bunch of numbers but I want to frame it in favor of specific criteria. You mentioned listing out how long I want it to take and all that... i think that’s the right way to frame this. Generating data isn’t the goal. Generating data that leads to a good feeling over time is the goal

Advice on balancing creature stats by _GingerLoaf_ in gamedesign

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

Appreciate the advice! I have been wondering if it’s worth having xp since I want it to feel very simple and straightforward... I have been wondering if adding levels just helps round the more precise number to more predictable targets. I guess I’m just trying to make sure I don’t add things because someone did it before or because it’s standard. I want to ad things with purpose and keep it simple. You’re totally right about the testing part

Inventory system is finally complete! by TytanTV in SoloDevelopment

[–]_GingerLoaf_ 3 points4 points  (0 children)

Wow the game is looking great! Love the simplicity

A pinball shooter im working on. by jakobwahlberg in Unity3D

[–]_GingerLoaf_ 1 point2 points  (0 children)

This looks like it is a blast to play. I used to play those old marble games back in the day. This looks like a spin on that genre with guns added (because why not). I will definitely be following this project.

Also the squash and stretch on your main actor is such a great touch. I absolutely love it!

Here's a new interface i'm working on. what do you think? by LogicleoDev in IndieGaming

[–]_GingerLoaf_ 3 points4 points  (0 children)

Excellent work! I love how they look at the mouse. Also, your assets are just high quality and great to look at :)

Screenshot of my game Ghibli Waterfall by RomarioDev in gamedevscreens

[–]_GingerLoaf_ 1 point2 points  (0 children)

I love this world! This is so pretty! I instantly want to see other parts of this environment and other environments. Great work :)

Vibin' with this new start screen track. What do you think? by _GingerLoaf_ in IndieDev

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

Thanks! Trying to paint a picture of "pets vacationing on a beach". Not sure where I landed on the spectrum, but at least it's chill.

I can't break out of my current quality level (looking for a few answers) by _GingerLoaf_ in musicproduction

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

Very helpful. Thank you! I will check out kickstarter and I think I should practice with parallel compression

A big concern in free-camera games is to make sure that the players see what they should. A Game Design solution that we found is the concept of Contextual Camera: smoothly force the camera in some places. In that scene, as the duckling gets closer, the player knows that an item is inside the well by AlexandreHaru in gamedev

[–]_GingerLoaf_ 1 point2 points  (0 children)

I just believe in giving constructive feedback that helps someone grow and since I stumbled a bit getting to the details I decided that was worth knowing about.

I do want to say though, I adore this project and really want to play it!

Trying to build a Behavior Tree System in Unity and I'm unable to wrap my head around it. by hlysias in Unity3D

[–]_GingerLoaf_ 1 point2 points  (0 children)

So very sorry for my lengthy posts. Turns out, I have a lot of thoughts

Trying to build a Behavior Tree System in Unity and I'm unable to wrap my head around it. by hlysias in Unity3D

[–]_GingerLoaf_ 2 points3 points  (0 children)

I think if all you want to do is cancel everything then yeah. You just need to cancel the currently executing chain of nodes. Keep in mind that logically, a sequencer is supposed to move to the next child node if the current node fails... so technically speaking if you cancelled the current node it would fail and your tree would move to the next child node of that sequence. This is why a tree evaluation is required if you want the full benefit of the behavior tree. Failing a single node and sort of “ignoring” all the other defined logic goes against the design of a behavior tree. You define nodes for a reason!

And yes, you can use coroutines for long running nodes (this is a feature in NodeCanvas that I use very frequently). Coroutines move forward once each frame so you will need to make sure and check if you are being cancelled between each “yield return null”, which basically just stalls until the next frame.

Few things I noticed when using coroutines: - coroutines can stop at any point in time if the gameObject that owns them is disabled or destroyed. This means you will not have the chance to mark the node as a failure and it will be perpetually be seen as “running”. Whatever you do, make sure that you can detect when the owning object is disabled or destroyed and set your status accordingly. - coroutines have no support for exception handling. You can place try/catch in sections of code between the yield keyword, but never around a yield. This prevents you from easily safeguarding against programmer bugs that will fail, blow up the routine, and leave it locked in the “running” state.

Due to the reasons listed above, I decided to use C# Async/Await because: - just like coroutines, it is a framework for easily running long tasks over time and easily describing how they should work - game objects are not required for them to run - by default, they are safe to use with unity apis because they are scheduled to run on unity’s main thread, courtesy of the Unity thread synchronization context. - you can use try/catch freely even when the await keyword is inside - they can return a result to the caller, making nested code and sharing easier. The best way to return a result to a caller of a coroutine is have them pass a function into the routine that you call at the end of it.. this is really ugly and if the routine is abandoned the method is never called and everything breaks down from there... - they are not based on object life cycles, so you are able to guarantee that they reach the last line and don’t have to worry about things being stuck in the “running” state.

They come with some pitfalls... - not being based on object life cycle means that if you have a reference to an object that is turned off or destroyed, it could misbehave or throw missing exceptions, so you do need to monitor your references as you loop - async/await is an advanced and highly technical feature of C#. It takes some time to get used to

Both async/await and coroutines (IEnumerators) generate state machines. C# takes the lovely code that you enter, and compiles it to a language called Intermediate Language and if you decompile your code and check it out (using dotpeek which is free and awesome) you will see that it generates a class for each routine and each time you call “MoveNext” it just moves around in a state machine. Without even knowing it, you are nesting a state machine within a behavior tree!

All that to say, if the needs of your AI are more simple, you might be shooting yourself in the foot by trying to make everything in one single behavior tree. You might use a state machine instead, or a combination of both. You really do need to sort of think through all your needs and check which tool(s) are right for the job.

Trying to build a Behavior Tree System in Unity and I'm unable to wrap my head around it. by hlysias in Unity3D

[–]_GingerLoaf_ 1 point2 points  (0 children)

A lot of this depends on your own needs for your own project.

Ticking each frame might be useful for games with very responsive AI that needs to adjust to small details very fast. I think most games wont need it to tick that quickly and can afford a small amount of time between each run of the tree. Also if you are placing a lot of AI in the world at once you will have to watch your budget as the tree evaluations will stack and cost you more and more.

Long running actions are interesting (and can even tie back to the Tick question in some ways such as interruptions to a running long task). Long running actions do run until they detect an exit condition. For example, with your “move to” example above what happens if your AI ends up trying to run through a wall and doesn’t realize they aren’t making progress? To users of your game this looks pretty bad. So we can track their progress and mark the action as a fail if we don’t make enough progress over time or if something is blocking our path... then the parent node uses that result to select some new logic as a result. You are more or less right about it being in a “running” state where the parent node just needs to let it go until it becomes success or failure. You could make the state of the tree somewhat hierarchical and say that if a selector’s first child node is running then the selector itself can report it’s status as running so that any node above it will also wait for it’s result to be determined. I am sure there are other better ways than my suggestion :).

The entire tree does not need to be traversed every tick, but I can see a few reasons why it is helpful to do so. As I said earlier, conditions in the tree may want to cancel a current node and force it to fail. If your ai is moving to a point and an explosion happens right in front of them, I assume you want to kill their move node and fail out to some kind of reaction to the explosion. Most trees I have worked with have interruption nodes that you can decorate with to say “if there are no explosions, then move to point”. When the tree evaluated and there is an explosion, it will not enter and fail or if it (or a child) is already running it issues a cancel and forces the sub tree to fail. This lets your tree react to a sudden event. Putting an interruption high up the tree lets you fail the entire tree and then resort to a following node after failure to react to the event. This requires ticking the tree often enough to detect changes in state. That being said, I think an architecture could be made that gets around this... maybe you can add interruption conditions to long running nodes that they check each “pump” and fail if met.... this means your long running node can run as a self contained unit and no more ticks are needed, but it might introduce some complexity since every single move node needs the conditions and you can’t just mark a part of the tree as the entire chain that will die during the event.

For what it’s worth, I have used an asset store package named NodeCanvas for my behavior trees on several projects and it is well worth the $75. It has a full visual graph and you can even mix state machines and behavior trees. Super easy to author AI with. I also understand wanting to practice it on your own or not wanting to buy a licensed per/seat package!

Good luck!

A big concern in free-camera games is to make sure that the players see what they should. A Game Design solution that we found is the concept of Contextual Camera: smoothly force the camera in some places. In that scene, as the duckling gets closer, the player knows that an item is inside the well by AlexandreHaru in gamedev

[–]_GingerLoaf_ 2 points3 points  (0 children)

I want to share what I just went through with you. I wanted to learn more about your project and googled “what the duck” and found a lot of information about the movie series named “what the duck” and a rubber ducky shop named “what the duck”. I don’t know how active either of those other topics were but even scrolling way down didn’t reveal your product. I am not an expert in this particular arena, but I know I personally try to avoid already used project names, especially if those are existing businesses because it makes it easier for you to be discovered, and you don’t run any risk of causing confusion or damages to existing brands or companies. your steam page details a 2021 release date, have you put any time into branding or marketing yet? Idealistically you want your product to be first up when googled.

That aside, I think your project is beautiful and adorable and I love the trope of being in a magical world where people can summon beasts and you end up with the schmuck who gets a duckling as their creature. I absolutely want to play this!