Well it’s not quite the 10th, is it? Ah well, it keeps rolling around to the next month and I want to have something more impressive to show for the time I’ve spent and it just makes me fall further behind. This has not been a month of great strides, but of small but significant ones. And, as I look back now, I see I actually have several interesting things to show off, if only because I have been remiss about showing some of the things I’ve been working on in the past.

First, I think I should probably show what the water effect looks like in action now. The effect is basically constructed, but there’s still obviously a lot of little improvements I can make if I go in and take the time to later:

Right now the ripples made by entities entering the water move absurdly quickly and don’t really spread out the way they should, and there probably should be something in between no splash at all and the substantial splash that’s made on exiting or entering the body of the water, and maybe the surface of the water should be a bit blurry or should be a bit wavier, but the bones of the effect are all constructed now and I can tweak it at my leisure later. Oh, also there’s that weird stray splash particle up on the upper left — that’s the particle that’s getting cloned to create the splash effect, but I’m not sure why that one is just sitting there.

I also did some more work on painting backgrounds. A couple of these are really complex, and aren’t really ready to be shown since they’re taking a while, but I also decided that I didn’t like the way the caves background looked and set out to improve it, as well as creating a secondary caves background for some of the other rooms.

Some of the stone ended up looking a bit woody, kind of like tree trunks or roots, but I don’t think that’s too much a bad thing. I can always tweak it later if it causes confusion, anyway.

The last major thing I’ve been working on is one of the core components of the game, the harvest system. The way this game will work (mostly) is that whenever you defeat an enemy they are basically put in stasis while the spark that keeps their spirit going flies out and about, in the shape of a moth. Once you gather that the body dissolves, but if you wait too long (say, because you’re being attacked by other enemies) it will return to their bodies and they’ll activate again. Once you harvest all the enemies in an area that area stays dead and empty, so you only need to fight the same enemies twice if you fail to clear an area. That means that I need to be able to individually track every enemy the player has harvested and make sure that data gets saved with all the other game data. It also means I need to have effects for when the enemy is defeated, when the moth is absorbed, when the enemy is dissolved, etcetera. I architected most of the former a while ago, and this past month I made big strides into the latter.

Actually, a lot of the work I put in here emerged directly from the work I earlier put in with rendering those water effects. The weird hazy effect I’m using now for enemies fading away after defeat is a combination of a scrolling displacement map, a blur filter, and a standard transparency fade-out: I really love the way these look together, and I don’t know if I’ve ever seen anything quite like it in another game before. As with the water, I still feel the effect can be improved upon, but I’m really happy with what I’ve got so far here, and I will probably use something extremely similar for the final game.

In reality, most of this stuff was pretty close to its current state as of about 10-15 days ago. Most of the past couple weeks has actually been taken up by extremely uninteresting-to-talk-about debugging of some problems with the drawing functions of my animation class that only manifested when I started rendering these special effects. As annoying as it is to not do work that feels like progress, my animation class is one of the bits of programming I’m proudest of, so I’m always pleased to get the opportunity to improve it.

This next month will probably be more background drawing, polishing up this basic enemy to fix the weirdness in animations and behavior, and getting started on building out some of the other enemies and variations on this enemy.

Advertisements

Listen.

It is embarrassing how much time we spend making noise, talking about ourselves, what we care about, how we see the world. We surround ourselves in our own territorial stench so we don’t have to smell anything around us. To a certain extent, this is fine and good and necessary – it is important to hear your own voice, to know your own thoughts – and, this being a public post about the creation of art, I’d be some kind of double-hypocrite if I were to tell you to just shut up, to not ever speak, never to make noise or song.

…so I’m not saying that: What I am saying is that the things you say will be stupid and the songs you make will be bad if you don’t stop and listen sometimes.

When I say listen, I don’t mean merely perceiving what is going on around you, what other people are saying, where the world is going: Perception is only half the equation. The other half is acknowledgment and accommodation. Hear the information, process it, integrate it into your understanding of the world.

There is a wrong way to listen, a wrong way to understand. The wrong way is to take new information and immediately slot it into your existing understanding of the world. The right way is to make room for the information in your understanding of the world, evaluate it within the space of the world as you understand it, and update that understanding as necessary to accommodate the new information.

The wrong way is much easier and commensurately more popular.

Accommodating doesn’t mean you should believe everything you hear, but it does mean you should create room for belief to exist if you deem it necessary. The deeming is a vital step: Accepting information without evaluation is naivete. Rejecting information without evaluation is cynicism. Both of these are strategies to avoid confronting reality, not to attempt to understand it.

Unfortunately, however, in order to truly listen you also need to be able to filter information out. This sounds contrary to the intent – is contrary to the intent – but is also necessary. You can’t spend your time listening to the same arguments and perspectives, parsing and re-parsing them, discarding them over and over again. After a certain point, you have to say no, we’ve been over this, multiculturalism isn’t white genocide you goddamn idiot. Thus we curate a flow of information that we can handle, shape its inflow into something that we can parse, that will steadily interest and edify and will only rarely waste our time.

And it’s clear, when we look at this, at how we shape this flow of information, that there can be no hard and fast rules. It is a balancing act: Leaving ourselves open to new ideas, while endeavoring not to waste our time with bad ideas – leaving ourselves open to having our minds changed, without leaving our minds open to being sabotaged. This balance is so delicate… and once in a while you see someone who seemed so well-balanced suddenly fall off, either shut themselves away or leave themselves open and let something vile take root and grow there. But, also, sometimes you see someone long-cloistered come out blinking into the sun, or someone who let a malignant poison grow in them suddenly engage in some long overdue weeding, and that is reassuring. The best and worst part about people is that they do, in fact, change.

For our part, all we can do is listen, and understand, and try to do better, as best as we can, forever.

Parables are a powerful tool. They are maps, life lessons encoded into little stories, encapsulated ways of understanding the world. However, what a parable is is as much our understanding of the tale as it is the tale itself – it’s in the mapping from that story to our story, the understanding that its causality and morality bears some relationship to our own. Any story can become a parable as long as you can create an analogical framework – in fact, every story can and does become many parables, given different frameworks and understandings. Each parable reflects a personal understanding, a relationship between the tale’s teller, its audience, and the world, and these shift subtly, even from people whose understanding of the story and its import are largely the same – and drastically between those whose approach and worldviews are significantly different.

This causes problems. Oppressors frequently like to cast themselves as the victims, and misusing parables gives them another tool with which to do so. Any tool for guiding or leading can just as easily become a tool for misguiding or misleading – one of the worrying and saddening things regarding the many ways that art can be used for good is realizing that every one of them has a separate but equal application towards propaganda, every message of love can be turned into a message of loving hate, every message of tolerance turned into a message of tolerating intolerance. As creators, we can only do so much to control for the understanding people take of our work and how they apply that to the world we live in: In other words, we write the stories, but we don’t make the parables.

Another problem, though, is that our relationship with parables has become… strange. people have started using parables in reverse. That is, rather than creating a map from the story to real life situations and deriving actionable beliefs from that understanding, they have begun creating a map from real life to the story and deriving… nothing, usually. It doesn’t matter if this situation reminds you of Harry Potter if the only understanding you glean from that is that ‘well the good guys will probably win in the end’.

This is not to say that retrofitting a real life situation to a parable is necessarily an unproductive exercise, just that it’s not interesting or useful to stop there. The interesting part of creating an analogy is in following the line created by the analogy towards a conclusion that is itself interesting. Analogies without conclusion become an obstacle, rather than an aid, to understanding. Rhetorically we tend to pay a lot more attention to whether an analogy is apt than to whether it leads to an interesting or useful conclusion, but it has to be both for it to have any place in a persuasive argument – otherwise it’s just reference for the sake of reference, done in a context that’s even less productive than an episode of Family Guy.

What’s the point of even making a reference like that?

Anyone who’s been playing games for a while has probably, by now, encountered the concept of experience points and leveling up in a number of different contexts. I find nowadays that I’m enjoying this design trope less, that I’m less comfortable with gaining experience and leveling up, than I used to be – and I think that’s partially a slow shift in who I am, and what I value in games, and how I see the world, but also represents a shift in how games use exp systems and what the priorities are that lay behind that usage.

Of course, the satisfaction is still there. Every moment, every action, making you better, stronger, more effective – intoxicating, really. Becoming learned without learning, becoming strong without exercising, discovering one day that, to your surprise, you know kung fu. How delightful, to feel we have earned our power fantasies, not through the specifics of actual work done to develop a particular skill or capability, but through the application of genericized soylent work product. Plenty has been said about and against this aspect of unearned reward – and, indeed, part of what divests my interest in experience systems is that I’ve come to find it much more rewarding when a game demands I actually practice and learn rather than merely grind. In this context, however, what interests me more, what has increasingly begun to unnerve me, is the form of that reward.

It’s strange, and almost a kind of body horror, to find yourself slowly and inexorably becoming a more effective killing machine. RPGs have had many kinds of leveling systems, and in the past most of them allowed you some degree of control. Sure, the end result was usually to make you more effective at fighting, but you at least chose how and why – and, though I never thought about it much at the time, you also chose whether to level at all. You could, if you’d rather, remain exactly who you always were – you could, if you chose, remain weak. This option is not available to us in most games with leveling systems: Now we level up the way we breathe, rather than the way we eat.

