So, the question seems vague but I will elaborate.

I’m a software developer, but I don’t do games; yet I have an urge to try and make something.

It just seems so overwhelming, I know I want to make a game where the main character is a cat and you have to complete missions, but where do you even begin. Where does the art come from? How do you refine your idea, if all you know is you want a cat game? How do you choose an engine? Do you just start with the basics and get a cat walking around and see what comes next? If you can’t hash out the idea then so you have a right to even try and make a game? Is it best to follow tutorials to get used to making games? I feel the answer to that is no as before I become a software developer, tutorial hell was a thing and I realised I needed to make things for me to actually learn.

Sorry for all the questions, this was just a stream of thought.

  • BougieBirdie@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    44
    ·
    1 month ago

    Hey, I’m also a software developer, and I dabble in game dev.

    You eat an elephant one bite at a time. You’re probably already familiar with Agile, and that’s a good way to organize your project. Start small, get one thing working, and then you can iteratively add features.

    If you’re interested in game design, you may want to do some reading on the subject. The Onion model for game design is highly effective. You start with a core feature, finish that feature, then add new layers by adding new features. You complete each feature before you start on the next, and this way you always have a working game. It’s fairly similar to Vertical Slices in Agile development.

    As far as choosing an engine, I’ll make it easy for you and just recommend Godot. It’s FOSS and widely used in particular by solo devs. I’ve also dabbled with Unity and Unreal, which will be the other major free (but proprietary) options. Unity has less ramp-up time than Unreal, but it also has a history of screwing with its users. You’re probably familiar with vendor-lock, and that’s what you’ll be getting into if you try either of those.

    You may already have the skills to build your own engine. Don’t. You’ll pull your hair out on all the edge cases and abstractions, and an off-the-shelf engine already has that figured out for you.

    As far as learning to use the software, I guess that depends on your learning style. There’s books, videos, and official documentation on the web for whatever engine you decide to use. I’d recommend you use the same approach as learning any other new stack or library. For me, that often means going to the documentation’s Getting Started page and just playing around.

    As you mentioned, tutorial hell is real. Don’t get me wrong, tutorials are a great way to learn the engine’s features that you aren’t already aware of. But don’t be afraid to go off-script and just play around. Sooner or later you’ll have to make your own sausage anyway.

    Since you already know how to code, you’ve got a huge leg up on most beginners. The hardest part about making games is creating assets and scripting features. As far as assets go, you can certainly make them yourself, or you can outsource that work with third-party assets. While you’re learning, I’ll recommend Kenney - they’re highly regarded in the game dev community, and all of their assets are CC0 licensed so you’re free to use them even without attribution.

    Good luck!

    • The Octonaut@mander.xyz
      link
      fedilink
      arrow-up
      5
      ·
      1 month ago

      Agile is explicitly a way for a team to be self-organising. What benefit do you get from it as a solo developer?

      • BougieBirdie@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        8
        ·
        1 month ago

        When I learned it, one of the core tenets was that you build a prototype and then iterate off of it. I guess that’s what I’m referring to

        Every organization I’ve worked for has a different bastardization of it, so your mileage may vary

  • mipadaitu@lemmy.world
    link
    fedilink
    English
    arrow-up
    33
    ·
    1 month ago

    Just like anything else, one chunk at a time.

    You can start with a story and build the game off of that, or you can start with the gameplay and build up from there.

    Sometimes you just have to start, and see where it goes. Pick an engine and start building something, don’t be afraid to throw it all out and start over from what you’ve learned so far. Make a game that has some of the elements you want to use and try it out, then throw it out and make a different game with other bits. Start small and work up.

    The biggest problem is thinking it has to be perfect to move on to the next part.

    You can commission art, or you can buy some models and just use those.

    You can also just build everything from the ground up, but it would be hard to do that for your first project.

    • dependencyinjection@discuss.tchncs.deOP
      link
      fedilink
      arrow-up
      3
      ·
      1 month ago

      Thanks for the reply.

      This makes a lot of sense, particularly I am drawn to the “start building something” and the way I interpret this could be making some basic platforms at different Z Axis’s and work on the movement for the cat, then throw it out (well keep it saved somewhere to look back to) and work on something else, like the environment or whatever. Then hopefully this will inspire other ideas and the game will grow from there.

      I am going to start and see how we progress. Thanks again.

      • xmunk@sh.itjust.works
        link
        fedilink
        arrow-up
        7
        ·
        1 month ago

        If you need inspiration PirateSoftware has some good pieces on getting started with game programming and regularly runs game jams.

      • SzethFriendOfNimi@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        1 month ago

        I don’t write games but a lot of people that do often say something similar. Do play tests for the concept/mechanics.

        This way you don’t spend time/energy and resources on art and assets that won’t be used, etc.

        Similar to a minimal viable product in regular dev or, perhaps a better analogy, technical demos.

        You want to write a site or app that fetches API data for GPS, calendar and Weather and show them together? You don’t start with the UI. You start with:

        • Can I get the GPS coordinates
        • Can I call another API and get the weather for those coordinates?
        • Can I get the coordinates or other info for some future location?
        • Can I send that to get the weather?

        Once you know you can and that it “works” you build around it.

        So like you said. I have boxes, and this other box (or static PNG of a cat) moves around them and when I move this way it drops the box down on another box.

        Does that work? Does it feel “fun” to arrange them? No, it feels tedious or can’t get the collision right? Then let’s try a different angle or taking the part that did work and iterating on it.

        This also leaves you open to random bugs that end up being “fun” when you lean into them.

        Game Makers Toolkit has some good videos on his journey making “Mind over Magnet”. Here’s the playlist.

        https://youtube.com/playlist?list=PLc38fcMFcV_uH3OK4sTa4bf-UXGk2NW2n

        There’s also PirateSoftware whose entire stream is devoted to “go and make games”

        • dependencyinjection@discuss.tchncs.deOP
          link
          fedilink
          arrow-up
          4
          ·
          1 month ago

          Thanks for this. This will be very useful. There is so much to learn, and honestly that’s what keeps me not sad all the time. I never really care if I drop a hobby and move into something else as it’s the journey that I find pleasure in.

  • CaptDust@sh.itjust.works
    link
    fedilink
    arrow-up
    19
    ·
    edit-2
    1 month ago

    How? Blood, sweat and tears mostly.

    Usually it’s not recommended to start with your “dream game”. Pick an engine (I like Godot), grab some Kenney art assets, and get to work on a pong or snake clone. This can be using written tutorials, videos, or hard mode, read the docs and piece it together.

    Trying to learn a language, learn an engine, learn the art pipeline, learn game dev concepts AND dream up a new game concept with custom assets simultaneously is trying to boil the ocean. Start small: add a start menu, add a scene. Make jpg appear and move using player input, add an obstacle, add a death scene/restart. Iterate from there.

  • Tarquinn2049@lemmy.world
    link
    fedilink
    arrow-up
    13
    ·
    1 month ago

    The process of making a game on your own involves failing to make the first 10 games you try to make on your own.

    Ultimately, it sounds like you already have a good handle on everything that goes into it, and are just hoping to hear it’s not actually as hard as you think it is… it is hard. Know that going in, and assess if you will be able to do it. But give yourself a bit of benefit, getting most of the way tends to increase your resiliance to the final hurdles.

  • Solitaire20X6@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    13
    ·
    1 month ago

    I was a pro game developer for 19 years, more or less. After my last job ended, I self-published an indie game. To this day, it’s not made enough money to trigger a single payout. I failed. So it’s fair to take my advice with a grain of salt, if not a whole block. But here’s my two cents anyway.

    Start by sketching and writing. Think of verbs; games are all about doing things, even if it’s just advancing through a conversation. Your protagonist is a cat, so cats run, jump, explore, play. Think of why the protagonist is doing things. Where do the missions come from? And in this case it’s hard not to look at Stray. There’s almost always something that’s come before, even if it’s not super high-profile like Stray. Think about what you want to do different.

    Art will come from you, if you go it alone and can’t or don’t want to buy art assets. Blender and GIMP are hard to learn, but free and powerful.

    Your engine is almost certainly going to be Unreal, Unity, or Godot. Each has strengths and weaknesses, including the cost of use. You have to factor it all in.

    I do think you’re right that you’ll learn more by making things than doing tutorials, but be aware if you start spinning your wheels on something. You’ll benefit from both.

  • Quintus@lemmy.ml
    link
    fedilink
    arrow-up
    11
    ·
    edit-2
    1 month ago

    I recommend reading about Daisuke Amaya (a.k.a Studio Pixel) and his creation, Cave Story.

    He made the game in the course of five years and moved to a less intensive and low pay job to work on the game. The man made the art, soundtrack, the program he used to compose and render the said soundtrack and the fucking game engine. He’s also called “The father of indie games”

    https://www.cavestory.org

  • Paradachshund@lemmy.today
    link
    fedilink
    arrow-up
    11
    ·
    1 month ago

    One thing I’ll throw out there is while there are rare cases where a solo dev really does everything themselves, when you see a really ambitious looking result from a supposedly solo dev, it’s very likely they either contracted things out, bought/found assets, or had on and off help from people. It’s only solo in the sense it’s their vision and they get to put things together/make all the final calls on the game.

    Making stuff solo is hard. I’m doing it right now and I’m purposely trying to use a lot of stock assets for art and music because the game alone is already a massive task by itself. Don’t be afraid to use what’s out there. If your game feels good to play most people will never worry about whether you hand built every blade of grass. In other words, go for as small a scope as you can, and don’t be afraid to cut corners.

    • dependencyinjection@discuss.tchncs.deOP
      link
      fedilink
      arrow-up
      7
      ·
      1 month ago

      Thanks. This is likely very true, I think Stardew Valley is a game where the dude did it all, but I guess that’s the exception and most games are collaborative efforts.

      • Paradachshund@lemmy.today
        link
        fedilink
        arrow-up
        3
        ·
        1 month ago

        People like that really aren’t fair, are they? Save some talent for the rest of us. 😅

        It’s worth noting the dude worked his ass off and had financial support to pay living expenses from his partner:

        For four years, he says, he worked an average of ten hours a day, seven days a week, on Stardew Valley. Luckily, he was living with his girlfriend, a graduate student in, appropriately, plant biology, and to help stay afloat he worked part-time as an usher at Seattle’s Paramount Theatre

        Not diminishing his accomplishments at all, but I think it’s always good to compare effort to effort, resources to resources, rather than simply team size. Most people can’t spend 4 years with that pace without investment backing.

      • codenamekino@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 month ago

        If you end up going in the Godot direction, a friend of mine has some useful tools to easily get started on animation rigging and controllers here.

        He got started a couple years ago with no game dev experience, and he’s done a couple of game jams recently, but most of his time has been spent building workflow tools. A couple months ago he finally got around working on one of the original games that he’s wanted to make since he started.

  • weariedfae@lemmy.world
    link
    fedilink
    arrow-up
    10
    ·
    1 month ago

    A gamedev I know who has a currently running online MMO says:

    "Don’t overthink it. When I learned gamedev I learned how to display something on the screen, I learned how to move things on a screen, how to play sound effects and music, and then rolled it all together to make a simple pong game. If you can make that you can scale up from there. Buy an asset pack off of itch.io for whatever genre you want to make. "

    For context this guy made his engine from scratch.

  • Björn Tantau@swg-empire.de
    link
    fedilink
    arrow-up
    9
    ·
    1 month ago

    Either you learn how to make the assets, use free ones, buy them or commission someone.

    Hard to believe, because it’s such a high quality product. But every asset used in Diarrhea 4 was free. Apart from the fart noises. Those were made entirely by me.

  • foggy@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    1 month ago

    Most solo devs don’t do everything. They download packages of meshes (3d objects) to… Not reinvent the wheel.

    You can, in most game dev studios, develop game logic, maps, textures, meshes, characters etc.

    People can buy them, use them, modify them, etc.

    That’s not to say none do. Just… The same ones don’t.

    Then there’s the issue of like… Youre building in Unreal, and you want a portal that when you enter, you shrink my 10%. Okay that’s… That’s not in the engine. So. Yeah. The wheel you’re reinventing here is pretty big.

    Idk if this fully elucidates. I’m in mobile and at work, hope this makes sense.

  • xapr@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 month ago

    It’s essentially the “how do you eat an elephant?” question, isn’t it? Hint, if you’re not familiar with the reference, the answer is “one bite at a time.”

    I’m not a game developer (yet), but would like to try it, so I’ve done a little reading about the topic. There are a couple things I’ve seen advocated that have made a lot of sense to me:

    1. Don’t start with your dream game. Start with either tiny games to test specific aspects of your bigger game, or first practice developing clones of many relatively simple classic games, like pac-man, etc. This is a good resource I’ve found to help guide the latter approach: https://20_games_challenge.gitlab.io/challenge/

    2. Don’t spend a lot of time on either programming or creating art before you playtest the heck out of your game, preferably with many people. This is what I’ve seen advocated in a popular game design textbook: https://www.gamedesignworkshop.com/ - this makes sense since the same kind of advice applies to any kind of software development and design - verify that your potential audience is actually interested in what you are trying to make before spending a ton of effort making it. I’ve seen very similar advice given in the context of solo app development and even business startups.

    Good luck and have fun!

      • xapr@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 month ago

        You’re welcome. Maybe you don’t have to make all 20, but I think the idea is just to get your feet wet with game development with simple stuff first (baby steps), rather than diving into the deep end of the pool without knowing how to swim. Maybe you’ll feel you have the hang of it after making a handful of them.

        • Gamma@beehaw.org
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          1 month ago

          Another thing you can do to boost game count is participate in jams! They’re IMO the best way to quickly learn parts of the process, but make sure you’ve got a bit of use in your engine of choice first or it can be a lil overwhelming

          • xapr@lemmy.sdf.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 month ago

            Ah, yes, I forgot about game jams! They sound like they would really help you spend some concentrated time on game dev and design and progress quickly. Thanks.

  • webghost0101@sopuli.xyz
    link
    fedilink
    arrow-up
    6
    ·
    1 month ago

    By starvation.

    I am not even kidding, see indie game the movie.

    Games are art and making art in this works comes with the sacrifice of not being able to afford anything until you by chance become popular.

    • dependencyinjection@discuss.tchncs.deOP
      link
      fedilink
      arrow-up
      4
      ·
      1 month ago

      Thanks. I guess for me I just want something to focus on and can create over time.

      Not really relevant but I’m fighting depression again and I really need something to focus on.

  • maneframe@lemmy.sdf.org
    link
    fedilink
    arrow-up
    4
    ·
    1 month ago

    Everyone has their own process, but I think it’s fine to just start with a simple idea that’s not yet a game, jump in, and experiment around, especially if you’re just starting out. I’m not an expert by any means, but I managed to release a small game of my own recently, and all I had at the start was a test where I could knock over a box by throwing a ball. Everything else that eventually became the game were ideas that I had later while playing around and showing it to other people.

  • slembcke@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 month ago

    Hrm… I suppose I spent 15 years making other people’s games first. >_< More seriously, just start with small stuff. Make a simple 2D game with a something like the Love framework or Pico8. Then try to scale up a bit or use something a bit more powerful. If you are really want to make a game solo, then the best thing you can do is learn to control your scope. You’ll never be able to be good at every part of making games, so figure out what parts you want to work on and figure out how to make a game around those skills.

    You also don’t have to make do it alone. You can hire out art, programming, sound, music, writing… really anything. Most “solo” devs do that to some extent. Also try and seek out your local gamedev community. Asking online is fine, but you’ll get more out of an in person conversation with someone who’s done it before.

    Lastly, game jams. There are smaller game jams going on all the time, but the big one is the global game jam in January. I’ve always liked that one because there are always new people. In my experience, fresh gamedevs are always perfectly welcome. You’ll have someone else on the team that can rough out the structure for you, then you just need to apply what you already know as a software developer to fill in some blanks. People also like to do role bending at jams too. Programmers will try making art, artists will try making music, and sound people will try programming. Jam games are usually bad, so nobody will expect anything you make to be any good, but people generally have a blast doing it anyway. :) I like to rope people into making NES games every year because even as experienced game devs they are so sure they can’t write C code, let alone for something 40 years old, certainly not in 48 hours! They do just fine once they dig in. :D -> https://www.slembcke.net/nes/