Joined 5 years ago
Officially started my jam this afternoon! Here's a gif from three hours in:
To those of you following along, I had to find a new ffmpeg command to get better palette usage in the gifs. This code is pretty similar, but generates much better images than the last command I posted:
ffmpeg -i source.mp4 -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 -ss 1.5 -to 10.5 output.gif
On the code side, I've been messing around with curves and color tints, to make sure that my plan for art tomorrow will work. The idea is to draw all of the vegetables and leaves in a monochrome white/gray style, and then tint them in code so that they can change colors as they grow. I may also tint the vine based on what vegetable it grew from, but I have to see if it looks good. I'm working on the vines right now, they will be built up leaf by leaf, likely tracing a slightly randomized curve of the real path on the grid.
(not a button, just needed a non-white background for these images. is there a better way to do that?)
In gameplay, I'm making decent progress. You can see drag and drop working in the gif (it's even disabled until all cards are dealt), and when the board is finished it'll register valid moves and draw the next card from the deck. The bouncing path that cards follow is actually just a single Curve2D with well placed control points, so their positions only interpolate to the numbers 1-5 from 0, with a delay. Super easy and satisfying polish, that I can tweak later.
As a final thought, I'll admit that I haven't been sprinting as much as I wanted to yet. I still have ~12 of my first 24 hours left, but gameplay and balancing was supposed to be mostly done by the end of day 1. I'm taking it easier than a weekend jam because I don't want to burn out midway through, and I even think sleep is more important right now. We'll see if that comes back to bite me later… on to day two!
Well I promised daily updates, but I'll keep this one short because I didn't start my jam today. Last week was very busy, and I kind of crashed hard today because of it. I decided to take the day to just relax and play video games, to recover my energy before this seven day marathon kicks off. But I can only procrastinate so long, so I'll be starting tomorrow morning for sure!
I also looked into imagemagick and ffmpeg today, to get a decent lightweight mp4 to gif converter set up. The command line interface is easier for me, and it's just one line to get from a recorded OBS mp4 file to a trimmed, resized gif:
ffmpeg -i source.mp4 -r 15 -vf scale=360:-1 -loop 0 -ss 00:00:03.5 -to 00:00:30 output.gif
The options here let you set framerate (15 FPS, regardless of video input framerate), size (360px height with preserved aspect ratio width), and start and end times in seconds. This has been a bottleneck in previous jams for me, so I'm glad I sorted this out ahead of time. It takes about 5 minutes to record and upload a gif now, which means I'll be doing them in every post this week. See you guys tomorrow!
I'm in for this jam! Using Godot again, Photoshop for art, PxTone for music, and probably bfxr for sound.
I also want to do a daily blog post that covers everything I'm working on and my process, to participate in the community here more and add some content to the front page, so this is my first one of those. Here's some music that should get everyone in the mood for a climate change jam, and hopefully get everyone to read this whole post…
I haven't had the best luck with longer jams, mostly because it feels like so much extra time that I don't scope properly, so this time around I'm going to change up my standard practice. I've planned out my tasks for every day of the jam in advance, and I'm scoping for 4-5 days instead of the full seven. This should give me time to fix bugs, polish, and get those sound effects and music tracks done for once. Here's my starting plan in case anyone else is interested:
The design I want to do is inspired by Pieces of Cake and Starseed Pilgrim, it'll be turn based and use randomized edge connectivity but other than that I'll be designing as I go. Basically, hand of cards, they have different growth behaviors, and possibly can only attach to the level on the randomized sides that have arrows. Good harvests add cards to your deck, so there's an element of endless play, but I might have an ending as well for highscore purposes. P1 Select had a cool score averaging mechanic that works better with a finite game experience, if you haven't played that (free!) game yet you are really missing out.
One of the big things I also want to try out in this jam is the 2D animation system in Godot, particularly with Polygon2D rigs and Skeletons. Maybe even mess around with dynamic polygonal water effects… The plan is to basically get the gameplay done first, and then try these systems as early as possible, to make sure they are useable in gamejam time constraints. If I'm struggling by the end of day 3, I have the time to revert to other animation styles, and a full "extra" day reserved for it.
And speaking of the extra days, they're basically my time cutoffs for different aspects of the jam. Code must be done by day 5, art should be done by day 3 but can be polished up to day 7. The art extra day would be a paintover of existing assets only, so I just have to reimport everything and it will work in-game without changes. If things are going particularly well, though, I might add more content for the transition scenes and actions, since everything else will be done by that point.
Day eight is only for things that are non-essential, and will be bumped up if I'm working much faster than expected. Since I plan to blog post every day, I'll have WIPs I can use for project pages, and everything else would just improve the size and speed of the export. Nice to have, but not required.
Okay, day 0 tasks are basically to set up an empty project, grocery shop, do laundry, etc. I'm starting my jam tomorrow when I wake up, so the day 1 post will be later that day, when I have some work to show. Good luck everyone! And if anyone else wants to do daily blog posts with me, I'll be happy to read how other people do their jams.
Phew, that was a long weekend. I was able to get some decent opponent AI working in the last 12 hours, and adjusted the 8 unique player decks accordingly, so they mostly ramp up in difficulty. Make sure you win games early and get new cards, or the later battles will be much harder to win. And Inga is a little easier to start with than Sly is, but the two players are basically the same otherwise.
Since I had to submit to unranked because I overscoped it this time, I'd really appreciate some comments on the game. I even added a highscore timer and reset system so we could take this duel theme a little bit further! XD Here's some screenshots to pique your interest:
Thank you for another amazing event! I'm going to catch up on some sleep now, but I'll be back for some playing and rating tomorrow.
This was a tough decision, but I've made the call. it's 7am for me right now, and I'd prefer to be a day late with a better game (and some sleep), instead of trying my luck again on an all-nighter. Who'd have thought that doing the polish phase first was the wrong way to do things? Not I, surely!
The game is shaping up really well, but it'd take me an hour to make gifs, so I'll save that for the end. Characters breathe and have conversations, and they bounce around when they walk, south-park style. You can select between two different player characters, with their own unique starting decks. Each opponent has a custom deck of cards selected from 19 total configurations, and you'll be adding their cards to your own deck as you go. Clearly overscoped, but I still think I'm 10-12 hours away from done, so one more day should do it. Might even have time for decent music and sfx at the end there.
I don't want to blame Godot for this, but there are a lot of gotchas for a first-time user that have eaten up hours of my time. FYI for everyone else, call randomize() in a _ready() function or the code is fully deterministic, and set your Camera's drag values to zero so it actually goes where you tell it to go, and use Buttons for drag and drop functionality by registering the button_down and button_up signals, and make sure all auto-imported graphics are re-imported with filter off, and… well, I think I've made my point. Probably should have looked into some of this a few days prior to the jam, so I know it's mostly my fault. I'm actually impressed with how much has worked well, to be honest. It's just a much bigger system than something like puzzlescript.
Wow, already 25% done with this jam. I'm doing something strange this time around, because inspiration struck and I wanted to do the art while I was motived. So why not do my polish phase first?
Yes, it's a card battler with AI opponents. And yes, so far all I have on the code side of things is card generation and drag and drop functionality. I really like having all the art I need done, though, so we'll see if this was the right order for me to do things. Definitely going to try for a better graphics score than last time now!
it's a duel you'll get. I spent all of last night reading up on GDScript, so I know how to write an AI.
for i in [0,1,2,3,4,5,6,7,8].shuffle(): yield(i)
Cower in fear at my amazing power!
Last time was a lot of fun, this is a great game jam community! And thank you all so much for the three trophies on Elementary, I was kind of in shock when I saw it got first in gameplay and third overall. Glad you guys enjoyed it!
This time around I'll be trying out Godot for the first time, for a 2D puzzle or card game with nicer graphics, but still cheaper build overhead than Unity. There's still that CPU particle effect rendering issue with web exports and other clunkiness I'll have to work around, but compared to Unity's bugs Godot feels more efficient and stable, especially for 2D work. I'm excited!
Photoshop or GraphicsGale for art.
BFXR and PxTone for audio. (Web version if you're interested in checking it out)
Goals: (very likely a choose-two-of-three scenario…)
Make something fun and puzzle-y again!
Improve my art and audio scores!
Actually sleep!
TL;DR: It went pretty okay, and I like writing, apparently…
This was my first Alakajam, and I had a lot of fun in the solo division! My experience with the community here has been really good too, people giving and taking constructive feedback, and just being very invested in making and talking about fantastic games.
I joined this site because I'm kind of losing interest in Ludum Dare's whole thing since the website redesign. It's clunky and poorly organized, and makes it difficult for people to jam and rate games. Even though they're getting closer to where the site used to be, I still feel like there are huge gaps in the website's design, and a group of people that refuse to acknowledge the problems exist at all. This place is awesome, and is already everything I want from a game jam site, so I'll definitely be sticking around for more!
But that's enough about that, on to the game I made…
My goal with this jam was to get C O N T E N T in, and make as much game as possible. As a programmer, I tend to overscope my designs in weekend gamejams, and though the code turns out pretty solid there's very little gameplay to speak of. I was looking into puzzlescript and pico-8, because they limit how much code you can really add, and to be honest I was hoping to try puzzlescript out once because it felt lightweight and content focused. Two hundred seventy-seven rules later, I'd probably change my opinion on that, but there's no doubt it worked out for me in this jam.
I was actually surprised that the theme was Spellcasting after AKJ#1 did Alchemy, it was the choice in the top ten that I never thought would get through. So all lazy brainstorming of the finalists thrown out the window, I tried to figure out a way to make a puzzle game where you picked spells, in a framework that only lets you move a single object called Player around the screen…
I finished my logic on day one. Two days is not a lot of time, and I set a goal of having all the mechanics and most of the art done by the time I went to sleep on Saturday. Lots of problems were solved, like nicer tilesets that had depth, and that whole player/finger swapping issue, and three of the four spells were fully coded and arted. I made tweaks to everything in day two, but being able to start making levels as soon as I woke up definitely left time for bugfixes and polish. And sound effects and music.
I made fifteen puzzle levels in 48 hours! Even though my original goal was to have something like 20 levels, people have been able to play my game for over an hour, and that really means something to me. In day two I was making a new level every hour, from figuring out how to use the mechanics I had already implemented in unexpected ways, to laying out a basic plan, to adding enough spells and details, to brute forcing every solution to make sure there were only one or two ways you could solve it. It was a lot of work to do, and some levels suffered minor issues because of this time crunch, but I'm glad that this is where I ended up spending most of the weekend.
I stayed focused and worked all weekend. I started when the timer did, and put a solid fourteen hours in day one. Then I put another twenty in day two. There were times when I wanted to watch some TV, or play a game to relax, but I just kept working through it. That's a first for me in gamejams, and I attribute it to the fact that I saw how far I was getting, and didn't want to lose any momentum.
Let's address the elephant in the room, the graphics are pretty bad. Puzzlescript limits you to 5x5 pixels per grid space, and I actually spent a good 10 hours of the jam getting things to go from this standard puzzlescript style:
To this slightly more detailed art:
But there wasn't really much I could do beyond that, especially in a weekend. A lot of people on here have convinced me to never work in puzzlescript again, off of this limitation alone.
In a related topic, the font I made for the cutscenes has been particularly singled out as being illegible, which sucks because the whole goal was to make nicer cutscenes with some character instead of centered text on a black screen. I get it, it's not the best, but it really defeats the purpose of cutscenes if people can't even read them…
A few people had trouble figuring out what was going on in the puzzles. This is probably art-related too, but it was a shock to me. If you can't understand what the puzzle is because of the visuals, then I've failed as a designer! I think it boils down to two things: the targets are too big, and obscure important background details, and some objects and effects needed longer animations to be more visible. Possibly a third reason is that people's eyes glossed over when they didn't like the art, so they didn't even bother to try planning out a strategy, but I'll give people the benefit of the doubt here and say that they felt this way because I did not take advantage of the space properly myself.
I pulled an all-nighter up to the submission deadline. Yeah, I know, it was dumb and pointless and just… why? The other side of motivation and momentum is that sometimes you don't know when to stop yourself. Being self-employed and a bit of an insomniac, I already have a pretty loose relationship with sleep schedules, but I would not recommend that you do this, ever!
I'm actually pretty happy with the finished product, and I think it holds its own as a full puzzle game experience. I plan to add better music (a 30 second loop doesn't cut it for an hour-long puzzle game) and fix a few art and font issues in the near future, but otherwise I'm calling this project a success and moving on to the next one.
And speaking of that, the 7 Day Roguelike Challenge starts tomorrow… I might adapt this spellcasting design into a roguelike with enemies, and add another concept where you capture enemy attacks into new attack cards for yourself. Pico-8, don't let me down!
That was a mad dash at the end there, but I'm really happy with how Elementary! came out, especially as my first puzzlescript game ever. 277 rules and over fifty 5x5 objects, it's a beast of a simple puzzle game, and nearly bug-free… just that one bug where wind turns into fire at the screen edges, that I didn't have time to re-logic, so all the levels just have extra thick borders. XD
I'm going to take a nap now, but I'll be rating everybody's games this evening. Here's some gifs: