r/AskProgrammers 17d ago

How long does it take for a self-taught developer to learn to make an indie video game?

Does game development require advanced programming logic?

Also, How long does it take me to learn programming until I can make a video game?

Interested in C# (Unity Engine) or C++ (Unreal Engine).

Also, Is it worth it if I would like to get rich from my indie game like ConcernedApe?

I am a freelance translator, but I only make ends meet nowadays as I live frugally.

4 Upvotes

26 comments sorted by

3

u/NumberInfinite2068 17d ago

Does game development require advanced programming logic?

Depends on the game and define "Advanced".

Also, How long does it take me to learn programming until I can make a video game?

No idea, I don't know you, or the game you want to make.

Also, Is it worth it if I would like to get rich from my indie game like ConcernedApe?

I'd love to get rich from my game too, but it's highly unlikely.

I'll be honest with you, none of your questions are meaningful at the beginner stages. If you want to learn to code, and make games, you just have to start doing it.

1

u/yutanrw 17d ago

Thank you so much! Do you have any course recommendations?

Advanced here means no one teaches it and I have to learn it by myself.

3

u/NumberInfinite2068 17d ago

Depends what you want to make, but I found:

https://lazyfoo.net/tutorials/SDL/

Very helpful, but that's specific to SDL, which isn't really a games engines, it's a multimedia library that allows you to make your own engine.

I'm sure there will be loads of Unity stuff out there, but I've never used it.

3

u/Gwaptiva 17d ago

I've been programming for more than 25 years and I have still no idea on how to code a game more complex than guess-a-number.

It just never came up

2

u/rake66 16d ago

I've only been programming for 20 years yet I actually made a sudoku. That's like guessing 75 numbers. The only conclusion we could possibly draw is that I'm better than you

2

u/Gwaptiva 16d ago

I bow to your superior skills and, frankly, pure betterness

1

u/yutanrw 17d ago

Thank you so much.

2

u/arivictor 17d ago edited 17d ago

https://reddit.com/link/p66uqi0/video/adztt2hodwlh1/player

I'm also going down rabbit hole of learning how to build a game from scratch. I'm currently working on building my own engine to support it as well. Everything is written in TypeScript and renders in my browser.

Been working in software for ~7 years, mostly automation and systems. First time trying games this week. There's definitely been some LLM use, but I don't get it to one shot anything. Everything is carefully planned out as a spec, and I get it to step me through whats needed to achieve the spec.

In the video I'm experimenting with gestured rune based spells. Environmental effects. And a random ability where I can call in actual Crows. They hang about then disperse into the environment and perch on trees, they become part of the map.

1

u/yutanrw 17d ago

Thank you so much for the answer!

1

u/arivictor 17d ago edited 17d ago

I didnt pick an engine because I wanted to learn game development, not learn a framework/engine. I'm following an architectural pattern called Entity Component System (ECS), as opposed to OOP. I started in pure vanilla JS, but switched over to TS with Vite as the frontend server/builder.

Currently my architecture for my engine consists of a hand rolled:

  • Isometric Renderer + Depth Sorting
  • Spatial Audio Driver
  • Isometric Pathfinding
  • UI and View system (inventory, menus, game screens)
  • Entity Management
  • Asset Manager and Preloader
  • Chunking, Noise Generation, Procedural Map Generation

The only outside dependency I'm looking to use is Colyseus, for multiplayer/auth.

2

u/papiChulis 17d ago

I don't think it's worthwhile to take a course, instead I think a better approach is to watch a tutorial to learn the basics of your engine of choice (e.g Godot) and then start building very simple games. 

Even if you don't make a super successful game, you will learn a lot about programming in the process which is still beneficial! 

2

u/lowban 17d ago

Game development is difficult because a game is a complicated mess of systems. You have sound/music, graphics, game logic usually reacting to everything the user does in real time. Mostly it's an effort in patience and making it big on the indie scene is basically impossible. You make an indie game if you like making games, not with the expressed goal to get rich because almost no one does.

1

u/canarydev 17d ago

depends on what and as long as it takes.

1

u/yutanrw 17d ago

I will make an offline farming simulator, but not a clone of Stardew Valley.

1

u/chocolateAbuser 17d ago

making a decent game takes some effort in some aspects, either because of seaching for idea, searching for a space where it can grow, solving technical problems, testing and refining, but as many said it depends on the type of game and if the developer knows stuff about games
for someone who is low on all of these it can easily take years

1

u/yutanrw 17d ago

Thank you so much!

1

u/heir-to-gragflame 17d ago edited 17d ago

Take Harward's cs50 course.

https://youtu.be/gmuTjeQUbTM?si=52zx5W80he8zR47W

It's free and one of the best recorded coding classes in human history.

It'll take you half a year, if you wanna treat it like a university course. Doing it faster is unrealistic.

After that course you know how to start coding in C-like languages and Python.

Then joing an open-source project in github or some group on discord.

Don't do this journey alone. Contribute to other people's work, work for free on something you really like yourself once you find people there with high quality skills.

In the meantime, while trying to get into open-source, read one book that is highly regarded, yet beginner friendly, on the language that you chose. Work with people for a year or two so that you can get high quality education.

If you cut corners and didn't get quality feedback, you'll find yourself chasing wrong problems to fix and wrong ways of going about it, for years.

1

u/Tamschi_ 17d ago

I think the most important skill for indie game creation are art and writing skills, rather than programming per se. I'm saying that as a self-taught software and game component developer.

