larsiusprime / tdrpg-bugs

Public bug reporting repository for the tdrpg-haxe project (DQ1-haxe and DQ2-haxe)
38 stars 6 forks source link

Cut or Missing Content - Speedrun Mode? #963

Closed dqhol closed 6 years ago

dqhol commented 8 years ago

"Officially supported game modes such as "Hero Mode" and "Speedrun Mode""

http://www.fortressofdoors.com/supporting-an-indie-rpg-for-four-years/

Was this cut or forgotten? Seems a little unnecessary since most speedrunners have a speedrun timer anyhow. :P

larsiusprime commented 8 years ago

Cut for now. I might add it in later but I thought about it a lot and I don't think the game is super compatible with speedruns, though this issue might be a good place to talk about it.

With a game like DQ, there's basically two ways to do a "speedrun"

And then there's the question of:

So one thing we could do is just provide checkboxes to let people configure their timer and see what emerges. The thing is, under any situation I could think of, it seems like top-level speedrun play would be kind of boring. If you track out of battle time, you're basically tracking how fast someone can spam past menus and towns and overworld stuff.

Then in battle, because it's wave-based, there's not actually all that much room to shave time off -- you'd want to "send next" on every wave as soon as the option becomes available, and then defeat every wave as quickly as possible, but you've still got a basically set amount of time every battle will always take. And if you track real time rather than in-game time then you encourage everyone to play entirely and always at 16x where it's basically impossible to play efficiently as things just whiz past. But then if you just track in-game time maybe people start playing at 1/4x speed and the speedrun takes forever, because now it's much easier to shave off precious milliseconds.

I mean I suppose one way you could shave off time is by optimizing your high level strategy so that you can get through the absolute minimum of battles and stuff, but even then it just feels so different from what traditional speedrun fare is like.

In any case, if someone can think of a way to make speedrunning DQ fun & interesting to play (and fun and interesting to watch), then I'll gladly add some options in to aid that sort of playstyle.

But for now I can't really see it...

sikthehedgehog commented 8 years ago

To be fair, I can easily imagine speedrunners trying to become good at 16x speed, especially with keyboard shortcuts at hand. Don't underestimate what those people are willing to do. All you need to ensure is predictability (i.e. given a specific input, you should get the same result) so it's feasible to memorize keystrokes known to work well, and I don't recall there being anything particularly random in the game? (I could be misremembering)

larsiusprime commented 8 years ago

That's an interesting perspective -- the game does use a fixed timestep so there should be no difference in playback between standard 1x and 16x. That said, there's a bit of RNG for stuff like status effects, but I could just create a preset seed for each battle so given the same inputs everything always goes exactly the same, or use "DOOM style randomness" where it just reads from a fixed list of values.

What about performance issues? On 16x speed in fullscreen mode I can't guarantee there won't be say, a GC pause when you're running that many updates per second (on my machine it seems fluid but it's hard to guarantee).

I guess that's where in-game timers could come in handy -- they could separately track undilated speed (1 sec @ 16x = 16 secs @ 1x) and game speed (1 sec of elapsed frame time regardless of how slow your computer is)...

dqhol commented 8 years ago

I can think of only one way to have a decent speedrun mode in a Tower Defense game. I kind of have an idea of it in my head, not sure if I can put it to words well, or if it would even be fun. Okay. Here we go.

As soon as you select Speedrun Mode for a new save, several things happen. Your EXP/Scrap gets locked to %, your 1/4 and 1/2 buttons are grayed out and you lose the ability to pause. Ever.

When you arrive on the world map as Azra, you see a red fuse (red secret icon, maybe) burning away just behind her. And it's not standing still, it's slowly coming at her. A timer appears in a corner counting down, the time until the fuse reaches where you are - the first tutorial level.

In the tutorial battle, your speed starts at x1 but can manually be increased to x16. The closer the fuse is to the level, the more the lowest speed buttons temporarily blank out. The farther you get from the fuse, the more you get back.

Alternatively, the closer the fuse is to you, the more of a Frenzy speed buff the enemies get, ever increasing.

Once the fuse moves over a level, it's icon goes gray. Can't go back there anymore, if for some reason you wanted to run back and swipe a quick unique item at x16.

Time doesn't pass outside of your save file on the save select screen, but does in towns, the party menu, options menu, anywhere that save file remains loaded.

If the fuse burns over a level while you're in it and you don't win it, that speedrun is over. Poof, save is gone. Or you just lose instantly if the fuse burns over the left you're in.

Maybe at the end of the game, if you beat Play or Play+ successfully, you get a reduction on your final time score depending on if you managed to do anything notable. Your number of gold stars, number of books, if you slayed the super sheep, sidequests done, etc.

