4 ms·
I love love2D. It's really a breath of fresh air. I've made many little games and prototypes with it. Lua is fun, and the doco is great. I highly recommend it a
by keyle 3y ago
I love love2D. It's really a breath of fresh air. I've made many little games and prototypes with it. Lua is fun, and the doco is great. I highly recommend it as a very first dive into game programming.
If you're looking in that realm I also have to mention RAYLIB [1]. It might remind you of the XNA days, except it runs on many platforms and it actually works! (sic.) It's a Borland C style one-file include with some serious power. It's also a ton of fun until you segfault 3 mins into gameplay and you have no idea why. But then you can only blame yourself!
Final plug is of course PICO8. Very different style once again but so much fun[2]! Simple, cheat-sheet style programming, with all batteries included (pixel/spritesheet editor, mini DAW). And the productivity might surprise you, as you don't agonise for days on your third redesign this month.
All of these have vibrant, helpful, communities. You can't go wrong for fun.
[1] https://www.raylib.com/ https://www.raylib.com/
[2] https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
- dgb23 3y ago> It's also a ton of fun until you segfault 3 mins into gameplay and you have no idea why. But then you can only blame yourself! Raylib has a ton of language bindings. I've been using it with Zig, the integration was seamless and have not encountered these types of bugs yet.
- stratts 3y agoYou don't even necessarily need bindings to use Raylib in Zig. It uses Zig's build system so you can just clone Raylib's repo, add a couple of lines to build.zig, and it's ready to go with autocompletion and everything. Both Raylib and Zig include all dependencies too, so I was able to build a single 700kb .exe from Linux, copy that to my Windows machine, and it just worked immediately without any issues. Pretty amazing.
- rishav_sharan 3y agoWould you have any tutorial on how to do this? I am unable to get zig .11 to work with the latest raylib without binding libs. I am not sure what all changes I need to make to build.zig
- stratts 3y agoThis is what works for me, assuming an clean project created using 'zig init-exe': At the top of your build.zig, import the raylib build.zig inside raylib's /src folder (exact path will depend where you've cloned raylib) const raySdk = @import("raylib/src/build.zig"); Use the imported addRaylib() function to build raylib, then link to the exe and add include path var raylib = raySdk.addRaylib(b, target, optimize, .{}); exe.addIncludePath(.{ .path = "raylib/src" }); exe.linkLibrary(raylib); After that, you should be fine to just use @cImport to use raylib within your project const ray = @cImport({ @cInclude("raylib.h"); }); pub fn main() void { ray.InitWindow(800, 450, "raylib [core] example - basic window"); ...
- rishav_sharan 3y agoThank you. It worked perfectly for me. I was doing most of these but I was messing up the include path. your code samples helped me fix the issues in my build file. Have a great day!
- archargelod 3y ago> Final plug is of course PICO8. Cannot not mention a Tic80. It is a FOSS alternative to PICO8. Main differences are: 16:9 aspect ratio, no cpu limits and many languages to tinker with: lua, js, moonscript, ruby, squirrel, wren, fennel, janet, wasm, ... and just recently - a Python support was added. https://tic80.com https://tic80.com https://github.com/nesbox/TIC-80 https://github.com/nesbox/TIC-80
- dicytea 3y agoThere's also these: - https://github.com/kitao/pyxel https://github.com/kitao/pyxel (Python) - https://github.com/minigdx/tiny https://github.com/minigdx/tiny (Lua)
- marttt 3y agoAnd also Load81 by Antirez: https://github.com/antirez/load81 https://github.com/antirez/load81 (Lua).
- niutech 3y agoThere are more: https://github.com/picolove/picolove https://github.com/picolove/picolove (Love2D) https://pixelvision8.github.io/Website/ https://pixelvision8.github.io/Website/ (Lua) https://hallucino.itch.io/px8 https://hallucino.itch.io/px8 (Lua/Python) https://liko-12.github.io/ https://liko-12.github.io/ (Lua) https://github.com/antirez/load81 https://github.com/antirez/load81 (Lua) https://wasm4.org/ https://wasm4.org/ (WASM)
- CodeL 3y agoGreat to hear about the diverse tools available for game development. Whether love2D or PICO8, there's something for everyone, from beginners to seasoned developers.
- TylerE 3y agoWhat is so fun about lua? The few times I've come into contact with it I've been...less than thrilled with what I've seen. Looks like a lobotomized version of a language I'd like, with ugly, verbose syntax.
- brooke2k 3y agoit's kind of like lisp's ugly cousin. Super-duper simple at its core, built around a single data structure (tables instead of lisp's lists), and flexible enough, thanks to meta-tables, that you can build extensions on top of it to fit it to what you need
- keyle 3y agoIt's a lot more consistent and predictable than Javascript.
- sssilver 3y agoI wish PICO-8 and TIC-80 doubled resolution for the IDE part. The fonts make it hard to do serious long work and working in an external IDE isn’t as fun for kids.
- TylerE 3y agoSeems like a good way to teach about sub-pixel rendering and HighDPI. Perhaps abstract so the screen is an addressable pixel (so as not to break the world), divide each virtual pixel into, say, a 4x4 submatrix (or even 8x8, 16x16, etc), and have new (prefixed?) functions that work on the sub-pixels (which ideally map 1:1 to actual screen pixels). For back compat, address pixels with two offets..one in the virtual grid, and one for the sub pixel.
- munificent 3y agoI've been working on a fantasy console for several years now that is essentially that: a sort of "16-bit" scale version where PICO-8 is more "8-bit" scale. No idea if it will ever see the light of day, but it's been a very therapeutic hobby project.
- sssilver 3y agoIs it opensource? I'd love to check it out.
- munificent 3y agoIt isn't. I love open source: my two books are open source, I work in open source, and almost all of my hobby projects are open source. But after spending all day coordinating with users and combing through the issue tracker, there's something very relaxing to me to have a little project where I don't feel "on stage" whenn working on it. It's good for me to get a social break.