LD 38 April 21–24, 2017

De-Railed: Player Combat Design Postmortem

1ef5a.gif
Alrighty, so I meant to do this earlier but work got pretty insane. So this is a quick and dirty design postmortem, I'm gonna lay out the decisions that went into De-Railed. I'm not gonna say I accomplished every goal, or even did everything particularly well, but I love chatting design and want to lay my thoughts out for folks who may take an interest.

The Core Design Goal

One of the first Combat Design Decisions was: This character is not a soldier. They should not be able to tear through enemies quickly, and their hit points should be beefy enough to be forgiving, but low enough that if a player wants to run from combat they have enough time to do so. The level design was intended to funnel players into dangerous zones, but to give them opportunities to flee, hide, etc.

Melee Attacks

MeleeAttackemIngame.gif
MeleeAttack/emInEditor.gif
To Accomplish the Clunky, slow, unweildly feeling I wanted out of Melee, I decided early on to do a few simple things.
A) I set it up so that a Melee Attack would halt your horizontal Movement. This means you can't just "Hack and Slash" Run through the level, you need to time your attacks. I did not however, stop vertical movement, so it remains possible to jump up and slash at a target hanging out on the ledge.
B) Animation Commitment: Attacks take a Loooooooong time to complete, and once you attack, you have to wait until the animation completes before you can take other action, and you cannot cancel the attack. There's also a cooldown after attacking before you can take action.
C) Melee Attacks do 2 Damage to Ranged Weapon's damage of 1. This translated to general play as players shooting wildly at a target, and finishing the enemy off with a Wendigo as they don't have enough time to shoot the enemy enough to kill it before it reaches them.
D) The Weapon Attack Box is pretty small, and extends only as far as the very edge of the weapon. It's also only around for a single frame.

Ranged Attacks

RangedAttackemInGame.gif
RangedAttack/emInEditor.gif
Ranged Attacks are designed less around animation commitment, and more around giving the player a choice in the accuracy of their attacks, they can either have highly accurate fire, or highly inaccurate but fast fire. It's a difference of a little over half a second, but in that time the enemy can close rapidly once disturbed. My intended play was that the first shot players took they would wind up, think about what they were doing, and then fire after a full second or so of aiming. I however, didn't want to penalize players too much for RNG making it so shots would "Barely Miss", so I applied light homing to the projectiles , as you can see in the editor view with the purple lines.

Health

I think this is where I made the biggest mistake in that I didn't adjust the health pool after testing. I set the HP Amount at 5 early on because it was a good square number, but I didn't have enough time to really test how this played. I honestly think at this point I should have lowered the HP Amount to 3. Health Packs were added at the last minute (Really the last Hour, but still), and threw off the way the game played and I never revisited it.

The Cutting Room Floor: Earsplitter Bombs

ThrowAttack_InGame.gif
If you're on controller, pressing (Y)/(▲) will reveal that I left this ingame, it was originally intended to cause the Wendigo to flee from an area, but it ended up getting cut at the last minute because the logic caused some really weird movements. If i had been more clever and less sleep deprived, I would have converted them to a flare of some kind and left them in, but alas, Hindsight is 20/20. My original intent was to make these very limited in use, they actually exist as a GUI Element and pickup-able item but it was disabled before I built the game.

What to do better for next time:

1) Have a better Sprite Animation System. I had to cobble that together at the very last minute and it sucked.
2) Spend more time generating content and interactables. The character system is very overbuilt for what exists in the world to form interactions.

Hope folks find this interesting. Chat me up here or on Twitter (@OccultGameDev) to talk design!

My LD 37 entry "Jim is Moving Out!" will be released this week on switch/pc!

I worked on it for nearly two years. Game will be released this week (19th July) for switch and pc. It was quite journey. But its done and im supper excited about it! Game trailer:

https://www.youtube.com/watch?v=sCgCypQCb3g

link to original entry: http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=88709

If anyone is interesting in store pages, here are some links:

https://store.steampowered.com/app/643940/JimisMoving_Out/

https://www.nintendo.com/games/detail/jim-is-moving-out-switch/

Procedural Map Spawning in Edge of Twilight

Still planning on a Post-Mortem, but I've had a few friends ask how we did the procedural maps (Map, only the first one made it into game for the Jam) for Edge of Twilight, our entry over here: https://ldjam.com/events/ludum-dare/45/edge-of-twilight

