3 answers
3 answers
Updated
Leo’s Answer
There are a number of programs used to make modern video games.
* Coding Software. Usually in the form of an IDE. You'll need some form of compiler to write the meat of your game in. Fortunately, many companies offer free IDEs for personal use. Visual Studio, for instance; but there are many others.
* Game Engines. These take care of the rendering and physics of the game (and some of the logic too). A popular (and I think also free) game engine is Unity, but there are many others, like FrostBite, CryEngine, Unreal Engine, etc.
* Rendering/Shading Software. Sometimes you'll need to understand how the graphics themselves are coded, so you'll need the DirectX or OpenGL/Vulkan APIs and probably also a bit of HLSL and GLSL (shading languages).
* Art Software. The engine will have to display several assets, you'll need to create them somewhere. Depending on the type of game you're trying to write, you'll need texture editing tools, like Photoshop, Corel Paint or Substance Painter.
* 3D Software. A lot of modern games are in 3D, so you'll need software to create your 3D assets as well. Blender is a free 3D software that is widely used, but there are many others, like Maya, 3DMax, ZBrush, etc.
* Animation and Motion Capture Software. If your game has human characters, you might want to capture motion from real-life actors and translate them into your game assets.
* Audio Software. You probably know where I'm going now. You'll either need to record audio for your game, or author it. Then you'll have to mix it and edit it. There's also the question about the music score...
* Other Software. Yes, I'm probably missing details here, so chances are you'll still need a few more pieces of software to make it work together. For instance, if you're considering VR, you might need things like SteamVR or OpenXR to take care of the details of how to talk to the tracking devices and HMDs.
Because of the above, game studios usually employ large teams to take care of all those details. However, a lot of beginners buy assets that other people already offer. Unity, for instance, has a store where you can buy a number of assets for a relatively low price so you don't have to worry about those details. DAZ Studio is another company that offers video game and rendering assets (I'm not sponsoring either company, just mentioning these as options, and I'm sure there should be many others out there that offer gaming assets).
* Coding Software. Usually in the form of an IDE. You'll need some form of compiler to write the meat of your game in. Fortunately, many companies offer free IDEs for personal use. Visual Studio, for instance; but there are many others.
* Game Engines. These take care of the rendering and physics of the game (and some of the logic too). A popular (and I think also free) game engine is Unity, but there are many others, like FrostBite, CryEngine, Unreal Engine, etc.
* Rendering/Shading Software. Sometimes you'll need to understand how the graphics themselves are coded, so you'll need the DirectX or OpenGL/Vulkan APIs and probably also a bit of HLSL and GLSL (shading languages).
* Art Software. The engine will have to display several assets, you'll need to create them somewhere. Depending on the type of game you're trying to write, you'll need texture editing tools, like Photoshop, Corel Paint or Substance Painter.
* 3D Software. A lot of modern games are in 3D, so you'll need software to create your 3D assets as well. Blender is a free 3D software that is widely used, but there are many others, like Maya, 3DMax, ZBrush, etc.
* Animation and Motion Capture Software. If your game has human characters, you might want to capture motion from real-life actors and translate them into your game assets.
* Audio Software. You probably know where I'm going now. You'll either need to record audio for your game, or author it. Then you'll have to mix it and edit it. There's also the question about the music score...
* Other Software. Yes, I'm probably missing details here, so chances are you'll still need a few more pieces of software to make it work together. For instance, if you're considering VR, you might need things like SteamVR or OpenXR to take care of the details of how to talk to the tracking devices and HMDs.
Because of the above, game studios usually employ large teams to take care of all those details. However, a lot of beginners buy assets that other people already offer. Unity, for instance, has a store where you can buy a number of assets for a relatively low price so you don't have to worry about those details. DAZ Studio is another company that offers video game and rendering assets (I'm not sponsoring either company, just mentioning these as options, and I'm sure there should be many others out there that offer gaming assets).
Updated
Walt’s Answer
The most popular game engine by far is Unity. I have been using it on VR projects for a while now, and it is pretty amazing. It can be used for 2D and 3D games, Virtual Reality, Animations, and even more. It has a thriving community with plenty of tutorials available on YouTube. It has a great asset store where you can find paid and free components such as players, inventory items, backgrounds, buildings, transportation, etc. You can get a good start on a game with very little code, and there is plenty of example code you can get from GitHub and from just Googling what you are trying to accomplish. Unity deploys to many platforms including Android, Apple, PC, and consoles. They also have a commerce site to help you package and sell your games. Finally, Unity is free for students and for individuals who are making less that $100,000 US from their games, so there is no reason not to try it.
Another free option that is less known is Godot. It is an open source cousin to Unity, and it has lots of features also. It's a great choice for learning gaming if you aren't quite ready for the complexity of Unity. It's not as powerful as Unity, but it can turn out some really interesting games without a lot of effort.
There are lots of other gaming engines out there, but these two are probably the standard by which others are measured. Hope this helps.
www.unity.com
godotengine.org
Another free option that is less known is Godot. It is an open source cousin to Unity, and it has lots of features also. It's a great choice for learning gaming if you aren't quite ready for the complexity of Unity. It's not as powerful as Unity, but it can turn out some really interesting games without a lot of effort.
There are lots of other gaming engines out there, but these two are probably the standard by which others are measured. Hope this helps.
Walt recommends the following next steps: