I want to make a very simple game
pro tip: game devs are shit at coding. there's a loop that runs every frame, and you have to make stuff happen in it. pick a C-based language (I heavily advise against python if you wanna do it professionally) and just write a bunch of shit loops that let you run a character left and right on a screen and jump. If this gives you a thrill, continue with it. it's really fucking fun. if it doesn't, leave game dev in the dust because holy shit its exhausting.
Also, please avoid javascript. That language is really REALLY weird and it can make debugging a bitch sometimes.
I was able to begin development on Kor after watching an RPG tutorial series on YouTube by a dude who goes by Heartbeast. I tried many times over many years to learn, and following along with his series is what actually got me where I needed to do the rest myself.
What engine are you planning to use?
I don't know when it was last updated, but Zoe Quinn's http://www.sortingh.at/ is here to answer exactly that question.
I'll refrain from giving specific advice since game projects i've actually completed are very tiny, except to say that whatever language, library, or tool you decide to learn, your first projects using it will have the goal of learning, not necessarily of achieving even a modest creative vision.
basic tutorials and just fucking around with it was how i learned python (renpy), c# (unity), and inform (inform 7)
What sort of game? I did some prototyping modding another game, just to get ideas out of my head.
Do you want to code or create a game? Aren't there programs for creating games? Not a coder or a game developer, but I'd be impressed if you created something using "S.E.U.C.K"
https://en.m.wikipedia.org/wiki/Shoot-%27Em-Up_Construction_Kit
I learned the fundamentals using Racket and How to Design Programs — it won't have you making anything too complicated but it will give you a solid foundation of basics. It's intended to be used as a CS intro course, so it should be suitable to beginners with no programming experience
I'm not sure about learning resources since I was a complete beginner many years ago and the best now have obviously changed but the easiest and fastest way to achieve your goal would be
- Finding a good resource to learn the "Python" programming language and then learn it
[Optional. Only if you want images in your game and not just a game with only text] 2. Finding a good resource to learn the "Pygame" framework and then learn it
Wish you the best of luck with your journey! Google everything you don't know. It's gonna be a pain in the ass lol
If you want to browse the code of an already existing gale, heres mine: https://github.com/userse31/Mouse-Simulator-2D
Please don't go with javascript though. I've been programming in it since I was 9 or 10 and it still makes me want to pull my hair out sometimes. That language simply tries to keep running when it really should just error out and tell the programmer "Hey mate, what you did here? Its stupid!".
Know how to program and not how to make a game:
-
turn based: do the roguelike tutorial, it's good
-
3d and fancy: pick a random Godot tutorial
-
2d action: look for an immediate mode graphics API (typically named something like "canvas"), a pause/timer function, and a way to read keyboard input. Put them together. If you name a language I can help you find the three things
Don't know how to program:
-
I liked Game Maker back in the day, don't know if it's still good, but it's a nice compromise between not programming and actually programming
-
people have taught themselves programming using the roguelike tutorial
-
As amazing as it is being able to create such complex things in a web browser, dear god javascript pisses me off. Fuck that language.
I'll dissent from the comments here and recommend you should start by creating a mod instead of building a game from scratch. Find a game that's known for their shitton of mods (think Skyrim or Minecraft), which means there's a vibrant mod community, and begin creating your own mod. Your first mod is almost certainly going to be an existing mod with some values tweaked. That's okay. The community will guide you towards the right path. The main advantages from creating a mod instead of developing a game is a lot of the backend and boring shit like menus have already been done. But just because you're not creating everything from scratch doesn't mean mods are somehow lesser than videogames. Dota and Counterstrike started out as mods. You have mods like Brutal Doom that completely change how the base game is played and breath new life to the game, even affecting the game design of the newer Dooms.
In developing your own mod, you'll face the same challenges that game developers also face like design creep or QA. If your mod is ambitious enough, you'll most likely need outside assistance, which means you'll have to market your mod to the right people in order for them to playtest your mod, which isn't that different from how indie devs market their games to the general public or a dedicated fanbase.
There will be numerous times when you'll hit a wall because the base game would say "um, you can't do that lmao." Eventually, you'll hit the wall enough times and have a laundry list of features that you wish your mod could have. The thought "the base game is holding me back, fuck this I need to develop my own game" will keep on popping up until you'll turn that thought into a reality.
Do you know how to code? If not, learn how to code.
Block based IDE's simply arn't as flexible as languages that you type.
Start by figuring out what you wanna make and use a modding kit or high level construction kit to transform a similar game into what you want.
That way you’re starting with tools you know can get close to what you want and don’t have to make your own engine from scratch.
So if you wanna make a jrpg, use rpg maker. If you wanna do a western crpg make a neverwinter or morrowind mod. If you wanna do an fps start with a doom wad or one of the unity kits.
Idk about platformers or puzzle games.
E: for roguelikes use libtcod (and support vikeys)