Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Developing Commercial Games in Adventure Game Studio (Guests: Mark Yohalem & James Spanos) image

Developing Commercial Games in Adventure Game Studio (Guests: Mark Yohalem & James Spanos)

S666 E3 ยท Back Seat Designers
Avatar
31 Plays3 months ago

Joined by guests Mark Yohalem and James Spanos of Wormwood Studios (makers of Primordia and Strangeland), we take a deep look at game development tools and engines in this episode. Adventure Game Studio is a tremendous (and free!) tool to make adventure games. But, as Mark and James discovered when making Primordia and Strangeland, it does have both its perks and drawbacks. Mark takes us through his experiences and James pops in at the end to add some additional context.

If you didn't know them already, these are Wormwood's games:
Primordia: https://store.steampowered.com/app/227000/Primordia/
Strangeland: https://store.steampowered.com/app/1369520/Strangeland/

Originally published: Nov. 8, 2024

Transcript

Introduction to Hosts and Guests

00:00:32
Speaker
Hello and welcome to The Backseat Designers. I am one of your hosts. I am the Space Quest historian, sometimes known by an unpronounceable Scandinavian name. I am joined, as always, by a man who spent 10 years of his life butting heads with a bunch of Space Quest nerds to make the fan game Vohol Strikes Back, also known as Monkey Island in space. Hello, Frederick.
00:00:55
Speaker
Hello, you're neglecting to mention that I was also a space quest nerd or, you know, am a space quest nerd I can't claim to be a historian but you know if you work 10 years on a fucking fan game I would assume you would be a fan of the source material nine years nine oh Oh, dreadfully, sorry. Big mistake there straight from the gate. We're just under the length of the space venture development. Anyway, moving swiftly on. um Today, we are unfortunately not joined by a man who will soon make the front page news for murdering his landlord, Dr. Gareth Millward. Frederick, what what was the story there? He blew up a generator or something?
00:01:36
Speaker
Well, I mean let's go a few months back it all started with the domain expiring, right? This guy just has awful luck with the tech. And this is going to be a running joke from now on. Oh, from now on. I thought it was since the first episode. Yeah. ah Dr. Gareth Millward, PhD in history and um just an all-around British gentleman. i Apparently, he cannot figure it out now to turn his fucking computer on. But this time, he didn't trip over a cable. His landlord apparently did. And he is without internet.
00:02:10
Speaker
which is as the the closest you can get to capital punishment in our country. so And he's old school enough to have a limited data plan, which is 2024. That means you're asking for it. Absolutely.

Mark Yohalem's Role and Contributions

00:02:23
Speaker
Well, personal qualms aside, we are also joined by an esteemed guest today, and that would be Mark Yohalem. God damn, I am trying my best there. How are you doing, sir?
00:02:34
Speaker
I'm doing very well. And that yeah I know my colleague James Spanos hoped to be here too. I think he passed out from working 24 hours straight on various game projects. um But if he wakes up, I expect he will burst in like the Kool-Aid man um with all sorts of interesting insights of his own.
00:02:58
Speaker
We're just beset by good luck at the moment. This is the day I'm going to start playing the lottery. I can feel it. Absolutely. And and there there will be a day or two and then you will be announcing a divorce, moving out your house, living in a cardboard box, and the podcast will continue unabated, as always.
00:03:16
Speaker
um Yeah, so that's that's pretty much where we're at. This is already a clusterfuck, and we haven't even gone three minutes into the proceedings. It's going to be great. um um We should probably mention our guest's credentials. um Mark is a part of Wyrmwood Studios. They developed Primordia and Strangeland, which, full disclosure, are two games that I should play and should have played many years ago, but haven't.
00:03:44
Speaker
So... You haven't played Primordia or a Strangeland? Neither have you. What the hell is... Well, you weren't supposed to say that. ah But I did. I did. I came out of the gate. So, ah pray tell, Mark. What should we do to Atone for our sins? ah You should obviously play Primordia and Strangeland. That was predictable. It's the only to Atone.
00:04:07
Speaker
But it's also a nice segue into our topic, which is going to be a little bit more abstract since um we did our research so poorly that we neglected to touch either game.

Exploring Adventure Game Studio (AGS)

00:04:18
Speaker
um And ah we've talked about adventure game engines before. or Tried talking about engines I remember one episode that went particularly off the rails and only turned to the topic around 45 minutes in ah But we're going to talk about the engine that you guys ah have been using for these titles adventure game studio
00:04:42
Speaker
which is a lovely free adventure game development toolkit used by many illustrious developers around the world, including friends of the show, Dave Gilbert of Waginai Games, Francisco Gonzalez of Karundislav Games, and a host of other lovely people. And I think it's fair to say that your titles, Mark, have also made an indelible mark in the adventure game genre as a whole.
00:05:08
Speaker
And it's, you know, particularly noteworthy that they are built with what is ostensibly a free, you know, pick it up, run with it game engine. What led you guys to use AGS in the first place?
00:05:22
Speaker
so I think it's the community. And to me, that's one thing that sets AGS maybe not apart because many um smaller game development tools have these very intense, loyal, um and generous communities around them. I had spent years working with Inform, which was a parser engine. gen with similar longevity to AGS. And likewise there, the community was small, um but but incredibly collegial, full of brilliant people from around the world, and always generous with their time and supportive of people learning how to use the engine. And
00:06:10
Speaker
That's something that if you go on the AGS forums, you're not going to see six million posts. You're not going to see a thousand commercial games that are being released every year in AGS. But what you will see is a very longstanding community in which people are very generous with helping each other out. And but ultimately that was where i you know the Primordia development team all connected through the Help Wanted forum on the AGS forums. And I had attempted making graphical adventures
00:06:51
Speaker
long before primordia in different engines. There was one called Agast, I believe, A-G-A-S-T. Yes, I remember that one. And um I might get into why later. But but yeah yeah, that was there.
00:07:06
Speaker
And then there was an engine called Sphere, which had been sort of like a spin-off of another JRPG type engine that was being used a bit. um And then I had experimented with coder friends trying to make our own engines, because there there is sort of an impulse to do that. but But what AGS, I think, offered was this community and that if the If what you're trying to do is the sort of simplest level um you know basic adventure game, it is extremely
00:07:45
Speaker
um welcoming the engine itself not just the community the engine is one in which you just start throwing in assets you start creating rooms you can very easily say oh yeah i have a 40 room game and you can go through all the rooms there are 100 items anyone can do that pretty quickly in hgs and then as you layer on top of that more complexity the engine gets harder and harder to work with. um But at that entry point, it's very nice for prototyping and for people who have no programming experience or skill to be able to get some kind of game moving.

Programming Challenges and Experiences