Like I said, probably not a good idea, but it's a thought. :P Turns the game more into a panic runner, like Dino Run, escaping the ever approaching doom with a constant sense of dread. Sure, you can lower the game speed to try and manage your units without the ability to pause, but that's only going to make the fuse catch up and force things faster. Would anyone even play something like this?

(For the amount of work this would take, and how few people would use it, it really doesn't seem worthwhile to work on over DQ2)

ManDude commented 8 years ago

I think we should keep this simple and simply have speedrun mode not have cutscenes.

sikthehedgehog commented 8 years ago

What about performance issues? On 16x speed in fullscreen mode I can't guarantee there won't be say, a GC pause when you're running that many updates per second (on my machine it seems fluid but it's hard to guarantee).

Presumably you'd be counting logic frames and not real frames. In fact this is kind of needed given the platform doesn't have stable hardware specs (and hence you can't predict what will cause slow down and what won't).

EDIT: just to make it clear, logic frames is the internal framerate at which the game attempts to run. When there's frameskip, you end up skipping on displaying some real frames (and in really bad cases, the game slows down), but the game logic is still trying to run at the intended framerate (and trying to catch up), hence "logic" frames.

tdrpg-fan commented 8 years ago

My vote would be to keep this simple - start a timer when the game starts and just keep it running. Creative players can figure out the best way to turn that into a speed run :)

A different take on game modes that might be interesting would be a Portal-style puzzle mode. In Portal you can go back and play through the levels trying to optimize for various goals - least number of steps taken, least number of portals used, and least amount of time. See http://theportalwiki.com/wiki/Test_Chambers#Challenge_modes . I think this would fit well with DQ's goal of "focus and thinking" :) You could perhaps track stats for each level like:

Of course DQ has character stats and equipment, unlike Portal, so you might want to give the player a locked set of characters with predetermined equipment and levels for each puzzle. That might be interesting and give players a reason to go back and play the game again.

I'm not sure if you want to divert this much time and effort away from actually making DQ2 though ;)

For me the interesting thing about watching DQ videos is seeing someone's strategy - how they approached the level; what ideas are different from mine. Watching someone play puzzle modes like this would be far more interesting to me than watching someone spam clicks as fast as they could on 16x speed :P I could certainly be the minority though.

larsiusprime commented 8 years ago

Cool, I think there's not enough time to do this before launch, but it's something we can patch in. As always, I prefer to do the simplest possible thing, and given that I can't really predict what speedrunners will prefer, just give them a set of simple tools they can use to create their own challenges.

To wit:

Given all that stuff, someone will find the optimal way to carve a good speedrun mode out of it. Or some other interesting challenge. Also each of these alone is fairly easy to implement, or is already implemented.

ManDude commented 8 years ago

I asked my speedfriends about speedrun mode and this is the response: dq03

larsiusprime commented 8 years ago

Interesting. Do people prefer to have their own built-in splits or do they prefer to define them themselves, or use their own software?

If/when I get around to doing this what I might do is just make the splits super data driven, ie they're just listening for the game to fire off a generic event "battle 1 started", "battle 1 finished", "town 1 started", etc, and then I make the game fire off a bunch of those, and then come up with a decent "standard" I think is good, but people can configure their own split schedule.

On Thu, Jun 9, 2016 at 1:00 PM, ManDude notifications@github.com wrote:

I asked my speedfriends about speedrun mode and this is the response: [image: dq03] https://cloud.githubusercontent.com/assets/7569514/15940545/616dc1c6-2e74-11e6-86dc-138d62df4e27.png

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/larsiusprime/tdrpg-bugs/issues/963#issuecomment-224976705, or mute the thread https://github.com/notifications/unsubscribe/AAtG-JIJ46aDWHANZBbYF__8sU0wKb3Hks5qKFSpgaJpZM4IxoRo .

www.fortressofdoors.com -- Games, Art, Design

ManDude commented 8 years ago

It's usually better to use an external program to allow for more customization, but each speed game has their own rules. Some games have IGT (in-game time) and RTA (real-time attack) categories because of this.

larsiusprime commented 8 years ago

Yeah that's kind of why I lean towards keeping the tools simple rather than prescriptive, if we put anything in the game it's just to expose information that might be difficult for an external tool to get at.

On Thu, Jun 9, 2016 at 1:44 PM, ManDude notifications@github.com wrote:

It's usually better to use an external program to allow for more customization, but each speed game has their own rules. Some games have IGT (in-game time) and RTA (real-time attack) categories because of this.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/larsiusprime/tdrpg-bugs/issues/963#issuecomment-224989144, or mute the thread https://github.com/notifications/unsubscribe/AAtG-C8b962mIALnVkTtpleJFxN4LDgEks5qKF8KgaJpZM4IxoRo .

www.fortressofdoors.com -- Games, Art, Design