__ __ / \./ \/\_ __{^\_ _}_ ) }/^\ / /\_/^\._}_/ // / ( (__{(@)}\__}.//_/__A____A_______A________A________A_____A___A___A______ \__/{/(_)\_} )\\ \\---v-----V-----V---Y-----v----Y------v-----V-----v--- ( (__)_)_/ )\ \> \__/ \__/\/\/ \__,--'
NAV: [Home] [Devlog] [Videos] [Screenshots] [Art] [Links] [Socials] [RIP] [RSS]
Here's where I organize all the neat gamedev information that I have found over the years!
I think if you are just starting out, its better start making games in a framework. You can (and many people do) start with Unity or Godot, but those are complicated programs in their own right. Not only do you need to learn how to code in a language, you need to learn how to wrangle the engine's pre-build systems to do the thing you want to do. Most beginners start out in "Tutorial Hell" because of this. Each new feature requires finding a YouTube tutorial to just copy line by line. Escape this hell! Just start learning to code with a basic game framework or library!!!
If you already know how to code in a language, find a framework for that language. If you have no prior coding or gamedev experience, I would recommend:
This will get you started drawing images or text to the screen, moving them, keyboard input, playing sounds, etc. Enough for your first game. But if you want to make anything more complicated, like having an inventory, dialogue, saving/loading, procedural generation, etc, you need to learn about Data Structures and Algorithms. Programming In Lua has a chapter on this. w3schools also has a free lesson, though not specific to Lua. Understanding and correctly using data structures and algorithms will lead to performant code that can do complicated thing quickly. (Unlike Undertale)
Making games using higher level languages and game engines is great! you can speed up production time (depending on your level of understanding of the low level stuff). But the issue is the end product will often be slower and use up more hard drive space than if you build it "from scratch" using a lower level language. If you are looking to make an indie 2D game and are comfortable with programming, I think this is the ideal approach. For 3D indie games, going the low level route is hard mode. It's certainly possible but it takes a lot more time than 2D.
If you go this route I would recommend learning C. If you want to write code that can be ported to any machine, you are looking at C/C++. C is very simple (Simple, not Easy) when compared to learning C++. Also for gamedev, C sort of makes slow and bad design patterns inconvenient where as C++ makes it easy to do bad habits. (I'm looking at the new keyword, It's just begging you to fragment your memory!) But either way learning C sets you up to pivot and learn C++ later, as it's sort of an extension of C. You aren't giving yourself a disadvantage by learning C first. Anyway on to the resources:
I prefer to use Free and Open Source Software (FOSS) for game development tools. Relying on a private company to maintain the tools you need to make your art and run your business is a risk you can avoid. With closed source projects, you have no idea if suddenly they will switch to a subscription service or charge more per month. They might even try to use your work, your art, to train their AI.
If you can stick to FOSS tools, everything will always be available for free in your Linux package manager. Yes, switching to these tools and adapting to their workflow is hard, but in my opinion is completely worth it!
If you want a FOSS full game engine with a map editor, there really is only one option for you: Godot I personally prefer frameworks over engines, despite my big game project I'm working on uses Godot... (Godot has modern physically based rendering (PBR) done for me, and it's required for my Game's unique art style and identity.) If you also decide to use this, I would recommend making your indie game out of Compatibility mode instead of Forward+ to avoid/reduce Shader Compiling and Not working on older hardware
If you are looking for a game framework, almost all of them are open source so just pick one.
Modal Text Editors (Harder for beginners, don't start with these!):
Neovim: Very customizable and fast text editor that runs inside of a terminal. My recommendation, but default settings aren't great. You will need to customize this to your liking.
Helix: More features out of the box than (neo)vim with more sane default settings. Uses different keyboard commands than vim but they more intuitive. The problem is Helix has a smaller community and no plugin support (yet)
Trackers:
I wish game design was a kind of science you can just learn the fundamentals and run with. But that's not the case now and it doesn't seem like that ever will be the case. Experienced devs will describe the game design process as trying to navigate an unexplored jungle searching for the treasure of a good game. The only real guiding compass you have for navigating this space is Fail Faster. This is Extra Credit's best video, it has stuck with me for over a decade.
Ok I will be the first to admit music is not my thing, not my area of expertise but this is what I have found:
Yeah... You probably should look somewhere else for music info...
I would say most gamedev YouTubers aren't good, they found a way to make a living off of making YouTube videos or streaming rather than like actually making games. Generally the "bad" ones do lots of editing and memes in their videos, stuff that takes alot of time to make while their games stay forever in an early prototype phase.
Most Games start out easy to make new features and its easy to do lots of progress, But eventually you are working mostly content and not the basic systems. This phase takes the most time but it's hard to show to someone what progress you have made. Do you want to spoil the game? no... then you don't have much to show for yourself until its done. Gamedevs who make income from YouTube or streaming their gamedev so far haven't been able to cross over that hurtle...
Despite all that, here are the gamedev channels I enjoy watching:
So yeah that's all the gamedev resources I have collected over the years
~WR
[rose@roseBox ~]$ cowsay -d
________________________________________
{ I didn't use FOSS so now I am burgers. }
----------------------------------------
\ ^__^
\ (xx)\_______
(__)\ )\/\
U ||----w |
|| ||