At the start of the week I took a chance and tried to build my first proper combat arena. It’s a first draft, trying to figure out what even works.
Screenshot from Scramble Quest, showing a combat arena depicting green fields bisected by a river.
Playing Final Fantasy Tactics, it’s notable that these arenas are structured through chokepoints where units can block other units, leading to difficulty getting where you need to, as wells as bunching up units conveniently to be blasted away by magic in one go. Another common, though not a constant feature, is a difficult to traverse center, which can often be used as vantage points, but more often than not forces units to walk around it, encouraging play across the whole map. FFT also has very asymmetrical maps, which makes them look more naturalistic and leads to interesting encounters, however they are by nature unequal, which works best in a singleplayer experience (though that hasn’t bothered the PSP release of FFT, which implemented a multiplayer versus and co-op mode).
Scramble Quest does not play like Final Fantasy Tactics though, so I’ll have to adapt the learnings and see what even fits for my purposes. So far height has no influence, so a vantage point would do nothing. blocking a passage doesn’t quite work, since characters don’t occupy a whole tile of space. Meanwhile SQ is going to have players chasing each other a lot, meaning it may be good to have a lot of places to hide behind and run around. Lots to consider and try out.
Something major I noticed though, was the consequences of not letting the players control the camera. It’s not too much of an issue for knowing where your characters are, since they feature outlines that are shown no matter what. However I found that there’s elements of the map that can be hidden behind other ones. Tall trees obscure viable paths. High plateaus hide ramps to get onto them. So, I’m thinking, tall objects need to be further in the back, where they can’t obscure anything, while smaller details should be more in the front. The arenas themselves should likely be structured so that lower heights are in the front, and higher locations are in the back. It can also represent an opportunity though, to give advantage to a player that is more willing to explore the map, or risk using a path they can’t properly see.
On the MGZsheroes side of things, we had our mentor matchmaking! There were few game-focused mentors there, but it was still fascinating to talk with all of them. They were all there driven to support us on our way to founding our companies and brought their own perspectives, from finance, managerial, production, marketing, etc.. Everyone had advice, insight, or tried to think of contacts that could help us. Afterwards we submit our preferred mentor picks, and we’ll see who we’ll end up with. I’m really excited for this. I’d had a mentor in the past, but at the end I realized that I came to it without any particular needs, just hopes for the future and no path to get there. It was nothing a mentor could help with, though I’m still thankful for her time and her insight. For this mentorship though, I’m actively working towards building something, and am gathering all the help I can towards my goal. Even while I’m still learning how to ask people for help, I think this time at the very least I know what to ask for. As building a studio becomes more serious, I have also started looking for co-founders. In particular I’d love to have an experienced Artist and Programmer to back me up. I want to be able to entrust those aspects without second thought to others to be less spread out. Though I also desire the fresh insight and input of other people. I’m excited for what surprising things other people can bring into this idea of mine. For that purpose I also looked into local financing options. I just don’t want to risk or be a drain on anyone’s finances at all. This work has to be sustainable.
The Film- und Medienstiftung NRW also organized a summerfest! I’ll admit, I’m not a party person, the noise was a lot for me to handle, but it was interesting to be in an environment with so many people from various media branches. Specially film/tv if I understood it right. But the highlight was having a chance to hang out with my fellow Sheroes, and getting to know them better. We usually only meet for seminars, so we don’t really get to talk much beyond the topic of why we’re in the same room together. They’re an impressive bunch, and I can feel a bit out of place, but you know, impostor syndrome and all that. So yeah, it was a lovely evening with nice people. Oh, and there was wonderful ice cream with a variety of toppings you could put on yourself. Marvelous. I miss it.
I swerved hard and away from level design for the rest of the week. Something I care immensely about in games is story. And this story is supposed to depict people who grew up in a world that is trying to recover from and prevent the violence that has plagued the past, not unlike our own real-world experience.
I’m not under the illusion that what I’m going to say through my story is in any way ground breaking. I’m not a grand thinker or writer. But I’d be remiss to not do my due diligence in researching the circumstances from which what I will say are derived. I’m a child of the European Union through and through. Born around the time the Berlin Wall fell, the east and the west reunited. Grew up and lived in several countries in Europe that were living through immense optimism. A growing union, neighbouring wars and its refugees, a single currency, free movement. Defining features of my youth growing up largely outside my home country. Of course the history behind what I lived wasn’t unknown to me, but as said before: due diligence.
What struck me the most, was that I was looking at a generation looking for a solution against nationalism. Many looking for disparate yet similar solutions. But also the same aging generation, so focused on unity and peace, was the one that stewarded the world into war or at least grew up among nationalism. Now they disregarded the needs of the youth, even while they focused on community. Baby boomers rebelling, not inheriting, but taking the world. An interesting comparison to the current times, when again we’re rebelling against an aging power structure that disregards the youth. Though this time those in power have forgotten why the world has its current shape and why it needs to be upheld, how desperately their predecessors fought against nationalism and for unity. It’s disheartening to know that ideals of cooperation are so fragile and can erode with the passage of time, as those who experienced the worst case disappear from the face of the earth.
The other thing that jumped out at me is that the European Union could not become a union without the support of those outside it. Of course the US was instrumental in building Europe not only back up, but sharing with it structures that support many states working together. The goal always being that we’re stronger together, no matter on which scale. We’ll be there for each other when the other suffers. Community.
Phew, so political, and yet it’s just the forces that shaped me.
On behalf of the IGDA Foundation, I held a talk as part of the STEM Game Lab panel for the German American Chamber of Commerce (probably should’ve plugged that here. Whoops) and I had a seminar through the MGZsheroes program. The panel was interesting, as not only did I get to word vomit about what I do and what I value in game dev (curiosity, learning, knowledge sharing, communication), but I got to hear from others how they handle game dev education. I was pretty impressed, it sounded exactly like what I’d want from an experienced developer’s point of view. Now, the seminar was largely on generative AI, and while interesting (and the speaker was genuinely nice and really knowledgeable in his non-AI discipline), I still can’t see a reason to use it, specially considering the costs (specially, but not only, environmental costs). And as much as I might hate writing long documents and presentations, they invariably help me think through the topic at hand in a different way, giving me new insights and a more solid understanding. And I wouldn’t want to lose that.
Alright, but we’re here for Scramble Quest. What did I manage to do?
The class icons on the cards are placeholders taken from Dungeons & Dragons. I’m writing this just a couple of hours before my next TTRPG session 😀
In Scramble Quest you pick an action from a slew of options, and then scurry around the map, trying to position yourself so you can hit your target with that action. Most importantly, All players pick from the same pool of actions, which are sourced from their own individual decks. Initially I put the two decks together, shuffled them, and then drew X amount of ability cards. Why? Uh, I dreamt it that way. I played the game in a dream, and that’s how it was there. Turns out, it’s not great.
Now, currently my favorite format of Magic: The Gathering, when playing with my partner, is Jumpstart. You have two random 20 card decks, mix them together, and you’ve got a semi-functional 40 card deck. That works. The issue is, the larger the deck (and I still haven’t locked card count), the harder it becomes to find a particular card. Throw two 40-60 card decks together and it just becomes awful. You’re trying to do a damage type of action, but you’ve got only healing and defending on your hand. Terrible experience.
The solution of course is to divide it up again. Each side draws from their own deck to their own hand, even if ultimately the cards are available equally to all. I put one hand to one side, the other to the other, and the selection pucks in the middle between the two, so they’re equally accessible to all players. Now each player has a proper equal chance at accessing cards from their decks. They have full access to their strategy.
It sounds like it should be an easy refactor, but it’s a weirdly fundamental change to the first system made for this prototype. Everything was built on this one deck that was mixed from two. Though not changed as quickly as desired, it still was a blip in the grand scheme of things, and so worth it.
The result screen though… It feels stupid, but I keep pushing it out for as long as possible on every project where I need to make one. It’s just… it feels so big, because after all, it’s the culmination of a competition. It needs to be flashy, and rewarding, and give you loads of information about what happened in the competition. Heck, you need to define and track things that happen during the competition. You need win conditions, and various things that could happen, so you can show it on your result screen. You need to have buttons that work perfectly to return to specific previous states and whatever else the player might want that I’m not thinking of.
No. Just do the damn thing. Yes, of course you need buttons to leave or restart. And you need “a” condition that triggers the screen (not even a proper one). But that’s all. It doesn’t even have to be bug free! After all, this is an early prototype, and even if it wasn’t… Gotta start somewhere. Frankly, this applies to pretty much everything you want to do. Don’t let it balloon in your mind. Reduce it to the bare minimum. Make it a small step. Everything else can come later. Heck, it will be clearer later, so don’t even think about what comes after.
So that’s what I did. I first set up a win condition object that gets checked at the end of each round and I made it check if there’s any team with no undefeated units left. And then… I simply display a quickly thrown together screen that displays winner, team composition, and defeat state. I also have the win condition add a widget with further information relevant to the win. In this case, in which round which unit got defeated. This latter feature is still buggy, but that’s fine. It’s fine. Absolutely fine.
I’ve been working on Scramble Quest off and on for a while now, but this is the first week I’m dedicating full-time for it! Yes, my 6 months of prototyping and writing a design document have started! So of course I’m working on something absolutely core and essential to the game, no? Well… sort of. With the prototyping phase I want to answer all fundamental questions that may come up in development, and for that I want to create as much of the framework of the game as I can. Apart from the combat and exploration mechanics, that includes the storytelling as well. Two big tools being passive dialogue and the camp.
So for dialogue I’m using YarnSpinner, which traces its origins all the way back to Night in the Woods! This is not only a completely new tool for me, but also it’s in Alpha only for Unreal Engine. So it’s been a lot of figuring out how it works, and how to tie into what I already have and my intentions. I don’t know if my implementation is ideal, but hey, we figure things out as we try them and move forward.
Btw. all visuals are free placeholders. Characters are the modular characters by Underking. The Lowpoly Handpainted Environment by Yevheniia Yaremko. Stylized House by Agustin Honnun, Stylized Tree by Oleksii Ganzhela, Low Poly Market by atomdev. and probably more that I’m currently forgetting.
Passive Dialogue is something that I had started last week and had been a bit troubling, as it wasn’t the default implementation for YarnSpinner, but you can work around most things, and ultimately I got it working this week. There were just some issues with its very sparse nature and attaching each line to the correct actor in the map. This scene in particular was important to me, as I want the player to walk up to the quest board, and before selecting anything, see their party members discuss the available quests and share their opinions and preference. And that without having to enter into proper dialogue. I think it really works and will be a great way to make the world feel more alive and less dependent on you.
While looking up reference pictures to describe Scramble Quest I came across this image from the Dungeons & Dragons Player Handbook. It struck me that this isn’t a scene you’d see in a camp in a video game, where your companions have their own bespoke spots of a larger camp. They generally don’t even talk with each other! So I set to making a different kind of camp. Single screen, no walking around, and the characters are in ear-shot of each other, so they can talk with each other.
Looks like a house interior, but it’s meant to represent the back of a caravan, where part of the party is hanging out during travel. It has no character animations or posing at the moment, but in the end I want to evoke the feeling of friends traveling in an RV cross country. Currently the only scene is set inside. If budget permits, it’d be wonderful to be able to have the party occasionally camp outside, and just have plenty to say to each other.
The complicated part in this setup was solely figuring out how I want to control a scene that will be different every time you check in, and allowing for different conversations requiring specific characters present. Just a lot of information to be handing about between the dialogue manager, the UI, and the world. In the end I decided on having scene setup files, and conversation files. The chosen scene setup pulls up a level sequence and plays it, while the game goes through the available conversations and checks which fits for the current state of the game and the current scene.
Well, that’s all for this week! I hope to write weekly, but hey, there’s so much to do for this game, let’s see what I manage.