And, man, it kills me that everything I write goes back to Dark Souls, but that’s a game where you get to make that choice. And, man, it also kills me that everything I write goes back to Undertale, but that’s a game that actually explores the subtle horrors that are implied by experience systems. Having played these two games, it’s hard to ease myself back into the classic experience of classic experience points without feeling a bit of discomfort.

Maybe, though, this is the realer system. We change, uncontrollably. We go through puberty, become physically stronger whether we want to or not, learn things we were happier not knowing. Experience accumulates, and the numbers that describe us go up and down, mostly up at first and then mostly down as they describe our arc. The lie of the exp system is that it pretends we always become better and more capable, which is never true. Every moment something is gained, yes – every moment, as well, something is lost, and we change. We do charge forward, uncontrollably, but we never level up.

Most games are power fantasies. It would be nice, perhaps, if games focused on providing more diverse and interesting experiences, but, still, there’s nothing wrong with a good power fantasy… right? However, sometimes creating that fantasy of capability involves undermining the actual ability for the player to express their personal competence. Sometimes we create a fantasy that no longer has a place for the player.

Let’s look at level-up systems for a moment. Originally, in the Pen and Paper role playing games where they originated, they were a way to create a sensation of character growth and progress, increasing their agency within the world created by the dungeon master (sometimes to the DM’s dismay). Later, in video game RPGs, they maintained the sensation of growth but without really adding to the player’s agency, since they were still constrained to the sandboxes the developers had devised for the player. Later still, in MMORPGs, levels became a way to restrict the player, hiding game content behind challenges that were beyond them and drip-feeding that content to the player as they slowly grinded up.

All of the above may seem similar in concept and in practice, but the slight differences – from having challenges constructed for your un-mighty character, to having challenges constructed to funnel your un-mighty character into becoming mighty, to challenges constructed to keep you busy until might was, inevitably, in the due course of things achieved, end up creating a vastly different experience. The difference is in the goal that is presented. In the classic pen and paper RPG, the goal is to complete the adventure: Experience and treasure are things you accumulate along the way to ensure that you are prepared for a bigger better adventure next time, but the current adventure is always your primary concern. In the classic video game RPG, the goal is completing the grand adventure, ensuring that you tackle the game’s challenges in the proper order to complete the quest that is the game. In most MMORPGs, the goal is to get to the maximum level, which is where the real game starts since you’re finally at a high enough level to hang out with the big kids. Now, once you actually reach that level there are other goals that are dangled for you – PvP arenas, high-level dungeons, mini-games, and so forth, but these are mostly gated behind reaching that maximum level.

We’ve created a collision between min-maxing mentality of creating the best adventurer that can do the best adventures against the role-playing mentality of trying to create the most interesting adventurer that can have the most interesting adventures – and, sadly, and the former has decisively won. Higher level characters are more powerful than low-level characters – therefore you should always prefer having a high level character – therefore any low-level game content is, by definition, there to be rushed through as fast as possible so you can get to the biggest, therefore most impressive, and therefore best, part of the game.

It’s an experience that’s difficult for me to get excited about. To me, becoming strong is far more interesting than being strong, doing important things is more worthwhile than being an important person. Thus, what should be the most interesting part of the game, the story of how your hero became heroic, becomes a rote exercise, becomes an extended tutorial. But what is the appeal of ultimate power, when it comes to playing a game? It’s much harder to make a good Superman game than it is to make a good Batman game, but MMORPGs presume that we’d rather play Superman than Batman.

It’s saddening that, in a genre full of so many possibilities, this is what has become the industry standard. Why have leveling at all? Why have a journey to reach mastery if all that happens on that journey is trivial and unimportant? If the real story of the game is about the struggles of demi-gods, why even bother making the player chew through a 50 hour preamble about the birth of those demi-gods? In the end, we have a genre of games which are all uncomfortable compromises between the many things they are assumed to be, paying tribute to all and committing to none.

Games, as a medium, have been rediscovering the art of the secret, of the hidden. For a while, around the mid ’00s, it was incredibly rare for games to be anything beyond just what they appeared to be – and no more. The major studios didn’t want to pay for work that wouldn’t go directly into selling a game on day 1, and smaller indie games hadn’t really emerged into the market enough to fill the void left behind. Everything was exactly as it looked like. Surprise was dead.

It wasn’t just cowardice that made games so boring and averse to surprise: A substantial problem emerges when you make a game not what it appears to be, which is that, naturally, it no longer appears to be what it is. The problem with hidden depths is that they’re hidden, and many people who would love to explore those depths will never know there is anything to be explored. How can you sell a game like that?