00:08:22
Speaker
um And so I think that's part of why why it's so popular. Some of these other engines have ah had had and still have a higher barrier to entry, um and they don't have the same community around it.
00:08:36
Speaker
I absolutely agree. I've i've dabbled in AGS myself with you know some jam games and a whole library of unfinished projects. And every time I run into a stumbling block, all I have to do is is pretty much just type into Google, ah what the fuck is up with this? And site colon adventure came studio.co.uk. And up comes the answer, typically written by Snarky, the yeah community member yeah who has just an in infinite knowledge of of how the engine works. um It's interesting you brought up Inform, the yeah text adventure engine, if I if i may just ah take a little detour already.
00:09:20
Speaker
Not even 10 minutes in, we're already detouring. It's interesting you bring up that one because I've also looked at certain text. Because I can't draw for shit, that's my problem. So I've been looking into what other avenues for storytelling could I possibly use. I've looked at Quest, the text adventure engine that looks a bit like Infocom, which also has a fairly easy ah barrier of entry.
00:09:47
Speaker
And then there's Inform, which is which is a very, very interesting way of putting together ah text adventures. I don't know if you're familiar, Frederick, but you basically write ah full English sentences, as in, there is a room, in the room is a table, on the table is a box, inside the box is, and then you just go on and on, and the game sort of interprets that pre-chat GPT style to actually build a game around it.
00:10:14
Speaker
Yeah, I think I heard about that, but, you know, I've i've never... ah I mentioned a GAST earlier, because when we started the Space Quest fan game that I worked on, Wohold Strikes Back, it came down to a choice largely between a GAST and AGS, and the latter just seemed easier to work with. I've never really dabbled in text adventures much, but but, you know, obviously sounds like the text adventure variant of AGS as far as intuitiveness girl goes.
00:10:43
Speaker
Yeah, and that's that's that's kind of strange because I ran and i tried both quests and Inform 7 was the one i I picked. And for some reason... um See, i'm I'm not a programmer either, but I can work my way around the scripting language of Adventure Game Studio. ah As Mark put it, it's it's the again, the entry barrier is fairly low and you can fairly quickly do a lot of things that are just you know your basic point and click adventure game thing. You don't really need to be a programmer to get this thing to work. And for some reason, my brain could not wrap around the idea of putting full English language input into an engine and have it and have it do that. Mark, how how did you um are you... First of all, how how skilled are you in the world of programming? And second of all, how did you... how did you you know wrap your brain around how Informed worked. So, it's Tibet James isn't here because he would delight in shouting at me. I was a very good programmer in Quick Basic.
00:11:49
Speaker
a pretty good programmer and the logo writer, a decent programmer in Turbo Pascal, and then okay at scripting languages. But any useful programming language from the last 35 years, I have almost no familiarity. So all the time when we were programming things in Primordia or Strangeland, I would propose or in Fallen Gods, our current project, I would give james like what this for quick basic i would do it dot and he would lose his mind because it's a fucking quick. basis
00:12:23
Speaker
spend about how it works like but No one what you're gonna put in line numbers mark is that what you're going to. So i had the same.
00:12:36
Speaker
experience with Inform that you did, but here's the thing. Until Inform 7, that is not how Inform was. Up until Inform 7, it was basically like a pared-down, object-oriented programming language.
00:12:52
Speaker
And then they switched it and it was, I got Vertigo basically trying to use the new engine and stop doing it. But the earlier ones are much more like Quest or Tads is another one of these Tads and Informer kind of rivals for a long time.
00:13:08
Speaker
um The new one I have not been able to manage. I also played around a little with Twine, Inkwriter. There are a few of these i other storytelling tools.
00:13:22
Speaker
um But to me, you know i've I've always enjoyed the collaborative aspect of game development, too. And so working with yeah someone you on graphics and someone else on sound and someone else on code is actually part of the pleasure, um typically, of game development for me. um And again, with AGS, up to a point, it's very helpful on this. yeah I can talk about some of the ah drawbacks that you hit with it as well. We'll get there. We'll get there.
00:13:54
Speaker
um But but from an you walking in the front door, it's very easy to drop assets into it, um relatively easy to drop text into it. Although I will say this is one of the places where a you start to see AGS as age. right Most um game development environments now, you would have the text sort of separate from the source code in a way that it's not in AGS.
00:14:23
Speaker
But it was a good you it was a great place to start. And when we started, our plan was to make a little freeware game. That was the initial concept, was robot game, the freeware game um that was going to be short and slapstick. And then but it grew from there. um But AGS is a great entry point for a freeware game. And I think when we started, there was almost no commercial AGS presence, other than a game called The Adventures of Fat Man. um And then I think Dave had released maybe the first or second first and second Blackwell games. But this was before Gemini Roo, which I think really kind of blew open
00:15:12
Speaker
than commercial AGS space. And so we were just thinking of it as, yeah, it's a freeware engine for making freeware games.

Community Spirit and AGS Awards

00:15:20
Speaker
Yeah, I was going to mention Jim and Iru because when that released, I think 2011 or 2012, that was the year of the first AGS awards ceremony that followed the release of our Space Quest fan game, Bohol Strikes Back. So we were ah at the, ah ah you know, the online award ceremony and I just
00:15:42
Speaker
I just remember Jim and I Roo sweeping the floor with everyone else. Nearly every single award went to Jim and I Roo. We got like a supporting character award, but I don't think anyone knew exactly which supporting character won the award and no one really cared because the major awards all went to Jim and I Roo. So that definitely felt like a watershed moment because there was a real buzz going around ah based on this game. and and what the depths of that have managed to achieve within this engine, which it does have its limitations. I get the impression that a lot of more capable developers than myself um have managed to mod it to an extent where you can now do a lot of stuff in it that you couldn't before. but
00:16:30
Speaker
Certainly speaking about limitations, another game that I worked on and the trolls worked on that was developed in AGS was a Stair Quest. And ah I'm sadly very, very guilty of introducing a glitch in the special edition of that that is now being exploited by speed runners. So so that's good, I guess. um But we introduced the snow level where there's a yeti chasing you and we introduced some ice mechanics where you slip a bit every time you stop your character.
00:17:00
Speaker
Anyway, the the complexity of the background was such that I just ran out of walkable areas and walked behind. So at some point I just had to leave it and go, you know what, it's fine with the result that you can like get from one end of the level to another by just going you know going through the right spot ah basically no clipping through the through the area and um so it does have its limitations but in my experience you have to go pretty far before you start to hit them so that's nice
00:17:36
Speaker
Yeah, and I just want to circle back real quick because Mark mentioned the ah the spirit of the community and and how ah collaborative and and welcoming they are. Just the fact that there is something called the AGS Awards, which is, like you said, an online ceremony where AGS developers get together, both commercial and freeware developers, to pat each other on the back and say, good job, you did it you did really well. that That just speaks to that community spirit. um Mark, have you ever been like part of that?
00:18:06
Speaker
whole um you know AGS awards s thing? I haven't. um In part, I think you had to like download a special client to do it. Yes. And there was some reason I couldn't get it to work on my machine. ah James may have actually programmed the client, or at least had a hand in it. So it's maybe he's culpable. but But it does seem like the whole wards and the fact that there's this client and it has the vibe of, you know, I don't know how old you guys are, but like moose and muds and mushes back in like the late early nineties, um, where it was, yeah, these small communities of sort of passionate polymaths who, uh, came together around,
00:19:00
Speaker
ah gaming, but not in the sort of traditional oh like hardcore competitive gaming mindset. it was much more It had the feel of like people in like a college rec room having beers and chatting rather than yeah fighting it out on a rugby pitch.
00:19:21
Speaker
Yeah, and and yeah quickly speaking to that client, um like you said, when when the awards happen, it's it's this um you download a a client which is made in AGS and what it does is it taps into an IRC channel to make the chat happen, but it's ah the client itself is pretty much like a one-room adventure game where you got these characters walking around and every time you type something in in the chat,
00:19:47
Speaker
ah you know It appears above their heads, Monkey Island style, but what it's actually doing is it's pulling the chat messages from that IRC channel and putting it above people's heads. That's what as far as the extendability, if that is a word, sorry, second language, um and and you know being able to mold the engine into ah some pretty advanced shit.
00:20:10
Speaker
It's kind of amazing that you can get it to do that when it is ostensibly just you know pick it up, make a graphic adventure game, plop in some assets, do a little bit of scripting and and and off you go. But once you dive under the the covers, so to speak, it it suddenly becomes a pretty powerful tool if you know what you're doing. Yeah, I think that's right. I mean, I would say,
00:20:35
Speaker
so I'm just thinking of like, ways in which the engine has been broken and put back together in unusual ways. Yahtzee made a kind of flashback out of this world kind of game. I can't remember the name. And then he made this privateer-ish uh kind of game or star maybe maybe star trek 25th anniversary kind of game called galaxies of fantabulous wonderment um and then of course james spanos made until i have you which is as abusive of ever it's abusive of the system and abusive of its players uh you know but it it it's a matter unbelievable that you can make an action platformer that's that fluid in an engine that's intended to be
00:21:31
Speaker
not merely a point-and-click engine but a point-and-click engine for a very specific kind of game right it was clearly made with the space quest series in mind outside and then is sort of you. Add increasingly or jerry's accretion around it but that the fundamental building blocks of a chance are still very much.
00:21:54
Speaker
traditional point and click Sierra adventure game structure. um And yet it's able to do these things for a multi user chat room or a platformer or space opera game. That's really extraordinary. I'm not sure that's a healthy use of the engine because it probably would be much easier to make that in anything other than quick basic. But you know, if you were to make that in JavaScript or something, it might be easier.
00:22:23
Speaker
Yeah, you know, like i'm I'm kind of thinking of click and play now. I don't know if any of you guys are familiar with that, but I spent lots and lots of hours in my ah childhood trying to create good games in click and play. And I kind of get the same vibe from AGS as far as intuitiveness goes. It's not always the most advanced tool.
00:22:44
Speaker
ah at least not in its vanilla state, but mess around with it and you can create some pretty impressive stuff. you know our ah Our good friend, um Chris Ushko of of Box of Mystery Games, actually managed to create a pretty convincing series of point-and-click games and in click-and-play. um He made these really wacky remakes of Monkey Island 2 only stylized as MI colon 2, as in Mission Impossible 2.
00:23:14
Speaker
called I think the subtitle was The Devil's Triangle, or maybe I'm confusing that with another game, but it basically saw Guybrush 3 cast as an action hero and everything just went completely off the rails. And when when I played that, I kind of had that same feeling as what you describe.
00:23:32
Speaker
I can't believe someone actually pulled apart this thing that I would get so frustrated over as a child and and created something with it that should not be physically possible. But that's Chris for you. you know and And thank God there are people like that out there. That's amazing. I think that's right. Click and play and slash, I would put in that category too. Click and play. um I don't know if you guys are familiar with the developer, Derek Yu. He and I were actually high school classmates, but I believe his first game was Eternal Daughter, which was in Click and Play. And then from there, he made Aquaria and then Spelunky, and now is, you I don't know, made a very successful game developer. it But a lot of these things were incubated. Again, Flash is the same thing.
00:24:23
Speaker
environment um that really weren't necessarily intended to make this level of a sophisticated game. I don't know if you guys ever used hypertext back in the Macintosh days. But hypertext was a similar thing where it was not remotely intended for these kinds of purposes. um And yet, that's how you know human beings love to play games. And so games emerge out of them.
00:24:52
Speaker
um My first commercial project was working on a Game Boy Color role-playing game, and the programmers for it had gotten their start making role-playing games for TI calculators.