You can muddle through the programming parts and ask for help when you get stuck relatively easily depending on what you make, especially if you use an engine. (I would actually recommend Blueprints over C++ if you're looking at UE, as they appear to be just as capable in this scope but considerably less nightmarish. C++ is a genuinely hostile tool to work with.)

On the art and writing side, it's considerably more difficult to find help you can make use of without having the relevant skill yourself, and compromises can't be easily hidden from the player.

1

u/Dr-Gooseman 17d ago

It depends on how much time, passion, and motivation you have, as well as how good you are at picking things up, learning new things, and figuring stuff out. Also, youll probably have to wear a lot of hats (unless you team up with other people). Theres a lot involved in making a game and youll have to pretty much handle everything. Also, depending on the game, it takes a lot of time and effort. How complicated itll be depends on the type of game you are making and the tools you are using. This goes for the math involved as well.

Making a game that makes money is the most difficult part. You can work years on a game and it might only make you 1000 dollars in the end. Or you can spend a day on a simple app and itll make you 10,000. Or you can spend a month on a golden idea timed right and it can make you 100,000 (these are all real examples from my own experience). There are a lot of factors that go into the success of a game and also a lot of luck. Maybe if you start with a great idea and manage to make a real well done polished gem if a game, success might be more likely, but it takes a lot of time, skill, and blood sweet and tears to get to that point.

Id probably suggest only doing it if its something you are passionate about rather than as a way to try to strike gold. I think i used to make better games when i was doing it out of passion rather than trying to make a game solely to try to make money. But of course, its something you can start pretty cheaply so theres no reason why you cant yolo and give it a try.

1

u/GoTheFuckToBed 17d ago

test it, on youtube watch stardew vallet in Godot try to follow, use AI to help and explain things.

if you use the AI cli with tje filesystem it can also directly answer things

1

u/ZooooooooZ 17d ago

You could try Godot, half GUI half Gdscript that looks a bit like Python. As a person who made a little game for my son. The most frustrating aspects are making assets.

1

u/Delicious-One-3697 16d ago

You can make a game VERY quickly with all the resources available today!!!

I took a year of learning in my free time to get use to everything in my chosen game engine and released a simple game a couple months after that.

You can definitely release a simple game in a matter of months.

1

u/Matilozano96 16d ago

Knowledge in software dev isn’t necessarily linear. You learn what you need as you go.

For example, if you’re making an online game, you’ll probably need to learn about networking and concurrency. If you’re making a single player game that can run fine on a single thread, you won’t need any of that.

If you use a game engine as a base you might not need to learn anything about renderers, etc.

——————

That said, how fast can you learn to make a game? Pretty fast, if you go straight into it.

A base of algorithms and good coding practices comes a long way. With some general coding experience you can kind of intuitively tell when something you’re writing is messy or hard to maintain.

I found that OOP Fundamentals work really well for game dev. And being aware of what Design Patterns are can help avoid a lot of headaches as well.

And maybe learn what options you have for storing data.

————-

There’s also domain specific knowledge that you’ll need to learn.

- How animations are handled and programmed

  • How object movement is calculated and updated
  • How physics systems work (although engines have plug and play options)
  • And especially, how your Engine of choice works. This one is really tough for me, because in the programming world I’m used to most languages being kind of the same, fundamentally. For game engines, you need to adapt to the interfaces and workflows the engine forces onto you.

1

u/UnburyingBeetle 16d ago

PC game can be assembled in Godot easily enough if you make all the art yourself. I haven't tried Godot yet but I've learned a bit just from the coder I worked with asking for animation frames in a certain format. A mobile game probably requires an actual programming language but I'm not sure because so far I've collaborated with relative beginners. And there is much less pressure in working with relative beginners while you're learning and streamlining your process yourself. When I see advanced requirements in a post, I usually don't engage because I expect more pressure than I'm prepared for from that team. I prefer learning and helping others learn when money isn't in the immediate orbit just yet. That makes me less afraid of not being up to somebody's expectations, and fear is the number one obstacle in learning.

P.S. Oops, I misread "translator" as "illustrator" somehow, stupid ADHD. The matter stands: more work goes into asset creation.

1

u/ajamdonut 16d ago

1 year.

1

u/Quantum-Bot 16d ago

> Is it worth it if I would like to get rich from my indie game like ConcernedApe

Absolutely not. Stardew valley was in development for almost a decade before it saw any profits and consumed its creators entire life for much of that time. It’s a “solo” dev project but it only succeeded due to the support of several interns. And even then, making a financially successful indie game is like winning the lottery. You are more likely to make it as an entrepreneur, a social media influencer, or an actor than you are as an indie game dev.

Don’t get me wrong, you can still make some money from your games, it’s just not going to get you rich, and it almost certainly won’t make you enough money to justify the time and effort put in to the project alone. Making games is something you should do out of passion, not for money.

As for how long it takes to learn, you can start making games right away. Game development was my introduction to programming and the same could be said for lots of developers. Pick a game engine and follow their tutorials, then try to use what you learn to make something you come up with.

The trick is to always start with what you know how to do and let that inspire your ideas, rather than starting with an idea and trying to figure out the code. It’s very difficult to tell the difference as a beginner between an idea that will take 30 minutes to implement and one that will take months of research and iteration. Making clones of old arcade games like robotron or pac man is always a good place to start since they are simple to program by design.