So, the question seems vague but I will elaborate.
I’m a software developer, but I don’t do games; yet I have an urge to try and make something.
It just seems so overwhelming, I know I want to make a game where the main character is a cat and you have to complete missions, but where do you even begin. Where does the art come from? How do you refine your idea, if all you know is you want a cat game? How do you choose an engine? Do you just start with the basics and get a cat walking around and see what comes next? If you can’t hash out the idea then so you have a right to even try and make a game? Is it best to follow tutorials to get used to making games? I feel the answer to that is no as before I become a software developer, tutorial hell was a thing and I realised I needed to make things for me to actually learn.
Sorry for all the questions, this was just a stream of thought.
Hey, I’m also a software developer, and I dabble in game dev.
You eat an elephant one bite at a time. You’re probably already familiar with Agile, and that’s a good way to organize your project. Start small, get one thing working, and then you can iteratively add features.
If you’re interested in game design, you may want to do some reading on the subject. The Onion model for game design is highly effective. You start with a core feature, finish that feature, then add new layers by adding new features. You complete each feature before you start on the next, and this way you always have a working game. It’s fairly similar to Vertical Slices in Agile development.
As far as choosing an engine, I’ll make it easy for you and just recommend Godot. It’s FOSS and widely used in particular by solo devs. I’ve also dabbled with Unity and Unreal, which will be the other major free (but proprietary) options. Unity has less ramp-up time than Unreal, but it also has a history of screwing with its users. You’re probably familiar with vendor-lock, and that’s what you’ll be getting into if you try either of those.
You may already have the skills to build your own engine. Don’t. You’ll pull your hair out on all the edge cases and abstractions, and an off-the-shelf engine already has that figured out for you.
As far as learning to use the software, I guess that depends on your learning style. There’s books, videos, and official documentation on the web for whatever engine you decide to use. I’d recommend you use the same approach as learning any other new stack or library. For me, that often means going to the documentation’s Getting Started page and just playing around.
As you mentioned, tutorial hell is real. Don’t get me wrong, tutorials are a great way to learn the engine’s features that you aren’t already aware of. But don’t be afraid to go off-script and just play around. Sooner or later you’ll have to make your own sausage anyway.
Since you already know how to code, you’ve got a huge leg up on most beginners. The hardest part about making games is creating assets and scripting features. As far as assets go, you can certainly make them yourself, or you can outsource that work with third-party assets. While you’re learning, I’ll recommend Kenney - they’re highly regarded in the game dev community, and all of their assets are CC0 licensed so you’re free to use them even without attribution.
Good luck!
Agile is explicitly a way for a team to be self-organising. What benefit do you get from it as a solo developer?
Just like anything else, one chunk at a time.
You can start with a story and build the game off of that, or you can start with the gameplay and build up from there.
Sometimes you just have to start, and see where it goes. Pick an engine and start building something, don’t be afraid to throw it all out and start over from what you’ve learned so far. Make a game that has some of the elements you want to use and try it out, then throw it out and make a different game with other bits. Start small and work up.
The biggest problem is thinking it has to be perfect to move on to the next part.
You can commission art, or you can buy some models and just use those.
You can also just build everything from the ground up, but it would be hard to do that for your first project.
Thanks for the reply.
This makes a lot of sense, particularly I am drawn to the “start building something” and the way I interpret this could be making some basic platforms at different Z Axis’s and work on the movement for the cat, then throw it out (well keep it saved somewhere to look back to) and work on something else, like the environment or whatever. Then hopefully this will inspire other ideas and the game will grow from there.
I am going to start and see how we progress. Thanks again.
If you need inspiration PirateSoftware has some good pieces on getting started with game programming and regularly runs game jams.
I don’t write games but a lot of people that do often say something similar. Do play tests for the concept/mechanics.
This way you don’t spend time/energy and resources on art and assets that won’t be used, etc.
Similar to a minimal viable product in regular dev or, perhaps a better analogy, technical demos.
You want to write a site or app that fetches API data for GPS, calendar and Weather and show them together? You don’t start with the UI. You start with:
- Can I get the GPS coordinates
- Can I call another API and get the weather for those coordinates?
- Can I get the coordinates or other info for some future location?
- Can I send that to get the weather?
Once you know you can and that it “works” you build around it.
So like you said. I have boxes, and this other box (or static PNG of a cat) moves around them and when I move this way it drops the box down on another box.
Does that work? Does it feel “fun” to arrange them? No, it feels tedious or can’t get the collision right? Then let’s try a different angle or taking the part that did work and iterating on it.
This also leaves you open to random bugs that end up being “fun” when you lean into them.
Game Makers Toolkit has some good videos on his journey making “Mind over Magnet”. Here’s the playlist.
https://youtube.com/playlist?list=PLc38fcMFcV_uH3OK4sTa4bf-UXGk2NW2n
There’s also PirateSoftware whose entire stream is devoted to “go and make games”
How? Blood, sweat and tears mostly.
Usually it’s not recommended to start with your “dream game”. Pick an engine (I like Godot), grab some Kenney art assets, and get to work on a pong or snake clone. This can be using written tutorials, videos, or hard mode, read the docs and piece it together.
Trying to learn a language, learn an engine, learn the art pipeline, learn game dev concepts AND dream up a new game concept with custom assets simultaneously is trying to boil the ocean. Start small: add a start menu, add a scene. Make jpg appear and move using player input, add an obstacle, add a death scene/restart. Iterate from there.
The process of making a game on your own involves failing to make the first 10 games you try to make on your own.
Ultimately, it sounds like you already have a good handle on everything that goes into it, and are just hoping to hear it’s not actually as hard as you think it is… it is hard. Know that going in, and assess if you will be able to do it. But give yourself a bit of benefit, getting most of the way tends to increase your resiliance to the final hurdles.
I was a pro game developer for 19 years, more or less. After my last job ended, I self-published an indie game. To this day, it’s not made enough money to trigger a single payout. I failed. So it’s fair to take my advice with a grain of salt, if not a whole block. But here’s my two cents anyway.
Start by sketching and writing. Think of verbs; games are all about doing things, even if it’s just advancing through a conversation. Your protagonist is a cat, so cats run, jump, explore, play. Think of why the protagonist is doing things. Where do the missions come from? And in this case it’s hard not to look at Stray. There’s almost always something that’s come before, even if it’s not super high-profile like Stray. Think about what you want to do different.
Art will come from you, if you go it alone and can’t or don’t want to buy art assets. Blender and GIMP are hard to learn, but free and powerful.
Your engine is almost certainly going to be Unreal, Unity, or Godot. Each has strengths and weaknesses, including the cost of use. You have to factor it all in.
I do think you’re right that you’ll learn more by making things than doing tutorials, but be aware if you start spinning your wheels on something. You’ll benefit from both.