Innovative Uses of AGS

00:25:07
Speaker
and you know TIs actually used Quick Basic as their main programming language. So I did make games on TIs. But they found a way to write assembly code into a TI calculator and made what amounted to like an Ultima 3 clone on a calculator. So you could be there in like your trigonometry class pretending to do, you know I don't know, sine over cosine. And in reality, you're playing Ultima and leveling up.
00:25:38
Speaker
um I don't know. To me, all of this, the demo scene is another area where, you know, as much as I love ah you love and and don't love Unity, Unity is much more polished, commercial, you know extensible, all of these things. um Maybe that, is that the right way? Now you've made me self-conscious about that work. I mean, it's it's really funny when game development turns into kind of a game in its own right. you know Can I break this device? Can I break this engine? ah We talked about remakes and remasters and demasters in an earlier episode.
00:26:22
Speaker
And I don't think we necessarily covered this during the episode, but I'm always amazed when someone takes a more modern game and points, you know, ports it to an earlier device. So, you know, if you turn your bag a minute, someone will have ported the seventh guest with full motion video to, I don't know, C, expect spectrum or Commodore 64 or what have you. it's It's so entertaining to see that happen or the TI calculator, which I'm sure runs Doom.
00:26:50
Speaker
It does. I've no doubt it does. I've seen it. It does. Yeah, I think, you know, I, at some point in Primordia's development, I said,
00:27:01
Speaker
making an adventure game is like playing an adventure game because you know you're your solutions to problems, first of all, the problems seem to occur at unexpected times. Sometimes innocuous decisions made early in your experience turn out to have tremendously negative ramifications as if you were playing King's Quest 2 or Kyrandia or something and discover you can't beat the game because you ate both apples when you only were supposed to eat one apple.
00:27:30
Speaker
yeah So, too, with the adventure game design and then the solutions to these problems often require combining, ah particularly in the AGS engine, combining things in ways they were not intended to be combined, like the proverbial rubber ducky fishing rod and the longest journey. I would say Under the hood of ah Primordia and Strangland, if you could see the amazing things that James did in coding those two games, you would see those kinds of solutions where he would find a function that was intended to do one thing and another function intended to do something else and combine them to do something
00:28:12
Speaker
totally different from how either of the two was initially intended. But this, I will say, you know I don't want to postpone forever complaining about the AGS engine because I'm a complaint. Yeah, let's just get started. Yeah, so the problem is it has these serious limitations um where ah it ah a yeah It's 27 years old.

Technical Limitations of AGS