Fortunately times have changed. Now that there’s a scale for game development below the nine digit development cost, we have a lot more leeway to make games that play with expectations. There’s room now for games to be strange and surprising, for them to have big secrets or sudden shifts.

One of the games most well-known for not being what it appears to be is Frog Fractions – and, at this point, if you have any interest in the idea of secrets and discovery in games and haven’t played Frog Fractions, now might be a good time to check it out Frog Fractions is, to first appearances, an educational game – this is, of course, just a facade. Underneath the surface, Frog Fractions becomes a series of strange, divergent mini-games that tell a surreal story about a frog’s adventures through space, with detours for a fanciful description of the invention of boxing and an exploration of the economics of bug pornography. One of the criticisms of Frog Fractions is that it fails to maintain plausibility as an educational game, being obviously absurd and lacking in educational value from the first moment. How, though, could this problem be fixed? This absurdity is necessary in order to signal that there’s something off about the situation, something to be uncovered, something to be found.

So we find we run into the same problem as before: How can you sell a game that is other than it appears to be? Not just in the sense of getting people to pay money, but even just getting people to pay enough attention to actually see the game for what it is. Holding something in reserve is an act of tremendous confidence as an artist, because it necessitates withholding the most special and exciting aspects of your project so that they can emerge later. Yet, still, you must have some way of signaling that something has been withheld, that something is hidden beneath, otherwise your audience continues sailing along the surface, unaware that anything unknown might hide within the depths.

A number of strategies seem to have emerged. Frog Fractions, as mentioned, is just a little bit too absurd, too out there to be quite what it appears to be. Dark Souls has messages from players scattered around, ensuring that those hidden things which a few players stumble across by pure chance can be found by other less observant or lucky players. Games like Axiom Verge, Anodyne, and Problem Attic signal that there’s something off in the world through the symbolism of video game glitches. Other games, such as Candy Box, just ask you to spend enough time with the game that the weirder elements of it will eventually become apparent to you just through exposure. Undertale uses all of these tricks to tell a stranger, scarier, and sadder story than it at first appears to.

Secrets are wonderful, but the only secrets we know are the ones we find – others fade away, merge into the vast sea of things we don’t know and never will.. It doesn’t help anyone if we squirrel around, hoarding nuts for the winter, only to forget where they have been buried and have all our work come to nothing.

I feel like these monthly devblogs have been getting away from me a bit. From now on I’m going to just nail the date down here and say I’m going to always have these up by the 10th, since that gives me plenty of time to recover from the traditional rent panic and wrap up whatever loose ends I want to have before the post goes up.

Anyway.

I guess the first thing that should be said is immediately after spending last month’s DevBlog complaining about being unable to increase the framerate, I went and did the extremely obvious thing that I mentioned in that post and that,  unsurprisingly, boosted the framerate massively. It’s still not a stable 60 frames a second, but it gets there on some of the more bare-bones levels and is stable above 50 on some of the more complex ones so it’s fine. Of course, I immediately tanked that framerate back down to 30 or so by engaging in a month-long project to add a sweet water effect to the game. In fact, the entirety of the last month has been spent on working on this sweet water effect.

This effect is achieved with a combination of copying and flipping the screen buffer, overlaying a texture on top, applying a displacement map on top of that to warp the image, and then running that through a color matrix filter. I’ve fixed a lot of the slowdown by cutting the draw area down to just the section of screen that needs to be drawn, rather than drawing the whole screen worth of water and then masking the parts I need out, but it could still use some more optimization. I’m a bit frustrated that this effect is taking so long to get working, during which I’m not making ‘content’, but I’m also pretty happy – this water effect is actually something I’ve been thinking about for a long time, and honestly now that I’ve got something in place I can think of a lot of rather interesting applications beyond the obvious. The ripples and displacements might be applied to make grass ripple in the wind, the reflections can be used for other reflective surfaces, and the improvements I’m making to the particle system to allow entities (like the water) to spawn particles for special effects will have limitless applications.

There’s still some work left to be done here. I have the architecture in place to add splashing effects and whatnot as entities enter and exit the water area, but these effects have yet to be tested or implemented. With that major revision done, further work on the water system will probably mostly be in the vein of tweaks and refactoring, which I can do gradually as needed over the life of the project. Some glistening white areas might also be nice, but I’ll probably add that to a wishlist for later. Next, I’ll be focusing on really building out the first few areas of the game and ensuring the first couple enemies function properly. i am, of course, months behind the project planning schedule I had earlier devised, but at this point I’m just trying to maintain morale and make steady progress – I can see about working harder and faster as I gain aptitude with (and slowly improve) my tool set.