SyncMain
SyncMain
  • 9
  • 1 282 011
C# Game Development | Setting up MonoGame on Windows
In this video I highlight the steps in the process for getting ready to make a game using C# and the MonoGame framework on a Windows machine.
A long time ago I used XNA, and loved the instant gratification of providing a few images, writing a little bit of code, and standing up a game.
MonoGame has proven itself over the years as a useful tool to ship and/or port cross-platform indie titles like Stardew Valley, Fez, Axiom Verge, Celeste, and more.
I'm working on a game on my own now, currently called Murder Wizard, and I plan to make a series of videos to help other people learn how to make games as I make this game.
MonoGame "Getting Started" Documentation (unaffiliated):
docs.monogame.net/articles/getting_started/index.html
Переглядів: 2 218

Відео

Clean Code
Переглядів 6 тис.Місяць тому
This is in response to discussions I see regularly surrounding code style, object oriented programming, data oriented programming, C vs C , and "just ship it" vs the "clean code" crowds. Indie games like Balatro, VVVVVV, and plenty of others have shipped with game scripts that some people would find unacceptable, and it works for them, but eschewing best practices altogether is not a sure path ...
Tools for Programmers: Software I Use
Переглядів 5 тис.3 місяці тому
I've been wanting to share some of the software I use regularly that helps me do my job, as I think it would be helpful for new programmers to know. I did this in one take, and was tempted to do it as a stream but I haven't quite worked up the nerve to doing it live. A lot of these aren't explicitly used for 'coding' but come in handy when doing software and game development in general. Softwar...
I'm Not a C++ Programmer
Переглядів 7 тис.4 місяці тому
In this video I discuss tribalism in programming and gamer culture, and give advice on avoiding pinning yourself into a corner when it comes to developing your programming skills, making yourself employable and a good teammate, and generally improving for your own benefit and happiness. Even though I accidentally referred to "Python Programmers" and "C# Programmers" in the video, I think people...
Escape "Tutorial Hell" - Build Your Programming Skills
Переглядів 20 тис.5 місяців тому
In this video I discuss tips and advice for growing beyond tutorials in 2024, or escaping "tutorial hell." I give tips for learning and becoming good at being a programmer and writing code in general, no matter what language you're using (C , C#, Ruby, Rust, Python, etc.) It's important to learn to use official reference, get good at debugging, and challenge your assumptions and current knowled...
Best Programming Language To Learn? Advice For New Coders
Переглядів 7 тис.7 місяців тому
In this video I give some quick advice on choosing the right programming language. I too often hear people espousing that certain programming languages are dead languages, or are overcomplicated, or there's some other language that people should be using instead. People shouldn't choose a language based on what someone else told them to use, and there's a quick method to figuring out "the right...
How Much I Get Paid as a Game Programmer
Переглядів 56 тис.10 місяців тому
I've been working professionally as a video game programmer for about a decade now, and think it can be helpful when people are transparent about the money they make. I go into how much money I made at different stages of my career writing code, and how it affected my life, both professionally as a developer, and at home with my quality of life. I've chosen to prioritize satisfaction with my ho...
Learning Resources for Aspiring Programmers | Recommendations for Getting Started and Getting Better
Переглядів 47 тис.11 місяців тому
In the video I talk about some resources I’ve used and recommend for getting into a career as a programmer. I know there's plenty I've left out, but I'm pretty happy with this list and I hope it's a good starting point for others. Links to things I talk about: Codecademy www.codecademy.com/ Khan Academy www.khanacademy.org/ Codewars www.codewars.com/ HackerRank www.hackerrank.com/ TheCherno www...
15 Years Writing C++ - Advice for new programmers
Переглядів 1,1 млнРік тому
I'm a video game programmer and I've been using C as a programming language for 15 years. Of course in my time as a programmer I've branched out to other languages, but I'd say C has been the focus for me across my hobby and professional projects.

