Starting Development of My Dream Game

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
when I started making games almost exactly a year ago I began the same way I imagine many aspiring game developers do I had an exciting idea for something I always wanted to build I was super inspired by someone else's project and I wanted to get right to work but before I did I googled something to the effect of how to get started with game dev now that query can take you to have quite a few rabbit holes but among the most consistent pieces of advice I saw was the recommendation to start small so I did I worked on three projects last year two of which I completed and released so why am I telling you this mainly because I think it was really good advice I've learned so much over the past year that I could never hope to describe in one video and I gained experience designing implementing and actually releasing projects which is a great feeling more importantly though it's made me feel ready ready to go back to that exciting idea that sent me down this path in the first place am I actually ready though hmm kind of doubted the idea I have for this game in my head is just really big and if I do end up finishing it it's probably gonna take me years that said that doesn't really scare me though at the end of the day I'm still gonna be learning growing my potential and making games which is why I'm doing this in the first place because I enjoy it so with all those things said we're gonna do it this is the beginning of the dev log series for dauphin a game about a marine biologist and the ocean he's trying to save inspired by a true story [Music] hey everyone it's just after five o'clock on Tuesday February 4th I just got home from work and I think today's gonna be the day where we kick off development of dolphin or at least officially kick off development I have so far worked on this little mock title screen with this one piece of artwork and a few animations just so I have something to show off when I first post about the game this is all of course very much a work in progress but for now I think it's better than nothing but Before we jump into development I want to talk about this this little prototype is the result of me getting really excited about developing dolphin sometime towards the end of last year and working on this when I probably should have been working on polar now what you see here is me just trying to flesh out whether or not I really want to go down this particular path for movement and exploration and basic melee combat and honestly I think it turned out pretty well I've actually built out a couple cool things here you can see that you can move in all directions using WASD and you attack with your little stick by clicking the mouse but where you attack is based on the position of the mouse so you can be moving to the right and attack to the left I guess kind of like twin stick combat is what you could call this I've also got health bars over the enemies exploding enemies when you kill them and of course health for the player which is up in the top left and kind of looking like something from Zelda apart from that I just have basic collisions with the environment and that's kind of all that exists here in this prototype there is one interesting tidbit about this project that may surprise you and that is that I did not build this with unity I actually built it with Godot if you haven't heard about Godot I'd strongly recommend going to check out their website it is a totally free open-source 2d and 3d game engine it's very much up and coming right now they have a dedicated team of developers who have been working to build some really exciting features for it and I was really excited to use it it's been on my radar for a while and it will definitely continue to be as it grows there's really a treat to build out this prototype with Godot and I was honestly surprised by how quickly I was able to do it using their and how scripting language which they call GD script that said even though I very much enjoyed working with it I think I'm gonna be sticking with unity for dauphin I certainly plan on making a video to have a more in-depth comparison between the two engines and why I made this decision but for now I will just say that because Dolphin is such a big project or it's gonna be such a big project I want to go with what I've been spending the last year of my life learning and learning to make games with which is of course a unity I also like c-sharp better than GD script and I know that Godot has support for c-sharp but it's just not really where I want it to be right now so I'm happy with unity also really happy with Godot but I think unity is gonna be a better fit for this project but enough of that this video is probably like five minutes long already and we haven't even started development yet so let's do it here's my very basic alarmingly sparse Trello board so far for dolphin there's a lot of tasks here because I've captured a lot of ideas on my iPad and in a notebook that I just need to pour it over but for now I've got enough to work with and I'm gonna start out just kind of trying to recreate what I did so far in the prototype in Godot having a basic stage that's built out with tile maps and a basic player character that can navigate that stage the good news is I already have this nice little grassland tile set that I created for that prototype so I'll just be exporting this from a sprite importing the PNG into unity and creating my prototype stage let's do it [Music] this doesn't look too bad but it's gonna look way better once I get the trees and bushes for my previous prototype into the project so I'm going to go ahead and import those create some prefabs and spruce up the scene a bit all right it's been a few minutes getting my bushes and trees imported into the scene and it looks way better I think the shadow is especially underneath the trees and bushes and a lot of depth to the scene that was completely missing when all we had was the grass and the little bushes and the mushrooms you can look at my scene hierarchy over here on the left to see how I put this stuff together I've got a game object called foliage which is just an empty game object and if I expand that you can see all the trees and bushes exist as children you'll also notice that these objects are blue meaning that they're prefabs not just me dragging the sprite out into the scene and having unity create a game object that has a sprite River this was pretty intentional on my part we're going to want to add quite a bit of components and functionality to these trees so that the player can interact with him as he explores the scene but I think I'll be saving that for tomorrow it's about 7:30 now and I've been working on either the video or this prototype so far since I got home time to grab some dinner and relax we'll catch up first thing tomorrow morning good morning folks is 5:45 a.m. on Wednesday morning I would say I'm up bright and early but it's actually pitch dark outside it probably will be for the next few hours anyway I'm gonna pick up this morning where I left off yesterday changing gears a little bit I want to work on the player and giving him the tools he needs to explore the little scene we created last night [Music] all right it's going on 6:30 now and happy to report that I've got the beginnings of our player object as you can see in the scene here if I go ahead and hit play you'll see that's pretty simple so far just an object with a sprite renderer a rigidbody 2d and a player controller script that's allowing me to move him around the interesting part about this player though is that I'm using unities new input system which is in preview version 1.0 as immunity 20 19.3 I definitely plan to create a tutorial on this new input system in the next few weeks since I found it quite a bit different than the way I was previously capturing and put in unity for now that I'll just give you a quick walkthrough of how I set this up to get started go and grab the input system package from the package manager go ahead and open package manager show preview packages by clicking on the Advanced tab and then grab the input system preview package once you have that installed you can create your first two input actions assets this is an asset that will allow you to define actions and the controls that will trigger those actions to do that go ahead and to your project Explorer right click creates and at the bottom you should have a new option for input actions here's what you see when you open that asset up just a new window where you can create action maps and actions for those maps you can see I've created one map here for the player and one action for the player which is called move if I go ahead and open that up you can see all the controls that I want to trigger this action of course the left stick on a gamepad WASD and the arrow keys on the keyboard and joysticks on various types of controllers also worth noting is that you can set the control type on the action itself so in this case I want all of these controls for this action to report a vector2 value because that's how I want my movement to work in my game once you're happy with how your controls are set up you can go ahead and click Save asset at the top and close that out you kind of have two options moving forward though the Unity provides a component that you can attach to your player that will allow you to hook up those actions from your new assets to callbacks and your scripts I however am more of a code oriented person so I chose to use the kind of scripting approach to do that you can click on your newly created asset in your project Explorer and in the inspector there's an option to generate a c-sharp class I went ahead and check that box and click why this generates a c-sharp class based on whatever I named my input actions asset in my case player input actions this will just allow me to capture input directly from my scripts rather than requiring me to hook it up from the editor at this point it's super easy to interact with your actions and your script you can see in a wake the first thing I do is create a new instance of my player input actions and store a reference to it then and on enable I enable these actions because I created them programmatically finally in update I'm pulling for input as I normally would I've created this little function to kind of nicely wrap that up the most important part of this is this particular line right here I'm taking my reference to my player input actions calling the particular action map which is player in my case the action that I want to look at which is move and then calling read value for the control type that I set on that action which is a vector to this provides me with a reference to the vector that's being output by whatever control I'm inputting at that point I can pass this vector into whatever logic I want to use to actually move my character and we're ready to go I think the obvious benefits of this system are being able to map so many controls to a single action this way I can just support so many different devices rather than just checking if the W key is pressed to move upwards now that was a very quick walkthrough I'll definitely be doing a tutorial but hopefully that was enough to get you started if you're interested in the new input system alright I was going to keep moving forward and implement some animations for the player but I am super behind on editing this week's video and I want to have it out by Sunday so I think I'm just gonna grab another cup of coffee change gears and work on the video for the rest of the morning definitely have more work to do on the player so we will catch up next time I sit down and make some more progress [Music] good morning everyone it is almost 7 a.m. on Friday morning back after a couple really busy days where I just didn't have any time at all to work on dolphin but I'm hoping to make some progress this morning before I head off to work so picking up where I left off earlier this week I'd really like to keep extending the players functionality so that there's more he can do as he explores the scene you may remember when I was working on polar that I implemented what I thought was a pretty good system for managing players State I still think that's a good solution so what I'm gonna work on this morning is porting that code over and applying it to my player here in Dover all right it's about 7:30 now and I've got the new state machine stuff hooked up or I should say the old state machine stuff the gameplay doesn't look any different but if you look over here and my player controller you can see some familiar code I've got a request state function which decides whether or not the state machine is allowed to change states based on the state you've requested and then I've got two states defined here one for idle and one for move this is actually pretty nice I was having trouble figuring out exactly where I wanted to put my movement code before cuz I didn't really have a good place to organize it but now it's got a home right here inside the move state and executes physics which is great now that I've got that done I think I'm gonna move on to trying to hook up the animation to this move state [Music] [Applause] [Music] [Applause] [Music] [Applause] all right it is going on 8 o'clock now almost time to get ready for work but before I do that I want to show you guys the animations that I've hooked up if I go ahead and hit play here you can see that once I start moving we start that walking animation that I have created before if we turn left the sprite face is left and overall I think this looks pretty good of course when we come to a stop we revert back to our idle state and play our idle animation which right now is really just standing still this was pretty easy to accomplish but I did come up with one implementation detail to help myself transition between animations so I'll go ahead and show you that now alright so if you've worked with animations in unity before you know that there's this concept of the animator which is basically a state machine that allows you to define States associate them with animations and then create transitions between those states you guys know I like to do my own state management in the code so I don't really take advantage of all this what I do still need to do is create states and associate them with animations and then call animator dot play and pass in the name of that state when I want to play the animation I don't really like calling functions with strings as parameters like this because if I get the string wrong it's just not going to work so I came up with something in my code to make this a little bit cleaner to prevent the use of raw strings in my code and I'm kicking off these animations I created a separate static class called player animations outside of my player controller the only things in here are some constant strings that match up to the names of the animation states in the animator now the way I use this is down in state management when I'm calling my wrapper function that calls the animation on the animator rather than passing in a raw string I'm just passing in player animations dot walk or player animations idle this will help prevent any future defects if I were ever to type in walk or idle or any other feature States and have a typo I know this is not like a huge concept worth writing home about but I still think this is a nice tip for some of you who like to clean up their code alright it's definitely time for me to wrap this up and get to work for now hopefully we'll have another session sometime this weekend to wrap up this first devlog I'll see you then hey everyone it is Saturday afternoon now I've been sitting here editing this video and I've realized now that it has gone on long enough for the first dev log in the series I wanted to thank you guys for watching and also thank you for a pretty big milestone we hit today which was 40,000 subscribers it still blows my mind that that many people enjoy following my work on YouTube anyway I hope you enjoyed the video today and I hope that the tutorials I threw in there were helpful as always leave a comment below if you liked or disliked that kind of content happy to go either way in my future videos thanks a bunch for watching don't forget to like if you enjoyed it and I'll see in the next one
Info
Channel: DevDuck
Views: 838,297
Rating: undefined out of 5
Keywords: developing dream game, unity gamedev, indie gamedev, unity 2d, indie game dev, hobby game dev
Id: k5bb1IRzJbQ
Channel Id: undefined
Length: 14min 49sec (889 seconds)
Published: Sun Feb 09 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.