19
votes
How hard is it really to create your own video game?
I kind of want to start this discussion because something I’ve always wanted to do is make a video game, even if it’s just a small indie platformer. I’ve even gone so far as to plan out an entire game universe timeline with fleshed out characters and factions, but I have no point of reference on where to start. So, how do you start this process and where are some resources to learn?
So, because this is Tildes, a lot of people will talk about coding, engines, and such. And that is wonderful, you will need that! I am familiar with programming and game-making tools, but I am absolutely not a programmer, so I'll tell you this: what scares me is not the coding. It's the worldbuilding, the writing, the art, the sound effects, the "game feel". Nowadays, there are so many tools to help make a game from the technical aspect that it is basically guaranteed that, unless you're aiming way too high, anyone can probably do it. The real challenge is making a game that is engaging mechanically, aesthetically, technically, and narratively.
I mean, anyone can type on a keyboard, but few can write a good novel.
And more importantly, a novel novel.
Games have come a long way, and people now expect a lot from games. A simple platformer isn't enough now.
Just because AAA games with insane production values exist doesn't mean smaller scale, simpler, Indie games don't still have their place. And 2D platformers are still pretty damn popular, and sell well.
All of this is true, but even the most humble of indie games that I've played have absolutely blown me away with the level of effort and thought they must have taken to put together to pass the basic bar of getting themselves in front of me in the first place. There's a HUGE amount of talent out there. It's relatively easy to pass the baseline target of making a game, but making a game that at least 500 people play for more than 3 minutes - I suspect - is quite hard. Anything more than that probably requires serious talent.
Okay, sure, lots of indie games are impressive... but I also can't help but feel like going on about how high everyone's expectations are, how much effort it takes to make a top selling game, and how talented many indie devs are, is only going to discourage people. And IMO encouragement is what we should be doing in this thread. Not shitting on OPs dreams of making a game.
It's okay to start simple and start small. Not everything has to be a masterpiece in order to be admired, appreciated, and played by people.
That is true, but let's not be so discouraging. Wonderful new creators pop up every day, seemingly from nothing. There are also different levels and kinds of success, with different audiences. A game doesn't need to win awards and sell millions to be rewarding for its makers. Besides, originality is relative, and not a deal breaker for many. In some cases, a competent version of a known trope will be in a better position.
Being good is generally more crucial than innovation.
WoW was EverQuest for casuals, EverQuest was highly derived from DikuMUD, and DikuMUD was just a guy trying to make an engine to replicate some MUD he played... Originality is overrated.
I strongly recommend starting with Pico-8.
It is wonderful to work with:
Lastly, the tight constraints will brutally prevent feature creep and force you to make something fun, rather than something that will never get done.
I really love that they chose to base the coding parts of Pico-8 around Lua. Lua is such a nice relatively minimalistic language, and I kind of appreciate all the places that it pops up in.
It's also a great choice because there are a number of game frameworks that run on Lua, so you don't have to worry about learning a new language if you decide to make a more fleshed-out PC game later on.
Looks really great, but it's a shame it's 15 US dollars. That's quite a bit of money in my currency.
TIC-80 is a free and open source alternative to PICO-8.
Awesome, thanks ;)
Should learn some Lua beforehand to make games on PIC-8 or TIC-80?
The reference manual and Programming in Lua book are two official resources for Lua and are a good starting point.
Note: This free version of Programming in Lua was written for Lua 5.0, but it's still mostly relevant even if some specifics have changed.
For TIC-80 specific stuff, their GitHub wiki has pages listing tutorials, the provided api, how the built-in editors work, and more.
Something I didn't realize until looking at their wiki is that they support more than just Lua.
I've been using Fennel a lot recently in some small projects (mostly web scraping, processing some data, and adding it to a database or search index) as part of my latest attempt to get into Lisp stuff, so I might do something with it in TIC-80 the next time I get an urge to create a little game.
This is much more useful than my response, and I learned something too! I wonder how hard it would be to support cakelisp.... Probably not hard.
This is the first time I've seen cakelisp, but from skimming the readme and docs it looks like it would be relatively straight-forward to use it with TIC-80 through their WASM support.
They have a c starter project to use as a reference.
No need. Looking over the console's syntax and built-ins is definitely enough to get going.
Preface: I do not want to scare you away from making a game. There are TONS of resources out there for all sorts of engines, for all sorts of skill levels. It is possible even for someone with no coding/whatever experience.
THAT BEING SAID, making games is hard af. I have worked as a software dev for about 7 years, musician for 15, and have dabbled in writing and visual arts most of my life. I have been able to release one "full" game so far, and it was just a little mini game for a game jam. I have tons of little toys and unfinished projects, but most not worth releasing. Even with the technical, art/music, and writing abilities, I find it really difficult to finish a project because I end up realizing my games just end up not being fun. Your art can look great, music is stunning, and the systems you code work flawlessly but coming up with a fun gameplay loop is the hardest creative task I think I've worked on. It involves taking all that code/art/sound and making it work within your gameplay loop, in a way that doesn't suck. You could potentially outsource most parts of development (if you're fine giving up some creative control) but the gameplay concepts come from you. It's a lot harder than it sounds to make a fun game.
As prefaced, I don't want to scare you, but I also don't want people to try to make games and realize they just keep failing at it. You mentioned you have the world building planned out, which is great! Lots of games lack a good story / world presence. But, there is A LOT of boilerplate knowledge that goes into game development, and even when you get past that, it's an uphill battle. Even something like the little indie platformer you mentioned, introduces layers of complexity that a beginner is not ready to handle.
The most common piece of advice for beginners is to start by just recreate really simple games that exist. Recreate pong, snake, or breakout then try to mess around with different aspects of it to make it something interesting. IE make pong, but introduce an extra block that floats around the screen that deflects the ball and adds a little variety to the gameplay. You learn so much by just doing it and learning as you go. The idea is to keep the game small and manageable. This also helps because you get to avoid the hardest part, which is coming up with the gameplay hook. Games are super complex systems, and a its a big mistake to start off by trying to create your "dream game."
If coding seems scary to you, I would check out Gamemaker Studio, Construct, or Stencyl. There are a bunch others, so do a little research on what appeals to you and your eventual goals the most.
Agree fully. Creating game is really hard, mostly because you often need to make use of many different skills, and for a newcomer multiple new software. I'd actually recommend to go even simpler for your first game and use something that doesn't even need you to code if you arent already a programmer. Use Twine for interactive fiction or Bitsy if you want to walk around in 2D. These tools are actually simple enough that there you wont get overwhelmed and you can make games that are still very charning and can let you focus on the worldbuilding/story.
I made a few complete games when I was a young teenager, including a full, reasonably balanced, reasonably fun JRPG for my brothers using a long dead engine and Final Fantasy IV and Zelda assets (terrible plot!), a Chip's Challenge style puzzle solver with a level editor inspired by a QBasic game I liked (and several levels for it), a target shooter played with the mouse (a bit like that fly swatting game from Mario Paint) and more. (Never quite cracked platformers at the time, not for lack of trying, collision physics are hard!)
I haven't made any games in a really long time - last ones were a Tetris implementation for an Asus ad campaign and a javascript Snake entirely written in an empty conference room while waiting for a prospective client to (eventually refuse to) see me (possibly the most boring week of my life) - but... You can make games in whatever medium you want. If a kid could do it, you can do it. I took a game design class in college and the first thing we learned was to make games without touching a computer. Prototype in paper. Make tabletop games. Design the components and mechanics and how everything interacts and balances with each other. This can be very simple for a platformer, but you may also find that its core the idea you have is not very interesting yet. Not to worry! Just tweak it until it seems fun and original and just the right amount of challenging. Don't add too many conflicting mechanics, though, or it will be hell to balance and feel clunky and confusing.
My second piece of advice is to play a lot of games. You know how it's almost universal advice that people who want to write should read a lot? Yeah, same thing here. But don't just play a million first person shooters - seek out all those weird niche indies that are really different from each other, or if you want to make a platformer play all kinds of platformers first.
People who aspire to be videogame designers are usually advised to know how to program. You don't need to know how to program games specifically, that will come in time. Make sure you know the basics of programming. A good programmer can pick up any language and any paradigm eventually, because they understand how the system works and what the algorithms are doing. Don't get too married to any specific technology, unless you're trying to get a job doing specifically that (specialization is often something you end up wanting to do, but you should know why you want it).
If you know how to program and you understand conceptually the mechanics of the game design you're trying to implement, it should be much easier to figure out where to begin.
This is a writing thing! Many game designers are the writers of their games, or have been writers in the past (see Tim Schafer for instance). Worldbuilding is a fun part of writing fiction, whether it's for a novel or a videogame. There's a whole worldbuilding subreddit if you want to talk about your world with other people.
It's great that you have the flavor already, but remember that some parts of the development process - creating visual assets, for example - can be postponed, especially if you are not competent or confident in doing those yourself. Don't be afraid to use placeholders. Need a protagonist? Use a rectangle. You can even name the rectangle. You could call him... Thomas. Wait, no-
Especially for your first game, you may end up having to use premade assets, free or purchased for example in the Unity Asset Store, or you can pay other people to make them for you. You don't have to do everything yourself. Just don't try to contract everything out, unless you have a lot of money and want to start a studio. If you really want it to be your game, you should fulfill at least one of the development roles yourself. If you really don't want to be a programmer in your game, for instance, there are also indie games that are artist-designed. In this case you might do things the other way around - create concepts, sketch out characters and assets, and write down how you want everything to work together, then find a friend or partner to implement it.
This is really good advice, and touches on a lot of stuff I didn't expand on in the comment I wrote literally two minutes after you posted yours haha
Would this happen to be RPG Maker?
It was a really cool but ridiculously buggy engine written by a small team that was working on their own games. It was called DreamCreate. It handled concepts like sprite sheets, levels, animations, events with triggers and its own scripting language, turn based combat with custom commands, spells, status effects, etc. I think it stopped working some six Windows versions ago (I don't think it was 16 bit, but I remember being told by a developer many years ago that the C source code was held together by spit and dreams.)
I think the most critical information we need is: Where are you starting off? If you've got a degree in CS and years of software experience, the answer will be vastly difference to someone who's not touched maths since leaving high school.
I haven't written a full-blown game, but I am a software engineer. If you want to aim for a reachable, simple target, then using a game-building framework is probably the way to go. However, I'll tell you what: as a software engineer, I think a huge part about making a good game is the non-engineering stuff: the visuals and the music. That means 3D models (characters, monsters, buildings, objects), textures, 2D art (loading screens, character imagery, maps), UI elements (windows, buttons, etc.). That means sound effects, and well-written, well-produced music.
I think I have the technical chops to pick up almost any game engine and get going with it, but when it comes to visuals worthy of being in a game that people would spend money on, my skillset is near zero. I honestly think it's easier for good artists to learn to program a successful game than it is for good programmers to make good-enough video game art.
Alright, so, I'm going to buck the general trend of the advice here and say: it's easy to create your own video game.
Obviously, there are some caveats. But if you want to get your feet wet, for personal edification and enjoyment, that's essentially never been easier. There are really good tools, frameworks and tutorials out there. Pick one by whatever measure you like and dive in.
So, the caveats:
I don't really like this attitude. How did the people who make production-ready game engines get to where they are now? They probably made a bunch of bad game engines and wrote a bunch of other bad bits of code.
The two biggest engines for indie devs these days are Unity and Godot. Unity has pretty comprehensive Learning Pathways courses, and there are lots of decent Godot tutorials too. So those are probably where I would recommend you start, depending on which engine you want to learn.
For something a bit more simple, solely focused on 2D, and likely a lot easier to learn, there is also GameMaker as well, which also has plenty of tutorials too.
Godot has seen extremely rapid growth. The upside is that it’s probably “the” engine to recommend to newbies. The downside is that a lot of those tutorials will not be very accurate for the latest version, so you will want to try to find something up to date.
As already mentioned, it's really hard to give tips and recommendations when not knowing where you're starting from. But coincidentally, I've watched this YouTube video the other day that compares game engines. I feel like that will be useful if you're starting out with Game Dev, no matter what the current state is :) I found it interesting and I'm a programmer with no Game Dev experience.
Depends on the platform. I believe the Playmate makes it easy to make a game from scratch since the console itself is so simple.
Where to start? Download Unity and mess around with the tutorials. Will you produce a successful game that releases on steam? Probably not, but you'll have fun and learn along the way.
I think level design is a common way to get started? Many games have tools for creating your own levels.