00:28:38
Speaker
It began as a DOS-based engine, and of course it's been rebuilt many times, but it has its legacy effects. One of the most dramatic is
00:28:50
Speaker
The way AGS saves games is simply by dumping the active memory into a ah file and then loading the active memory. That includes dynamic sprites which are in memory, yet dumped into your saved game. So number one, the saved games are gigantic, but number two,
00:29:08
Speaker
There are many kinds of game assets that AGS loads into memory as you play that aren't variables. And so if you change a graphic, if you add ah you know a new audio file, you run the significant risk of breaking saves because the memory profile of the game has changed since the last patch. And so one of the things we would struggle, yeah James and I have patched Primordia particularly James, you know, has patched primordia probably 50 times since release. Some of those were big patches, some of them were small patches, but many of them ah we were figuring out how much can we do without breaking a save because we're loading something new into memory and working around those pitfalls. So that's, you know, one example of a challenge we've worked with. Another is that
00:30:05
Speaker
uh very early on fans approached uh me ah about translating primordia into various languages which was very exciting the first translation was into russian and it was done by hackers which i thought was amazing i still don't know how they accomplished it but it was basically a fan hack of the game to put it in russian um the others were collaborations with french german spanish and ultimately many other languages um but But immediately we ran a new problem, which is the font size, not in terms of pixel height, but in terms of the number of characters in a font in AGS is very low. It's designed for the English language, which has 26 lowercase and uppercase letters. And that's it.
00:30:56
Speaker
But other languages have all kinds of diacritical marks. And some of those languages, many of those languages, the number of marks exceeds the number of characters that you can easily use in the character set. so if you look at the text output of like Primordia's French translation, you'll see in places where you would expect to see an accented letter, there might be an ampersand or a dollar sign or a carat or a tilde or some other punctuation character that we have excised from the French font and replaced with an accented character.
00:31:34
Speaker
But yeah ultimately, we just couldn't do Japanese because at the time, we had a ah fabulous fan who loved it. was a you know He was just a ah beautiful writer, thinker. And he basically said, look, and you know you can do you know There is a phonetic way of doing japanese Japanese. Japanese has multiple alphabets. But it comes across as very, very childish to a reader. And it would not be suitable for primordia. But the other ones, the number of characters, are so far beyond the maximum character limited in the font that, though he had translated the game, we could not actually implement it. And yeah those are just a couple of the examples
00:32:21
Speaker
um yeah And I don't know if you guys want to jump in, or or I can just hit the last grievance before ah before that. Up to you guys. um I'm going to take a guess. I'm going to take a stab at it, and then I'll throw the mic back to you. of ah um i I just want to say yes. i absolutely the The whole save game issue is you change one line in the global script, ah which is the script that keeps you know the glues all the rooms and the logic and all that stuff together in AGS. You change one line.
00:32:51
Speaker
and the whole fucking thing just falls apart. You have to go begging to your to your loyal customers and say, yeah, sorry, all your save games are are fucking broken. You're going to have to start again. OK, I'm going to take a stab at at your last grievance. I'm going to say port portability. It is not ah that fair enough. That is a grievance. and But the one I was going to hit before that is actually cutscenes.
00:33:17
Speaker
so In Primordia in particular, um it's it's very easy to have two characters just standing there talking. AGS is great at that.
00:33:35
Speaker
Walking and talking like the red letter media when they made fun of the star wars prequels You could do that two characters standing and talking two characters walking and talking but as you try to get more complicated in the timing and and custom animations and things like that the problem is there isn't a like what you see is what you get in the way that when you're doing a but Even in a flash game, a cutscene, you can tweak something, play it, watch it again, tweak it, play it, watch it again. In AGS, you would have to compile it and then run it, and then you know go back and tweak it, recompile it, rerun it. And there's a considerable lag time. And so that, with a ah team where James and I and Vic were all in different time zones, different parts of the world,
00:34:29
Speaker
Getting the cutscenes done right was like, I have the emails of like, I don't know, 70 emails between me and James trying to get these cutscenes to look better.
00:34:42
Speaker
um And it's it's very difficult. It's more difficult than in any other engine that I've ever worked in. Unless you just do FMVs, which are also a headache in and of itself because AGS supports the OGG and OGB formats natively, which if you don't know are open source alternatives to MP3 and MP4.
00:35:05
Speaker
and they It also does support MP4, but the thing is, if you use MP4s or any sort of you know movie format ah that's not OGG or OGV, they will reside next to your game code. It won't compile into the data file itself, which means that people can just look in your game directory and just play all the cutscenes that they want. And OGV is just a fickle fucking format.
00:35:30
Speaker
um So you could get away with just doing it as an FMV, but then you run into all the other headache issues, which is ah you can't put subtitles on top of OGBs, you can't put You can't put character sprites. I'm thinking of like the yeah ah the PC port of Final Fantasy 7 where they had FMVs playing in the background, but then they had the ah character sprites, or I guess they were 3D models, on top interacting with the pre-rendered video backgrounds. You can't do that. ah So yeah, I can totally see where you're coming from. You have to have
00:36:03
Speaker
immense capabilities in terms of timing animations and you have to... Because again, the the the weight taker in the background of AGS is also a fickle beast because it doesn't run... that it's It's not tied entirely to the computer clock. So so on some systems it runs a little faster and some systems it runs a little slower. So you can't really rely on on on the on the ticking clock inside of AGS. I'm rambling a bit, Frederick, you had something.
00:36:33
Speaker
No, I mean, that that's another issue that I remember that we had with the Voho Strikes Back in which went into the released version ah was ah starting and stopping music and starting lining up other cu cues after playing one piece of music was just horrendous. And in the final game we put out there are several instances where it just goes silent. You know, it's meant to loop or it's meant to start something else, but no music just stops.
00:37:02
Speaker
um I remember having a hell of a time with that ah and also trying to fix it for the talkie version, which eventually went unreleased. I think what what I came up with ah for that was slightly better. but That was just causing massive headaches to me and you know it would do one thing during one playtest and do another thing during another playtest so yeah in in terms of pulling ah I think asset management in AGS is
00:37:34
Speaker
extremely easy, but sometimes the in-game handling of those assets at runtime is a bit more complicated than it has any right to be. Yeah, because you end up having to rely on the timer, especially if you've got, like like Mark was saying, you've got a complex animation of a character doing something while they're talking.
00:37:57
Speaker
and you have to time the animation to the dialogue, that is nearly impossible without having to go in and fuck around with the you know the timer. ah ah For those who don't know, AGS has... ah Wait, what's the limit on on the amount of timers you can have in AGS?
00:38:13
Speaker
it's It's like really small, isn't it? It's like 11 or 12 or something? Probably closely tied to the limit of walkable areas. Oh, God. Yeah. And those timers cannot... um yeah the you you base it it's it's it's It's global inside the engine. You have... Let's just say it's 12. I can't remember. You have 12 timers.
00:38:35
Speaker
And they are absolutely tied to what you want to do. Sure, you can set them and you can look for when the timer runs out and all that. But if if that timer is also used elsewhere in the game, then shit will absolutely break. It's the whole, you know, bubbles in the wallpaper thing you have to constantly watch out for. it So how how do you guys like work around those problems with the cutscenes and the animation timing and all that? I mean, it was just brute force. yeah okay yeah i mean then you Again, the one thing that's nice about having developed the game remotely is all we have like a pretty complete written record of how things were done. And going back, and you look, and yeah, it's just these lots and lots of emails. um When we shipped the game initially, um I think James and I and probably everyone felt
00:39:30
Speaker
like we hit We had a target date and we had to ship. yeah we did The game had been in development a long time. I think they're initially the hope had been to release over a year earlier. And so we we had to get it to market. But we knew that there was a lot that we could do better. And so post-release, we had one you particularly major patch that we worked on for months. But a lot of it was just this way you Replay that you know replay replay replay replay and each time with me sending these emails to James that are like issues list one through 75 like they were absurdly and him responding with you're killing me but and yeah and But yeah, you know It was very cumbersome and you're right portability is another issue where yeah, here we go. Yeah, you know
00:40:28
Speaker
Like, why did I set out to port it to mobile devices? They had someone, there was like one person, I think in the world, who was good at porting AGS to Android devices, and he stopped doing it. So there was the end of Android devices. For iOS, Janet Gilbert, Dave's wife, who's a fantastic programmer herself,
00:40:56
Speaker
handled the primordia port but it was like It's not like unity right where it's just like rebuild in a different environment. It required really a heavy lift and then with switch Uh, you know james really took over it james now does all the porting for wadai's catalog i and he may work with janet on some of them but he does a lot of the work himself for all their games not just the ones where he was the developer but uh Yeah, he basically got primordia to the Switch. But on Strange Land, there is one graphical call in the game for one of the graphical effects that we do, because he he did all these cool visual effects for different parts in the game. And one of those effects just doesn't work on the Switch. And there's, again, some middleware third party ah who facilitates the port to the Switch.
00:41:57
Speaker
and you know but I don't know if it's like basically an emulator that AGS is running within or what it is. But somewhere there, there's a breakage. And so you know James spent a long time working on it, got it to 95% releasable. But we're just stuck. there's no you That effect is so integrated into the game that we can't just release the game without the effect. But we also can't release the game with the effect because it doesn't work.
00:42:23
Speaker
um And that's really, it is frustrating. um Because I would love to see our games on as many platforms as possible I i've always felt like the thing I most want is just people to play our games and enjoy them I don't particularly care If they sell if they sell for a penny if they sell for a dollar if they sell for 10 dollars, whatever I just want people to be able to play and engage with These stories and these characters and these worlds that mean so much to me and see that Amazing artwork that vic did and the great programming that james did and nathaniel's music and all of that would be great
00:42:58
Speaker
um But it turns out but it's quite difficult with AGS. But then you try to leave AGS and it turns out like... The grass is not greener on every other side of the fence like there's vision air and winter mute um Their unity has an adventure game suite in it um You know for cloudscape or project we worked on for a little while We were attempting to make that one and love 2d for a little bit and all of these engines have many upsides over AGS um because of their modernity um but ultimately
00:43:37
Speaker
There's a reason that you know even Watch Eye Games, which is like the premier AGS indie adventure game developer, they tried they've tried but ah messing around with other engines for Old Skies and ultimately decided Old Skies should be an AGS. And the AGS engine keeps getting better, too. The most recent version is more compatible. They've solved that font issue.
00:44:01
Speaker
um you know they may there it Like all community things it grows maybe not as fast as it would grow if there were some profit motive behind it But it's still growing and improving um And it fits like a you know, well-seasoned glove It's nice sometimes to use the engine that you've known and used for many years Yeah, and and the ah good thing about AGS is, like like you said, it is a non-profit thing. You can download AGS, it's absolutely freeware, and you're off and running, and the license for AGS is very forgiving. You can sell your game, you can put it on freeware, you can mod the engine. I believe it's even open source if you want to go poke around it, and although I think very few people do.
00:44:46
Speaker
um And I completely get what you're saying. I've tried dabbling in like Unreal because I wanted to do like something simple, like a walking simulator. Just walk around and an area and and Unreal has this you know node building, so you don't have to go into scripting. You can just connect nodes and see what what they do. And i I got a fair amount ah you know into it.
00:45:09
Speaker
but Everything that I would be able to knock out in 10 minutes in AGS and again, I'm not a programmer. I very rarely know what I'm doing. um What was was just so cumbersome that the idea of the ease of porting it to different systems and the ability to have a 3D space you could walk around in and all this reflective lighting and stuff. It just seems like ah when when you get into the weeds, it just seems like ultimately there are bells and whistles that you don't need to tell a story by and large, um you know with the exception of things like
00:45:46
Speaker
modern shooters or walking simulators with 3D stuff that AGS can't handle because it is a 2D point-and-click tool first and foremost. um Other than that, AGS, is you can use it for anything from a text adventure to a parser game like SCI Zero Days. You can use it for graphical adventure games, ah pixel art, low-res pixel art. You can You can bump the resolution up to to HD 1920 by 1080. I think you can even bump it up to 4K if you like really want to stretch your limitations. um There's just so many things that are good about the way AGS is wrapped up that it's very hard to go out and say, okay, yeah, I want to stretch my wings. I want to go play with, quote-unquote, a real engine, which just turns out to be fucking hubris.
00:46:35
Speaker
But I do want to circle back to one thing you said, which was the whole portability issue when I was making jam games in AGS.

