Ludum Dare 51 September 30–October 3, 2022

4th Time

Like it says this is my fourth time participating in Ludum Dare and I couldn’t be more excited! Here’s to hoping I make something by the end of it.

Reminder: Unofficial LD51 Keynote

A reminder for those who want to get involved in the unofficial LD51 Keynote, please see this post:

https://ldjam.com/events/ludum-dare/51/$296894/unofficial-ld51-keynote-get-involved

Send your video / audio / comments by following the details outlined in the original post! Thanks ♥

I'm in

Games go brrrrr

My anticipation is palpable

Here are my votes; I originally voted for 10 secs but tbh, it was one of the themes that I had the least unique ideas for so I changed it lol. Regardless of what it turns out to be tho, I've got all sorts of concepts stewing in my noggin over these so I'm excited to find out what it'll be tomorrow! Screenshotem20220929/em144804.jpg

The themes I voted on :

The themes I voted based of how well it would work on a PuzzleScript game. I would start the game for the jam if the theme isn't too limiting for me.

triple.png

Screenshot 2022-09-29 125600.png

Ludum Dare Hard Mode

I'm looking into creating a native game engine from scratch in C and open-sourcing any tools developed along the way.

Development Strategy

Development will occur in two repositories: code (open-source), team (closed-source). - code repository: C modules that might be open sourced - team repository: everything else needed to plan & publish an actual game - code: main branch: released \ open-sourced modules - code: dev branch: unreleased \ experimental modules - code: staging branch : modules picked from dev to merge to main to release

Since the team repository is closed source it will be okay to store todo lists, drafts, and screenshots in the main branch so that they are not lost in a discarded topic or feature branch.

Embedding Files in Comments

C modules will have additional files embedded in comments.

In the following example there is a test.c unit-test program and test.sh runner embedded in the mylib.h header library:

``` // mylib.h - useful functions for video games

pragma once

include

typedef uint8t U8; typedef uint16t U16;

define U8MAX UINT8MAX

define U16MAX UINT16MAX

define def static inline

//:test.sh cc -Wall -Wextra -Wpedantic -O3 test.c -o test; ./test /*:test.c

include "mylib.h"

include

include

int main(){ */

// sadd : saturated addition def U8 saddu8(U8 a, U8 b){ U8 c=a+b; return c < a ? U8MAX : c; } //:test.c assert(saddu8(128,128) == 255); def U16 saddu16(U16 a, U16 b){ U16 c=a+b; return c < a ? U16MAX : c; } //:test.c assert(saddu16(32768,32768) == 65535);

/*:test.c printf("okay. "); return 0; } */ ```

Note: LDJam.com makes comments hard to read (very low contrast), but they are easy to see in my editor.

A tool then copies the original file + embedded files to new directory and runs an optional command:

codetool mylib.h /tmp/mylib/ ls mylib.h test.c test.sh codetool mylib.h /tmp/mylib/ bash test.sh okay.

This way related files for experiments can be stored, drafted, and discarded together without littering the repository.

Future

I'm also prototyping a dependency resolver so codetool can copy imported modules to the output folder as well. The resolver parses dependencies from embedded comments without needing a separate folder or metadata file per unit. My hypothesis is that embedding files in comments will be useful for attaching unit tests, examples, manuals, build scripts, and shaders to single-file modules since C has no default package manager. Instead of embedding a test.c program in a mylib.h library, it might also be possible to embed a mock mygame.h library in a game-engine.c program. Not sure how this will play out yet.

Back for another Jam!

Stoked to get back, last LD Jam I did was LD46. I normally build in GameMaker but wanted to give JS a try for the embedded game option! We'll see how it goes, best of luck to everyone competing.

Fixing my Input System for Ludum Dare Day 4

Today I've managed to finally finish the Input System :). Of course nothing's perfect and I will have to add and rewrite a lot of things after the jam, but for now it's good enough to make a game with.

XInput

As I said before, I was using Unity's legacy Input Manager (UIM) for handling gamepad input. If you don't know: UIM sucks, especially if you're working with gamepads. So I've decided to ditch it and instead use xinput.

IMGem20220929/em223231123.jpg

Turns out: xinput is kinda cool. It's fairly simple and easy to use. It may not have the best support for non xbox controllers out of the box, but for making simple game's it's more than plenty. ~~besides, steam input handles everything these days anyways.~~

