So there's those two. But once you've completed it, I wanted something else for people to do. So there is a rare version of everybreeches, which I call a crystal bird. So there's a lighting effect, a material effect on the bird model, which gives it this glass crystal-like look. When this bird spawns, it creates an interesting light show that does a radial explosion of lights from the center of it with a particle trail and a sort of wind chime, crystal wind chime type noise. So you really know what's happening. and when you take a photo of this it will give you a special marker within your bird book and it is very rare and getting the crystal versions of the rare birds is incredibly rare and so completing the entire crystal bird book i don't think anyone has done it someday someone might you know it just takes time and a little bit of skill you still have to i think you still have to take a photo to get the mark so you can fail which would be frustrating but it's all there And so there's something else for people to chase down. And that is, you know, inspired by various other collecting games that have alternate colorways. Very rare and similar to collectible cards themselves with foils and things like that, which is what I was trying to go for. What is the total number of birds to collect? There are 15 birds. There are two rare birds, seven module-specific birds. Something like three of them are common and the rest are uncommon. And the distribution works that the module bird for the module you are playing spawns at a common rarity. So if you're playing on Weird Al, you will see the chicken a lot. If you're playing on drains, you will see the bat a lot because they will spawn as a common bird. And so each module has that common bird, but each module will allow you to see each of the bird types just with a different rarity value, as you noted. So if I'm a P3 owner that owns only Cannon Lagoon, for example, I can complete my my bird book in total. Are the crystal forms of the birds more common on their native modules? The crystal form isn't more common, but it is. So it's an independent draw. So first I draw what bird it is. And the distribution is sort of, if you shoot a ramp, you actually get a uncommon or rare bird. You don't get a common bird. And the timer spawn draws over the entire distribution. So if you're trying to get the seagull, you're going to see more seagulls and therefore have more opportunities to see the crystal seagull if you were playing on Cannon Lagoon than if you were playing on one of the other modules, but it doesn't block you out. I think that this was a design choice where I didn't want anyone to feel like there was any part of the game they couldn't access. And I kind of went back and forth on this, because it actually would be very cool if you only got the bird by playing on the module. But I felt, I think I chickened out, basically, and felt that players would be upset with me for buying something where they can't see all of the content. That makes sense. So next, let's transition to artwork. Birdwatcher is primarily a 3D game. Did you use any pre-purchased assets in the creation of the game, or did you develop all the models yourself? It is both. I started developing all the models myself. All of the birds, I modeled myself. And the sort of main environment, I modeled myself. When I got to doing backgrounds, I started modeling myself. And you can probably tell which ones I did first, because I did model them myself, which is like Lexi. Because my first idea for Lexi was to, you know, recreate the ship crash off in the background. I'll say like my original idea for Birdwatcher, which there was no way I could ever implement and it was like way too hard, was to actually model the modules within the game instead of being on a field, being like you were shrunk down within the pinball machine and in the background, actually seeing the physical module playfield, which I think would have been really cool, but there was no way I could have actually succeeded at that. Anyways, so having the ship crash, it's sort of like in a similar spot as to where the ship is within the Lexi playfield. And it's a much simpler background there. But then when I got to something like Feist, I wanted to have a cityscape in the background, and I wasn't going to model a city myself. I could. Like, they're just boxes with textures on top of them, and it would take time, but I just decided that for the return on my investment, I might as well just buy an asset pack. And so I bought a megacity asset pack within Unity and just sort of slapped that down in the background. And then once I owned it, I'm like, and once I'd done that once, it was very easy for me to just say, okay, well, now we're just going to use this everywhere and create our environments using this. And so the quick answer is of the 3D stuff, the birds, the field, the bushes, well, the clouds are someone else's asset except for the Translight, in which case I remodeled them myself for licensing reasons because I couldn't actually create Translights using a Unity asset, which is weird and complicated because Unity is licensing. So some of that I did, some of it I didn't. That is one of the strengths of leveraging Unity as part of the SDK for making P3 games is that there's a marketplace of 3D, 2D artwork, music, sound that can be leveraged within your game. Now, it wouldn't be unique to your game, but it is a great way to implement something like you mentioned, that cityscape. As you say, you could have modeled it, but it is certainly quicker and more effective use of your time, perhaps, to utilize one of those pre-purchased assets. So very cool way to mix those two worlds of creating your own and leveraging existing. So as far as creating your own models, what software do you utilize? So primarily everything there was done in Blender. And that still is where I am most comfortable doing 3D. And did you have any prior Blender experience? Not really. I think I had probably done a little bit of stuff at some point. I'd played around with Blender. I had used other 3D modeling software many, many years ago. I like 3ds max and did a lot of AutoCAD back in high school, but the world has changed a lot since then. And so Blender was fairly new to me, but also kind of familiar though. It wasn't too hard to get up to speed, but I looked at some low poly bird tutorials on YouTube to kind of get a sense of what the best workflow was to, to end up modeling things. Cause what I'd done previously was largely constructive solid geometry type modeling. And now in Blender, that doesn't really work the same way. It's much more about slicing faces and extruding faces and various things like that. So I had to kind of learn a new way. And then I ultimately ended up buying a bundle of courses as well that I ran through some of. And that was actually very helpful just to get my workflows improved within Blender and understand what tools I should be using at what point and what the keyboard shortcuts for everything are and just how to improve my workflow. And I will say, like, my bird models have a unique style. They're very much consistent across the entire game. Do they look like anatomically correct birds? No. But I made them myself, so that was kind of the idea. That was a core principle. I wanted to see what it would be like for me to build this myself as opposed to just buying an asset pack of birds, which I could have done as well. You took these models, pulled them into the game, and then there came a choice for how to animate them. As you say, the birds emit from the bushes. Do you add bones and rigging or move the completed model? And which method did you choose and why did you choose that method? I chose not to animate. There's a number of reasons for that, mostly because animating is really hard. And even modeling the bird in such a way that animating would be possible is really hard. Because if you think of the bone structure of an actual bird and the act of taking off into flight, it goes through a lot of movement in its spine, in its wings. and the way its feathers deform and change, it isn't something that you can actually just model with a simple, here's eight points on a bone mesh. It's just going to look wrong. You actually have to model feathers as well. You have to be able to spread them apart and change the way things look. And you have to start to look at muscle and stuff like that. So I kind of decided that I could do really low-quality animations that look like those wind-up birds where they have stiff arms that just flap. But I didn't think that would look good. And I checked out a really, really nice, free, off-of-sketch fab animation of a seagull flying that someone put together. And it was gliding and waving its wings every now and again to stay in the hover state. And I actually put that on one of my models. and I'm like, I could do a lot of work and transfer someone else's animation onto my model. It's still not going to look like it's taking off because taking off is really hard. And at the level at which you see it on the play field from the sort of overhead view, I just didn't think animation was worth it. And that's sort of the short answer is that the time investment and quality that I would get out just wasn't there for me to bother doing. Yeah, for the number of seconds that the player actually sees the bird in flight, it's fairly short. So adding a sort of distracting to the eye element like flapping and movement might be overwhelming for the player. I'm not sure. I haven't seen how it would look with that. That's an interesting concept when you're developing a game is that adding more realistic elements doesn't necessarily make it a more compelling experience. So your back glass has a very clever dynamic viewfinder that follows and photographs the birds. Were there any challenges in implementing that system? Yes and no. So that is darn entirely using Cinemachine. So Cinemachine was developed by Unity. It was developed during the transition from Unity 5.6 to Unity 2017. It is not officially compatible with Unity 5.6. However, the previous versions of it that were very early on worked in 5.6 outside of animations. So the basic camera tracking worked and works reasonably well and was released under the Unity library. I forget what the exact license is, but it's the Unity library for their licenses, which basically says you can use this as long as you're releasing a Unity game. and so I just tried it. I was like, what happens if I take this into 5.6? Well, all the tests fail, and you get all kinds of missing things because the render pipeline got completely rewritten in 2017, so none of that exists, but you just delete those folders, and now all of a sudden you have a state machine which can do smooth transitions between multiple cameras, which can have cameras track objects, And so I then just had to figure out how to piece all that together. So the basic idea of how that actually works in the back glass is I have one static camera that points at the bushes. And then I have two cameras for tracking birds. And when a bird spawns I point the next camera at the new bird and then create a camera transition to pan and zoom from the previous camera to the next camera And so it pans the focus over to the new bird zooms in and frames it And I just sort of keep updating in a cyclic manner which bird it's pointing at. And then if no birds are on the screen, it will revert back to looking at the Bush's camera. So it transitions between the three states of the cameras. and it does the hard work, the math automatically for computing the smooth fades and zooms between them, or the pans and zooms between them. And I didn't have to do any of that. Very cool. The music in Birdwatcher is very relaxing, and you'll hear a slice of that at the top and bottom of this podcast. But how did you decide to use this song? So this is one of these, when I started developing games, one of the things I started doing was when assets went on sale, I just bought them. And so there are several Humble Bundle sales that had gone on where I was just like, I'm just going to grab this bundle and maybe I'll use it, maybe I won't. And so there's some 2D assets that I bought that way. There was a music bundle from a composer whose company is called Dark Fantasy Studios. And I'd actually bought it, that bundle, primarily for use in Arena, which I kind of mentioned briefly. I wasn't sure if I was going to use it there, but it had weapon sound effects. It had voice call-outs for spell castings and things like that in a made-up language in a female and male voice and various things like that, as well as a bunch of spooky, eerie, RPG-type music. And so I bought that bundle. and then when I was doing Birdwatcher I sort of looked through what I had and there were a couple albums on there that were very much in a completely different style than Dark Fantasy which were some very nice, light friendly songs and so I picked three of them to use within the game and the Attract Mode music which, so that's my Attract Mode music, it just sort of had a nice laid back vibe that kind of matched with like the sun coming up on a field and life it's called celebrate life like it's it's very much got a a feel towards it and that um and then there is a main song for the that is less there's less to it it's more backgroundy um that plays during the game and then there's a high score track and it's actually kind of funny because the attract mode one i just kind of liked the song but it didn't really it was too in your face to have as the main loop songs um but But then when I went and made my trailer, I made the trailer using the main Game Loop song, and my beta testers were like, what are you doing? You can't have that song play in your trailer. Birdwatcher is that attract-mo music. That's the feel of the game. So in some ways, this track that I purchased very much defines, in a very short amount of time, the feel of the games. I agree. The other tracks that you mentioned, were they also from that bundle, or were they from other sources? Oh, yes. They're all they're all from that bundle. I think they're off of three different albums within that bundle. But they are all from there. And you will probably see other songs from that bundle in future games from Ian Hairwear Games, because I have it. And it's finding music is a lot of work and getting custom compositions is a lot of work. And those are not right now what I want to be focusing on. Do you happen to know if all three of the songs were composed by the same composer as Celebrate Life? Yes. OK. Yes. So Dark Fantasy Studios is just the one composer who I don't want to get his name wrong because I don't have it in front of me and I want to pronounce it correctly. There will be a link to Celebrate Life in the show notes and Dark Fantasy Studios. Moving on in sound design for each bird, there's a unique sound effect or call. How did you acquire those? I think every single piece I use is from freesounds.org. And every single one of them is Creative Commons 0, so public domain, except one. There was one CC by, so Creative Commons 4 attribute commercials allowed sound callout because there were just fewer callouts for some of the birds. And I even had to fake some of them. A lot of them are not actually the real bird. But it's an amazing resource of extremely varying quality of audio. and a lot of it is Creative Commons Zero. So completely free to modify, free to use, free to use commercial, no need to attribute. And a lot of it falls under like a full spectrum of licenses. But if you're willing to put the time in, there's some really cool stuff there. There's also some really like historically interesting stuff that will never really work as like a video game content because it's just way too noisy and stuff like that. but it's neat. Like you can, and if you want like the, an original cleaned up recording of the Wilhelm scream, it's there. You know, you could just go get it. And I don't know how to do real commercial audio design. Like I know there are places you can buy and license and buy subscriptions and various things like that. But freesounds has been enough for me to get me what I need right. And you can tell in Birdwatcher that some of the bird calls are much cleaner than others. And then there are some fake bird calls. One is the bat. First of all, I apologize to everyone who is angry at me because bats aren't birds. And I apologize to the one person who's angry at me for clarifying that bats aren't birds because he doesn't think it's worth it. And it doesn't matter, but I like to be specific here. But so bats actually have several sounds. And so they do actually have a sort of call. I think what I ended up using in the game was their echolocation sound, which is sort of more bat-like than their sort of screech calls, which just sounded bad. I don't remember. One of them sounded really weird. It is sort of like, this is real, but I don't like it. So I went with something that sounded more like what I would expect. The other manufactured one. So there's some things where the real recording or a similar recording I didn't like. So some of the cooing of the family of dove-like birds. So I have a pigeon, a hoopoe, and the dove itself. They're all kind of dove-like birds. And I cheated and used incorrect ones. One, because there's no recording of a hoopoe anywhere. but I know it has a coo dove-like sound. And so I just sort of like went to the family of doves, pigeons and that, to come up with appropriate sounds in that place. And so they're not necessarily accurate. And the other one is the hummingbird, which was actually really interesting because the hummingbird actually does have a bird call. And that's another place where it sounded nothing like, one, it's really hard to get a recording of. It's a very tiny bird. And it doesn't, its call isn't really distinct. It doesn't really cut through very well. And so what I ended up using there was a sound file of a fly trapped in a cup. So a microphone under a cup with a fly inside the cup. And so to try to make the sound of the wings of the hummingbird. And that was what I used as the sound there. Very interesting. So how did you determine which birds should be available upon which module? Did the sound design play a part in that selection? or was it all pre-planned at the start? You act like I'm saying anything. I'm very much a moment, in the moment kind of person. So for each of the main birds within the modules, I kind of looked at the module and asked myself, what bird feels like it is in this? And one of the first ones I did was Lexi Lightspeed. And I sort of asked myself, well, where does Lexi Lightspeed take place? So it takes place in a Florida swamp. And I don't remember if it specifically refers to Florida in the game, but when it crashes, you can see it crashes into Florida, and there's definitely a Florida vibe to the game, whether it talks about Florida specifically or not. And so I kind of was looking around. I'm like, what interesting-looking birds? Because they need to be visually distinctive enough for you to say, oh, yeah, I think that is what that is. And I went with the Belted Kingfisher there, which is got a very distinctive crest to it that i thought i could model in a way that people could look at it and say that looks like a belting kingfisher so you know that was very much kind of what bird would actually be in this environment and that was a single similar feel for heist is a ocean city which is not legally distinct from atlantic city but it's got kind of like an Atlantic City vibe to it. But it's a city, and I sort of felt I already had other coastal bird modules, so a pigeon seemed like the kind of thing that was in the city, despite the fact that seagulls are actually in the game. But I went with pigeons as an appropriate thing. I think there are actually pigeons in the opening animation for Heist, now that I think about it. So yeah, that was sort of the inspiration for those. So I kind of started from the module and asked myself, can I model this in such a way that is recognizable, and then went from there for the module specific. Makes perfect sense. Always interesting to hear about the creative process that brings about these different decisions regarding assets or artwork that are specific to each portion of any given game. So the other aspect to it is that within each environment, there is also a billboard. And this was another sort of art consideration that was entirely inspired by the fact that Lexi Lightspeed Escape from Earth has a mini LCD on the playfield. And I needed something to put there. and I decided that putting a billboard that was then mimicked within the background of the screen would kind of get towards that original vision I talked about where you see the ship crashed here and the billboard here and then I sort of extended that and put a unique billboard in every single one of the modules based on the bird that was there kind of explaining the connection of the bird to the module to a large degree. So as you play the game, you'll see if you're playing on Cosmic Car Racing, you'll see the module-specific bird and then a short blurb, come visit the observatory or come meet Gull at Cannon Lagoon, those kinds of things. Were those assets created or were they pre-purchased? And did you do the creation? So feel free, everyone can feel free to get very angry at me right now, but those are all AI-created images. I believe in slightly ethical AI art amongst all of the image generators. I kind of feel the way stability AI does there, especially on their later models. And those were created using Stable Diffusion 2.0, which has artists opt out. So that was the one where they actually implemented the ability for artists to opt their images out of training. you know we can get into the ethics of AI art in a lot of ways but the background images were created using stable diffusion 2.0 and then like text of that thrown on top of it by me and it's you know it's a bit of a process to create reasonable looking images to use there but I am not I am not artistically talented and so I think that and I don't have a budget to necessarily pay a real artist for their time. And so this was a rapid approach for something that isn't core to the game, that is non-copyrightable art that I can use that is close to my own creation. And I don't feel that the images I produced appear to be anything taken or overfitted from real art. And now that we've talked about assets, let's talk about programming. What was the biggest challenge that you had in programming the game? So I think the biggest challenge is probably the fact that I was trying to design for every module simultaneously. And that extends from light shows to various hardware choices to play field designers doing really weird things that completely make the primary implementation of my game not make any sense. That was a dig at you, Nick. Hey, now, as far as the multiple module, what was the hardest part about that? Was it just the testing or was it actually implementation? Were there issues with not just creating the light shows, but creating beautiful light shows that worked across each module? or did the SDK help you in the development of those? So the SDK certainly helps in a lot of respects, but light shows is challenging. And there aren't a lot of light shows in my game. There are sort of, there's a few primary ones, but like, let's talk about the ramps themselves. And so I wanted something in the play field lights to indicate that you should shoot the ramp. And let's think about some of the modules and their ramps themselves. So let's start with Cannon Lagoon. Cannon Lagoon doesn't have lights. So you're not indicating your shots in Cannon Lagoon. Okay. Well, let's look at Cosmic Cart Racing. Cosmic Cart Racing probably has the most lights in any pinball machine. There are four strings of lights, two strings of inside, two strings of outside on both of the ramps. lamps and there's probably around 100 leds on each of those strings of which half of which are kind of the first half and so how do you create a light show generically that looks good on a curving double laned light and at the same time works on weird al where there is a single light on the left which is a insert triangle that indicates underneath inside the ramp. And so trying to rationalize both of those things. And then you have like Heist, which doesn't have indicators for the ramps and configures a whole series of environmental lights and associates them with the ramp itself. And they're kind of behind building billboards. And so they look very different if you illuminate them in like a red color. It's going to look really weird because it's shining through a gray building. And so there was a lot of actual just the variation in what you get to play with on each of these was kind of a challenge in generating something generic to begin with. Was there anything that was easier than you expected once you started digging in and, you know, once you had an initial prototype? was there something where you said oh hey this this works exactly as i thought it would everything is perfect and it kind of carried all the way through to release what i think that generally speaking it was remarkable that it just worked like that it that when you write things in a generic way so i did write the ramp lighting centered around cosmic kart racing so that if you have multiple LEDs, it will strobe across them and create a chase effect. And it looks fine when you have a single one. And it was quite remarkable once I sort of had that to drop it into the seven modules and have things just mostly work and just have to do sort of small tweaking from there. You know, the fact that when I wrote the game before when Final Resistance was announced, but before final resistance was released.