Portability Challenges of AGS Games

00:46:44
Speaker
The the one thing about AGS that that completely boggles my mind is that it took them ages and decades and eons to just support Linux builds. And the Linux builds, I have friends who are Linux people. I'm not a Linux guy myself.
00:47:02
Speaker
The people who played the Linux builds of my games which AGS natively compiled, they're garbage. They run like ass. And if you want to compile it for Mac, then fucking hats off to you. I had some dude in the AGS Discord, VGA3. Oh shit, what's his name? VGA256, I think his name is. He ported my games to to Mac. I have no idea how he did it.
00:47:27
Speaker
They ran about as good as they could, but again, they were running in some sort of wrapper around it. So the portability is... i If you're developing for Windows, good on you. ah AGS runs about as well as you can expect anything to run in Windows. But once you want to move outside that bubble, good fucking luck to you.
00:47:45
Speaker
It's really interesting that it wound up with such terrible portability. you know Let's be honest, we've we've we've just about said that so far, because I remember when we started developing Volvo Strikes Back, which was in 2002, AGS would only have been like According to Chris Jones' GitHub, which I'm going to go with, ah AGS started in 1999, so it would have been a pretty fairly ah new engine at that point. It still had it it was still da wasn't it yes it still had a interpreter at that point. i believe it I never touched it at that point. We had another guy doing the programming, so I never got into the IDE. but
00:48:24
Speaker
yeah certainly the the engine could compile to DOS at that point ah and then as far as I can gather from looking up the history of it they recompiled it or or actually rewrote it around 2007-2008 in dot .NET which I guess might also be the root of the portability issues because at that point Microsoft was helmed by Steve Ballmer, who liked to sniff coke and dance around and yell developers a lot. And and the ah the the the rule of his day at Microsoft was that open source is evil. It's the plague. And now, of course, Microsoft is in a space where that doesn't apply. But, you know, Chris Jones probably has has other things to do in his life as well. And same goes for all the other contributors to AGS. so
00:49:14
Speaker
yeah I have a feeling that it'll get there at some point and it'll improve because the the dot .NET stuff that AGS is running underneath the hood is is a lot more, well basically it's open source now and it's a lot easier to port, presumably just a couple of years ago you had to resort to running Mono or something which was like the open source implementation of dot .NET. Now you can just run pure .NET but of course it's It's going to be a Herculean effort to update the engine to take advantage of that, I'm sure. But I have a feeling the community will will get us there eventually. It's just frustrating right now for everyone else making games out there that getting your game onto different platforms should be so damn hard. So, you know, let that be a word of warning to anyone who attempts to do a game engine portability. Please, please, but please do it.
00:50:10
Speaker
Yeah, it it must be tall on the list. and And I think the AGS community is just fucking sick of it at this point. When is when is it going to compile to Mac? Would you shut the fuck up, please? To be fair, though, it's a bit less of an issue now because ScumVM supports a lot of AGS games out of the box. So that's great. you know yeah if you cant If you can't actually port the damn game, just dump it into an emulator and run it there. Yeah. I mean, so first,
00:50:35
Speaker
um I don't know, but I so don't know any the backstory of Microsoft in open source. Who knows, as a quick basic fan, I love Microsoft. But other than that, I think part of the disconnect is commercially Mac and Linux are a trivially small part, even of the niche indie game market. I always thought, because it's a very outspoken community, that they were also an important part of the economics of it. And James really pushed very early on to port Primordia to Linux. I think it may have been the first of the Wajidai Games titles ported to Linux.
00:51:25
Speaker
um Because people, Linux players were like, when are we going to get it? When are we going to get it? But when you actually look at the like sales figures, it's similar to translations, it turns out. like It doesn't really move the needle on sales at all. But the thing I will say is, if you go back to where we started the conversation, why AGS? The answer is community. And those kinds of small development communities are highly represent you know overrepresented with Linux and Mac users. And so it's always struck me as very weird you know if you compare and form, which from the get-go, I think, was quite um platform agnostic to AGS. It's surprising to me because similar kinds of you know nerds love both, and nerds also love Linux. So you would think it would have a lot of Linux support.
00:52:23
Speaker
but It may also just be, as you say, like there was the DOS period and then the dot .NET period. And a lot of legacy, I wouldn't be shocked if there were legacy elements from the DOS era that got into the dot .NET rebuild too. And like the architecture just starts to assume that you're going to be on a Windows device or a PC of some kind. And it gets so integrated into everything, it's hard hard to change it.
00:52:53
Speaker
But that said, like I feel pretty pretty strongly, as small or not, the Linux gaming community in particular is just so supportive of developers that developers ought to be supportive of Linux. Because it's not just about sales, it's about the relationships you create with your players. And my experience, at least, has been that um Linux users tend to be very passionate about the games that they play.
00:53:19
Speaker
Yeah, we're almost coming up at the end. We try to cap these episodes in an hour and i could we could keep talking about the strengths and the drawbacks of of AGS development. um I love tinkering around with AGS myself.
00:53:34
Speaker
I say I'm not a programmer, but I've gotten to the point where when I boot up AGS and I want to start a new project because who cares about finishing projects? I just want to build something else. um i've I've stopped using the built-in templates. I just start a blank game and then I start coding stuff more or less from scratch because so many of the elements in AGS ah that that are hard-coded into the engine, stuff like inventory management, stuff like you know dialogue ah dialogue trees and stuff like that, is already so yeah so accessible even even with a blank template.
00:54:12
Speaker
that you can basically bend them to your will. It doesn't take a genius programmer to say, okay, my inventory should be contextual. i i or Jesus mother fucking Christ. um ah Well, it it depends on what you want to do. I cautiously want to add.
00:54:31
Speaker
But you could get away with some you tweaking the UI, and and you know I built a game with that had a point-click interface, but with an optional parser, Lisa Suitleri 7-style and stuff like that. um But I think what I want to get at is... um with its strengths and limitations. Do you know what? Before you guys answer this question, I just want to know what caused Mark to like physically explode there. What what was that about? It's the combination of allergies and a large nose. My sneezes are tremendous.
00:55:08
Speaker
I thought you reacted to the thing I said about contextual inventory. Well, that's but that's the allergic reaction. oh It's true. i thought I thought maybe you guys did something in like Primordial Strangeland where you were trying to just do a simple UI tweak and the whole thing fucking collapsed under its own weight, which wouldn't surprise me. I mean, again, my tinkering is not and expert level or anything again i just google shit when stuff doesn't work um but i have made my own ui's and i have made the you know stuff and and tweaks and stuff like that okay so the question i wanted to field around and and both with frederick and mark although obviously starting with mark when you guys have been fucking around with hs or other ah game engines for that matter
00:55:50
Speaker
What's the thing you've built more or less from scratch that you're most impressed that you got working? Like something that was like, ah oh shit, I have this really amazing brain fart. I wonder if I can get away with it and you code it in. And it turns out it worked against all odds. What's the thing you're most proud of? In Primordia, there's a puzzle where you rewire an engine.
00:56:15
Speaker
ah And it's like a it's based on a line drawing puzzle that was in the back of a doctor's office magazine when I was taking my daughter to the pediatrician. And it was one of these places where it kept not working right when James was you know implementing it. And there was this one element, I can't remember exactly what it was, but it had to do with calculating whether one line crossed another, where if you moved the mouse fast enough,
00:56:47
Speaker
you It was basically doing it by checking the pixel under the cursor. And if the pixel was the color of one of the other lines, it would say you've crossed the wires and it exploded. and But if you whipped the cursor across, you could jump it, and you know thereby causing the the puzzle to be cheated. And at least my recollection, and since James isn't here to gain saying it, is I programmed a solution to that in quick-basin.
00:57:16
Speaker
showed him how it was done in Quick Basic, and he was able to implement it in AGS, and it worked. That's my story. And since, again, he's not here to gainsay it, it may be that he just said, sure old man, ah by all means, we'll use Quick Basic. I guarantee that's your code that's going in, and then probably programmed it himself.
00:57:34
Speaker
But I remember feeling very satisfied when we finally got that puzzle working. It's an optional puzzle, um but it's for fun. The art is cool in it, and the yeah it's a more than just a typical use one item on another kind of puzzle.
00:57:49
Speaker
you know Before I actually answer the question, because quick basic is has been thrown around, I just want to mention that I kind of misspoke earlier when I said I hadn't dabbled in the text adventures. My earliest programming ah experience and now i'm ah I'm actually a developer by trade, so I don't do a lot of programming in my spare time because I've i've done it all day at work. um not Not adventure game developing. No, not adventure game developing. The boring kind. Unless unless my employer really shifts gears. That could happen. um No, my first experience with programming was ah loaning a book at the library with Q basic or just basic as it were text adventures.
00:58:30
Speaker
it It was like half the book was like a guide on the programming language rudimentary guide and the second half was actual game code that you would just type in ad verbatim and then it would compile now i spent weeks.
00:58:45
Speaker
typing in one of these text adventures, and as soon as I clicked run, it dawned on me that it would not work. I'm not actually knowing my way around this and being a kid, I had no idea how I would fix it. So that's my QBasic story. As far as AGS goes, um it's a bit of a shame that our ah third host is absent, because when we did the Game Jam game,
00:59:09
Speaker
ah Called late last night ah Gareth had written this ah exquisite dialogue puzzle in one of the three areas of the game where you had to talk to a bunch of ah various characters like at least three or four of them and try to get to the root of where this item you were looking for your lighter ah was. And um I think I spent a whole day on that. That's to this date probably the most programming I've ever done in AGS. I haven't really worked on any large-scale game projects as a programmer, but I put myself forth to program this particular area.
00:59:51
Speaker
and i didn't get all the way there i think that the area as a whole was finished by someone else but i was ah You know, this wasn't reinventing the wheel or anything, so I wasn't necessarily impressed with what I did, but I was impressed by how far I could get just using the dialogue editor. You know, obviously I needed to have variables to keep track of what you had talked ah with the various other characters about, ah but but I could get and and a lot of the way just using the visual editors, and I thought that was
01:00:27
Speaker
that That was a very interesting experience. and you know I'm sorry I didn't fully complete it, but just watching that run and getting closer and closer, that that felt great. Eventually, I had a bit of a minor breakdown over it because it was one of those days where I i never got out of my pyjamas and I was living on coffee. I don't think I actually ate anything that day. so By the end of the day, my hands were shaking. and I was really tired of these vampires that this part of the story was revolving around. And I wanted to strangle the good Dr. Gareth Millwood. but Who doesn't? But it was a good it's it's a day I look i look ah back upon very fondly now. Nice. Well, yeah. ah Okay. So Q-Basic has been thrown around for
01:01:16
Speaker
And and there's there's also been this lingering question that no one has answered, which is, you know, how old

