5. Doesn't rhyme with "lavachipped"
January 30, 2020 8:08 AM   Subscribe

If I were to take up game development for fun, what language/frameworks should I learn?

Let's say I want to code a platform or puzzle game (for instance, something like Spelunky.) What should I start learning?

I'm a self-taught coder; I'd place my knowledge of Python, for instance, at intermediate to advanced. (As in, I know OO and what class decorators are.)

Some criteria:

1. As cross-platform as far as possible (not bound to iOS, Android, etc). In particular, while stuff like PICO-8 is cool, it's not really what I'm aiming at.
2. Doesn't require very expensive hardware
3. Reasonably fast learning time
4. Reasonably fast to get to a finished product.

And I realize that not all of these criteria can be fulfilled simultaneously.

posted by rpophessagr to Technology (13 answers total) 7 users marked this as a favorite
What have you got against Javascript?
posted by jozxyqk at 8:19 AM on January 30, 2020

Best answer: Unity is the usual answer. There are quite a few 2D frameworks available. It's generally free to use if you're just doing hobby stuff.
posted by seanmpuckett at 8:22 AM on January 30, 2020 [9 favorites]

Best answer: I was recently pointed toward godot and it looks pretty amazing. I think it actually satisfies all of your criteria.
posted by dbx at 8:23 AM on January 30, 2020 [3 favorites]

I was also going to suggest Unity. The primary language for Unity scripting is C#, but as I understand you may be able to use it with other languages as well.
posted by tobascodagama at 8:26 AM on January 30, 2020 [1 favorite]

Response by poster: What have you got against Javascript?

I mean, "I don't like Javascript" is a full sentence that usually doesn't need much extrapolation, but if it helps answer the question, I find it unwieldy, unpredictable and unstructured.

Again, I'm sure not every criterion can be met here, but I doubt JS is the first language of choice for game dev mostly anyway.
posted by rpophessagr at 8:33 AM on January 30, 2020 [2 favorites]

posted by DarlingBri at 8:34 AM on January 30, 2020 [1 favorite]

Best answer: I'll also throw out Lua as a language to take a look at. I haven't played it, but the game Hack 'n' Slash actually uses Lua scripting as a core mechanic, which could be a fun way to see how you like it.
posted by enigmango at 8:55 AM on January 30, 2020

Best answer: With the emphasis being on "for fun", I would suggest an engine like Unity or Godot.

Like you, I'm a self-taught coder. I've never written code professionally – it's purely a hobby for me. And like you I cut my teeth on some Python projects, some C# projects, a bit of JavaScript/HTML/CSS. But ultimately, I wanted to make games. Oh, and I hate JavaScript too.

PICO-8 was my gateway. I know you've written it off, but there are some benefits: having all your graphics, sound and code integrated in one editor is very handy. Beyond that, it has a great combination of being quite bare bones, but also very well documented/tutorialed. So you have to learn a lot, but you'll be able to – particularly as you can dive straight into game design without having to worry about how to get a window onto the screen and so on.

After PICO-8 I moved to Godot, which I think is terribly underrated as an engine. In particular, your familiarity with Python will be a real asset: GDscript is very similar to Python in syntax and structure.

Unity I've dabbled with. No doubt it is an immensely powerful engine, and rules the roost in terms of assets/plugins and tutorials paid and free. If I was interested in making 3D games I'd go deeper. But for me, Godot (which does 3D but is a 2D engine at heart) hits the sweet spot of being quick and easy, but sophisticated enough to do what I want.

So, I'd give PICO-8 a spin just to learn some game programming principles. But if you really don't want to, a hearty endorsement for Godot.
posted by Ted Maul at 9:59 AM on January 30, 2020 [1 favorite]

Unity. Every free online and iOS game I play seems to be built with Unity.
posted by Thorzdad at 11:48 AM on January 30, 2020

Quite a lot of paid ones are made with Unity, too! They don't always advertise the fact, though, since the proliferation of asset flips on Steam and P2W gacha grinders on mobile unfortunately gave Unity a bad name.
posted by tobascodagama at 11:56 AM on January 30, 2020

Best answer: Love2d is a great little lua based game engine. It is very lightweight compared to something like Unity.
Additionally, everything is handled through code so you don't really need to spend any time learning a new user interface or ecosystem. It just provides an API and runtime for a bunch of game related things (graphics, sound, IO, event loop, etc..) but doesn't necessarily dictate how everything should be structured (whether this counts as a pro or a con is up to you).
It can do cross-platform but it may take a bit more effort for phone stuff than some other frameworks. You can see the steps here if you are interested.

If you already have some programming chops you can probably pick up lua really quickly: http://tylerneylon.com/a/learn-lua/
posted by Television Name at 12:59 PM on January 30, 2020 [1 favorite]

Best answer: Also, the original freeware Spelunky was made in Gamemaker iirc. Back when indie games were first becoming a thing this was one of the more popular game making tools. Its been quite a while since then though so I don't really know if the current version bears much of a resemblance to the older versions.

Edit: Yep it definitely was and the source is available https://yal.cc/spelunky-classic-source-for-gamemaker-studio/
posted by Television Name at 2:13 PM on January 30, 2020 [1 favorite]

Best answer: I came in here just to mention Love2d only to find it was already mentioned. It hit a very nice spot for me between power and ease-of-use. Lua itself is a very quirky language, but once you've learned how it thinks it's great.
posted by wanderingmind at 10:08 PM on January 31, 2020

« Older Golden Arm! Wait, no ... Radiant Form. Wait, no .....   |   How can I feel less cynical about the U.S.... Newer »
This thread is closed to new comments.