You can wishlist Unto Deepest Depths here: store.steampowered.com/app/3106600/Unto_Deepest_Depths? Also, after several requests, I have open sourced some early prototype code of UDD to help you see how everything works together: github.com/theshaggydev/unto-deepest-depths-prototype Have questions or things you'd like to see in future devlogs? Let me know!
@mfyoutube50033 ай бұрын
tyvm for the github! even though an overview is very nice and help to have a meta understanding, getting a "template" accessible is good for beginners like me :) ty!!!
@patentthatАй бұрын
Another thanks for open sourcing the prototype code! Very helpful
@Nobody61465 ай бұрын
I really appreciate you sharing so much of your architecture! Not many solo devs work on tactics games so content is sparse and I’ve used a modified implementation of your state machine and your service bus for my own tactics game!
@TheShaggyDev5 ай бұрын
Thank you! And agreed. I partially started doing these types of videos because I couldn't find anything to copy for myself 😅
@Nobody61465 ай бұрын
@@TheShaggyDev I definitely see why it isn’t a common small creator game genre. A non-real time game sounds simpler on the surface, but setting up the architecture and system interactions are actually much more difficult than at first glance! I’m glad I have a software engineer background to lean on!
@MrBoingus5 ай бұрын
A LOOK THROUGH THE CODE IN ONE OF YOUR GAMES PIECE BY PIECE WITH EXPLANATIONS? why shaggy dev you spoil us. a pleasure to watch this video as always. your node-based state machine system is the backbone of my every godot project so i will always have a deep respect for you
@TheShaggyDev5 ай бұрын
Haha, thank you!
@Vegan_Kebab_In_My_Hand5 ай бұрын
As a beginner I really appreciate that you also take the time to explain the sene tree structure. Getting a better idea of how one might structure the project helps to avoid major spaghettification and eases up on refactoring.
@ricardomianelli3 ай бұрын
That's an amazing video, one of the best I've watched so far on KZbin. As a software engineer, the architecture is always both my biggest pleasure and my worst nightmare, and I love seeing how other people design and organize their projects, so I'm really grateful you decided to share this. Adding to this, I was building myself a tactical battle game on Monogame, but decided to explore Godot to see why people like it so much and ended up finding your video and loved it. Thank you so much! I'll follow for more!
@TheShaggyDev3 ай бұрын
Thank you so much! As a fellow software engineer, I can totally relate to how you feel about software architecture.
@clark44283 ай бұрын
Man, I've been combing through the github to try and understand how I can use certain ideas with my project (particularly the highlight system). It is clear to me how well you understand structure to keep things clean and uncoupled. Definitely one of the things I have been struggling with in my current project. Thanks for the resources to let me try and wrap my head around it.
@TheShaggyDev3 ай бұрын
You're welcome and keep working on it! I would argue there's some jank and things that could be fixed in the GitHub, but I suppose there's always more that can be done.
@Zyjin5 ай бұрын
Awesome work as always Shaggy! I'm glad to hear you're working towards releasing something, looks like a fun game!
@VaporCode5 ай бұрын
My day is made🎉 thx for this video ❤
@rattenjunge1235 ай бұрын
thank you for sharing this. it really helps!
@OmegaOverlord30004 ай бұрын
This is such a good video, thank you so much! This really lays stuff out in a very clear and easy to understand way without getting bogged down in code
@aeronamics2 ай бұрын
this video helped me a lot! Thank you :)
@neurolancer814 ай бұрын
Love the detail! Thanks for the effort you put in for these videos.
@rhyantrick81785 ай бұрын
i wanted to create a similar game but it was a grid based action game so all of this is fantastic and as a viewer said here , this kind of content is slim. great video! the music and sfx are great btw.. ill be checking out that software too
@chanceyoung24165 ай бұрын
This game actually looks and sounds amazing. Cant wait to see it finished!
@bbugarschi5 ай бұрын
About 2 years ago, you released the Elemechs vidoe, Ever since i've been toying with making my own turn based tactics game, i'm working in java in libgdx, but architecturally i'm doing the same thing as you :). I think i've rewritten the "game' about 10 times by now I have zero plans or desires to actually release anything :P, but it's quite fun to toy around with this kinda thing Thank you for these videos.
@TheShaggyDev5 ай бұрын
That's great to hear! And fun to hear you're using libgdx! Not too mainstream these days but I used it a bit several years ago and liked it. I should see what it's up to now...
@VeijariMash5 ай бұрын
Another banger by The Shaggy dev!
@malldvd4 ай бұрын
I go unto the Deepest Depths. You slip upon the Steepest Steps. We are not the same. Seriously though, the explanation of the code in this video is very clear and understandable! I like the game concept and will be wish-listing it immediately.
@tmilker5 ай бұрын
I'd love to see a video that covers the organization, usage and issues of using signals in an actual game. Like that edge case you mentioned(did you just defer it?) or when it's appropriate to disconnect vs. ignore signals. There doesn't seem to be a lot of information about patterns & best practices for signal usage in Godot.
@TheShaggyDev5 ай бұрын
That's a great suggestion because you're totally right that signals, while very useful, also have gotchas in a full moving system. For the edge case issues, I've added a minimum one frame delay before firing off a signal on paths that could cause issues. Only a few places it should be a problem, so I've just added it where I expect it to be an issue.
@rogercruz15475 ай бұрын
Looks like chess but with moving and attacking separated EDIT: Remember! Necromancers are just healers that got there a little late.
@d.w.65845 ай бұрын
That Necro line gave me a good chuckle, thanks 👍. Although if you think about it, all healers are necros, since they bring dead tissue/cells back to life. 🤔
@ricardopitta82725 ай бұрын
Nice!
@markshumarov3 ай бұрын
Art style seems quite reminiscent of Oryx's Tiny Dungeon. Were you inspired by it, or did you purchase the assets? I was also interested in acquiring their 16-bit fantasy pack, but I saw another game using it extensively during Steam Next Fest yesterday.
@TheShaggyDev3 ай бұрын
Yeah, I use Oryx as a base template for this game. Some stuff is pretty similar to the original, some has been modified a fair bit, and some are completely original graphics, such as bosses and all the animations, but I find Oryx helps me get the proportions and such figured out for the characters and levels.
@markshumarov3 ай бұрын
@@TheShaggyDev Oh, nice. This is a great approach. I might actually do something like that
@markshumarov3 ай бұрын
@@TheShaggyDev By the way, thanks a lot for the content! I have learned so much from your videos.
@VTSfilms5 ай бұрын
Good timing! A friend and me are trying to make a fire emblem clone, and we are still stuck on trying to select a character to move it. Hopefully we can figure it out with the snippits of this code. But we have been stuck on this for 2 weeks now....
@TheShaggyDev5 ай бұрын
If it helps: For selecting units in UDD, when the mouse is clicked, I convert that pixel position to a map cell and then check if any units have that same cell. If so, they get selected. How you then track that can vary. In this case, the Units Group tracks who's active and just asks them for the info it needs to facilitate things. But you could also let the unit itself track whether or not it's selected.
@VTSfilms4 ай бұрын
@@TheShaggyDev Any chance you can include that in your next video?
@TheShaggyDev4 ай бұрын
@@VTSfilms I could probably make that work! Just be warned: it'll be a few weeks before that's out.
@VTSfilms4 ай бұрын
@@TheShaggyDev well I'm also remodeling my kitchen, so got plenty of time. This is a hobby project, and I'm currently working on the idle animations in photoshop for my characters. Trying to make a better work flow to get the sprite sheets. All this is new for us. So take your time, and I will love to learn from you! I already implemented my node structure to be just like yours.
@Whhatt4 ай бұрын
Nice
@indieBenАй бұрын
Love the units, any examples of that similar art style ? What inspired you ? ( " Low resolution pixel art " )
@TheShaggyDevАй бұрын
Thanks! Anticipating I would have multiple worlds and a lot of unit types in the game, the art decision mostly came from just picking the art style I can actually do 😅 I use the Tiny series from Oryx Design Lab (www.oryxdesignlab.com/) as a general base template to get proportions and broad structure right, then customize, animate, etc from there
@indieBenАй бұрын
Thank you ! I just discovered them like 1 hour ago while doing research about it :) love this minimalistic style @@TheShaggyDev
@jasonwilliams87305 ай бұрын
👍
@barneystinson23824 ай бұрын
Could you make a video showing your Astargrid autoload and how you connect it's code to the character and enemies?
@TheShaggyDev4 ай бұрын
@@barneystinson2382 sure thing. I'm going to try and do some smaller videos answering questions and I'll add this to the list!
@hornetdc5 ай бұрын
Can you also explain how you do units? I always get confused at that part, should I use inheritance, composition or custom resources to create different units etc.
@TheShaggyDev5 ай бұрын
Yep, I'll be covering them in a future video. In my case, it's a mix of custom resources and composition. Custom resources for setting stats and similar that exist on all units, composition for things custom to that unit type.
@jRsqILVOY4 ай бұрын
Could you do a video on the AI? How does it search for the best actions?
@TheShaggyDev4 ай бұрын
@@jRsqILVOY yep! I intend to cover that at some point. Quick answer: it's a scoring system to maximize kills and damage dealt on a unit's turn
@sean85994 ай бұрын
Question: the stats and artwork of the units is a script that's inside each individual unit? or is that located elsewhere?
@TheShaggyDev4 ай бұрын
@@sean8599 that's stored in a custom resource. I'll discuss in depth in another video, but each unit has a resource that defines the stats, animations, etc for it and that resource is loaded at runtime into the unit instance, which knows how to parse and load everything for usage during battle
@brigandpatrolworllvideos94 ай бұрын
For the high level architecture, where do you include the level selection/path choices and intro /menu/win/lose states?
@TheShaggyDev4 ай бұрын
UI node for menus that need to be around during the game. Level and path selection gets saved external to battles and loaded in at runtime. There's a Player resource that tracks game progress and can be used to load in a desired battle configuration. That configuration has things like what maps to use, what enemies are available, etc
@brigandpatrolworllvideos94 ай бұрын
@@TheShaggyDevquick reply! I just finished the video haha. Nicely done. Thanks for the tips. I use a lot of state machines and object pools. And am now trying to use command and strategy patterns. What’s your take on patterns? Do you use them much?
@TheShaggyDev4 ай бұрын
@@brigandpatrolworllvideos9 Haha, you caught me right when I'm doing some social stuff so great timing! Sure, I use them as needed, but all of the major game engines also have their own patterns or implementation of common patterns that are super important to learn. The trick with design patterns is that they're tools for accomplishing certain jobs, so it's important to not try to force a hammer to become a screwdriver, which is easy to do when you're deep into learning about them (I'm personally guilty of this).
@brigandpatrolworllvideos94 ай бұрын
@@TheShaggyDev I plan on making myself guilty of this in a few scenarios to try and understand when and why to use them. Like maybe the attacks in your game would benefit from the strategy pattern. and maybe the moves for the ai and the player would benefit from the command pattern, but i haven't use either, so IDK. Thanks for making vids and keep it going. GL on your game!
@TheShaggyDev4 ай бұрын
@@brigandpatrolworllvideos9 Thanks! And good luck in your learning! Nothing wrong with experimenting to learn!
@Peckit20 күн бұрын
How would i incorporate this into the same map i explore. Example. Exploration and combat take place on the same map.
@TheShaggyDev19 күн бұрын
Oh that's a much bigger question, and I could only speculate on ways to do that. Not sure what the best way would be.
@Retro-Future-Land4 ай бұрын
Could this be incorporated into an over map / world-map strategy like some old-school strategy adventure game?
@TheShaggyDev4 ай бұрын
Sure, would just depend on how you wanted to run it. UDD has a world map and then transitions you into battles, so in a way it's already doing that. You just need a way of tracking data between the two views.
@Retro-Future-Land4 ай бұрын
@@TheShaggyDev Yeah that's the exact key I'm hoping to find. Thank you for the response. Do you know any way to track and transfer the data between the two views? I'm hoping to have it for that akin to the Total War campaign to battle to campaign etc.
@TheShaggyDev4 ай бұрын
@@Retro-Future-Land Resources are handy if you want one source of truth shared in multiple places, which is what I do in UDD. There's a resource that tracks the player's progresse, units, etc. Go into battle and load the units from that battle. Win the battle and earn some XP? Goes into that same resource so it's tracked and available in the map view. Some people also like to use a SQLite database if they have a lot of data to work with, but that would be way overkill for what I'm doing.
@Retro-Future-Land4 ай бұрын
@@TheShaggyDev Ok cool, thanks for the deep lore. I will probably be doing similar hopefully. Although it may be a bit more complex to track damage to components instead of HP.