Host's Early Programming Experiences

01:01:21
Speaker
are we? I was born in 1980, and my first computer was a Commodore 64. So I had a very early introduction in childhood to the lovely environment of BASIC. I did not understand any of the, you know, advanced BASIC functionality, peak and poke, this and that. um But i I wanted to try and make my own games. so I made some, you know, choose your own adventure type games in BASIC on the Commodore 64.
01:01:45
Speaker
My crowning achievement was in QBasic when I ah programmed in this pseudo... ah I want to say point and click. It wasn't really a point and click. it was ah It was, again, a text adventure. And instead of doing a parser, which I would have no idea how to how to do, I... um of and I had this command line, like you see, look, get, talk to, all all these sort of verbs, and you only had to type in what it is you wanted to do something to. And I was really proud of that because Qt Basic only has this subroutine system.
01:02:22
Speaker
ah So I was really proud of getting that to work, and I started making a Space Quest fan game, like you do. And I got to some point in the story, and I just ran out of memory. Cubase has this really low memory cap. Yes, it does. yeah so i So I went to the trouble of making it a two-parter. So you got up to a certain point, and then the game said, right, now you can ah you can start part two.
01:02:46
Speaker
And once I finished Part 2, I was like really proud, and this is, again, early days of intranet, I was really proud, I had saved it to floppy disk, I was going to upload it very laboriously somewhere, and I was doing my final checks on on Part 2 just to make sure that things were working exactly as they were, and I accidentally saved over Part 1.
01:03:04
Speaker
So that story is both my crowning achievement in programming and also my biggest failure. so Speaking of part two, something interesting just happened in that we've talked about James ah a bunch of times and an an alarm clock that may have been set incorrectly or gone off too quietly.
01:03:25
Speaker
But it appears as we near the the one hour, as we just ah get past the one hour mark of this episode that James has in fact joined us. How are you? um I'm good. I was gonna say, I felt really bad for am I a audible, first off? Yes, you are. I felt really bad. But then as I joined the call, we're talking about too basic. And I was like,
01:03:54
Speaker
um That was just a detour. The only thing that could wake James up would be if we all started talking about Quick Basic and it's like a disturbance in the force for him. He just snapped out of his sleep somewhere. Someone is making outrageous Quick Basic claims. Waking up in a flop sweat. It's like saying Bloody Mary five times into a mirror.
01:04:15
Speaker
um ah paul I'm really sorry. i I overslept, unfortunately. I've had like this awful feeling today done and I was like so much in pain. I was like, I'm just going to sleep it off. just just Just five more minutes. you know ah Well, i'm um' I'm very sorry you you missed the chat. We've been saying nothing but nice things about your capabilities in AGS and beyond.
01:04:40
Speaker
And every time we've run into some sort of technical explanation, something we couldn't quite work on, we've been like, oh, yeah, well, Spanish is going to join us any minute now to to correct us all. um So you've been sorely missed, yes. Oh, that's that's so sweet. But I'm pretty sure that Mark was like, but I don't know much, but in QBasic, when I was in college,
01:05:05
Speaker
ah So my grandfather... Yeah, so you have to fact check one thing, James. My recollection is that when we were doing the wiring puzzle in Primordia, I came up with a solution to the problem of moving the cursor too fast and skipping over like a crossing point of the two wires. And I came up with a solution in Quick Basic that you were able to implement in AGS. yeah But I said, it's possible you just said, sure, sure, we'll use your quick basic solution and then solved it some other way. But am I remembering that correctly? I remember i remember something of the sort. I don't know what we ended up using and having fixed one issue that it had lately after 10 years, I'll say, I don't know what's happening in that script at this point.
01:05:56
Speaker
but No, I remember that. I do remember that you did something for sure. Whether it ended up being helpful or not doesn't really matter. It matters that, you know.
01:06:09
Speaker
you try to make it helpful. But I remember that very vividly. No, no. I remember that because that that was my problem. It was like, I would ask, I would just say, hey, I have this issue. It's like, I'm not exactly asking for help. I'm just kind of venting. And Mark would be like, so I coded all of this in Q basic, which is entirely unlike Hs and absolutely useless.
01:06:36
Speaker
and will not help you, and probably doesn't work in Cubasic either, but here it is. just Because if I mark your calendar, there are two things I am, a wonderful person, a lawyer, but I'm also the Cubasic master.
01:06:55
Speaker
but that That went from the most diplomatic answer ever to just a fucking stab in the back yeah in one fell swoop. That was that was amazing. um Since you're here, I kind of want to feel the same question that we've been you know sort of ending the

Innovations in AGS Development

