this post was submitted on 17 Oct 2024
91 points (100.0% liked)

Asklemmy

43940 readers
379 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy 🔍

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~

founded 5 years ago
MODERATORS
 

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.

top 43 comments
sorted by: hot top controversial new old
[–] Bougie_Birdie@lemmy.blahaj.zone 44 points 1 month ago (1 children)

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!

[–] TheOctonaut@mander.xyz 5 points 1 month ago (1 children)

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

[–] Bougie_Birdie@lemmy.blahaj.zone 8 points 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 32 points 1 month ago (1 children)

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.de 3 points 1 month ago (2 children)

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 6 points 1 month ago (1 children)

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

Thanks. I’ll check that resource out.

[–] SzethFriendOfNimi@lemmy.world 3 points 1 month ago* (last edited 1 month ago) (1 children)

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”

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 19 points 1 month ago* (last edited 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 13 points 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 13 points 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 11 points 1 month ago* (last edited 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

[–] weariedfae@lemmy.world 10 points 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.

[–] Paradachshund@lemmy.today 10 points 1 month ago (1 children)

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.de 6 points 1 month ago (2 children)

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 3 points 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 2 points 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.

[–] bjoern_tantau@swg-empire.de 9 points 1 month ago (2 children)

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.

Thanks I don’t think I could make my own assets but I’ll keep in mind that you can get very good ones.

Also, that game is weird 😂

[–] CaptDust@sh.itjust.works 2 points 1 month ago* (last edited 1 month ago) (1 children)

Damn they made four of those turds? Series could have ended at #2, was the real high point.

[–] bjoern_tantau@swg-empire.de 3 points 1 month ago* (last edited 1 month ago)

When everyone described them as turds they thought they were doing something right.

[–] foggy@lemmy.world 8 points 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 6 points 1 month ago* (last edited 1 month ago) (1 children)

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!

[–] dependencyinjection@discuss.tchncs.de 3 points 1 month ago (1 children)

Thanks for this. The resources look great and I will make those 20 games before I even begin my game.

[–] xapr@lemmy.sdf.org 4 points 1 month ago (1 children)

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.

[–] GammaGames@beehaw.org 2 points 1 month ago* (last edited 1 month ago) (1 children)

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 2 points 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.

[–] NaibofTabr@infosec.pub 5 points 1 month ago

Narrow scope.

[–] webghost0101@sopuli.xyz 5 points 1 month ago (1 children)

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.

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 4 points 1 month ago (1 children)

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.

[–] stiephelando@discuss.tchncs.de 2 points 1 month ago

Your game looks cool, it's like a multiplayer angry birds

[–] slembcke@lemmy.ml 4 points 1 month ago* (last edited 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/

[–] cyborganism@lemmy.ca 3 points 1 month ago

Just ask the guy who made Axiom Berge, Thomas Happy. Or Stardew Valley creator, Eric Barone.

[–] GammaGames@beehaw.org 3 points 1 month ago* (last edited 1 month ago)

If you want to see more of the nitty gritty, there are tons of devlog series on YouTube where you can watch people put together a game from scratch. GMTK’s series is pretty good, though keep in mind that he started with an audience so he had some advantages along the way!

Sacred Forest is another fun series I’ve been following, and ThinMatrix’s channel is popular and has already made a few games. Miziziziz also has a few series but I recommend his 4 devs 1 art kit jam series because it shows how a lot of small games can be made quickly

[–] Krejall@ttrpg.network 2 points 1 month ago (1 children)

If you can’t hash out the idea then so you have a right to even try and make a game?

This is the most important thing I see here, because the answer is always 'yes'. Of course you have the right. Start where you're at and figure out what you need as you go along. Your first attempt might not work, but what you learn from it will be invaluable.

As far as art goes, you can either find someone who is excited to work on it with you in their spare time (difficult to find), or pay an artist whose style you like to create art for you (possibly expensive). If you do the latter, it's best to wait until you have a clear idea of what you'll need so you don't end up paying for assets you won't use.

One thing you can do right now is create a design document. This is basically just a long, detailed description of what you would like your game to be: specific mechanics and systems you want to include, what the gameplay loop will be, the audiovisual style, everything. Include images mood-board style for your future artist(s). This document will give you an idea of the assets you'll need, as well as what you'll need to learn as far as coding. It doesn't have to be followed to the letter, but it's a good place to start.

[–] dependencyinjection@discuss.tchncs.de 2 points 1 month ago (1 children)

Thanks.

This is very insightful and I hadn’t really considered a design document so I’ll look into the structure of those and hash out something.

[–] Krejall@ttrpg.network 3 points 1 month ago

My partial degree in Game Art and Design finally pays off, lol

[–] j4k3@lemmy.world 2 points 1 month ago

Look at the gource utility commit visualization history of some open source games.

[–] Monster96@lemmy.world 1 points 1 month ago

Well, for someone like me who had no inkling of programming skill until I forced myself to learn, let me tell you it was HARD. Everything about my game was a learning process but I took that as a challenge to improve myself and make myself more adaptable for future projects.

To give you basically a rundown of how I'm making my game is I first started with an idea. I liked playing Paper Mario and Super Smash Bros so I decided on gameplay similar to those two. Then, I chose Unity based on a recommendation from a teacher. As I learned coding through YouTube tutorials and asking questions on forums, I started with a simple script to control a tic tac that runs around a quick map I made with primitive shapes. And from that initial prototype I added more and more things. Different mechanics, quests, etc. For art, I'm making most of it on my own since I'm an artist first thing but most I'm getting from free sites like turbo squid or the Unity Asset Store. Music and sounds I'm using temp stuff until I can get to making them.

For myself, even making a simple mechanic of controlling your cat to explore an environment is a game. Sure, it might not be GTA quality, but it's still a game. From here you can make something more interesting. I always say that in order for something to look beautiful, first it has to look ugly. Even a beautiful butterfly has to start as a worm.

[–] averyminya@beehaw.org 1 points 1 month ago

Passion project "dev".

Mechanics first. Placeholder template for what you need for visuals. There're also free assets for that if you want to avoid your own altogether.

Sound is a set all on its own, so I would save that for the near-mid to near-end point (before finishing touches). That is to say, don't think about it for a while.

Others have said, but take it like a cake. One piece at a time ;)

[–] random@lemmy.blahaj.zone 1 points 1 month ago

you need to start small, here is my first game for example (I'm still learning):

https://github.com/ttttux/bevy-shoot-em-up-example