something about how we tweak physics to “work” better in games?
Ho ho! Work. Get it? Like in physics…?
something about how we tweak physics to “work” better in games?
Ho ho! Work. Get it? Like in physics…?
An anonymous donor asked a question that I can’t even begin to figure out how to answer, but they also said anything else is fine, so here’s anything else.
I’ve been avoiding writing about game physics, since I want to save it for ✨ the book I’m writing ✨, but that book will almost certainly not touch on Unity. Here, then, is a brief run through some of the brick walls I ran into while trying to convince Unity to do 2D platforming.
This is fairly high-level — there are no blocks of code or helpful diagrams. I’m just getting this out of my head because it’s interesting. If you want more gritty details, I guess you’ll have to wait for ✨ the book ✨.
How about do something on networking code, for some kind of realtime game (platformer or MMORPG or something). :D
Ah, I see. You’re hoping for my usual detailed exploration of everything I know about networking code in games.
Well, joke’s on you! I don’t know anything about networking.
Wait… wait… maybe I know one thing.
art: I bought a tablet — like, one with a screen, not a graphics tablet. But it’s also a graphics tablet, with Wacom pen pressure and everything. So now I can draw in bed, and have been doing some of that. Results are mixed; drawing on a screen is pretty weird, and undo is not as readily accessible.
I continued touching up my Lexy sprite from Isaac’s Descent — working on the walk cycle now. Not the most exciting work, but it looks much better.
I also drew a snake sipping coffee, for reasons.
book: I finally got through collision detection and some physics. This thing is really coming along now, and it’s cool to see it develop! I doubt I’ll finish the first chapter this month, alas — turns out there is a whole lot of groundwork to lay even for my tiny baby first game.
blog: Finalized a Sitepoint article. Did some more work on a new homepage, which is finally nearing completion, I hope.
spline: Wow, haven’t touched this in a while. Started implementing editing things, because glip has needed that for forever. Didn’t finish.
lunar depot 38: I participated in Ludum Dare 38! This time I teamed up with glip to do the Jam, so we spent three days scrambling to make a game together. (Spoilers for next week’s roundup: the game is Lunar Depot 38.)
This month, IndustrialRobot asked my opinion of FOSS game engines — or, more specifically, why I chose LÖVE.
The short version is that it sort of landed in my lap, I tried it, I liked it, and I don’t know of anything I might like better. The long version is…
Hi! It’s been a while. Per tradition, I didn’t write roundups while in the middle of frantically working on a video game.
fox flux: Mostly, I made a video game for a month-long game jam. It’s an hourish-long puzzle platformer and is somewhat NSFW but you can snag it from itch.io if you like. (If you install it via the itch app, it’ll patch automatically and more quickly in the future. Though I’m not sure how itch will handle the Linux “build”, which is just a LÖVE file.)
My ever-evolving physics code got some improvements again, but the biggest time constraint by far was the art — I am not very fast, and I had to learn a lot of things as I went. I’ll be writing about some of that in the near future. Still, it’s pretty cool that (with Mel’s indispensable advice) I managed to produce enough art for a competent-looking game.
I did all the sounds as well, though Mel composed the music, which made the whole thing much better.
Post-release, I fixed a few critical bugs, and I’ve been working on some little vignettes to make the ending a bit less, er, anticlimactic.
bolthaven: I also worked on Mel’s game for the same jam, but the script turned out to be much longer than expected, so it wasn’t finished in time.
blog: I’ve started writing both a Patreon post for February and a spontaneous post on some art insights from the past month.
Lots of work, but a short summary. I’m exhausted and moving a bit pokily these last couple days, but I’m more inspired than ever. I’ve got a lot of stuff to catch up on and plenty more gamedev to do; hope you enjoy some of it!
flora: I wrote another twine for Flora.
music: I spent a day with MilkyTracker and managed to produce a remixed title theme for Isaac’s Descent HD! It’s not entirely terrible.
isaac: I redid all the sound effects, slapped together a title screen, fixed a ton of bugs, added a trivial ending, and finally released a demo on my $4 Patreon tier! It’s just a port of the original Isaac’s Descent levels, so nothing particularly new or exciting, but I’m happy to see it in a more polished form. And now that everything basically works, I’m free to experiment with puzzle mechanics.
patreon: I wrote the monthly prologue, which is just so amazing, you can’t even imagine.
games: And then the latter half of the week went towards Strawberry Jam, my month-long horny game jam. I’m churning out art for a puzzle-platformer (surprise), while Mel is doing something more story-driven (surprise), and we’re both helping each other out. Rate of progress seems okay so far, but I do have to put together two games in only a month, and I’ve still got a couple other looming obligations as well. Fingers crossed.
I’m tweeting bits of progress in a thread on my secret porn account.
Next few weeks will largely be, well, work on video games!
I feel a little bit like life is disintegrating into chaos, but I’m plowing ahead nonetheless.
isaac: I finished porting NEON PHASE changes over to the Isaac’s Descent codebase, which is great! Now the only major blocker for a little tech demo is redoing the music (argh).
games: I finally finished playing through all the games submitted to GAMES MADE QUICK??, which took an incredibly long time, oh no. I dumped thoughts on the games in a Twitter thread, or you can browse through them yourself. There’s some pretty cool stuff in there, and I’m still amazed that much of it exists just because I said “hey let’s make some video games”.
It was such a smashing success that I also put together Strawberry Jam, a month-long game jam for making horny games, whatever that means. (The concept is NSFW, but the landing page is not.) I have two separate ideas I want to pursue, plus Mel is doing their own game and will need my help to put it together, so I have a very busy month ahead. We’ve both already started on the art for our respective games, and we’ve been doing some planning as well.
neon: I fixed a bunch of bugs but didn’t cut a new release yet, oops. One or two are still lingering, and I don’t want to make a ton of releases just for bugfixes.
I wrote down “fixed %”? What does that even mean?
art: I tried drawing some things and they did not come out as well as I wanted.
veekun: I did some actual work — I have abilities ripped to YAML and a script that successfully loads them into the database, and I’ve taken a stab at items. I have no idea when this is going to get done, though; I’ve got a mountain of work to do in February.
blog: I started redesigning and merging my projects page with the landing page for this domain to make a more useful index of work I’ve done. Not happy with it yet, but it’s getting somewhere, gradually.
Next month will be, well, video games. A lot of video games. Plus I have other time-critical stuff to do. Plus I have other not-time-critical-but-really-needs-doing stuff to do. Oh boy!
As is tradition, I skipped a week because I was busy making a video game with Mel.
Between that and our hellcats, I’ve been sleeping terribly again, so things are currently a bit of a slog. I have so much to do. Making slow progress.
Other than that:
I’ve also been putting some effort into re-revamping my list of work, since right now it’s largely a wall of text. Now that I’ve finally registered an account on itch.io, I’ve been putting our previous little games on it, which takes a surprising amount of effort to do well.
isaac: I’ve been cherry-picking the NEON PHASE work back to the Isaac HD codebase. It isn’t particularly difficult, just sort of tedious.
other game stuff: I’ve been planning NEON PHASE 2 with Mel, and I’m thinking about doing another game jam for February, and I wrote a little linear Twine under tight time constraints.
I’ve also been running through the games made for my jam, playing a few of them each day, which is surprisingly time-consuming. But several dozen little things exist just because I invited people to make stuff, and that’s incredible, and I want to see what that stuff is.
I still need to get out a demo port of Isaac’s Descent (argh) and finish loading SUMO into veekun (ARGH) and then I can get back to the… three? four?? games I seem to be working on at the moment.
It all started after last year’s AGDQ, when I lamented having spent the entire week just watching speedruns instead of doing anything, and thus having lost my rhythm for days afterwards.
This year, several friends reminded me of this simultaneously, so I begrudgingly went looking for something to focus on during AGDQ. I’d already been working on Isaac’s Descent HD, so why not keep it up? Work on a video game while watching video games.
Working on a game for a week sounded an awful lot like a game jam, so I jokingly tweeted about a game jam whose express purpose was to not completely waste the week staring at a Twitch stream. Then someone suggested I make it an actual jam on itch.io. Then Mel asked to do a game with me.
And so, thanks to an almost comical sequence of events, we made NEON PHASE — a half-hour explorey platformer.
I’ve spent a little time trying to embed a Lua interpreter in ZDoom. I didn’t get too far yet; it’s just an experimental thing I poke at every once and a while. The existing pile of constraints makes it an interesting problem, though.
I’ve now made a few small games. One of the trickiest and most interesting parts of designing them has been making them accessible.
I mean that in a very general and literal sense. I want as many people as possible to experience as much of my games as possible. Finding and clearing out unnecessary hurdles can be hard, but every one I leave risks losing a bunch of players who can’t or won’t clear it.
I’ve noticed three major categories of hurdle, all of them full of tradeoffs. Difficulty is what makes a game challenging, but if a player can’t get past a certain point, they can never see the rest of the game. Depth is great, but not everyone has 80 hours to pour into a game, and it’s tough to spend weeks of dev time on stuff most people won’t see. Distribution is a question of who can even get your game in the first place.
Here are some thoughts.
I have a teeny tiny pet peeve with dialogue boxes. Er, not dialog boxes — dialogue boxes, the ones in video games with scrolling lines of dialogue.
I recently wrote a dialogue box, and I saw a game that made this mistake, so here’s a post about it.
I’ve been dipping my toes into Doom mapping again recently. Obviously I’ve done it successfully once before, but I’m having trouble doing it a second time.
I have three major problems: drawing everything too small, drawing everything too rectangular, and completely blanking on what to do next. Those last two are a bit tricky, but struggling with scale? That sounds like a problem I can easily solve with charts and diagrams and math.
In the beginning, there was ZZT. ZZT was a set of little shareware games for DOS that used VGA text mode for all the graphics, leading to such whimsical Rogue-like choices as
ä for ammo pickups,
Ω for lions, and
♀ for keys. It also came with an editor, including a small programming language for creating totally custom objects, which gave it the status of “game creation system” and a legacy that survives even today.
A little later on, there was MegaZeux. MegaZeux was something of a spiritual successor to ZZT, created by (as I understand it) someone well-known for her creative abuse of ZZT’s limitations. It added quite a few bells and whistles, most significantly a built-in font editor, which let aspiring developers draw simple sprites rather than rely on whatever they could scrounge from the DOS font.
And then, nothing. MegaZeux was updated for quite a while, and (unlike ZZT) has even been ported to SDL so it can actually run on modern operating systems. But there was never a third entry in this series, another engine worthy of calling these its predecessors.
I think that’s a shame.
September is continuing the three big things in particular…?
music: I tried to reconstitute some of the song I lost last week. It wasn’t as good.
isaac’s descent hd: I implemented death, an inventory, and the staff, cleaning up some stuff as I went. The first room is now playable!
blog: I wrote and published a post about the
switch statement, made some fixes to a few recent posts, and worked on something about MegaZeux that I hope to finish today.
art: I doodled for the first time in kind of a while, including some semi-private streaming, which was nice. I did two daily Pokémon for the first time in a month, and they came out a little better than the previous ones. I drew an Eevee walk cycle as practice for doing the same thing as pixel art for Isaac’s Descent, and it turned out surprisingly well! Also worked a bit on a secret thing for someone.
veekun: I got 90% of the way to getting ORAS encounters, after hitting quite a few bumps in the road along the way. It’s a shame this has taken so long… and still isn’t quite done.
doom: I started on a vanilla Sandy tribute map on a whim.
Last week of the month and I feel preposterously behind on everything, even though my working-to-goofing-off ratio has remained consistently higher than it’s been in years. Argh. So it goes, I guess.
September is continuing the three big things in particular.
I had a drowsy day, but otherwise it was still an alright week.
blog: I published a post about music theory, which I oughta update to factor in all the stuff people have told me in the aftermath. I also wrote half of another post and stubbed out one or two more; just gotta finish some of them.
runed awakening: I did, er, the tiniest bit of planning, and then got distracted by music and game things for the rest of the week.
isaac’s descent hd: Physics is done. For real. I mean it. It works, and it works so good. It also has some tiny hints of gameplay now! I’m close to having the first puzzle room be playable: the switch works, the bridge appears and becomes blocking, and the spikes kill you. Just need to make the staff work and finish up the death handling.
music: I toyed with Renoise and LMMS, ultimately deciding I like LMMS more. I managed to make a decent chunk of a song that I actually like and that would work remarkably well as background music for Isaac’s Descent.
And then LMMS crashed.
I also dug out and cleaned off our keyboard, which had been buried in a closet somewhere for years. I taught myself to play the Pokémon Center theme!
veekun: I cleaned up some of the multi-version handling for this harebrained YAML concept. Also dug into ORAS encounters and got 90% of the way to actually extracting them.
I said last week that I’d dedicate a few days to writing, and I would still like to do that! Now is probably a good time to start. I’m behind on blog posts for the month, and I desperately want to get some momentum going with Runed Awakening again.
veekun is definitely not on schedule, but I’m getting excited and ambitious about working on it again, which is a really good sign. I don’t know how far along it’ll be when Sun and Moon come out, but that’s probably okay; veekun has always been a quiet technical resource, not a walkthrough. I think I’m going to try focusing on that idea in the future — for example, I’m probably at the point that I could create orthographic projections of all the maps.
I haven’t written anything for the book in a little while now, but it’s looking like Isaac’s Descent HD will be the final chapter, so working on it still counts as working on the book. Right?