01:07:11
Speaker
episode on. And I have a feeling this is going to be a bit... I know, this is like you' you've just woken up and now you're being thrust into this this whole scenario. But yeah but ah I want to throw this last ah this last question we've been batting around since...
01:07:26
Speaker
Both myself and my co-host Frederick and and Mark, we've had experience dabbling in AGS, but none of us are like really experts. So we've been talking about what did you what did you accomplish in AGS that you thought, there's no way in hell this is going to work. this is There's no way in hell the engine is supposed to be able to do this. And you do it anyway. And for some strange fucking reason, it actually worked. And you're like, holy shit, how did that actually work?
01:07:53
Speaker
Can you think of an example of something you've done where you just went, holy shit, I can't believe that worked. Of course, transposing two basic scripts is the single greatest opportunity. That's how Warboard fell apart.
01:08:14
Speaker
yeah yeah I hope everybody knows how much I love Mark even though it is I teach things anyway, the the thing is I think I Would say the most I would say the most impressive thing at least that I think anybody has done is the Is the the the fact that there is you know, like a safe system that is relevant of um of you know adding things to it which was done in strange land but that is really
01:08:49
Speaker
Not that impressive because all it does is just like save It's just a it's just an area of variables and I just put numb like I just feel the RA. There's nothing great about that Literally, there's really nothing it sounds silly that this is impressive but like in terms of code it's not something that can be accomplished I think the one that I thought was like holy shit we're doing magic was um was definitely doing the the sdl audio engine so when we did like um when we started doing um uh strange land uh vik goes to me he says hey i'd really like to do like something like imuse from from mine calendar and i'll be honest
01:09:44
Speaker
iMUSE is entirely different than anybody thinks it it but did what it does like everybody thinks iMUSE does this but it does something completely different and i know this because i'm also one of those people that have this misconception so Vic and i had the same misconception of it which is fine i was like yeah we're gonna make the most impressive audio thing So I looked up for for audio things and I found SDL and I was like, oh my God, we are, we can do this. I just have to code it in a plug-in and in C++. Anyway, ah by the way, that hadn't a null exception for like two years that the guy we did the switch port with found it and it was like, you know, you have a null exception here, right? And I go, no, but thank you.
01:10:31
Speaker
That explains that one guy that has been complaining that after 30 minutes the game crosses anyway i yeah Well, I mean is is really good yet and we've we've been talking about I issues with, first of all, the save games, like you touch one line in the global script and the whole thing fucking collapses. ah So actually just fixing save games in AGS is an achievement all unto itself. And the fact that you try to do a dynamic music system in AGS, because Fred was talking about how he wanted to he just wanted two tracks to transition into each other after the first track finished,
01:11:09
Speaker
and and it And it just and just shut its mouth and it just wouldn't play the next track. Like like the music system is also really cumbersome in AGS. So if you actually did that, holy crap. There's also the fact that iMuse is cursed because we at one point we wanted to do an episode with a friend ah you know a mutual friend of Trolls and Myself who has apparently done as a music system that works like iMuse except for you know ah audio recordings, you know, not media, the data. ah oh And um this particular episode fell apart because he couldn't get his audio working. So you know, it's it's definitely it's Oh, you had to bring up to that one. Yeah, that one. Yeah. Yeah. ah My favorite episode. Yeah. um Well, you you said drunk I didn't but I had a drunk meltdown completely.
01:12:02
Speaker
um Did you actually do the iMUSE thing or did you just throw your hands and went, yeah, let's just pretend we did that. We just essentially did exactly what iMUSE does but not not even remotely close. We just do ah manual cross fades. The thing is I wanted to use SDL because we always had this problem that we would put sounds and then Mark would like the most common bug in the documents that Mark would put would be like I was playing the game and I was doing this UI
01:12:34
Speaker
And the sounds keep cutting off and I'm like, okay, I'll just do my own my own engine. And initially that was not going to be the case. I messaged, um I believe, hello. I mean, I believe I messaged the Crimson who was really busy. Oh yeah, crimp the other guy in the AGS forms who always replies. We had Snarky brought up, but yeah, Crimson is the other guy.
01:12:57
Speaker
and Yeah, Crimson is a wonderful person. He does so much for the AGS. And I was like, hey, should we move to like a cross platform? And I think SDL is a great thing. And he was like, you know, he's like, everybody asks him of like, all those stupid things, I'm sure. So he was like, not negative, but he was like, you know, dismissive, but not in a bad way, not not in a of the way. He really helped me set up the plugin. I didn't know anything about plugins at the time and how to set them up. And I was just like, he was like explaining how nullators happen and how like allocation works for for for set. Anyway, it was he was really awesome. But at the time, like, you know, nobody wanted to implement it, which was um understandable. yeah I mean, I had to listen, like, if you do a mistake with audio sampling,
01:13:49
Speaker
you get like screeching audio or you get like a thing that says on your windows you have to restart your audio device because windows shut it off because you did something dumb Anyway, long story short, I get through the awful experience of implementing SDL audio very wrongfully on my end. And then about when we're done with production, they do it anyway.
01:14:14
Speaker
well Yeah, we're making AGS 3.6 with SDL audio. i was I think it's a great step forward. But unfortunately, Strangeland is like stuck in this limbo of not being able to move to 3.6 without losing everything and being forced to move to 3.6 because it gains also everything else. so Oh, is that the bug that you were talking about, Mark? Where there's one thing that's keeping Strangeland from being ported to Switch is
01:14:49
Speaker
you know, something breaks and it is essential to how the game works, but it just breaks. It's a visual thing. James can explain that better than I can. Yeah, so the the the the two things that really, besides the fact that I also did the audio thing, was like adding visual visual effects, because for no reason,
01:15:11
Speaker
nobody ever thought, you know, like converting stated language to just set set language and then thinking that the plugin could run it fast enough that you could pre-render the frames and then put them in an animating. I don't know what's the motivation behind all that. Maybe I just want to prove, Mark, that some things are just better than QBasic, I guess.
01:15:41
Speaker
So I was, I was biting my tongue when you were talking about the audio system. I was saying, well, Mark could probably do it in Q basic. Oh, he has, he said that. He said that at some point. Q basic did not have a good audio system. I will acknowledge it would have been hard for me to do more than beeps and boops and quick basic. Well, that has a charm.
01:16:04
Speaker
Unfortunately, there are three functions that the the Switch is having trouble with, and two of them were like based on the save system. We would have to... I don't know what we would have to do.
01:16:18
Speaker
like I rewired absolutely and ah an awful amount of things and it ended up to being like five functions not having an existence on the engine switch engine part, and two of them were like the save system. and If there is no save system, like everything yeah is based on that. Yeah, that that would be a pretty awful experience.
01:16:44
Speaker
Yeah, and then we'd have to replace the the rotation mirror puzzle too. That would be another thing. We couldn't rotate sprites. Yeah, that was that was a trouble. So it's like stuck in limbo. And and I think like Strangeland is kind of cursed when it comes to that. Which is awful because there's been an awful amount of work done both both by me and Eduardo on it. But it's just like stuck in this. It's it's an awful limbo. Oh, ah can we here just quickly ask, because he hasn't been mentioned yet, Eduardo is who?
01:17:21
Speaker
Sorry, Eduardo is the guy that made the and Nintendo Switch Engine counterpart for Anavowed and Primarium. He's handling that for Wajidai Games. Oh, excellent. um yeah ah shit i've i've i I almost feel like inviting you back for a part two. I don't know if if that's ever going to happen, but we've been...
01:17:47
Speaker
We've been chatting about you know different engines and and different ways of making point-and-click adventure games, the the pros, the cons of using Adventure Game Studio, which on the surface has a very easy entry level, but once you want to get into the weeds, stuff starts getting a little more ah complicated. what What drew you to a Adventure Game Studio as opposed to the more like free adventure, more freedom of of action engines out there?
01:18:17
Speaker
So back in I think 2000
01:18:22
Speaker
five, six, something along there. This one Greek magazine called PC Master, great name, by the way, made like this was like a magazine I was reading when I was a kid. Like I saw Tomb Rider 2 on that thing and I was like, one day it's going to be Tomb Rider 3 and it's going to have my name. That's what I thought. Ambition. I like it.
01:18:50
Speaker
yeah Yeah, I never made Tomb Raider 3, but I did get an article of Primoria on PC Master, and it was really great. um Anyway, so they made like this, they had like, they would always have like a CD when you would buy the magazine with like a lot of stuff. So they had like this section on the CD where they were like, make your own game. And they had like the equivalent section in the thing. So I kept, there were like a bunch of engines. I only remember now, Ogur 3D and AGS.
01:19:21
Speaker
because I had like a folder that was called Make a Game, which was my AGS folder for years because I can i deleted everything but the AGS 2.71 engine on it.
01:19:38
Speaker
Because I didn't like any other engine. And I was like, oh, I can make a mankind three because Ron Gilbert a sure as hell is not going to make it. Well, that aged well. Yeah. Well, I guess, I mean, getting proven wrong once 30 years down the line, that's not too bad, is it?
01:19:56
Speaker
I mean, to be honest, ah Ron Gilbert sent me a message and said, I played your horrible Mike Allen game. And I was like, I got it. I got it. I got to come back to this franchise.
01:20:10
Speaker
Excellent. I've never interacted with Ron. So that's good. I'm glad he made that. I have not finished it yet. I've played like about five hours into it.
01:20:22
Speaker
Oh, shit. Well, um yeah, so so like I said, we were technically ah wrapping up when when when you joined, but i'm I'm really happy that you did. I'm very sorry about the reasons why you didn't join at the start. I'm sorry I missed it, honestly. I feel really bad. I don't know what worries me. We'll try to do another session at at some point where it's more convenient for you. I'm i'm sure we can get that arranged.
01:20:50
Speaker
yeah I don't think I've ever lost an interview, I think, but Mark could correct me. Maybe he has. like We had to be the first. ah yeah we had other this This whole episode has been fucking cursed. Our third co-host hasn't got fucking internet because this landlord fucked him over. it's it's It's been a... It's been a... ah Great evening, but Marc has kept us entertained with all his Q-basic stories. I was halfway into answering my my own question about my my greatest feat, and and I got as far as the Q-basic thing when you joined, which may have put you off. I think the the thing I'm most proud of doing in AGS
01:21:29
Speaker
is I did a Jam game, which was ah purposely going to be the most hostile adventure game of all time. It was going to make every mistake that you should never make in adventure games. And one of those was having the most cumbersome UI of all time. I think we had close to 20 verbs that you could select in the UI. ah And that wasn't even the hard part. that that That was relatively easy. What I had to do with the inventory management system was to somehow bypass AGS's fairly easy to use and and and fairly user-friendly inventory handling system. I wanted to have the inventory to be as as cumbersome as possible too, so I wanted you to be able to only scroll one inventory item at a time. And in order to use it on anything, you had to click equip and then use it on something in the game world. And if you wanted to put it away, you had to put yeah yeah yeah to click unequip. And the way I solved that,
01:22:27
Speaker
was to squeeze down AGS's internal inventory box to the size of a single inventory item and then constantly check which inventory item is on the top of the list and then you know apply that. It seems so simple. yeah When I'm talking to someone who actually knows AGS, it it seems like no effort whatsoever. But i was I was super proud that I somehow made AGS's inventory system so fucking awful.
01:22:52
Speaker
yeah
01:22:55
Speaker
I think that's that's a fit for sure. because that's that like I think that's a very standardized system. like There's not much you can do with inventory. I don't spend much time on it. No, it works out of the box. Yeah, yeah's it's like you know you add inventories, you remove inventories. That's about it. There's nothing more you can do. But then you have like this innate need.
01:23:18
Speaker
But what if the inventory scrolls? But scrolls like fluidly, like, you know, how like a window scrolls. This is where the news happens. Oh, yeah. ah The other thing I did in that game, and I don't want to take over the conversation or anything, but we had a labyrinth and we had a monster that would randomly show up in the labyrinth and chase the player around. And that code, and again, because I'm not a very good programmer, in that code was so fucking ass backwards that in the first iteration, the monster would just come out of solid walls.
01:23:52
Speaker
and would chase the player around as it was supposed to, but it was it would its it it just it was always one screen behind, so but it would come out where it wasn't supposed to, and like on the night we had to turn the game in, I was working with with another guy who was doing the story and the and the dialogue, I said, you know what, I'm gonna reprogram the monster, and it was like 10 in the evening, and we had until 2am to turn the game in, and he was like, are you fucking kidding me? And I was like, yeah, yeah, this this bugs me.
01:24:19
Speaker
So I ended up rewriting the code on the night we were supposed to deliver the game. I was pretty happy. He he ended up working. He was a little less predict or a little more predictable than he was supposed to be, but at least he didn't like fucking come out of solid walls, which was good.
01:24:35
Speaker
I think we started, we started ah Strangeland started as a jam game. um I told the both Vic and Mark, who were who were under the i mean not nobody was under the impression that it was going to be a jam game, I think, ah deep down in their hearts. But I was like, I remember I was like on vacation at the time.
01:24:58
Speaker
and And I was telling my friends I was replying to an email. And and they said, what what's that about? I go, we're making a game. I'll see you guys in like three years but when we finish.
01:25:15
Speaker
Yeah, that checks out. Feature creep is a bitch. um Yeah, so um we try to keep the episodes at around an hour and we're close to an hour and and and a half. so if We're just going to do the wrap-up now. Very sorry about that. I apologize. but't apologize yeah But at least youll you get a chance to to pluck yourself in your projects now. so um Yes, please. I know i know this is this is going to be a silly question to anyone listening already familiar with your games, but where can everyone else find what you've worked on or get in touch with either of you if they ah
01:25:57
Speaker
if they have a proposition on how to fix the unsolvable switch error that's keeping Strangeland from that platform. So they can find us at warmoodstudios.com, that's our website.
01:26:12
Speaker
That's one thing. Another thing, they can find us on Twitter. They can find us on Discord. They can find the games, of course, on Steam, GOG, and Switch, except Strangeland, unfortunately, but they can find the rest there. What about Mac and Linux? Sorry, that was a joke. Oh, yeah, yeah. We do have... No, no, that's true.
01:26:34
Speaker
we do have We do have everything is ported, except Switch. Unfortunately, the games are also available on Steam Deck and verified. Somebody actually said to me that they had like this website that Wajidai Games has like the biggest percentage of any publisher ah that has ported games on their Steam Deck out of any publisher on Steam. At least they did at the time we did the Steam Deck things.
01:27:02
Speaker
I'm not sure if that's still the case, which is nice. ah That's an accomplishment, I guess. yeah Although Mark would say that the biggest accomplishment was the Cubasic part, of course. Oh, absolutely. Yeah, Mark, where can people find your amazing abilities in Cubasic? Nowhere. um Yeah, so we're, like Jim said, all the places he listed and then Our current project is Fallen Gods. That's one I've been working on now for 10 and a half years. James has been working on it for about three years. um Started in Cubase.
01:27:42
Speaker
Yeah, exactly. It would have maybe would have been done if I had done anything. But yeah, for sure. we're hoping that Yeah, we're hoping maybe the end of this year, maybe early next year for a release. It's not a point and click adventure, but it draws a lot of sensibilities from our experience in adventure game design.
01:28:03
Speaker
you know interesting items and you know meaningful encounters, but it has a lot of role-playing game elements in it as well. um And we really look forward to sharing it with our fans.
01:28:17
Speaker
Excellent. Awesome, yes. That about does it. I know Fred is about to keel over from exhaustion. So I'm going to wrap this up as best as I can. So thank you, first of all, to Mark and James for joining us for this episode. and Really appreciate ah getting the time to talk about to you know talk about game engines, us being, of course, the backseat designers, which means that we know absolutely nothing about game development.
01:28:46
Speaker
we just We just like giving unsolicited advice to people who actually do the shit for a living. You can find us on my YouTube channel because some... a glorious person with an actual doctorate let our domain lapse so we don't have a website we don't have an RSS feed we used to have our own YouTube channel no one was subscribed to it so those for the days we used to have our own website we used to have our own RSS feed we used to have a YouTube ta channel we used to have a patreon we used to have an online presence yeah And now we're just stuck on my shitty YouTube channel. um But anyway, if if you are not passed out the way Fred is about to, then, ah you know, please keep in touch and and check out our new episodes when they come out. ah And I guess that's about it, unless you have something you want to chime in with, Fred.
01:29:40
Speaker
Well, not really. I just want a second that it's been an an absolute pleasure and a trip down memory lane and a trip into hostile technical territory that I hope I never had to see myself in again. Yeah. So yeah, that's that's been it for us. Thank you again to Mark and James and we'll see you guys in the next episode whenever that will be. Cheers. Good night. Thanks. Thanks again for having us. Our pleasure.