Torment characters from Greek mythology! Forever! Push Sisyphus back down the hill! Peck out Prometheus’s liver! Withhold the apple from Tantalus! Albert Camus said we must imagine Sisyphus happy! So the boulder must be even happier! Right?!
Let's Play: Ancient Greek Punishment: Inversion Edition is a new edition in the Let's Play: Ancient Greek Punishment series, focusing on a retelling of five (kind of) mythological punishments. In the Inversion Edition the role of the player is switched from the tormented to the tormentor, but is it really any better? Is Sisyphus happy? Is the boulder?
Timeline
Notes before notes
I wrote the following about the game when quickly brainstorming it for the first time a couple of days ago:
Sisyphus: if you're the rock you just can't do anything at all? A rock has no agency? But that would then extend to other elements which might be a bad thing
Tantalus: you're the tree and water I suppose and can choose whether to fuck him over or not
Prometheus: the easiest one in the sense that you just control the eagle and try to peck his liver out
Danaids: would you be the bathtub? What would be in that scene? Nothing is animate,
Zeno: I guess you'd be the flag? Maybe you can kind of move away from him as he tries to complete his race?
I guess one way of thinking is that in order to invert them perhaps you can break the purity of the idea a little bit. In Zero it's funny if you move the flag, even though that's no longer about the idea of not being able to move through space (although it kind of is). Being the eagle is fine. Being the tree/water is fine and funny. I guess a simpler way to think about some of them (e.g. Danaids) is that you're just doing what the computer does - so when they fill the bath you let can empty it or not as you wish. And then for Sisyphus? Well perhaps for ... well perhaps you resist his pushing, so you apply yourself to try to force the rock downwards and he tries to push it upwards, that's pleasingly combative.
So maybe there's room for some different comical experiences in there? Each one has a certain something. Perhaps Tantalus is the least clear to me suddenly? But perhaps not, perhaps it's fine for it to just be what it is? What happens if you let him get the apple? Maybe you lose because the point is you're meant to be punishing these people forever - so it maintains the infinite experience, but points out that the punisher also suffers for enternity? I quite like that! OKAY. This game is officially doable.
Five themes
(Just an initial sketch of some of the tensions/questions that have come up in early design, things that might be informing how decisions get made, and also therefore things that might show through in the final product as "things to think about" relative to the game and its experience?)
"No, no, no, that's not the way it happened."
The idea of failing the myth. Each minigame is based on a "real myth" established in literature (other than Zeno's Paradox, but even that clearly has an air of eternal punishment). When you invert the roles and have the player be the antagonist, it's possible for them to fail their task (of punishing the protagonist). But unlike in the standard version, failure of the antagonist isn't part of the story, and so instead it constitutes a "game over". Thus you have a game of striving to continuously punish the protagonist, with the threat of instant failure looming if you ever let up.
Myth versus gameplay.
Extending on the above, which is an example of enforcing the mythology, it's also quite possible that there are tensions between myth and gameplay in this new context. Specifically, it seems that in order to provide an "interesting" agency to the player, it's less possible to just repeat the bare mechanics of previous games. In Zeno, for instance, staying true would involve the player just triggering the half-way space dilation at the correct moment, which isn't an interesting task (it's too obvious, and not even expressive given that there's a price moment to perform it - no timing). Thus my plan for Zeno, for example, is to allow the player to move the flag at will. This keeps the spirit of the myth (well, thought-experiment) in the sense of creating the idea of a space that cannot be traversed - just by moving the finish-line. But in a sense, maybe that's another way to talk about Zeno's paradox - that it's about moving the finish line while the race is being run? At any rate it feels in the spirit of the punishment, and it allows for more expressive play (dancing the flag around, taunting the protagonist). All in all I think the game should stay true to the spirit of eternal punishment, without being too slavish to details that might cut against player agency/interest (and obviously I have a very low bar for "interest" but there still needs to be something.)
"The rock is in hell too."
This phrase jumped to mind as a way to convey the idea that even the antagonist is effectively suffering an infinite punishment: that of infinitely punishing someone else. It's perhaps less physically arduous (in portrayal), but it's still infinite and boring in exactly the same way. Won't someone think of the eagle? I like that it's still "ancient greek punishment" and still infinite, but pointed in another direction. "One must imagine the boulder unhappy"? I think there's something very pleasing about the agency shift pointing out a quite different perspective on the myth, notably for the eagle I suppose, but even better for things like the boulder where you're doing a kind of "alien phenomenology" experience?
"You never step into the same story twice."
One myth many ways. Part of this project is clearly its nature as a further extension on the already illustrious series of games with the same name, it's another edition. A such it's part of a larger project that's examining, I guess, the ways in which the "same game" can be used to think about/illustrate/explore different ideas. We've seen
- The original, exploring the game as infinite punishment device
- The art edition edition, exploring the game as art object
- The CPU edition, exploring the game without a player/punishment of the computer by the computer
- The limited edition, exploring the negation of the game's stated nature
And now the inverted edition (or is it antagonist edition?) exploring the experience and nature of the other agency in each mythical scenario. As above, it's a way to illustrate ideas of the antagonist as suffering, of object-oriented ontology/alien phenomenology, and perhaps some other stuff I currently haven't thought of.
Two-player.
Assuming I implement it, this game is also a chance to explore/enjoy a two-player version of the scenario which is a pretty comical idea all told. I'd been fretful about the idea that this meant both players should have an equal chance of winning, but that doesn't make sense. Rather it should end up a negotiation and competition between players in a lop-sided contest, and yet in which both players are being punished for the length of time they accept the premise. Who gives up first? Or can they simple exist in statis, doing nothing? What would that mean? Etc.!
Introductions, Attitude, Early Design, Two-player?, Assets and Code
Introductions.
Okay, time to start thinking about this new game since it's Monday morning at the start of the semester. In essence the idea is "inversion" in the sense of having the player take on the opposite role to the game as traditionally conceived. Whether or not this makes them the protagonist of the situation is actually an interesting question that is probably a part of this whole thing, though more interesting to ask than something to design in?
Anyway, the inversion means that in each of the five "traditional" minigames, I find a way to make the player the antagonist of the character they previously would have embodied. So where once you were Sisyphus, now you're the rock/boulder/cookie. And that's the whole thing.
On research-creation, seriousness, popularity, and the desire to just make a game.
Before I actually try to put down my first attempt at "design" in terms of specifying the roles the player takes and how they might be implemented within the kinds of controls the game has traditionally had, a quick word about objectives with this game. Notably, for me this is a game coming after a run of games (apart from Chogue) that didn't go quite how I wanted in terms of enjoyment. 2018 was a tough year in terms of enjoying game making because I was harried in other ways and was perhaps fixated on creating "legitimate" and "worthy" instances of research-creation, where I started to prioritise the ideas/conceptual stuff over the making of an actually entertaining game. (By entertaining I mean mostly something that entertains me - not that the game needs to be fun for an imagined player, though ideally that too.) So with this game part of the stated objective is just to make something that amuses me.
With that said, I'm not interested in abandoning the idea of research-creation obviously, and I think that conceptually this game still has an exploration to make particularly in terms of roles (antagonist versus protagonist?) and in terms of the idea of sequels and series and even "translation" of a particular kind (translation of a game into itself from a different perspective/framing). So there's "stuff" in there, but the primary objective needs to be enjoyment and making something I think is funny. (Zooming out further, I also don't want to hit the other pole of requiring popular appeal too much and I don't want to design for that or desire that too much - not least of all because it's not something I control, and it's not something the kinds of things I make necessarily work for.) In short, I'm making this simply because I want to, first and foremost, with a chaser of research-creation thinking, and perhaps a dash of desire for fame and recognition. How's that?
Initial design.
This is not a complicated game in terms of top level concept, just take each minigame and "flip the script".
Sisyphus. It's pretty obvious that the antagonist here is the rock/boulder itself in terms of something you can actually see and engage with in the scene. My though the other day was that you would be the boulder and you would resist Sisyphus's pushing. So he pushes upward to get the boulder to the top, and you exert yourself with the same keyboard input (alternating keys) to push him back down. This isn't strictly true to the myth anymore obviously, but in the myth the boulder is extremely passive, it's only moment of "agency" being to roll back down with he reaches the top (or whenever he flags in his effort). I think resistance is between because it's continuously active for the player, and it really creates an antagonistic effort which is pleasing to think about performing as a player - a classic "fight" and even more like a kind of sprinting game. (This is then beginning for a two-player version as a follow-up? Or, should I be thinking about this game as two-player from the beginning? Or does that just complicate things?) If Sisyphus gets the boulder (you) to the top, does that mean you lose? Is this a "dangerous" reframing of a well-established myth? Or is it reasonable because it creates the antagonistic relationship I'm looking for from a gameplay perspective? Myth versus gameplay? Also a turn of phrase here for this whole antagonist experience: "The rock is in hell too."
Zeno. The idea here is that you play as the flag. Again, it's the most obviously element on the screen that you could have agency over. It represents the "end" of the race and therefore if you can move it you're able to make the race essentially infinite. I think it would be funny for the flag to be a lot faster than the runner so that you could kind of taunt him by moving close and then zipping away? If you touch him (e.g. he passes/reaches the flag) then that would be game over (and a loss for you).
Prometheus. Clearly you need to be the eagle. There's some question of what your controls are here - should you be able to fly in as you wish? Fly around on the screen? What if you fly off the screen, does it trigger night time? Do you just wrap? At base, though, it seems like you should be able to fly around, land on Prometheus, and then hit another key to peck. If he struggles, you're automatically bumped back up into the air and have to land again. There's an opportunity to do some kind of strange "moon-lander" mechanic rather than obviously arrow keys to control the eagle? But that might be getting pretty distracting? Is the role of the antagonist meant to be challenging? A flappy bird mechanic would be pretty hilarious too, but distracting.
Daniads. This one's a bit tricky because the antagonist here isn't quite an object so much as it's the holes in the bathtub. My thought (as above) is that you control the holes, and choose when they trigger. Thus, they fill the bath (holes closed) and then as they're running back you hit your button to open them and the bath empties. It's an exceedingly simple mechanic and very sporadic as an experience for the player, but because of that it opens up the opportunity for the player to engage in comic/tragic timing. You let them fill the bath almost all the way and then at the last minute you empty it. A little unclear when this one ends - if they get into the bath, you could still empty it, and they could get out and start again? The point in the myth is that they need to get clean, so perhaps there's a "cleaning" meter that, if it fills, means you've failed? (Kind of weird how I did it in Limited Edition, where you just sat in the bathtub - I mean, I guess being clean isn't any guarantee of anything, you just get dirty again?)
Tantalus. Pretty obvious that you'd control the tree and the water level? It's a related comic timing thing to Danaids in that sense, but more frequent? As he reaches, you pull away, as he gives up, you tantalise him again. In a way it's the most banal version of things, but that's useful I guess in the sense of the basic concept - they're trying to do something, you react at the same moment to prevent them from doing it. No problem.
So that's all the different versions with relatively clear solutions for each one (with perhaps some confusion around Danaids and the relationship to cleaning and an end-point. Also, actually, there's no obvious way to end Prometheus...)
Endings.
In designing above I seem to be saying that there's the idea of failure for the player in the antagonist role. Obviously you're meant to be punishing them, so if you fail to accomplish the sort of punishment that is your job, then that's a bad thing. So how do you fail each one?
Sisyphus pushes the boulder to the top of the hill. Danaids get clean (progress bar???). Tantalus eats an apple or drinks some water. Zeno reaches the flag. Prometheus gets through a day with some liver left???
That is, in Prometheus perhaps time is passing (the day is getting darker) and you need to get the liver to 0% before night falls or you're considered to have failed. In a sense you've "failed the myth" which states that the eagle pecked out the liver each day and it regenerated at night. That's a useful way of thinking about it. It also helps a little bit in justifying the rock in Sisyphus I suppose, in terms of preventing the thing he is assigned to fail to do "get the rock to the top of the hill".
So these endings seem more or less fair. Prometheus changes the aesthetics the most I suppose, but that's not the end of the world.
Two-player?
So when you think about these minigames as a protagonist versus an antagonist it pretty clearly opens the idea of two-player. However, two-player does complicate things substantially in terms of whether or not it's interesting to be the protagonist? I mean, it wasn't in the original games to be fair, but it could be worse experientially if you are sitting next to the person preventing you from doing what you "need" to do? Or is that precisely why it would be a good idea to implement this?
The other thing about it is that it would probably require at least some redesign to make some of the roles possible. The eagle role seems like it wouldn't work in the classic setup because Prometheus can just wriggle eternally and let the day pass and then the eagle will lose. So there would need to be some "balance" (presumably) to allow the eagle a chance to succeed, such as a cool-down timer on prometheus' wriggles which would need to be indicated somehow (maybe he can be completely floppy when he has no energy to wriggle, then kind of doing a mini ab crunch when he's ready to do one?). There would then be the idea of taunting him into wriggling but not actually landing, so that you could get a peck in? But it seems like Prometheus would always have the advantage here, which is problematic?
But beyond those sorts of design questions, which are prooobably solvable, the more immediate question is should I
- make this game two-player from the get-go
- include two-player as some kind of bonus experience unlocked somehow (this might let me get away with more poorly tuned play?)
- make a two-player version as a follow up later this year
Option 1 is out, I think, just because I think there's value to antagonising the computer (raising issues of whether you're really antagonising it given it doesn't care, or whether it's just you in hell in exactly the same situation as the protagonist but just performing a symbolically different action).
Option 2 is plausible if I want this to be a bigger game that I'd thought, it also allows me to "encourage" people to try the whole game out I suppose, with the thought of unlocking the mode. But it does also add work on to the overall project.
Option 3 is appealing because it means I don't have to care right now, but it might also end up feeling too much like a cheap reworking of this current game and so not really distinct enough as an experience to bother with? That said from a design perspective I think there's clearly a difference to be had? That said in plenty of these modes the protagonist just seems totally screwed anyway? The idea of balance is probably an illusion given that each mythical scenario is set up to completely screw the protagonist.
So in that case I lean toward option 2. With Prometheus as the most problematic because of the time limit and the potential for it to be "unwinnable" for the antagonist, which is out of keeping with the myth. The antagonist should always have the advantage and the whole thing just becomes about both player sustaining the experience for as long as they can bear it. The easiest way to make that work for the Prometheus version is to not allow failure I suppose, but that kind of breaks the theme of "failing the myth" as the antagonist which I really like. Something to think about.
Assets and Code, or Here's Something I Prepared Earlier. One funny thing about this whole project is that at some level I have all the assets basically done from the beginning as far as I can think of it. Having made Limited Edition and CPU Edition both in Phaser, and given that those two games reflect both scenarios (victory for antagonist and victory for protagonist), there's nothing to do assets-wise, or very little. Importantly, too, I don't want the game to look or sound any different from previously - part of the point of this series is using the same imagery and sounds to convey different tones/ideas about the "same" situation. This probably extends to the level of code in lots of ways too - the code is kind of pre-written in a lot of ways, just need to thread it together differently? We'll see.
Laying down the design, abandoning mobile?, Phaser 3?
The time has come to write down what's needed to actually create these games, no need to delay I think, the concept is simple, most of the design is pre-existing in terms of the overall idea, so I shouldn't have to do vast amount? Without further ado then?
Sisyphus
- Identical assets etc. (as in, it's even fine to have the same long animation of the entire scene which I did back in the day because it was so hard to programmatically animate the pushing)
- Sispyhus steadily pushes on the boulder to move it up (should he ever pause now and then and lose ground on his own, or would that be confusing? Probably confusing)
- Alternating G and H (or tapping for mobile) reverses the animation and pushes him backwards (at a rate relative to your effort)
- He pushes at a basic solid effort, so if you work hard you push him (slowly?) back, average he just stays in place, and not hard enough he will make progress
- Should you push him backwards even on the flat? Probably the answer is either yes or that he starts at the foot of the hill so you don't need to worry about any of the pushing not being a kind of enaction of "gravity"?
- Ending If he makes it to the top, it's game over - "Sisyphus pushed the boulder to the top of the hill!" "YOU LOSE"
Prometheus
- Control the eagle movement with arrow keys (could do space to flap or something to control height in a more interesting way? But what would that really add?) (Some concern about mobile in this scenario - only have one "button" and I don't think it'll be expressive enough for all the actions here?)
- Land on Prometheus - I guess if you reach a certain proximity it just flips to landed? What if you land in the wrong place - how do you know where to land if you're the player? (And haven't played the previous games? Maybe the instruction can tell you to land on his legs?)
- Once landed you need a key to peck and possibly movement keys to take off again? (I'm thinking about 2-player there a bit?) Or perhaps not, perhaps just if you get shook off you need to land and start again?
- Once the liver is gone you should fly off the screen I suppose, but could also just make night fall instantly and not show the bird anymore so that it's not yet another step
- Obviously Prometheus needs to struggle intermittently.
- This one is clearly a bit over complex and I'm less sure of myself
- Could consider the eagle flying on a path, so you don't control movement, but rather flapping - tap/keys to fly down to the guy, then tap to peck, and tap to reland if shaken off? Too little agency? I mean it's not meant to be a high agency game...
- Ending Uh... I guess this one doesn't actually have a success case! No ending then. Just eternal detente or eternal liver-eating
- Key design problem: How do you control a complex thing like the flight of the eagle in combination with landing and pecking, when you're trying to minimize complexity? And if you restrict it too much does it feel untrue to the thing you're seeing? (Sisyphus is just keyboard mashing but it feels true to the experience) If it's 'tap' to flap, so you make incremental progress toward Prometheus, then land automatically, then it's tap to peck? Is that sufficient? In one sense it's lame because you could play without looking - just tap tap tap. On the other hand, it's at least a pairing between an act (tap/press) and an outcome (flap, peck). Maybe one key for flapping down and one key for pecking? What if you flap when you've landed? Would you take off? Perhaps it would take off into the hover mode? Then you'd have to land again? A bit confusing if a single tap means to flap up and to flap down?
Zeno
- Control the flag with arrow keys, left and right, it can move kind of quickly, but at least moves faster than the guy
- The guy jogs toward the flag and your job is to keep it away from him
- This means we need a scrolling world because you need to be able to head off to the right
- I guess we could say they always have to both be on the same screen (no zooming), so at a certain point of him jogging (1/3?) the screen would start to scroll right with his movements, and then would allow you to move further right, so you could always be at least 2/3 of the screen away
- Might need some kind of hint of a background to clarify what's going on though? Would have some concern that this would look pretty abstract (may just be something where I have to make it and check it out). Markings on the ground (like the half-way point etc. could work do? Little ruler markings?)
- Ending Ends if he reaches the flag (or you run the flag into him) and completes the race
Tantalus
- Pretty straightforward reversal. Press one key to raise the apple (I guess perhaps it should just be press and hold, doesn't feel like this one should require play effort) and another to lower the water.
- The point is to watch for his animation toward one of the other and get it out of the way in time
- Can you withdraw the apple and water at the same time? And just keep them there, unavailable? Don't see why not...
- Ending Ends when he manages to grab the apple or drink some water
Danaids
- Control the bathtub's holes (not sure if they should start open or closed? Probably closed.)
- The person will fill the bucket and proceed to the bath, pour the water in (regardless)
- If the holes are closed, the bath fills (as per Limited Edition), but if at any point you open them, it all pours out (might need some new animation for that)
- If they fill the bath all the way to the top they start washing themselves (maybe need a little progress bar? Need a little animation, maybe just a flashing "cleaning" text?)
- If they get clean you lose, but you can still empty the bath while they're cleaning and they'd get out and go and fill the bucket again etc. (maybe they have some amount of cleanliness needed under the hood?)
- Need to say that if you open the holes all the water comes out, can't control the amount
- Ending Cleanliness
2-player
- Unlocked when you've attempted any given level? Or all the levels? For some set amount of time so you can't just load and immediately quit? Maybe you have to lose to get back to the menu? Or even if you reload the page/come back, you should have it enabled?
- Should literally be exactly the same, but someone can play the original role in the same way it is always played - not about it being fair/balanced/interesting, just about creating the dynamic between people instead of a person and a system. In some of them you're more blatantly at the mercy of the punisher, in others it's less clear (Prometheus, Sisyphus?)
- Problems of input for mobile here - Tantalus would require four distinct actions, and even if screen is in quadrants if feels like it'd be very busy to look at... (although frankly the instructions for 2-player on desktop would be similarly overwhelming I suppose)
Mobile
- Is it even worth it? What do I get out of it? Does anyone play on mobile? These aren't really designed for mobile. Is there even a culture of people playing stuff on mobile in the browser? It can be a significant effort and a design problem to go after it, and I'm unsure why - it seems like it'd just be for numbers of people looking at it, but... meh?
- So it's looking like no mobile then...
Phaser
- I see that Phaser 3 is out now which is... good? But it looks like it's pretty radically changed from the 2.x series which makes me leery of jumping into it. Also this makes me think: yikes in terms of teaching it for CART263 actually. Will have to think about that.
- Investigating Phaser 3 a bit more reading its updates etc... I guess it would make sense to migrate just in terms of needing to learn it at some point anyway for any 2D stuff I'm going to do? I can do the basic tutorials and then use those as the basis for presenting something to class while simultaneously using what I learn to work on this game? It'll delay the output of the game for a bit, but I think that's probably fine anyway. Double whammy?
- So the next step really for this game is going to be to do Phaser 3 tutorials and learn that, which I'll look forward to!
? Had the fun idea of inverting the colour-scheme of the menu (so blue text on black) to go with the title of the game. Not clever, but there's something refreshing about the menu looking different after all this time making the same menu. I felt satisfied anyway.
? Mostly this involved taking the images from the earlier versions, texture-packing them, working out phaser 3's atlas commands and animation commands and input commands, and putting them together to control the animation based on rapid alternation of the keys
? A few rewordings of the instructions to get something that felt right, initially didn't have "YOU ARE THE ROCK" which I think turns out to be important because otherwise you'd of course assume you were the human-ish. As I was writing versions like "TO RESIST SISYPHUS" or "TO PUSH SISYPHUS BACK" I started to feel like these weren't things a ROCK can do, and this in turn led me to change the interactive possibilities. I'd had it so you could push Sisyphus backwards even on the flat, but in fact a rock couldn't do that, it can just use its will to roll downhill (aka Gravity, Inertia, etc.). As such, I changed the game to only allow/see player input when Sisyphus starts pushing up hill, this is what you can resist as a ROCK. As such the instruction becomes "TO ROLL DOWNHILL" which is pleasingly passive and no targeting Sisyphus per se - just a rock being a rock. But it's important. The neutrality of that action helps to make it clear that it's you as the player who are BEING A ROCK and also PUNISHING SISYPHUS with your ROCK NATURE.
? So it basically works. Remaining is to implement a slightly more intelligent system for listening to the inputs as right now any key press will pause Sisyphus, whereas I'd like you to have to build up resistance ideally. I thought about changing the framerate/time per frame as well, which might be fun and I might do. Basically you could fight over a number 0..1 with 0.5 being equilibrium and the rest mapping to framerates in one direction or the other, eh? Yup.
On largely finishing Sisyphus
Reporting in. I've settled into using Phaser 3 and it's going fine with my existing knowledge of version 2. There have been things to learn, but this is such a simple game and the Phaser 3 framework is pretty similar to the previous, so it's not that hard to adjust myself to it. (By the way I resolved the teaching part of this by just not promising to teach Phaser - it was a ridiculous scale of thing to teach anyway.)
At this point I have Sisyphus all but done, which is a good feeling. Some nice moments of realisation along the way about the instructions (41a9fe3) and the issue of indicating Sisyphus's goal (529e09c).
Looking ahead I can see there will be various potential issues of separating out animations, because in many of the games the animations are coupled all together (e.g. Tantalus). Given I now need independent control of two elements per scene, it'll often be the case that they need to animate separately (Sisyphus is an exception because he's locked to the boulder). So this project will require some animation stuff, which is fine.
Don't foresee any major bumps as yet. Phaser 3 has come to me faster than expected, which I'm happy about for sure.
? Took a depressingly long time to get it correct, chiefly because I didn't understand the fundamentals of phaser 3 and wasn't setting msPerFrame correctly (should set it on the overall anims object of the sprite, rather than the currentAnim object)
? The game basically feels right at this point - there's a deceleration/acceleration effect that makes it feel less stiff. Just need the ending if you let him get all the way to the top. "GAME OVER"? or "YOU LOSE"?
? Ran into the design moment of realising that if you just let the standard animation of the uphill push reach the end and call that game over it's weird because he's still on the slope with a distance to go. In order for it to feel like you've lost, you really need a visual indicator of where he's trying to get to. Thought about using the hill from Limited Edition, but that requires camera panning and so on that feels like overkill for this project. Instead, I hackily covered the top part of the slope with rectangles the colour of the background so that the game ends the moment the rock is just about to reach this plateau. Real fake, but I think it's sufficient to indicate what's going on.
? As noted in the process journal previously, it became clear I'd need to separate agents/backgrounds/items in the animations so they can work separately, so did it first with Sisyphus. Already had the animation frames thanks to Limited Edition, so just used those and it went back in pretty smoothly. Bodes well for the rest I suppose.
? Got the key things working for Zeno including him running, ability to move the flag, ability for him to reach the flag and win, flag scrolling the world when at far left (within reason). It doesn't look quite as convincing as I'd like - partly a problem of the lack of detail in the world giving very few points of reference for motion at the level of the camera. I added two dots to help with it, and they do help, but the whole thing is maybe still questionable. An alternative (perhaps too strange?) would be to allow Zeno to scroll all the way off the left edge indefinitely and then eventually catch up because he'd keep running? That might actually be quite good now I think about it! Could be a winner, okay good.
On largely finishing Zeno and starting Danaids
Not a huge amount to report, but just want to keep at least some connection with this journal. I'm writing a little less in it to avoid the feeling that the project is more about writing about the project than making the project, which is something I ended up feeling with the shooting game I abandoned at the end of last year. So I'm not prioritising this journal as much as I have been in order to just 'enjoy' the actual building of the project.
Zeno is now pretty much done. Had a good design moment with it where I felt dissatisfied by the feeling of the flag getting to the far right, scrolling Zeno back, but then just keeping them both on screen. Very limited agency for the flag, and didn't feel all that satisfying as a tormentor, and not especially true to any principle, it was just a kind of arbitrary decision that made sense without necessarily being interesting.
So I've changed that now to the idea that the flag can move arbitrarily far to the right, with Zeno scrolling away off the left and being replaced by an indicator that tells you how far away he is from being back on the screen, as per various racing games for instance. This is satisfying because you still get to see his plodding progress (reflected in the distance creeping down), and so can anticipate his reappearance, but as the flag you can continue to affect him as much as you like. Just realising I didn't include the ability for the flag to move left, so I'll need to put that in. Dangerous since you could collide with him a little easily perhaps. In the end it feels like a more satisfying version of the game with more apparent agency for the player, while still remaining suitably awful for both parties (Zeno and the flag in this case).
I've started the Danaids. Sitting with the assets has clarified what I need to do to make it work I think. Mostly it's just going to be animation management, and a new animation that will allow me to show different amounts of water emptying from the bath. Should go fine, and here the main point of the experience (and perhaps this is true for a bunch of them?) is the comic timing involved - emptying the bath at the last moment etc., but this being played against the indifference of the computer. Maybe computers even like doing this kind of thing? Something to do.
So all's well in this project.
? Main point of thinking here has been about when the bathtub should be able to empty, and in particular how the Danaid should react based on which animation they're playing. Think the solution is to have them play out the end of any animation involving the bath, then react, rather than getting fiddly. Similarly, when they're pouring, wait until the end of the pour to empty the bath (even if the button is pressed before that). Also it's a total emptying, not a particular - you can't empty some water. Going fine.
? Mostly this went fine. There was even a moment where a particular scenario "just worked" because of the logic involved which was nice - on of those moments where it feels like the thing in your game/world is semi-intelligent instead of specifically case by case, reacting to contexts rather than flags. It's fairly satisfying at this point, definitely room for comic timing in various different situations. The sounds are the obvious thing that will help there too.
? This is one of those questions about MDMA and the idea of visible development I guess. It's technically more convenient for me to only have the preloader load directly to the scene I'm working on to skip the step of hitting the menu item, but in terms of always being in a position to show someone the game by navigating to its website, it's better to always have the menu available so I can demo the different games. Similarly so that if someone is revisiting this process they can look at the currently active work (Tantalus), but also look at the other games for comparison if desired. A question of how polished to be about acknowledging the frame outside my immediate development process.
On having finishedish Danaids and Tantalus, and sighing about Prometheus, then maybe "solving" it?
Just checking in here in process-land. Most of my time on the project for the last while has been pretty much focused on just getting the "obvious" stuff to work, including working out what's "obvious" when it appears in front of my face. As always, development itself is a big asker of questions. Such as
- What should happen if you lower the branch with the apple while Tantalus is reaching for it?
- What if you raise the water while Tantalus is stooped so it goes over his head?
- More generally, what are the dynamics with Tantalus? How in control should you be? What's "fair"?
- How the fuck should I deal with the eagle landing on Prometheus and pecking? In terms of the beautiful expressivity of flight? In terms of the control scheme?
- And such
I mean, you could think your way into these question beforehand too, but there's nothing like actually needing to write lines of code to crystallise the fact something is a problem.
Tantalus
Surprisingly problematic in terms of "subtle" interactions between your actions and his - it create the possibility for numerous different times of overlapping animations that could signify and important moment, most notably how to respond to the player "letting go" in the middle of Tantalus' attempts to reach something. Particularly in terms of drinking because of the various levels the water can be at. And the fact I (stupidly?) made the water animate faster when it goes down (because it looks funnier?). Maybe there's a solution somewhere in the framerates?
Prometheus
Remains the most difficult one to conceptualise because the flying is such a big open question. I think it's clear I can't just allow arbitrary flying? Can I? Maybe I can? With screen wrap? With a buffer around everything except Prometheus legs as a landing spot? Weird. Maybe that would conceivably work? Plus getting kicked up into the air if he struggles. Plus not being able to fly off the top? How would I define the area you're actually allowed to fly in? What about the two sides of the rock? God what a boring proposition it is to figure stuff like this out. On the other hand it feels truer to the situation than just an 'on rails' approach to the landing process? Like if you're going to 'be the eagle' you need to feel like you have the agency to fly around and then choose when you're going to land and peck?
Thinking as a player for a moment: they are totally going to want to land on his face, aren't they. Ugh. Players. But you would. You would want to do that. And if you can land elsewhere why not there? Ass.
So a semi compromise would be: hotspots on the rock and Prometheus. If you enter one of these you land in a forced position (facing a direction that makes sense) - so it's a snap-to-land situation. For the rest you fly around, can't go off the bottom, wrap on the sides (if liver still 100%), and can't go off the top? This will be annoying to write in terms of hard-coding all the locations involved (unlesssssss I use images to designate the positions? Or will that work? Perhaps not. I don't know what the hitboxes for overlaps would be for sprites defined as the size of the screen - suspect it won't work. Yeah going with no.)
Okay, so hardcoding landing positions, constraining in the other ways. May need some other contextual instructions if people get cute (e.g. what to do if they land on Prometheus' face? Just nothing and they keep flying until they land on his damn leg area and can peck? Fair. Fair. Or they can peck from there, but it doesn't hit his liver? Gross and weird. But semi funny. Can cross that bridge when I come to it.)
Okay this will do.
? Can I just say how annoying it is I somehow managed to create slighting incompatible animation frames between games? Such that I have to add and remove a particular offset when switching between them? Awful.
? The main issue is how to handle edge cases like when you lower the branch while he's "failing" to reach the apple, and likewise for the water. The water is worse because it has multiple distinct stages? Ugh.
? Now at the point of contemplating how to actually implement my "hotspots" version of the eagle landing in different places. Apparently I can only use built-in "overlap" functions if I use the physics, but when I use the physics it gets quite confused by changes to the scale during play (such as to flip the eagle sprite to face the other way). Looks like I might need to solve that though as it would be so much easier that writing my own overlap code? Or would it? Who even knows anymore? Another option would be to just scale the eagle up in its base representation and therefore not need to alter its scale? But you'd still need to flip its direction actually... hm.
On having finished Prometheus, tweaked Zeno and Danaids, thoughts on Tantalus + input + 2P
Prometheus
Finished off Prometheus today and I think it essentially works pretty well. Discovered the joy of Tweens to automate things with the eagle like hovering and flying on and off screen without player control, pretty seamless actually, the wonder of oncomplete event handlers and so on. Happy with it. The Prometheus thing solves the "no victory" situation by just having an end of day. If you don't peck out the liver before that you lose, tough luck. If you do, it triggers end of day early so you don't wait around. Also did add all the other perches and they work fine. Feels pretty good.
Zeno
Went back to Zeno just to add the ability for the flag to move all the way left as well, so you can leave Zeno in the dust but then kind of come back for him if you want to. Adds to the sense of the space being real and means the player has total agency over where the flag goes rather than arbitrary screen-based constraints. Works well.
Danaids
My student Charly pointed out in class when I demoed the game that if you allow the player to just leave the holes open (which I did), they could leave them open and walk away without having to play the game anymore. The Danaid would be perpetually thwarted/punished without any effort/investment from you. As such I've changed it so the holes only stay open long enough to empty the tub, or just open and then close if there's no water in it. Changes the dynamic so you have to explicitly empty the bath if you want to keep punishing them, and restores the equivalence between tormentor and tormented.
And now?
There's a couple of extra things to do on Tantalus to handle edge cases, and there's a need for sound in all levels, but beyond that the game is close to done, miracle of miracle. I haven't given a lot of thought to implementing two-player as yet, but I don't think it would be hard right? Just a flag and reinstate input controls for the other person. I think it's worth it still. Some concern about the diversity of controls in the game? Arrows, g + h, spacebar. A little messy. Maybe it should always be arrows+space for P1 - tap space to push boulder down. Should work okay actually. Adding to the todos along with 2P.
? As promised a bunch of pretty tedious manual positioning, but it's done now and it wasn't all that hard. Hard to say whether each perch always feels natural in terms of flight paths etc., but I think it's good enough? Will there be any confusion over why you can't peck from any position except the liver position?
? Nice to use the tweens for those two purposes - radically simplifies things and, as I've been talking about in class, the availability of specific event handlers really helps the logic of things work so much better than handling it on your own. Yay for tweens.
? Largely uninteresting technical work but now it kind of all works which is very pleasant indeed!
? This addition is thanks to my student Charly from CART 263 who pointed out that prior to this it was possible to just leave the holes open and walk away - the Danaid will be infinitely punished but you don't have to play as the punisher, which evades the core concept of the game being about the punisher also being the punished. So, thanks Charly.
? In Sisyphus the rock (player) uses LEFT to push against Sisyphus which is nice and appropriate. In Prometheus I moved pecking to the SPACEBAR so that there wasn't double duty being performed by the down key. Just realising now that this also means that you don't get that insta-peck problem!
? Decided to include victory sound for all levels because it's kind of funny hearing the CPU/tormented person "win" just before you lose, a reminder of the double state of this whole thing.
? While doing this I kind of realised I think it's better to make 2P as a completely separate game - I think it confuses the messaging of the game too much. It's not an "inversion" if it's two player. It's totally different. Let's Play: Ancient Greek Punishment: Competition Edition.
? The font-loading fix is horrible but seems to work: display invisible text in the preloader so that by the time it gets to the menu it's worked out whatever stupid bullshit is going on