To Start, for those who aren't interested in playing (Side note: We could use a few more votes, give us a shot if you like Difficult Strategy Games!)... Here's a quick overview of the map configurations in games, and the XML that runs the procedural map generation service.

ProceduralMapSpawning_LDJAM45.png

The Scenario File, which is an XML Data Sheet, holds all of the Data that makes up the Game Scenario. It's loaded at runtime and parsed out to all of the sub-game functions. The one we care about is the Map Generator Service. The MapGen gets two crucial pieces of information, how big the map is, which is used to create a set of initial valueless tiles. And then it gets the list of procedural rules that it runs in sequential order.

To flavor a map, I use the SETTILE function, and tell it to set the map to tiles of that type by using the @ALL modifier. I can also use it to set specific points on the map as specific types of tile, using the @(X,Y) command, or using the helper @CENTER. If no positional modifier is specified, it will be random. I can also specify a modifier inside the spawner data, using the "on" tag, which will only allow the tile to be set on that type of tile. I can also restrict the range on the map, using the minx/maxx, miny/maxy modifiers.

By adjusting the order in which I change things, and how I layer the changes, I can achieve pretty good results considering the limited Tileset and timeframe we had to build the game. I wish we'd had enough time to write the other two scenarios, but a lot more goes into them than just the Map Construction, and we cut it too close on too many other vital features. But I'll cover that in a Post-Mortem later!

Thanks for giving this a read, and, I guess, Follow me on Twitter? I Don't know: https://twitter.com/OccultGameDev

We're In!

This will be our Eight Ludum Dare as a Team!

Our team is in a bit of flux, we may be assimilating a few recent grads from a local university, and our lead programmer recently got a new job in the industry, so things are a little uncertain.

Team Members: Programmer, Audio Engineer, Artist, Producer, Animator, and a Designer.

Production Tools:
Unity 2018.4, UE4, or GameMaker Studio 2
Blender 2.8
Houdini
PyxelEdit & Aesprite w/ Cintiq
FMOD Studio, FL Studio, Audacity
Adobe Creative Suite
Substance Painter / Substance Designer
Unity Collaborate for Source Control and Team Distribution

Prototyping Tools:
Shadron for Shaders
Pico-8 for Mechanics
Tons of Graph Paper and Origami Paper

If We Live to See April...

Oh god. The theme's going to be quarantine isn't it? I can't wait to slog through the countless COVID-19-related themes during the slaughter. It makes sense, I suppose. It's more or less the theme of every day conversation here. But I'd rather escape it for the jam.

theme_suggestions.png

The Team

We'll see who's around (or even alive) for LD46, but these are the usual suspects: - :computer: @daanvanyperen | coding | twitter, github, website - :art: @flaterectomy | graphics | twitter, soundcloud, YouTube, website, portfolio - :musical_score: @meatmachine | music & audio | twitter, soundcloud - :warning: @troop | playtesting | twitch | festive cheer - :warning: MisterOizo | playtesting | LinkedIn

The Tools

Stay safe out there!

SmallemThumbs/emfooter_pre-LD46.jpg

Sharing a few learnings!

Hi folks,

I am looking forward to starting the LD 46!

While waiting to start, I wrote yesterday a blog post on what we learned during our 8 past sessions with our small crew (yeah jamming as a team). :writing_hand:

I'm sharing here some key learnings and tips & tricks. About how to manage our energy, pick our concept, prioritize what we do, be laser focus, carefully manage our time, polish our creation, and our accidental successes.

Here is the blog post :bulb:

I wish you all a great game jam!!! :rocket:

Endlesspeak is ready!

IMG_3679.jpg

Good luck all! Wish you all no blue screens.

Finished My First Ludum Dare!

Finally finished my first Ludum Dare. Been meaning to actually do one of these for a while now.

Check out Circadian here: https://ldjam.com/events/ludum-dare/47/$225330

River Dance : progress report

Dancing in a limited space : hope it goes well

riverdance_demo.gif

Left/Right animation to be done next.

River Dance : Progress Report 2

With almost 14 hours to go I have random generation issues with my public bathroom

riverdance_demo4.gif

The girls don't seem to mind

Finished My Entry - SkyIsle TD

Well, I've finished up my game, I unfortunately have work, so wasn't able to add things like audio and polish, but I'm happy with it.

it's a tower defense taking place on a floating island, and the more buildings you build the faster it erodes.

Here's a link if anyone's interested in trying it out https://ldj.am/$379386

ld54 1.png ld54 5.png