Hacker News new | ask | show | jobs
by kris-s 1720 days ago
If you've never tried programming a game I would highly recommend it. There are many aspects that make a game a really interesting challenge: input, rendering, sound, and managing large global mutable state. Ludum Dare is a good excuse to dip your toes in.
3 comments

Especially once you realize the difference between super purpose drive micro game code (a big event loop with lots of variables at the top) and game code with well designed scaffolding (entity component systems, etc). I think everyone is destined to make at least one gobbledegook game before they can appreciate all the benefits that a well designed system brings. I recommend pico-8 or similarly designed constraint driven virtual consoles to maximize the learning experience.
LD doesn't help learn any of this. The time constraints force most entrants to use Unity, GameMaker, or some other framework/engine that abstracts learning about any of this stuff away.

If your object is to learn, better to try out Handmade Hero, entirely from scratch: https://handmadehero.org/

If you think using an engine means you're not going to need to worry about these things, you're going to have a bad time. Make games, not engines. If you want to make games, make games, not engines.
I agree that LD is not the right time to learn how to do pointer arithmetic, or how to draw a pixel.

What the time constraint teach you is to adjust to a time budget. Wear many hats. Improvise. And Finish Stuff. All very valuable lessons that will help any developer.

There's a healthy and beautiful spectrum of tools and languages out there between the "all included" of Unity and the aridness of plain C. Have you tried Löve? It abstracts a lot, but a lot of what it abstracts is really not that important for making games, in my opinion.

+1 for love2d, have done several ludum dares with it, and I can honestly say it's the perfect tool for the job.
I've done all of those things every time I participated in Ludum Dare, and I've used a game engine only once. The time constraints make you pick your battles. You have to pick technology you're fluent in, but there are great input/output libraries for games for literally every language out there. I picked Javascript, and even did one in 3D with a procedural audio track that was affected by the plays.

One time I decided to make a multiplayer game on a hexagonal grid. Just getting the hexagonal grid working took me over half of the time, didnt produce much of a game at all that time, but it was still fun, it's ok to fail.

What libraries did you use in JavaScript? Three.js or a game engine or just WebGL?
Three.js
This comment is wrong. You still learn all those things using a game engine. You don't have to write your game in pure C and handle everything from first principles to learn how to manage those aspects of game development.
Making your own engine is definitely a good learning experience, but it’s not required for making a game. Game engines are tools for making games, they don’t make the game for you.
You don't even have to "make your own game engine" - often you just take a windowing library, optionally with some barebones renderer (like SDL or Allegro) and simply make a game without an engine. This approach was very common at the beginnings of compos/jams like Ludum Dare, it only changed somewhat recently with increasing popularity of ready-made engines.
Ludum Dare actually outdates Unity ;)

I've done it 8 times, once with GameMaker, twice with Unity, and the rest were custom.

I have done Ludum dares on and off since #6. I have yet to use anything like unity. Closest to a framework would have been using OpenFL which is a Haxe cross-target reimplementation of the Flash API.

For the last few I just do VanillaJS on canvas.

I did a non-Ludum Dare weekend game jam, and I built this:

https://github.com/echelon/laser-asteroids

No unity, no unreal, no engine. Learned it all as I went.

Game jams are a fantastic time and place to learn.

The time constraints of AAA game dev force many entrants to use Unity too ;)
I doubt a normal person can learn all that and produce something interesting in just 48h
My favourite are the 10-14 day jams. You can make something really cool with that kind of time limit. I used a jam last year that allowed pre existing code to make a little playable scenario out of my projects game systems and it was wicked for feedback about game feel. Before that, made a little village builder game from scratch.

2 days though? I don’t know what I would do, its not much time

For something that feels decent enough to share the minimum for myself is three weeks. Functional and verification testing is really important, and then deployment testing after that. These take time.

I look at the experiences of Phil Strahl and I find it really interesting to see from year to year how his experiences with Ludum Dare have changed and what he has learned. It does seem like familiarity with tools is really important.

I like his joke in his Ludum Dare 45 post mortem about how his game launches, testing over, passed.

Getting older I know that having enough sleep is really important for having a beautiful day the next day. I'm not sure how compatible getting enough sleep is with a 48 hour hard limit. Looking after physical health and mental well-being seems really important at this stage in my life. I'm glad that people can get enjoyment out of participating in Ludum Dare and I know everyone's experience will be different because everyone is different. I wish generally people felt less stressed because some of the limits we place on ourselves are optional.

https://www.youtube.com/channel/UCUMFVcnkIM5L4V8fA24C51g

> I'm not sure how compatible getting enough sleep is with a 48 hour hard limit.

It's perfectly compatible I think. The difference between 8 hours of sleep or 16 hours over two days is 1/6 of the whole jam, but the difference in productivity will be much less, or even better with more sleep.

You can't learn it all in time, but with some prior programming experience, you could make something on the scale of Tetris in 48 hours. Even a tiny project like that teaches a lot about game programming concepts.
It's a pretty humbling experience to try though. Before you try it's not obvious why it would take this long, but all the little things really do eat up your time.
I agree with this sentiment. A little toe dip can't hurt though :)