Referencing input

If you want to get the state of an input, you can call it out by its name via the Input Manager. However, this isn't the best, as you have to know how something is called. That's where input references come in: they are just a fancy string that stores a reference to an item and allows you to select it in a window.

Screenshot 2022-09-29 223430.png

In the old version, they used to store the group name and item name, which worked, but could easily break when renaming items. And since this new version uses guids, the references store those instead.

Togglers

Another great feature of qASIC (a collection of tools which this input system is a part of) are the togglers: they are just these really simple scripts that toggle objects when you press a button. They are great for pause menus, hiding UI and even toggling things such as a cheat console. Because they are so simple, they required me to literally modify a single line of code to get them working again.

Screenshot 2022-09-29 223442.png

Remapping

This was another interesting one. I don't want people to remap gamepad keys in the keyboard menu, so I had to think. In Cablebox keys are stored as paths (e.g. key_keyboard/W, key_gamepad/RightStickUp). This makes my job fairly simple as I just need to check the root path to identify the controller type.

Screenshot 2022-09-29 223539.png

Also, the keyboard device was listening to my mouse. You can imagine how fun it was to click and automatically assign my mouse on every binding. So I had to implement a small keycode exclude list and there we go.

Finished?

At this point I've compleated every required feature for Cablebox to function. Now I'm gonna do other pre-jam activities and get ready for this thing. It's been fun, but everything has to come to an end at some point.

Also no, I won't release this thing, it's probably unstable and I will probably have to crack it open during the jam anyways. For now there's the old version that doesn't have gamepad support, but it's really bad compared to the development version.

I guess I'm in

In a little more than 24 hours a new Ludum Dare will start. For the last week I thought that I wouldn't be able to participate due to other commitments but a few hours ago plans changed so I guess I can make it, at least for the first 24 hours of the compo. I aim for the compo but I may spend some additional hours on my game on monday if necessary.

I hope this one works out better than my last attempt. :blush:

Engine: Godot
Graphics: Gimp
Audio: Audacity, LMMS
VCS: GIT with GitLab
OS: Manjaro

I'm quite excited for this one and wish you all the best of luck.

c++ game engine

i love c++ and i tryed many engine and i would like to have a c++ game engine to use not unreal because my pc will blow up

thanks.

So close to the day, prepping the base code!

gameplay-gif-with-control-settings.gif

We have no art assets in the game yet, so that we're not excluded from the sound & art voting categories. Being a full time software developer with a lot of experience, I've been spending this week hammering through base code and infrastructure, in preparation for tomorrow's theme drop:

  • HTML5 and Windows builds pushed to itch.io automatically when a git tag is created, within minutes. No manual exporting required, the automated pipeline does it for us.
  • Empty placeholder game title screen, ready for title screen artwork
  • Control re-mapping menu system, allowing players to remap their controls for accessibility needs
  • Graphics settings system, toggling full screen, borderless window, etc
  • Sound settings system, controlling master, sound effects, and music volume
  • Credits page, with the team members listed for the game jam
  • Movement and jumping of a placeholder graphic protagonist, play tested in a sidescrolling environment built with black square tiles
  • Moving through doorways, represented by placeholder squares at the moment
  • Damage system where the player respawns from the last door exited when they take enough hits, currently just a numeric representation in the top left
  • playtastygames.com website for our game making collective.
  • public discord invite link

Less than 24 Hours and I'm losing my mind

Every time it rolls around I get so excited and this time its more of the same. In the past I have been unable to finish my entries but this time I'm gonna stay optimistic. I've learned a lot since my last entry, I've become more confident. I don't know if my game will be good but I'm excited to give it my all.

Good luck to everybody else participating! Love y'all!

Theme Poll is going strong at 211 voters!

What themes are you voting for?

* Currently, "Every 10 seconds" is still in the lead at 83 votes, followed by "Harvest" at 78, and "Making connections" at 68. *

Thanks to the 211 people that have voted so far in the Theme Poll! If you haven't already, feel free to click the link to cast your votes, then see the live results. (This is just for fun and usually doesn't predict the actual theme, but historically it's usually one of the top 5 or 6, plus it's fun to do.)

Take the Poll!

Poll-3.png