I have very limited background in programming. I quite want to develop the game myself, or with only minimal help. Is there one language that is better than others for game development, or is more versatile?
If you want a serious answer, C#. It’s a general purpose language with a great ecosystem in both the regular Dotnet Stack and stuff developed specifically for unity.
One of the most important things to learn about programming is not to make things from scratch unless you have a very good reason to, imo. Programmers build off of the things that other programmers make, for example using some code library to achieve a specific task or building a game on top of one of the many solid engines that are out there. (Godot, Unity, Unreal, etc.)
Writing software is hard, and making a fun and functioning game is even harder, so unless you have some very specific reason to write a game “from scratch”, I would just get something like Godot or Unreal and start learning the ins and outs of game development and design.
Why Godot and Unreal over Unity? Because having source code access means that, if you at some point want to learn more about game engine development specifically, you can start by browsing and hacking away at the source code of an existing engine. So, do yourself a big favor and just start learning how to make games using an existing engine.
If you are new you probably want to decide which game engine you want to use first, then learn one of the languages that engine supports.
Most popular choices would be: Unreal engine, Unity and Godot. Hovewer if your goal is to get into game dev industry by far the most popular language would be C++ followed by C#.
Depending on the scope of your game(if it is a very simple 2d game like 2048) you might want to consider Python too. it is known for being one of the easiest languages to learn and you will have easy time researching the points you get stuck on.
Depends on what you want. I’ve been liking Godot, but I’m an “Open Source” person. There’s definitely more of a community around Unity or Unreal.
But Godot is free in both ways and relatively user friendly, and since you’re uninterested in hiring a hundred people, using a tool that you like is fine, even if it’s not the most popular.
There’s a course I’ve never used called Learn GDscript which teaches the inbuilt language for Godot (GDScript) in the browser with fun interactive tasks. It looks neat, but I’ve never tried it myself. You can use other languages with Godot, but I recommend the GDScript. It’s very similar to Python and is well integrated into the engine.
So from there it’s about screwing around! Like other people have said, you’re not going to whip up the game that’s in your head in anything like the time frame you probably think. Even if you think you’re being realistic, it’s probably even worse than that. But I don’t say this to discourage you, I say this to prevent you from discouraging yourself!
If you can get a game where a green circle goes through a maze and then text shows up on the screen that says “you did it”, that should be viewed as an accomplishment! It’s simple, sure, but it’s something you did. Try to break your game’s features up into micro chunks that are playable. It’s easy to spend 6 months working on something and making progress, but not in any way you can show friends or whoever, and can’t even really “play” yourself. That can be demotivating. Try as much as you can to have something playable as often as possible. It will feel much more like real progress if you constantly have something you can demo.
And also don’t underestimate how much a bit of art and sound effects can change an experience. Silent 2D boxes is fine to test things out, but even a free art and sound effects pack makes a huge difference in how fun a game can feel. It can make even a simple premise suddenly feel like a game.
Good luck, have fun! Oh, also once you’re done tripping over your feet, maybe try a game jam! They’re good exercise.
Back in the olden days I learned programming and made games with BlitzBasic and PureBasic. A simple programming language, but with included functions to easily display sprites on a screen or play a sound. Everything else you had to do yourself, so it wasn’t a game engine, but you still could have results quickly without too much boilerplate code. It was great for learning, together with the community around it.
- PyGame seems similar. And you’re learning a useful language to boot.
- PICO-8 is a little virtual console with everything built-in to write tiny pixel games in Lua.
- Plain JavaScript with the Canvas element. You can do everything yourself, only the HTML/CSS stuff around the Canvas makes it a bit more cumbersome. But you can always write your own functions to easily draw a sprite etc.
- JavaScript with PixiJS. Higher level Canvas functions (demo). Looks like fun.
Or you could start with the Godot engine. That way you could eventually make bigger games. But for learning game-making and especially programming from scratch it’s too high level. Better learn the basics first, write a lil’ Tetris, Game of Life, Screensaver etc. before using complicated huge tools.