How to make a Turn-Based Strategy game! (High Level Overview feat. Classified France 44)
Ойындар
🔴 All Tutorial Links unitycodemonkey.com/howtomake...
🎮 Get my Turn-Based Strategy Course unitycodemonkey.com/courses.p...
🌍 Learn C# from Beginner to Advanced! cmonkey.co/csharpcourse
🎮 Play my Steam game! cmonkey.co/dinkyguardians
❤️ Watch my FREE Complete Courses • Learn to make Games wi...
🌍 Get my Complete Courses! ✅ unitycodemonkey.com/courses
👍 Learn to make awesome games step-by-step from start to finish.
🔴 RELATED VIDEOS 🔴
How to Make Assassin's Creed: Mirage (High Level Overview) • How to Make a Stealth ...
How to make a City Builder! (High Level Overview feat. Pioneers of Pagonia) • How to make a City Bui...
Learn C# Intermediate FREE Tutorial Course! [2024] • Learn C# Intermediate ...
A* Pathfinding in Unity • A* Pathfinding in Unity
💬 Here's a high level overview on how to make a Turn-Based Strategy game using Classified: France 44 as an example.
These kinds of games involve some interesting mechanics like Grid Systems, Pathfinding, Abilities, Level Scripting, and more.
Check out the game page for a list of all the tutorials unitycodemonkey.com/howtomake...
00:00:00 Intro
00:00:42 Grid System
00:02:28 Pathfinding
00:03:04 Abilities
00:03:47 Stealth
00:05:07 Overwatch
00:05:32 Cover System
00:06:30 Flanking
00:07:13 Spray Zone, Friendly Fire
00:08:22 Health and Morale
00:09:26 Enemy Types
00:09:41 Map Data
00:10:36 Level Scripting
00:11:19 Overworld Map
00:11:48 Dialogue System
00:11:58 Skill Tree
00:12:16 Appearance Customization
00:12:32 Outro
📝 Some Links are Affiliate links which means it costs the same to you and I get a nice commission.
🌍 Get Code Monkey on Steam!
👍 Interactive Tutorials, Complete Games and More!
✅ store.steampowered.com/app/12...
If you have any questions post them in the comments and I'll do my best to answer them.
🔔 Subscribe for more Unity Tutorials / @codemonkeyunity
See you next time!
📍 Support on Patreon / unitycodemonkey
🎮 Grab the Game Bundle at unitycodemonkey.com/gameBundl...
📝 Get the Code Monkey Utilities at unitycodemonkey.com/utils.php
--------------------------------------------------------------------
Hello and Welcome!
I'm your Code Monkey and here you will learn everything about Game Development in Unity using C#.
I've been developing games for several years with 8 published games on Steam and now I'm sharing my knowledge to help you on your own game development journey.
I do Unity Tutorials on just about every topic, Unity Tutorials for Beginners and Unity Tutorials for Advanced users.
--------------------------------------------------------------------
- Website: unitycodemonkey.com/
- Twitter: / unitycodemonkey
- Steam: store.steampowered.com/develo...
Пікірлер: 89
🔴 All Tutorial Links unitycodemonkey.com/howtomakegame.php?i=classified44 🎮 Get my Turn-Based Strategy Course unitycodemonkey.com/courses.php?c=turnbasedstrategy 🌍 Learn C# from Beginner to Advanced! cmonkey.co/csharpcourse 🔴 RELATED VIDEOS 🔴 How to Make Assassin's Creed: Mirage (High Level Overview) kzread.info/dash/bejne/aI6glspqkpa0nNY.html How to make a City Builder! (High Level Overview feat. Pioneers of Pagonia) kzread.info/dash/bejne/doetxbR8ZJvYZcY.html Learn C# Intermediate FREE Tutorial Course! [2024] kzread.info/dash/bejne/e2qf2o-Ye7u0qpc.html A* Pathfinding in Unity kzread.info/dash/bejne/k6CJkpahpt2cfJc.html
Hello Code Monkey, thank you for featuring Classified: France '44 and the systems the team used to create our turn-based tactical and strategy debut. With so many great titles in the genre, it's very heartwarming that you picked us as an example.
@CodeMonkeyUnity
Ай бұрын
Congrats on making a great game! I've really enjoyed my time with it and I really love how you pushed the genre forward, I love the morale system!
@giampaolomannucci8281
Ай бұрын
wow dev response, that's amazing and very rare for a code tutorial, it usually happens only with gameplay or review videos
My favourite part about being a game developer, is seeing the matrix when playing your favourite games. You get to enjoy the game. But you also get to play the mini-game of figuring out how you'd create it yourself.
Ah your turn based course is great, I recommend it to anyone interested in the genre.. I started building my tactical framework based on your code around nov 22, a few months ago I submited a game made with it to a Jam and got third place (my first jam ever so imagine my happiness!), im making a small full game based on that entry now. Your action system architecture is great, it adapted pretty well to any change or feature we needeed to implement. I'll send you a link to the game when it's ready if you want
@CodeMonkeyUnity
Ай бұрын
Congrats on third place! Quite impressive to get that on your first try! Best of luck with the full game!
@executablelinkable6169
Ай бұрын
Congrats man. Out of curiosity which jam is that, because I thought game jams take at most several days?
@bogoid
Ай бұрын
@@executablelinkable6169 turn based tactics 2024 on itch, i spent most of 2023 experimenting on how to do things like a cover system with auto-crouch, selectable weapons, hit chance calculation etc, IE: analyzing how xcom and jagged alliance made things work, replicating it's gameplay systems. And I also spent a massive amount of time reading -real books- on game AI (AI for Games, or the Game AI Pro series), pathfinding, game design, etc I read around 10 books last year. By the time the jam started I got enough knowledge to rewrite most of those half assed experiments into a concrete game. In the end I was happy with the results, all that effort experimenting and studying paid off and now im putting all of that into practice. The entry for the jam has bugs and lacks polish as any rushed game does, but that third place (and first in controls!) was enough of a kick to get things working for me.
@bogoid
Ай бұрын
@@executablelinkable6169 I wrote a massive comment explaining the whole thing but it's not showing up lol, dunno why.. well, I spent most of 2023 reading *real books* like AI for games or the Game AI PRO series, reading the code of open source games (like jagged alliance 2) and doing all sorts of experiments replicating xcom's and similars gameplay systems while designing the architecture for a tactical game on a whiteboard (I work as a software architect so that's kinda my thing tbh). By then end of the year I saw the annoucment of the turn based tactics 2024 jam on itch, and joined. When the jam started I came up with an idea for the selected theme, created a new repo and got into working, pouring all that knowledge from theory and practice into a single thing. by the end of the jam I had 300 commits into the repo :D but it was a great opportunity to actually do something. From there I decided to follow developing the game and started polishing everything (the whole game I submitted is mostly prototype-level stuff), but im focusing on following architectural patterns and developing internal tooling to work on future games, that was my initial idea after I finished codemonkey's couse.
@bogoid
29 күн бұрын
@@executablelinkable6169 tbt jam 2024 on itch, the jam was 9 days long really, but it was a good opportunity to put all my experiments together into a single project and actually make a game
I find it both challenging and inspiring knowing that i was working on a game very similar to this using your turn based course even though i'm still stuck with making customizable characters with customizable perks instead of having presets of each unit type
@isaiasmedina6998
Ай бұрын
oh yah party system i was thinkin about handling that similarly to a inventory system or somethin i shall see
@tomasmaciasrivas5989
Ай бұрын
I recently played a a game where you have different classes (so far nothing new) which provides different weapons options (here come the twist): based on the weapon you equip you will have different attack abilities (so not only different attack/effects stats). This aligns perfectly with the Scriptable Object approach. You can define all of thiese abilities as different ScriptableObject and then attach them to the weapons (again maybe a Scriptable Object). You can restrict which weapons are allowed by which class maybe. But then you have a highly modular system easy to change and extend.
@folkenberger
Ай бұрын
@@tomasmaciasrivas5989 Currently i have a stat system for each skillset, since the more you updare cerain skillset, the mor eunlockeable weapons of that type you can equip, as well as getting better stats from them For example using a scrap pistol starts with 80% hit chance and by the time you unlock the next weapon tier, you get 95% base hit chance and 30% extra base damage. Right now each weapoon on my game is an scriptable object that has both skills/abilities and attachments (that can either boost stats or unlock an ability)
This is super usefull. Videos like this, overviewing mechanics on games are awesome. Its a nice start point to anyone. Thank you!
Turn-based strategy is one of my favorite genres and I plan to create such a game myself someday. Thank you so much for this tutorial.
Your turn-based strategy course was great! I really love how you focus on clean code so that it is easy to extend the project.
Love these overview videos, I feel inspired watching a really great game being broken down into small parts that seem more achievable!
I haven't heard of this game before. Nice share!
This is great! I've been wanting to create a game based on Final Fantasy Tactics, and I can use lots of these concepts to make that dream a reality. Thank you for sharing so much useful information with all of us!
I really love these videos, what you did with Pioneers of Pagonia was awesome as well. It is extremely inspiring.
Amazing video!
Hi CM! I like the idea of making a list, and also how you covered it. Just concepts, no code, good for any game engine. BTW I caught how one of your scriptable object examples said "Subscribe to Code Monkey!" 😁
@CodeMonkeyUnity
Ай бұрын
heh nice catch!
The mechanic that cuts action points when in stressful situation is an interesting concept.
@mandisaw
Ай бұрын
It's a negative-feedback loop - useful, but can have unintended consequences. Assuming the mechanic works the same for both player & AI, makes it hard for the player to recover from a few early hits/near-misses. Meanwhile the enemy may fail/flee prematurely when the player is "close-enough" but underleveled, which can deflate that feeling of overcoming steep odds. I track morale & stamina in my tactical RPG game as well, but it's more granular - each unit type can have a different meaning/behavior based on what their/their side's morale is doing. Allows for more design flexibility.
@mattomwit
Ай бұрын
@@mandisaw I started thinking that is is similar to D&D flanking where if enemy is flanked they loose defense bonuses. I loved when in xcom my soldiers panicked when one of them died. On one hand it was a bad feeling since I just lost my character and other party members got penalties as fear and random action. The actual panic mechanic is rally cool since it simulates fear on battlefield but for a game there would have to be some positive factor that allows to change the negative around. For example when a character who witnessed enemy kill their comrade gains some benefit in form of a trait that allows them to deal more damage to enemy type who killed their comrade. Sadly in xcom I always reloaded the game after the team member I nurtured died and everything went to hell. I wish there was an incentive to keep playing other than playing on ironman difficulty.
Thanks!
You chose the most difficult game to develope I've ever seen to do a high overview. But, your courses are super helpful 😊
I strongly advise looking into spatial hash grids, it's a way to optimize searching for entities in space. While turn based games with a top down perspective rarely care for performance, if you have many units, it could slow things down.
@CodeMonkeyUnity
Ай бұрын
Yup that's a great tip for making grids more performant. Although I think the Physics Engine already does it by default, so since normally I do all kinds of searching using physics queries usually it runs pretty fast
@mandisaw
Ай бұрын
Performance is still a consideration, esp with 3d top-down games growing in size & scope. Lamplighters League from last Fall got hit hard for poor optimization 😢 Second the rec for using hashes to represent your maps - besides making searches faster, it can also improve cover & to-hit/accuracy logic. I'm using bit-packed ints in my tactical RPG - allows for tracking everything from character positions, action-specific cover, terrain, and formations/flanking with minimal memory overhead (for fast AI calculations). Physics can work well if you aren't otherwise taxing the memory & CPU, but on mobile or Switch (maybe XBox Series S too), even a game like this could pose a problem.
very good
Your turn-based strategy course was great! clean and easy to learn and i would really love see a Multiplayer expansion Using Unity's NEW Multiplayer Framework (if its possible of course) thank you for your courses they are really helpful
Thanks for the video - very nice as always, having a great breakdown of the different mechanics. Have you considering to dig a little bit more into design aspects: not only how but why? Why square grid? (Of course because it works much better for cover system and map design than hex) Why stealth? To enhance the player agency giving him more options to solve the scenario (not only pew pew) just some example. I think this series of videos have the potential to deviate a little bit of the more pure programming tutorials to touch some game design aspect, like the reason behind these mechanics and pros and cons.
@CodeMonkeyUnity
Ай бұрын
I did actually experiment with a more "game design" focused format once before kzread.info/dash/bejne/oIiN1cRyn8yyeLg.html It was certainly fun! It is quite different to analyze the technical aspect versus the game design aspect. If I had infinite time I'd love to consistently do both formats!
Thank You for making this kind of videos. I too agree with others here, your Turn Based Strategy Game Dev Course is excellent. I am adding some new things and customizing it a lo (it is my playground for Experiments 😅)t; for me it was a great experience studying by making that project. 💯👍🏻 Fun & Educational
@CodeMonkeyUnity
Ай бұрын
That's awesome to hear! Great work on building upon it!
Thx
Lol I recently started working on a turn based strategy game. This would have been helpful but I'm glad i figured it out on my own
Usually games like this would use Utility AI. I would enjoy seeing a video of yours about it and making it work in a demo.
I’ve completed your tbs course including the extension pieces for multiple heights and hex. I’ve also ported it to both Godot and Unreal. I think a good tutorial would be to highlight the move area outline instead of single squares. I got it working using a brute force method but it’s slow.
@CodeMonkeyUnity
Ай бұрын
Oh wow nice! Great job on completing and porting it twice! To highlight the move area you basically just calculate the pathfinding. That will be either fast or slow depending on the speed of your pathfnidning.
I think its this one that i just got on Udemy. Cant wait to start it
Thanks, I really hope you can make one like this for Baldur's gate 3.
@CodeMonkeyUnity
Ай бұрын
I still need to play it! Got to find some free 50 hours in my schedule heh
It would be great if you include how to make it into the normal turn based like Persona or any JRPG
I'm currently falling down a rabbit hole, trying to use c# class constructors (on classes that don't inherit from monobehaviour) along-side serialization. I've realised that for serialized c# classes, Unity calls the constructor multiple times. The result is that I end up seeing duplicate items in my menus. I was using some combination of events, inheritance and polymorphism to make the non-MB classes register themselves to the Awake and the Start calls, using the constructor, through an intermediate monobehaviour which I called to "StartupManager". It worked except for the fact that they were double registering themselves. I already have a workaround (which I don't like because it's not as elegant), where I explicitly list out the non-MB classes that I want to have an Awake/Start call for. Anyway, I remembered that you made a video about Dinky Guardians where you discussed having non MB scripts which run on the Start/Awake call, but I can't pinpoint the video.
@CodeMonkeyUnity
Ай бұрын
Yeah I did use lots of non-MB C# classes in my game, mainly for all the Off World logic. For registering them I don't necessarily register them, I have a OffWorldManager which is a MonoBehaviour and that script is the one that is responsible for creating and setting up the OffWorldObjects and storing them in a List. Then on the OffWorldManager.Update() I can decide if I want to cycle through all the OffWorldObjects and run some logic on them. In my case to keep the game performance I only updated those objects 10 times per second. I think I might have talked about that in my video on Interplanetary Travel kzread.info/dash/bejne/rIuNyaaskc--lsY.html Although your logic sounds like it should work, have you added some logs to figure out how they are registering twice? I haven't done much custom intergration with Unity's serialization pipeline so not entirely sure how it works but I assume there's some way to run some code only once on code reload.
@fruitfunfitness3584
Ай бұрын
@@CodeMonkeyUnity Thanks for the reply! I did use a lot of Debug.Log's to figure out what was happening and tested every aspect of my system in isolation. People on forums seem to have noticed a similar phenomenon. After running some tests, I think that what it essentially comes down to is that Unity likely never intended c# class constructors be used in a way that effects things outside the class itself. Details in the next paragraph. Inside of Unity, c# class constructors are called multiple times. The exact number of times depends. Not only that, but the number of times that it's called that actually effects gameplay seems to differ from the total number of times, so I will be only counting these times (it's still multiple, but less). It seems to depend on factors such as whether it uses the [System.Serializable] attribute, and when/how exactly the variable is being initialized (in the member variable section of another serialized class vs on Awake) The once case I've found where it's only called once in a game-effecting way is where it's not [System.Serializable], and is not initialized in the member variable section of a serialized class. p.s. I'm testing this in Unity 2023. Anyway thanks for listening. I should not really be getting sucked into things like this, but I do like to get to the bottom of things.
Hello, I really like your tutorials, and when you said about dialog system, I thought you could make a video on that subject. I already seen many videos about implementing dialog system with Ink (Inkle), but I wonder if there's other way of doing that, keeping scalability and flexibility. I'm sure many people would love to see that kind of tutorial!
@CodeMonkeyUnity
Ай бұрын
I have seen some tools on the asset store that look extremely complex. I don't normally play many dialogue heavy games so not entirely sure on all the features that a good one would need, for me I mostly do super basic things so in my case (and in this game) I would make it just like I said with a simple scriptable object to store each text line, audio line, spoken character and time, then another scriptable object that holds a list of that scriptable object type to describe an entire conversation.
Just for curiosity, have you played Marz: Tactical Base Defense? (made with Unity) I did not pay attention to that game at first, but it was in my game library (because... Unity), so I started playing it. I must say, I loved it! I could point many weak points in the controls and interface, as I am playing with a notebook and touchpad, but apart of that, I had lots of fun!
@CodeMonkeyUnity
Ай бұрын
I've heard of it but haven't played it, it looks quite interesting!
Will you be adding some of the mechanics you go over here (such as overwatch, stealth, etc) in depth on your Turn Based course in the future?
@CodeMonkeyUnity
Ай бұрын
Yup I would like to add those in the next update, alongside maybe a multiplayer mode. Just need to find the time!
Can you make a part 2 of this and talk about how you would approach making the game: Shadow Tactics: Blades of the Shogun and the difficulties lies in making that game?
@CodeMonkeyUnity
Ай бұрын
I was actually going to make a video on this series about Desperados 3, I wrote a ton of the video but never ended up making it. It's definitely an awesome genre. In technical terms the hardest part is the line of sight, they actually have a great detailed blog post on how they made it kosmonautblog.wordpress.com/2017/01/09/shadow-tactics-rendering-breakdown/
@bluzenkk
29 күн бұрын
@@CodeMonkeyUnity cool thanks~ i'll look into it~
I love these videos! I know you have a lot of resources regarding grid placement. Do you also have something more like Manor Lords? In one German video the placement in MLs was called "next-gen building" game. He compared it to Anno and how different the look and feel in ML is. Would be interesting to know your thoughts. Using a spline tool to create some basic roads and then placing buildings towards the road? How about building / placing defense structures like walls and towers? Also with a spline tool? Are there good plugins to use from the Asset Store? Lots of questions. :-)
@CodeMonkeyUnity
Ай бұрын
That one is definitely on my to-play list to research how it works. The building system does look awesome, extremely natural, very freeform, so I wonder how he built it. The roads are definitely splines, but not sure how the connection to the building then works. For example in Pioneers of Pagonia they have splines but then also generate sort of grid positions for the building locations. kzread.info/dash/bejne/doetxbR8ZJvYZcY.html There's a ton of interesting spline tools on the asset store, and there's also Unity own built-in spline tool which I haven't used myself yet but looks very capable.
@lonaur
Ай бұрын
@@CodeMonkeyUnity Ha, I watched that video already in the past. But I didn't find it in your playlist "Grid System in Unity (How to make it and where to use it)" a few days ago. Maybe you add it there as well. Looking forward to more videos about this topic.
@CodeMonkeyUnity do you know how they outline the walkable area for a unit? In your Unity Turn Based Strategy course you show the squares the unit can walk to but I want to make an outline of the area like the game you show here or like the new XCom games
@CodeMonkeyUnity
Ай бұрын
The grid positions are just squares so you can write some code that checks all the valid walkable grid positions, find out which ones are on the edge (meaning unwalkable neighbours) and do some math to grab the 2 points that make up that edge. Then build a mesh using all those points and maybe add some material with some glow to it. I covered how to dynamically build meshes here kzread.info/dash/bejne/Y2WXm9SQgtLaeps.html
are you still planning to do a factory/city builder type game with DOTS after you finish the C# course?
@CodeMonkeyUnity
Ай бұрын
Yup after I'm done with the C# course I want to work on a DOTS course, although still undecided on the genre itself
I would be interested in RTS Udemy course like Command & Conquer (or even old Dune style for us older gamers). There is a big lack of those tutorials.
♥
Very cool rundown! I like this genre, but not this style - WWII did have colors! France wasn't actually in sepia tone 😅 Valkyria Chronicles or Midnight Suns would make a good follow-up - how to add some real-time or 1st/3rd-person flourishes to your turn-based strategy. Or tips on AI implementation.
@CodeMonkeyUnity
Ай бұрын
I've had Valkyria Chronicles on my to-play list for ages, I definitely love how the colors are so bright while also being turn based strategy
When are you going to make a 2D racing game?
@CodeMonkeyUnity
Ай бұрын
That would be fun! It's been years since I did any kind of racing thing. So many things I'd love to do!
what happen to total world leberation you were working on ? you seem like you stopped posting about it and even mentioning it at all
@CodeMonkeyUnity
Ай бұрын
It's currently on hiatus. I paused work on it to make Dinky Guardians, and now I'm busy with a bunch of other big projects. But later this year I want to get back to it.
Hello budde Could you please a tutorial on verse uefn multiplayer management I had been struggling to do that. I am spawning a wildlife & assigning it to the player but it's not working in multiplayer properly. Please it's a request like how multiplayer works in the verse programming language please
@CodeMonkeyUnity
Ай бұрын
I've never used UEFN so I'm really not the best person to ask about that
@DUde00231
Ай бұрын
@@CodeMonkeyUnity Thank you for replying could you do a collaborative video. With one of the creator?
Better investigate RTS genre :X
@CodeMonkeyUnity
Ай бұрын
I'm actually replaying They Are Billions right now as research for something interesting!
Hi, greatings from Ukraine! Can you add a Owerwatch as a bonus to your course?
@CodeMonkeyUnity
Ай бұрын
Yeah that's my plan for the next update, although I've got so many things on my to-do list that I'm not sure when I'll be able to get to it Although if you fully understood everything in that course then with the overview I mentioned in this video you should be able to build it.
@gagistos3926
Ай бұрын
@@CodeMonkeyUnity Cool! You are great!
What program do u use for animating characters ? Thank you
@CodeMonkeyUnity
Ай бұрын
I don't make animations myself, I just get them form the Asset store or Mixamo
O-o .... trouble... I am making a similar but way lower budget version of featured game... :D It is different enough cos my system is not like this... but it is a lesser turn-based strategy game made on fundation of your strategy game course set in ww2.... so along side this game no one will play it :D
@CodeMonkeyUnity
Ай бұрын
Your game doesn't have to be better than every other game in the same genre, it just has to provide an interesting experience. So as long as you're not making an exact clone you're fine.
@immitatedone1511
Ай бұрын
@@CodeMonkeyUnity Yes, thank you for the inspiration. I am aware I will not be able to produce a high quality game at first try but I'd be foolish not to take into account the games in same genre. Lucky enough I do believe it is different in some core points and it might prove to be a somewhat fun approach to the standard. Since you like top down strategy games I will send you steam key in about a million years for you to try it once some Alpha is done. Would die to hear your input on it if you'd have a 10 min to spare. Cheers
@reessoft9416
Ай бұрын
Video games have been around since spacewar in 1962, or even tic-tac-toe before then. You're not going to come up with a game that people have never seen before. That doesn't mean that your game is something that people might not want. Remember, these days people can't think for themselves - if your game gets picked up by an "influencer" then it's going to have a good chance of success. Don't assume that any game you write is going to be successful though, even if it's of good quality. There's too much stuff on Steam now, and any new game is likely to be swamped by everything else. This genre isn't new anyway - Cannon Fodder was a similar game from 30 years ago, and Commandos Behind Enemy Lines is more than 25 years old. Don't worry about your game compared to Classified France. That game has been written by a "proper" development team, published by Team 17 - it's not an Indie game.