Team Introductions: Dimitrios (“James”) Thanasias-Spanos

Fallen Gods

Shape your own saga in a harsh world that changes every game, offering thousands of paths through hundreds of events. You are a fallen god fighting to win your way back home. Whether you prevail will depend on your might, wits, powers, followers, and artifacts—and, above all, on your decisions.

I’ve known James since 2010, when he joined the [i]Primordia[/i] team as its coder about two weeks into development, and he was one of the “three musketeers” who started Wormwood Studios in May 2012. Alas, because he’s in Greece and I’m in the U.S., we’ve never met face-to-face, but despite that he’s a dear friend and a role model to my daughters—whom he’s known since their birth and who view him as the consummate problem-solver and as the instigator of many of the “Crispinisms” I wrote for Primordia. There’s no one I’ve collaborated with as much in game development as James—a third of my life!—and no commercial Wormwood Studios game has ever been released without him. So when he was able to join [i]Fallen Gods[/i] in 2022, my stress level dropped considerably. You can follow James on [url=https://twitter.com/dualnames]Twitter[/url] and read his answers below. - Mark Y. [img]{STEAM_CLAN_IMAGE}/40734231/87867d72ef41045b95712ce17e221b4c9670bf22.png[/img] [i]Mark[/i]: You’ve coded every commercial Wormwood Studios release: [i]Primordia[/i], [i]Strangeland[/i], and your own action-platformer [i]Until I Have You[/i]. What unique challenges has [i]Fallen Gods[/i] presented? [i]James[/i]: It’s a genre in which I have little expertise for starters. While very complex, it is also uniquely fascinating to see all the inner systems of such a game come together and understand how they work. The biggest challenge has to have been the map generation algorithm. The most difficult part has been making it stable and ensuring that while it is randomly and procedurally generating content, but at the same time is not constrained due to some technicality. Within the generation algorithm of the game, there’s a lot of inner algorithms—detecting roads, erasing weird shapes on our roads, eradicating roads that lead nowhere, placing docks properly on the map, removing rivers that make no sense as well, etc. There’s an impossible amount of small adjustments that happen as a player generates a map, allowing for the ruleset to be expandable and dynamic (if you know me, that’s my favorite word). Ultimately, I think it’s not that relevant to list all these small but yet significant adjustments and expand upon the decision making. But to summarize, the fact remains that we’ve put a lot of emphasis on generating maps that make sense and work well. [img]{STEAM_CLAN_IMAGE}/40734231/79ed46134c903adcd94fc3207109c153535ae2fd.png[/img] [i]Mark[/i]: Conversely, is there anything about [i]Fallen Gods[/i] that’s more fun, easier, or more interesting than the prior Wormwood Studios projects? [i]James[/i]: Pretty much about everything. It’s not just that the engine that’s different, but also the implementation is less constrained this time around. On our earlier projects, there were challenges from a fake 3rd dimension and we were limited by not getting necessary animations and backgrounds. Here, we have been able to create something more alive and fluid with fewer assets. [img]{STEAM_CLAN_IMAGE}/40734231/36cb946942955006a39baaffd49612102e833eee.png[/img] [i]Mark[/i]: What aspect of your work on [i]Fallen Gods[/i] are you proudest of so far? [i]James[/i]: That would easily be the way the game during its generation, places the docks on our map. Each map has four docks, in addition to towns, where you can depart or arrive on a ship, and we wanted to, one, make sure those docks are distributed in a useful way, and, two, name them Northdock, Eastdock, etc. so the player can easily identify them. All of that was hard. First, the game determines a list of hexes that are able to have a dock and are not within a town’s reach. Even if that would seem that this would be very few hexes, it’s still about 100 of them (at the very least) on every generation. Then it splits those 100 into four significant groups based on their angle from the center of the map, and places those four groups that have a certain median angle, as close to the cardinal directions (NORTH, WEST, EAST, SOUTH) as possible. If it fails, then it attempts to find a diagonal approach or an approach that makes sense. All these steps took an insane amount of work to be coded. After that, the docks are named. Naming the docks when they’re cardinals is easy, but naming them in the fallback diagonal approach is not as easy as you’d think it to be. But luckily I was able to get past that obstacle and now, no matter what, we always have properly placed docks and properly named docks, as the game’s algorithms for both generation and naming have been finetuned!