КОМЕНТАРІ

  • @realist91
    @realist91 7 годин тому

    The sheer mention and comparison with Python in comments of a video that’s addressed to the newbies of coding in a different language from an expert in that field shows which language is the winner. Sure memory and speed matters but what matters the most for a scientist is getting things done on a computer without worrying much about the execution and rather think about their project and concepts instead. No matter how much these C++ newbie fanboys bash Python, it’s ruling the world because it “gets the job done”. I bet these C++ experts won’t bash Python as these newbies are doing because they have matured in the domain and so know that no language is perfect and likewise, “every language has its benefits”. I would rather respect C++ than bash it even if I’m a Python user.

    • @SyncMain
      @SyncMain 7 годин тому

      I have a video on tribalism/fanboyism of programming languages. Python is an excellent choice for a lot of applications, and can be performant when it needs to be. Fun fact: All of the gameplay code for The Sims 4 was written in Python.

  • @shotbykuldeep
    @shotbykuldeep День тому

    I liked your comment about Divide and Conquer as I am relatively a new programmer. I don’t properly write steps or a rough pseudocode to describe the problem at first and soon get frustrated when the problem doesn’t run in the expected way. Because it seems hard but I think nothing is easy.

    • @SyncMain
      @SyncMain 21 годину тому

      I like the way you put it! I'd say for any task I get there is a 50% chance that I need to stop, grab a pen and paper (or some kind of document software), and write down my thoughts before I get started. The other 50% is split by talking it over with a coworker, or having encountered something very similar before and knowing a general idea of how it should be done (only possible through experience.) Most of the time your initial implementation idea will look nothing like the final result, but once you get those mental gears turning you're making progress :) Thanks for watching!

  • @user-fx6jg3sk9k
    @user-fx6jg3sk9k День тому

    Please keep making videos.

  • @skavihekkora5039
    @skavihekkora5039 2 дні тому

    Progress is iterative improvement, first make something that works and fullfills basic criteria.

  • @lutrueson9000
    @lutrueson9000 2 дні тому

    I am not good at math at all, in fact a little bit stupid, If i take it slowly and work hard at it , would it be possible for someone like my self to learn to code well enough to get by? I am keen and dedicated only i struggle with learning certain things.

    • @SyncMain
      @SyncMain 2 дні тому

      Absolutely, and you can learn math as you go. Writing math-related code, especially for games, was how I learned math. Having a practical way to apply it, for me, was way more effective than trying to get through textbooks on math subjects.

    • @lutrueson9000
      @lutrueson9000 День тому

      @@SyncMain Thank you for the encouragement, I guess i could also invest in a good calculator😄.

  • @pierceneupane8056
    @pierceneupane8056 2 дні тому

    Our high school really teach us C programming basics now as a react programmer i want to learn backend in C++ but i am so confuse where to get started anyone suggest me some path on which library should i learn or how can i start?

    • @SyncMain
      @SyncMain 2 дні тому

      I guess it depends on your use-case, and I’m by no means a backend expert, but in games we tend to write C++ servers mostly from scratch because there usually isn’t a catch-all API or framework we can use. For real-time critical networking, games will usually have their own reliability layer built on top of UDP. For general data passing (eg. updating someone’s account settings) I’ve seen protobufs used. This is helpful because sometimes the client language is different than the server language so they otherwise don’t have common networking and serialization libraries. Finally for server-side data storage, some form of SQL is very common, and depending on which solution you choose there will be a different API for it. If you’re trying to learn backend and don’t necessarily need to focus on C++, Golang is essentially built for backend development, and C# has Microsoft’s .NET API which is excellent in my opinion, and a lot of people overlook it because they don’t realize it’s built for Linux and macOS as well as Windows. Thanks for watching and good luck!

    • @pierceneupane8056
      @pierceneupane8056 20 годин тому

      @@SyncMain Thank you idol i really needed your advice. I am definetly researching on what you said😊

  • @Oratorical431
    @Oratorical431 3 дні тому

    i love this content! straight to the point and not the average super high dopamine video that overloads your brain! - i subscribed.

  • @breakedout
    @breakedout 4 дні тому

    The new comers believe they're smarter than elders because they can do what we do in a much easier way. But, C programmers are the ones who gave life to computing, not Python-GPT coders or new JS frameworks fans. You are so humble but your words are strong!

  • @gaiethalam9412
    @gaiethalam9412 4 дні тому

    He's with rockstar guys

  • @murph1329
    @murph1329 5 днів тому

    C++ was my first language. I took it in high school and then again in college. C++ is by FAR AND AWAY the best first language. It forces you into coding best practices better than any other language plus it's object orientated so you can get all of that knowledge as well from it. C++ will slit your throat for not initializing a variable when you least expect it and I think that's a good thing for new programmers. I hear of people starting with python and it just makes me cringe. Don't get me wrong i like python. I have a middleware app that is written solely in python, but I would never recommend it as a first language. I say this as someone who hasn't touched C++ in over 15 years. The main language I use these days is C#

  • @tlz124
    @tlz124 5 днів тому

    I'm about 10 years in. I'm most comfortable with Python and can't shake the desire to learn C because it's in everything. C++ terrifies me

  • @madmattman5675
    @madmattman5675 6 днів тому

    I'm currently on my 4th year of coding in c++. It's a hobby I started during the COVID lockdowns in 2020 and I've been hooked ever since 🥰 It does definitely get frustrating at times but there's always a way to do what you want!

  • @good_vibes_20
    @good_vibes_20 7 днів тому

    This made my day more than you think. I've been really working hard trying to automate my company and learn software engineering and I'm studying code and I'm learning all this stuff and not sure if I'm doing it right but I keep getting smarter so I know it's working and I kind of had a little tear in my eye so I appreciate your video thank you very much.

  • @abhisheksen8907
    @abhisheksen8907 7 днів тому

    Bro can game deb can earn 300 to 400 k dollar in usa

  • @five2112
    @five2112 8 днів тому

    The comment you make about bad code I find is very true. I'm learning C++ at the moment but have a decade of experience with other languages, mainly C# and my main learning moments were when I accidentally rolled out an anti-pattern - not that I knew what that was then, but seeing the issues, experiencing that pain was very much a strong learning point.

  • @fungi6902
    @fungi6902 10 днів тому

    I struggle with getting a good engine to download

  • @technoutopia4687
    @technoutopia4687 10 днів тому

    Nobody cares

  • @nobu1730
    @nobu1730 10 днів тому

    dude you look dead inside wtf?

    • @SyncMain
      @SyncMain 10 днів тому

      That's not very nice. Thanks for watching!

    • @nobu1730
      @nobu1730 10 днів тому

      @@SyncMain sorry man didn't mean in a bad way. i was just making a joke of what 15 years of cpp does to a man.

    • @SyncMain
      @SyncMain 10 днів тому

      @@nobu1730 Lol no worries, I do get it all the time. My wife says I always sound sad on the phone. Trying to get better at my presentation skills 😅

  • @GoodFeel21
    @GoodFeel21 11 днів тому

    My first programming language was C++, and it's still the reason I love programming. Thanks for sharing your experience! I wasn't sure if what I was planning on doing now in my career was okay, but this video just gave me more confidence in my plan. Thanks again!

  • @henrialves5054
    @henrialves5054 11 днів тому

    Thank you for this video, just did a Cobol Exam in my university and went worse than I thought I would. I just have this fear of getting things wrong, of just "being bad" that I prevent myself from learning, it's like I think everyone is a genius that solves problems easily and I should not spend time getting confused about trivial stuff (in my head if the things are easy I don't allow myself to spend too much time in it). If I stop to think, I have less than 10 hours programming and I decided I want to do this for almost an year. I really need to go back and try to do wrong things (to learn) and write stupid code...

    • @SyncMain
      @SyncMain 10 днів тому

      Definitely get some more time in! You can learn the right way as you go, but it's easier to see what the right way is if you can just get something done first. You've completed a thing, it works, now you need to change it. Hmm maybe it even needs a rewrite! These moments happen a lot and you grow from each one of them. Thanks for watching and good luck!

  •  11 днів тому

    Using "everything" and simply sorting its column by "Date Modified" turns it into the perfect system watcher. You see every file touched or updated or added. I use it this way sometimes just to find what apps do or put its files.

  • @Thomas.T8
    @Thomas.T8 12 днів тому

    Take a deep breath and dive into the deep end, I started a Udemy coding course a month ago and haven't regretted it one bit. I feel committed and since I purchased the course, its my responsibility to finish it. Only way to learn code is to practice writing it. And so my journey is just beginning. Thanks for your advice Chris, enjoying your content!

    • @slimjimjimslim5923
      @slimjimjimslim5923 5 днів тому

      I think Udemy is useful and also datacamp for a easier start. Data camp is easy in that each small bite-size lesson has a small exercise and you just instantly start to code, simple but effective I think. It's much better than sitting there and listening to 20 hours of college style lecture. God knows I can't keep in my mind all the functions. As you said, practice practice with some example in mind and it takes time. Rome wasn't built in a day and a good programmer wasn't made just because we took one college course and passed a leetcode tech interview. Infact passing leetcode tech interview means not much imo, it's like scoring high on SAT, doesn't mean shit for actually college course lol. Best way is remembering how your work could be automated with script and try to rewrite the script to help your work.

  • @karlaguilar5212
    @karlaguilar5212 12 днів тому

    Subscribed! Needed to hear that today. :>

  • @claytonbennett7797
    @claytonbennett7797 13 днів тому

    I appreciate your opinion. It was only recently that I realized, as long as I'm learning, it's okay to be wrong or imperfect. There is fear on the internet about "learning bad coding habits" - the best way to manage those is to try things and then learn what works best. I finally saw a positive post about this - it said something like, "Self taught programmers aren't intrinsically bad, there just might be some ideas they haven't been exposed to yet." Today I opened up a Python program I worked on two years ago. Some room for improvement: a plethora of Try/Except statements, and it's all in one file. But, there were plenty of elements to be proud of. And I am.

  • @jacobwerner8533
    @jacobwerner8533 14 днів тому

    i still somewhat of a noob at c/c++ as far as actually applying what i learned . my primary focus for the last 2 years has been c, but i understand a good portion of c++11 including newer features like vectors. the hardest part is thinking in terms of objects rather than functionally. i like to take my c code and try and improve on it using c++. im not a professional; just a hobbyist.

  • @hepranputra
    @hepranputra 14 днів тому

    Thanks.

  • @user-fx6jg3sk9k
    @user-fx6jg3sk9k 15 днів тому

    Why dont you post more??

    • @SyncMain
      @SyncMain 13 днів тому

      I want to try to get a couple videos out a month, but usually I do at least one a month. Maybe in the future I can dedicate more time to UA-cam 🙂

  • @thygrrr
    @thygrrr 15 днів тому

    Awesome, I needed this for the C# ECS I'm developing.

  • @PoipPoippoip-zd3fw
    @PoipPoippoip-zd3fw 16 днів тому

    Lucky, I've been an oppressed successful minority for the last 10 years problematically id have loved to have similar work to you I'm good at it.

  • @MauricioCoria
    @MauricioCoria 16 днів тому

    I've been programming in different languages for almost 20 years. You can always learn something new, and I completely agree with your advice. Thanks for sharing.

  • @j.r.8176
    @j.r.8176 16 днів тому

    Awesome advice!

  • @chesstansyt
    @chesstansyt 17 днів тому

    These raw videos are so cool !!

  • @garlander8190
    @garlander8190 17 днів тому

    I’m very thankful for your contribution and I’m super thankful to have a resource in you as I am just finishing up my introduction to computer science course in C++ at school. I am drawn to the humility and transparency you are leading with. Don’t stop brother.

  • @user-uf4rx5ih3v
    @user-uf4rx5ih3v 18 днів тому

    I agree. Except with how many languages there are and how much utility a lot of them have, why choose the hardest one?

  • @Thehappyandroiddev
    @Thehappyandroiddev 18 днів тому

    My friend: I write good code Also his code: #include <iostream> const char *msg = "Hello world!"; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; struct IsHereToLookGood{}; int main(){ std::cout << msg; }

  • @dominiccaesarok5077
    @dominiccaesarok5077 18 днів тому

    Praise Jesus!

  • @Byte_programming
    @Byte_programming 18 днів тому

    This is super cool dude, you are the guy who got me interested into c++ and I am now learning. Keep it up dude, it's super cool!

  • @imperfect2517
    @imperfect2517 18 днів тому

    wasting 4 minutes of my time just for this idiot to spew the most generic advice on the planet

    • @SyncMain
      @SyncMain 18 днів тому

      Thanks for watching!

    • @imperfect2517
      @imperfect2517 14 днів тому

      @@SyncMain Thanks for tricking me into watching with a clickbait title!

    • @culturedaadmi4683
      @culturedaadmi4683 11 днів тому

      @@imperfect2517 let it all out. All that frustration isn't worth keeping inside

  • @Hellios92
    @Hellios92 19 днів тому

    Great video, thank you :)

  • @fruitycoconut
    @fruitycoconut 20 днів тому

    I know html

  • @davood7497
    @davood7497 20 днів тому

    💯💯💯

  • @cristianmicu
    @cristianmicu 20 днів тому

    i learned c++ in 2006 with certified diploma from a course, but i never programmed with it except what i did inside the school i graduaded from, my god im old

  • @King-yj2jx
    @King-yj2jx 20 днів тому

    From what I understand, programming language is a tool, the programmer is the carpenter. Companies provide the tools or require a tool, when you're on your own, you're free to use whatever tool you deem necessary

  • @playversetv3877
    @playversetv3877 20 днів тому

    before going to university, i was trying to teach myself coding on codecademy, and it wasnt long till i felt unhappy and unmotivated to code and continue my info tech studies when i got to university. now im studying something else, but recently i went back to start the html section on codecademy because i want make websites and liked it as a hobby. so far i enjoyed it better than before. too much pressure is definitely unmotivating and stressful, so i prefer to code in my own time out of a school environment. i think its a transferrable skill in all areas of life, and definitely a creative hobby i overlooked because its like making a movie or drawing up a webcomic

  • @quaternion73
    @quaternion73 20 днів тому

    I wrote my last C++ program 15 years ago. I love writing my own code but hate having to fix someone else's legacy code. I've seen some absolutely horrible C++ in my time written by games developers (no offence). C++ will let you do something if you really really want to while other languages have the training wheels. This is both a blessing and a curse.

  • @williamogilvie6909
    @williamogilvie6909 21 день тому

    I have used C++ off and on since 1989. There are too many ways of creating buggy code that can't be debugged with C++. I have seen some very nice looking C++ code written by others that constantly hung up. I prefer Python for structured code where speed and realtime performance is not needed. Even worse than C++ is C#. Instead of elaborate structures and inherited objects, etc programs need coherent states. C++, C#, Python, Java, and all the other languages people learn at university today have no facility for synchronizing states. If a program is not synchronous, any bug is possible. Some people don't understand this concept. Probably because they have been stuck doing the same thing over and over again. I will elaborate: There is a problem concurrent software has called the Mutual Exclusion problem. It is very difficult to guarantee different processes get exclusive access to resources in the correct order. I have seen that in large C++ programs. Threads are queued with nothing that regulates in what order different threads get access to resources. A similar case with multiprocessor systems. About 20 years ago I developed an image testing system, for space telescope IR sensors. It had a quad DSP board, that got sensor data over a DMA channel. Concurrently a pixel row was clocked and digitized by an Analog to Digital converter board, the previous row of pixel data was being transferred by DMA to one of the DSPs, and the second previous row of pixel data was being co-added with earlier data. At the end of each frame the image data was transferred to a desktop PC where it was saved to disk. This concurrent operation went on 24/7. The delicate nature of the image sensors (cooled to ~4.5 K) meant the clocking, data acquisition, etc had to be very regular and constant. Each process (4 DSPs, image array clock, user PC) had to operate in a state synchronous way. They communicated by reading shared memory. However if 2 processes tried to read or write to the same shared memory, the software would crash. So the software was very deterministic. In 5 years of operation the software never crashed and every test yielded good data. This is an example of a state synchronous concurrent system. The queued threaded systems (non realtime) software people consider to be standard fare today are not deterministic. So there is no guarantee there are not any conflicts. Leslie Lamport, 2013 Turing Award laureate, describes a similar method of preventing deadlock issues in multiprocessor systems. Good ideas often have concurrent inventors. amturing.acm.org/award_winners/lamport_1205376.cfm

  • @GameDevJosh
    @GameDevJosh 21 день тому

    Worked at visual concepts as a designer for a few years but recently got laid off. Recently started learning C++ just because it seems more stable to become a programmer and i also enjoyed coding and debugging code in c# when i spent time independently working on unity projects. i know cpp is much more complex but i think i'll have fun with it

  • @xealit
    @xealit 21 день тому

    I would say, if your goal is more about the application side of things, changing files and putting something on screen etc, then indeed go with Python or Ruby or something else. Those are perfect languages to learn programming itself as an abstract discipline and to do things with it. Sure, you can do all of that in C++ and nowadays you do have excellent tools that make C/C++ palatable. VScode is there and is free. Even CMake gets better all the time. But, working with C++ means knowing how the computer works. It means knowing what is "compiling" and "linking". It means using gdb and knowing what are "symbols" and how actual memory works. On the other hand, how computer works is an exciting subject by itself. So, if you want to learn how the computer works, do not doubt trying C/C++. One thing to add, C/C++ are genetically the languages of all modern computing. So, it is definitely worth to know how that works. Having said that, I personally would also recommend Nim as a "better C". But not for a beginner. Simply because it is still an experimental project with small audience.

  • @thegrandmuftiofwakanda
    @thegrandmuftiofwakanda 21 день тому

    You really don't want to be doing this sort of thing for much more than 5 years, it just isn't healthy.

    • @SyncMain
      @SyncMain 21 день тому

      I know plenty of engineers that are in great health. A programming career and a healthy lifestyle are not mutually exclusive.

    • @thegrandmuftiofwakanda
      @thegrandmuftiofwakanda 20 днів тому

      @@SyncMain Engineers understand the distinction between occurrence and prevalence. I wasn't even primarily talking about physical health, by the way.