BrandGhost

3 EASY Games For Beginners To Build Make You A Better Programmer

So you want to build video games, do ya? But you haven't programmed anything yet? No idea where to start? No worries. If we dial back the expectations a little bit, we can explore some awesome beginner projects! For more videos on programming with detailed examples, check this out: https://www.youtube.com/playlist?list=PLzATctVhnsghN6XlmOvRzwh4JSpkRkj2T Have you subscribed to my weekly newsletter yet? A 5-minute read every weekend, right to your inbox, so you can start your weekend learning of...
View Transcript
does this sound like you you're someone who's been playing Call of Duty Diablo World of Warcraft whatever it happens to be pouring hours of time into playing video games and suddenly you go why don't I make my own for many people thinking about creating video games is one of the first steps that they take when they're thinking about learning to program and it's a really exciting thought process because all of these games that you're playing putting hours into your thinking if I could make my own then I could make it exactly the way that I want now this is the second entry in my video series where I wanted to talk about project examples that are really good for beginner programmers and I wanted to share with you some experience that I've had with creating video games personally I would attribute almost all of my programming experience to the fact that I dedicated time on the side outside of work to creating video games I had a passion project and I still do I just haven't dedicated time to it recently it's been going on for roughly 20 years and I wish I were exaggerating when I say that but it's a role-playing game and I've spent a lot of time building different types of systems taking different technologies that I've been learning over time and practicing them in this sort of sandbox environment where I'm creating my own game now the caveat here is that this game actually totally sucks it's not really playable at all but I've loved every second of creating it and I use this as a playground to practice all different types of things practice refactoring Code Practice building out different architecture types practice different patterns and at the end of the day for me this isn't about shipping the next best Diablo game it's actually about the Journey of the creation of the game and not so much about the finished product now the other caveat that I want to add here is that for a lot of beginner programmers I think they get excited about the fact that they can go create a video game with lots of different tools and stuff online but the reality is that jumping into something that's going to be like a triple A game is just not realistic there are hundreds of people millions of dollars that go into these types of things so I think that while it's a really exciting thought process thinking that far ahead is going to set you up for failure so when we look at these project ideas it's a scaled back version of that and honestly I think that these are a great way to learn so with that said let's jump over to this list of projects all right so just like the previous video in the series we're looking at this post from LinkedIn that had a ton of awesome ideas for beginner programmers to try out and in this particular case we're going to be looking at the games and puzzles section so I picked out a couple of things that I thought would be really awesome and actually the third is a variation of what we have in here and I want to scale it back in a completely different way than what they have listed here and I'll explain why when we get there so the first project that we're going to look at is mad libs if you're not familiar with this this is where if we jump to the next screen here and kind of look at this layout you can kind of get an idea just from like the structure of how this looks but you're going to have something like a sentence or a little story and what you're able to do is actually insert different words into this and it makes it really funny money and the end result here is that when you populate the words and you see the whole result kind of done it's quite creative and it's a it's for a good laugh so let's jump back to what's actually involved here based on what the author was suggesting so they talk about creating a story so I think one thing that's really cool here especially because AI is super popular right now everyone's talking about different AI tools for kind of working with this like on the side it's not necessarily directly related to programming but if you wanted some exposure to you know working with chat GPT or other AI tools you could be interacting with those to kind of give you the basis for the different blocks of text that you want to work with so I think that's a really cool approach that you could work with here and like the other video when we're talking about the projects here something that I always want to keep refreshing in people's minds is that you're not forced to actually use any particular technology and you're not forced to make the UI or anything else in any specific way so with that in mind you have a lot of flexibility and if you kind of default to your initial thoughts like for example when you're looking at this you might be thinking okay I need at least something that's like uh at minimum a desktop application so I can visualize it maybe you're thinking okay I have to make a web service so that I can have people in a web browser kind of see this content but there's no reason that you couldn't try to go build this in a console application right it might look different when you're populating the words and actually inserting them into the text you might have to think through different interactions for how you're inputting that in a console but there is no restriction on how you want to do this so when you're thinking about these projects again keep in mind that if it feels overwhelming because you're like man like he's already talked about using AI tools I don't know how to do that he's talking about web applications or using a desk like I haven't even thought about making a desktop application that's okay like you can you can start to restrict the different pieces to things you're more comfortable with so for example if you have never you know made an asp.net core application you've never made a Maui application for desktop these are just some.net Technologies that's okay if you don't want to go try that out quite yet you could go trying to build this in a console application and the cool part about that is that once you have it working and you're happy with it you might later on say cool like now that this is working I wonder if I can display the information in a different way and that exercise in and of itself is such a cool and Powerful way to practice programming because you're taking something that's functional and transforming it to build into something new so I really like that idea you can apply that to basically everything we're going to look at today if we go back here the other part about Mad Libs is that when you're taking the entries for the words that you want to put in these are from different categories so again if you watch the previous video we talked about data storage right so where where are these lists of words what are the categories how do you expand upon that how do you expand upon the stories so I'll just kind of walk you through a few different ideas but as a beginner you might have all of this stuff coded into the program directly so you know you're creating a raise dictionaries other data structures where you're storing all of that right in the program and that means that if you want to change things or add things like even if you made a typo in some of the text you have to go rebuild your entire application and that's fine that's fine to start there's nothing wrong with that especially when you're trying to get things going but you can build on this with different variations so perhaps you say I want a list of all of the stories that we can actually populate the text in I want to load that from a file okay what kind of file is it so is it just you know uh every you have a folder and every file is its own story maybe you have a Json structure in one single file that has all the stories so you can look at many different ways to do this and even the words with their categories you could take the same approach here right so you could have again you could have a folder that has a file and the file name is the category and then every line in there is a word for the category so lots of different ways you could approach this for different skill levels you could go beyond like loading from a file and look at databases for this so you could pick any database technology that you've heard of that sounds interesting and you're like I want to learn about MySQL I want to learn about mongodb whatever I want to learn about sqlite you can take any of those Technologies and say now that I have this idea right I have this idea where I need to be able to load in stories so just blocks of text I need to load in Words with a category cool how would you apply that specifically with the database technology so this thought exercise is really about taking a bigger problem so you know creating a whole game it's Mad Libs and how do we break it down into small pieces so we're talking about loading this data up we're not talking even anything about how the user sees it and that's okay like you can go park that on the side and try to think about literally just building up the part of this program that loads the data and just going through that you might be like cool that was a really good exercise I learned so much I don't even want to go make the front end like I don't care enough about this project anymore this was good that's a good stopping point let me try something else so you have full flexibility and think about these projects as just learning opportunities so some extensions to this that the authors added in if you kind of look at the level three part at the bottom of the screen here they talk about being able to share this out so you could you know if you were building this in a web application you could maybe think about some social integration where you press a button and it shares at the different social media platforms there's lots of cool stuff you could do here so again you can scale it back to something as simple as you want and then build it up you could have different variations of this where once you have it working you have it committed to your Source control because you should be doing that you could go refactor it into a new version and build more features as well so I like this one lots of opportunities and something that makes it even easier for getting started with games is that you don't need any fancy game libraries you're not dealing with Graphics you're kind of parking some really complex topics to let you focus on making something fun this next one that they suggest is Cards Against Humanity for those of you that have not played this there are a bunch of different variations of this card game the Cards Against Humanity one is I I don't know if it's like a an R rated game or not but certainly there's some expansion packs to this that that are very much R-rated so um like I said there's other variations of this but if we jump over to the layout the idea is that you kind of like kind of like Mad Libs right you have a card so a particular there's two saxa cards and one of the stacks has these um like a Mad Lib where you have a a bit of a sentence or something that you can fill in with other I like other words and then the other cards uh everyone is dealt these other cards and you can kind of submit the word that you want inserted into the uh the sentence that was uh proposed on the the primary card so then the person who has the primary card gets to pick the winner for the funniest or you know whatever whatever their taste is in terms of uh what's filled in there so it's really about knowing your audience right if you're dealing with people with a really um I don't know off-site sense of humor maybe you want to pick a card that's going to fill that out where they're gonna they're gonna get a you know a kick out of what you you opted in for there so that's the idea with this like I said very much like Mad Libs but instead of having stories with uh categories for the words you're fitting in it's kind of like a very small story or a sentence and then the words that you're fitting in are not um necessarily categorized maybe behind the scenes you want to categorize them and that's totally fine but when they're presented to the the players and this is really just something where they get you know a phrase or a word that has to fit in so that's the idea this one I would say um in terms of being a level up from the one prior if I can kind of phrase it that way this one involves multiple players you could definitely do the Mad Libs variation and it's really just you filling it in and having funny things get created but with Cards Against Humanity or or different flavors of this type of game the idea is usually that you have other people kind of submitting the words that they want to have so what does that mean in terms of how we build this well a lot of the stuff that I talked about with data loading and stuff like that could be very applicable here so not necessarily going to repeat myself but when it comes to usability of this again we can scale this back to be not complex and you know build and iterate to make it more complex so if you wanted to do this you could make a sort of what feels like a single player game like you could even build this in a console application right each you could say like the number of players you want and then the idea could be that each player can take a turn at the keyboard kind of looking at the cards that they have and picking one to submit it so that's totally an option it might feel a little bit weird but the reality is that you're not trying to create something that you're going to go sell or or publish for millions of users or whatever what you're trying to do here is see if you can take some of these requirements and actually make them a reality so as long as you have the ability for multiple people to actually interact with this and put their input in in my opinion that's solving the problem and you can come up with creative ways to do that so a console application might feel a little bit weird to do that totally works now it gets more complicated if you wanted to make it something like multiplayer um you might be able to have different clients connect in and then they can see their own cards that way it's kind of um separated so you can't have all of the cards on one screen right so in the first example with the console application unless you're clearing the console between every player coming up and and picking their option you might be able to kind of see what cards they have so you could do something that's multiplayer but as soon as you start going into like networking territory there's other sets of complications that come up with that so that's not something for a beginner programmer that I would necessarily recommend jumping into but if you already had this working and you wanted to build an extension like the next level I totally think that looking into some networking stuff could be interesting um since I've started programming the the networking libraries and stuff have come such a long way I remember early on like I was trying to make my own like sort of like messaging libraries and stuff and uh yeah like they were terrible and having to think about managing all that stuff at a really low level is uh is garbage but there's so many tools that you can use that make that easier now so again that could be a cool extension but this one in my opinion is very much just like a level up of the one we just talked about and that's because we're talking about multiple players coming into the mix so I like this one again I just think it's very very straightforward to make the bass part it's a game it's fun you have some constraints in front of you and yeah I like this one a lot now this one here that says Space Invaders this is the one that I said when I was reading this I like it but I also don't think it's totally great for very beginner programmers I think depending on your level of experience if you have if you know like the programming syntax you're familiar with importing um libraries and other things like you're you're comfortable kind of building and iterating and incorporating third-party stuff I think this could be a really good project the way it is now the reason I don't like this project necessarily the way it is is because I think personally I think you start getting into situations where some of the concepts here are a little bit tricky to understand properly and because there's a handful of them that are tricky to understand properly if you try to do it all at once I think that can potentially make it feel overwhelming so just to give you an idea right so how do you animate the things so which graphic technology are you using that's going to depend if you're making it a desktop application in the web if it's a mobile game whatever so you already have a lot of different flavors of things to pick from there that can be overwhelming but how do you animate the stuff what this author suggested is like you could have different uh weapons and different damage and different enemies and stuff okay so there's some complexity to think about you have to think about the different things like your projectiles the speed of them so this is where when people are like oh programming's all math it's scary like I always say programming I do very little math I count that's the most math I do in programming but when you're dealing with games and stuff like that and kind of like simulating physics or whatever else movement you do have to do math personally for me this is the kind of stuff that I suck at the most so I can totally do it but uh just a heads up that it's another level of complexity to think about you're also going to have input control so the player has to move around you're going to want that to feel good and then when it comes to the resources for what you're showing on the screen you have to think about the lifetime of that so are you constantly creating new things like is there going to be memory issues like how much can you actually keep putting onto the screen at once so all of these things while if you look at them at an individual level I think that even someone pretty new to programming could think through it and and do some problem solving there when you stack them all up it gets pretty complicated so how would I change this one well I like a lot of the stuff that they have in the to-do list about different things you can go do but the way that I would scope this one back is think about a game that you could make that's text based and speaking from my own experience this was the way that I started off on my journey into programming video games and I basically spent a long time just making text-based games now they were totally not fun to play but what I was able to do is build a lot of the Core Concepts up and then later on move to graphics and animations and things like that so it allowed me to really focus on building things and you know focusing on different technologies that I wanted to learn different programming practices architecture design patterns I could focus on all of those things and not have to worry about stuff from me that was more complicated which was going to be more like things like physics things like collisions and doing math for geometry and then things like the animations so personally I would scale this one to be something like a text-based game I think text-based role-playing games are a great option you can do text-based adventure games um again coming back to AI just because it's the Hot Topic right if you go with a text-based game you actually have ai to leverage to come up with a lot of the text that you want to drop in so that could make some of the content generation really easy and then that way you can focus on things like okay if I made a text-based role-playing game the combat could be really simple right you could have things like attack and defend um so you don't have to worry about input that much or animating it but then you can go focus on the different enemy types you could focus on maybe making items like weapons and armor like you can go think about those systems and how you want to build that without having to get really complicated into other parts so I do like this one but I think that if you're going the graphical route and trying to make something that feels like Space Invaders that you can play through it I do think that's going to be maybe a little bit more advanced the other nice thing to mention is that there are so many different third-party tools that you can go use to build graphical games now that if you pick something it very well might be very simple for you to get started so you know as I'm telling you maybe scale it back to Tech space there's probably some tools that make it super easy for you as well so I just don't want you to be overwhelmed when it comes to graphics and stuff like that or picking Technologies so that's my way of kind of reducing the complexity alright so those are the next three projects that I wanted to talk about and again the first two I think are awesome because they are text based they're something that could be fun to play with and they kind of build on each other like the previous video we talked about how you can do some data storage whether that's loading from from files or from databases you have a lot of different options there and all of these projects you have some technology choices so you're not forced into you know you're watching this video and you want to Learn Python cool like you can go program this in Python if you want to learn C sharp or Java anything there's no restrictions on these projects you can go build them the way you want and the language you want and you can pick technologies that you want to make these the third one that we looked at in my opinion was a little bit more advanced only because it starts talking about animations and inputs and other slightly more complex things that in isolation I think are more straightforward to solve but when you combine them all it can be a little bit overwhelming so we looked at scaling that back to reduce the complexity and that's the theme for all of these projects right is scaling back to different parts that you can go build so that they are less complex so thank you so much for watching and I do hope to have another video and when it's done I will put it right up here and you can watch that next thanks and we'll see you next time

Frequently Asked Questions

What are some beginner-friendly game projects I can start with to improve my programming skills?

I recommend starting with projects like Mad Libs and a variation of Cards Against Humanity. These games allow you to focus on the programming logic without getting overwhelmed by graphics or complex mechanics. They can be built in various programming environments, including console applications, which makes them accessible for beginners.

Is it realistic for a beginner programmer to create a complex video game like a AAA title?

No, I think it's important to set realistic expectations. Creating a AAA game involves a massive team and budget, which isn't feasible for a beginner. Instead, I suggest focusing on smaller projects that allow you to learn and practice programming concepts without the pressure of creating a fully polished game.

Can I use any programming language to build these beginner game projects?

Absolutely! You have the flexibility to choose any programming language you feel comfortable with, whether it's Python, C#, Java, or others. The key is to focus on the logic and structure of the game rather than the specific technology.

These FAQs were generated by AI from the video transcript.
An error has occurred. This application may no longer respond until reloaded. Reload