00:00.00 jamesmontemagno Before we get into this week's episode. Let's thank our good friends over at sync fusion. Listen if you've been listening to this podcast more than once ever then you probably already know about sync fusion. But let me tell you about them again case you forgot listen sync fusion has a world's best ui component suite for building the most powerful most awesome most beautiful. Web desktop and mobile applications. No matter what you're developing with whether it's blazer flutter asp.netcorejavascriptangularreactv for the web they got you covered mobile how about Don M Alley xamarin flutter u 2 repeat javascript apps. They got you covered winforms w pf win you I don m maie flattter xamarin u two bp. They got you covered and they got all the things that you want they got the charts. They got the graphs of course but they got those advanced controls like Pdf viewers and maps and grids and excel pdf processing and data grids and calendars and schedulers and com onboards they got all the good stuff trust me just go over to singfusion.com/emergeconflict check out all the awesome stuff that sync fusion has to offer and thanks sync fusion for sponsoring this week's pa ah talking about don m maui frank I say you be building I saw you been not only building done at mawi apps. But I think you um you you you rewrote image downloading and processing and rendering. Or something in 3 dimensions. 01:20.50 Frank Not three dimensions I restricted myself to 2 dimensions this week James Hello yeah limiting myself. Ah, no, that was a are you referring to my tweet where I said I wrote um a ping encoder from scratch. Yeah. 01:31.51 jamesmontemagno Yeah, yes. 01:35.67 Frank Yeah, it was funny. Um, you know I look there's there's an imaging library called out there called like image sharp or something I always get that wrong is that what it's called James. Yeah yeah, which is great it it loads images it writes images everyone you should use it. 01:46.35 jamesmontemagno Ah, yeah, I'm a sharp. Yep. 01:52.81 Frank But I was in a weird mood and I was like I don't feel like taking a dependency I'm just going to write these P and G Files myself Plus I didn't feel like figuring out someone's api because I wanted to write palleted Png Gs I had very specific requirements. So I'm like how hard could it be and I ended up. Writing a png G encoder because it turns out the png G file Format is really simple. So Anyway, it turns out you can write Png G Files with all the stuff built into just dot net into the bc out like all all the stuff in system is all you need to write png G Files but that's a side topic isn't it funny though. 02:22.19 jamesmontemagno Know I love it. That's pretty cool and then you's like is that what you use to render render it in the Ui you like be like give it a stream or something like that or you I guess you just wrote it the P and G to disk and then it just like loaded it up. Basically. 02:36.38 Frank No, um I I wrote a maui 3 d render to render it in the u while we did get the 3 d g's it. It just always happens it just use maui graphics for that one. How about how about that look at me I'm I'm just I'm just diving in. 02:43.95 jamesmontemagno There It is. Oh nice, very cool. The very you are diving in I've had a lot of questions people you know people been reaching out to me even just had someone or recently that was like hey you know I'm starting a new project. What do I do? What do I use and I said you listen frank. 02:55.13 Frank I'm I'm just all in let's write some code. 03:07.95 jamesmontemagno Chooses Don Mmo by default and for all of his apps going forward. You should do and I actually saw you you like basically wrote an app in what 5 minutes and then you're done published it to the app store. 03:17.75 Frank Basically if if you remove that last step I I didn't get to the published up we were I was complaining about that earlier. What we'll get there. We'll get there. Yeah, so let me give a little context to everyone here. Um. Ah, a friend from my my past I used to do a lot of game Graphics App development that doesn't make any sense I used to write game editor type Apps I'm sure we talked about it before. 03:35.47 jamesmontemagno This is. 03:42.34 Frank And um, one of my favorite games back then was dark forces. Star wars game. 1 of the first early first- person shooter games and I was one of the hackers playing around with the file formats and all that and there's a cool ah programmer group out there. Ah. Still hacking away that game James isn't the gaming community. Awesome like they live on forever. They're the best. 04:05.97 jamesmontemagno Yeah I I know this game because this is the one that has like all the vector graphics that are like green correct. 04:15.97 Frank Ah, ah, you might be thinking about the original star wars game that was the super vector graphics one this one had texture mapping. Um, it did have a cool hologram of that that star that was green dots that was actually 3 d. 04:20.84 jamesmontemagno Um, okay, okay. 04:30.97 Frank So ah, back then sorry everyone rewind your time machines. Um, you couldn't actually do three d levels you did we called it two and a half D levels where you couldn't do over under but it's kind of the doom style engine. So it was that classic game. 04:38.40 jamesmontemagno First. 04:45.77 jamesmontemagno Got it? Yes I'm looking at it now I was thinking of the reason I was thinking of it because I was looking at the the app that you had created and I had some of those original or some looking original models in it. But yes, no I remember dark forces now this is 95 published by Lucas Arts um 05:01.59 Frank Um, the great locusart. 05:03.29 jamesmontemagno And actually they rereleased on the playstation which is kind of wild. But yes, it is that doom style ah look and feel which is kind of wild that they made a Star Wars game in the and a doom cloneesque vibe I may I've never played dark for is I need to go play it I guess. 05:07.69 Frank Um, yeah, it's a. 05:17.85 Frank Well if you remember back then there were doom clones to everything everyone was doom was so popular. So of course it was a Star Wars version and I was such a nerd which version am I going to play the Star Wars version. 05:22.97 jamesmontemagno Ah, yeah. 05:31.43 Frank Plus this was one of the first video games I ever bought with my real money. It was like $50 at the mall. It was a lot of money. My computer could barely run it anyway. Ah, super cool game even though the engine was two and a half D it was a super sophisticated engine because it could actually render 3 d models. 05:37.38 jamesmontemagno Our. 05:48.59 jamesmontemagno This. 05:50.21 Frank In the two and a half d world so real trixie programmers and all that kind of stuff and there was a file format back then called 3 d o 3 d object it was where you stored your 3 d information classic file format and um. I was a wee little lad at 15 or 16 years old and I went around and wrote the first 3 d tutorial how to make your own 3 d objects for this video game. It was just a text format. It was really easy but at the time I had to learn. 06:15.93 jamesmontemagno Who. 06:21.93 Frank 3 d graphics in order to write that tutorial so it was it was fun for me. It was my first indulgence into three D Graphics and hacking away at games. Yeah. 06:28.99 jamesmontemagno Nice. That's really cool. Yeah, and in general I think that you know I my history comes from a video game history right? where I know I went to school for video game programming but I actually released a game on the Xboxbox I'm very proud of it as we all know which is space shooter. 06:39.43 Frank Um. 06:47.25 jamesmontemagno Right? Nebula Pretty great game. You can actually get it on. Yeah, can you get it on max by I think get on Maxbox one. Maybe I've Rebot my gaming again. Ah no I got nothing from the game ever. Um, you know it was I worked at the company that that published it that created it and published it I was. 06:51.97 Frank You getting a you getting a royalties on that one. Ah. 07:00.77 Frank Right. 07:05.26 jamesmontemagno I was in charge of shader programming tool development and um I also did some programming specifically like in the game engine not on the game engine. But with the game engine. So I was in charge of like the the ship. 07:06.11 Frank Nice, cool. 07:25.90 jamesmontemagno The ship like shooting and its physics and the shield and different gameplay and the scoring engine as well. So yeah, there was only like four programmers so we were all where we all kind of did a little bit of everything. Let's just say that now. 07:38.83 Frank Yeah, ah you know as a kid I always wanted to be a game tools maker like I didn't want to be the game engine person I didn't really want to be the artist or the level designer I wanted to be the toolmaker because I always thought that was the coolest like they had the most control over everything. 07:42.11 jamesmontemagno And. 07:54.95 Frank I think that's fun that you got to do that Ah yeah, so sorry so fast forwarding this story. Sorry so long. Um, ah, people are getting back into dark forces and they're dealing with these tools and they're finding all this old information that myself my old programmer group. My old hacker group. Used to publish about all this kind of stuff and they asked if I'd write a little tool to convert three d files to modern formats. So you know we can actually view them and use them and import them into things because it's an ancient format from a video game from Ninety Ninety five so turns out no 3 d software actually supports it so I needed to write the app. 08:32.41 jamesmontemagno No I got you know you could have just it sounds like this could also be a command line right? to get a file in and out kind of like a ffm mpeg. But for 3 d files. 08:32.83 Frank Simple app. 08:37.77 Frank Exactly So This is it. Exactly this is this if if we're programmers This is obviously a command line app. Really easy to write you taken a glob go search for Files Go spit out a bunch of Files maybe at a progress bar if you're feeling fancy Otherwise good to go done. And um I was pitching that to the person and I'm like hey how about a command line tool and he's like yeah see um, everyone's like a person who doesn't use the command line like normal people and not like you weird Programmer types. And so could you maybe? um, you know slap one of them ui things on top of that and as. 09:26.16 jamesmontemagno Can you give me one of those things where I can visualize it you know and see it in Click and then pick and then click another button and then there's a thing that shows me the things and then maybe even shows me the output files and the things on the screen. 09:41.64 Frank If. 09:43.75 jamesmontemagno See this is the type of person that I love because it's me because this person that you just described is me as every every listener knows now if you did night now you will know is I create video games at 1 point in my life not anymore and I don't enjoy using the command line at all I despise it i. 09:46.43 Frank Yeah. 10:01.96 Frank Um. 10:02.76 jamesmontemagno Don't want to be in it ever and I don't I don't want to I want the guey. The reason I spent all my money and by all my money I mean not me. But why I use you know visual studio and I've always used visual studio forever in a day as a C sharpen down end developer and as a C plus plus developer by the way. Game was ah was built in the C Plus pluses and I I want to I want to click around I Want to do the thing like if I have to go to the command line that means the tool has failed me.. That's my that's my personal opinion I will click faster on the ui. 10:23.40 Frank Loved it. 10:34.29 Frank M. 10:41.55 jamesmontemagno Then than anyone else like like a gunslinger but clicker of the mouse and I'm not even a keyboard person Frank some people people say well then you must be a power user James you must be a control f but but but no not I don't even I know I don't know any keyboard command no shortcuts you I don't need a shortcut. No don't shortcut me give me a click. 10:58.38 Frank You know. 11:01.90 jamesmontemagno Give me a click Click Click Click Click and that's what I want to do click it. He click mouse. Oh yeah, oh yeah. 11:03.80 Frank You don't even like drive the mouse directly to the button. You do a few laps around. You know you you let the mouse travel a little maybe do a few false clicks on some random things. 11:13.15 jamesmontemagno I got that you know you know the mouse you know the mouse thing where it does the little trail behind it. Boo do that is what I like to do now I was like hey look look at this like I'm doing work I I clock you know how like some people they're like I'm going to count the steps I take today with my pedometer I have app that I created. 11:18.16 Frank Oh yeah, like to watch that if. 11:32.99 jamesmontemagno That it it it monitors how much my mouse has traveled across the screen. How many pixels in a day. No, but that should exist. Ah the listeners if you can go and create this app. Please do it and. 11:35.97 Frank Does it does It is this for real you should I'm on that I'm like I'll buy that right now. How much James get to work on that she's I Love it. 11:52.84 jamesmontemagno That would be and what if there's a leaderboard. Ah ah ah I will pay I would pay money for that app. Yeah, no that app has to be. 11:53.70 Frank And a leaderboard just a leaderboard I Love it when we design apps on the show. Okay, it's a competition who's going to write it first. Ah. 12:08.55 jamesmontemagno That's got to be like ah it's got to. It's got to run in the little thing in the bottom right? The task thing or up top. It just is always running that should be a power toy. We should put that in for yeah, amazing. Ah yeah. 12:14.56 Frank Most mouse used most pixels covered per hour. Well the gamers would win right there. There's they're shooting. Yes, we got to block out the gamers right. 12:28.10 jamesmontemagno I Don't know I mean a lot of there are really finite movements on the screen. So anyways, ah so you decided that you were going to build an app because I wanted a U y hello. 12:33.71 Frank What were we talking about right? Hi Yeah, okay so and everyone's a windows user these days I'm kind of a Mac Actually let me go back to the Ui versus Command line We we shouldn't turn this into a Ui versus Command line episode. But let's do it. Briefly. 12:50.62 jamesmontemagno Okay. 12:52.78 Frank Um, I used to be 100 % in your camp like my whole I moved to windows. Ah, unabashedly because I wanted to build uis you know I started programming in visual basic because I wanted to do Uis I did delphi because I wanted Uis I did c sharp because I did windforms uis I always saw every app should have a ui. It's only when I started doing way too much un unique stuff on mac and linux that I kind of got eaten up by the console world and so when this person said why could you maybe? ah put a ui on it I'm like yes of course I am a gentleman programmer and will build you a ui because that is the more. 13:29.70 jamesmontemagno Now. 13:29.98 Frank That's the better way to present an app than a command line. It's like yeah if there's options maybe radio buttons are the right way to do it. So but as a mac user these were windows users I couldn't just write them a mac app that won't work. So. And you you were very gracious in the beginning said frank always goes to Maui but I don't always go to Maui I like to think things through um, but these days if you want to be on the easy boat in the dot net world. It's good at least start with a maui project look everyone maui is pluginable if you don't like their controls just put your own controls in and then you're good to go. So that's always been my philosophy it something I maui is annoying me I just write my own. No anyway. So I start there and I'm like I'm just going to write the simplest little app. It's going to have a button and and a text box a button and another button one button to bring up a file picker and 1 button to do things. It's a command line app. But it's a ui. But enough and I wanted to use your library Ah I I don't know is this one yours did you do the file picker for maui I'm sorry what is it maui extensions no system extensions. No microsoft extensions. What's it call these days. 14:23.97 jamesmontemagno But more oh oh my gosh. What library. 14:40.74 jamesmontemagno Maui is maui essentials maui essentials. Yeah um I recently contributed some code on windows because of some wacky handles that we're not going to get into um window handle things and winu I 3 14:42.65 Frank I got there I tried so hard. 14:52.93 Frank A. 14:56.14 jamesmontemagno However, no I think that was a community member and I think Gerald maybe helped out a little bit with that one? Um, but yeah, you can you can pick files. 15:05.29 Frank Yeah, yeah, so I it was a real simple app I was like okay, it's basically a command line now. But I'll have a button to pick some files and a button and to execute it Maybe a progress bar always progress bars are always a maybe? um. And I I started having fun. What can I say? Um I did find the file picker a little weird the documentation needs to be improved because it was unclear how to specify file ah formats because they're like you should use. 15:27.65 jamesmontemagno First. 15:37.12 Frank Different ways of specifying file formats per operating system and I wasn't sure if that meant use Utis on Mac because Macs don't really do file extensions they do universal type identifiers but on windows you use file extension so I wasn't the. 15:41.60 jamesmontemagno Is. 15:53.78 Frank Ah, Docs need to be improved by anyway I got the stupid file picker working. It wasn't that hard. Yeah, and so um I wrote my little mawia which had a little file picker. It showed you a list of your files that was easy enough. No little button export the files and I was I was quite pleased. 15:56.83 jamesmontemagno Got it? okay. 16:12.84 Frank Myself and I like you know I wrote I wrote myself a ui app. It's it's it's literally the smallest ui app that's possible to write but I did it in a cross-platform way using modern dot net and it was running on the Mac and I could even run it on ios even though that was completely pointless. It was still fun. It was fun to run it. Io. 16:32.19 jamesmontemagno Well, you know these these folks might have 3 do files just sitting around on their ios device and they may need to to do that now. The cool part is well. You also have an you know an export. What does it just save it to disk or something like that you could add a share sheet and then they could like email it to themselves. 16:32.83 Frank Has ah. 16:51.88 jamesmontemagno That be fun. 16:53.30 Frank See that would be better. Yeah I was gearing it toward desktop I wasn't thinking through the ios story completely because again, no one on Ios is ever going to run this app but I will think it through a little bit better James um, but what happens when you I you kind of finish an app but like. 16:56.27 jamesmontemagno Oh. 17:10.10 Frank You you still feel like maybe it's not quite done. What do you do next? James. 17:14.45 jamesmontemagno Um, okay so you finished the app but it's not quite done I guess you got to give it to people to test at some point or we're not there yet or no you overengine engineer it because you're Frank Guger yep nailed it. 17:17.42 Frank Well, no, no that that would be smart you over-engineer it there you go, You're like come. Maybe this app that has one purpose in life to convert Files So people can view. Them should also have a viewer built in because why not, um. 17:38.24 jamesmontemagno Of course Yeah, why not? you know you know? well you know because you know obviously if you you could pick some files you might want to be able to perhaps see some some about those Files. You know that's there's nothing worse. Then when you're in the file browser and you click on a file and the preview doesn't show up and like come on you like come on was it svg you know how to do an s which is to those fit just show me that Vg was a pdf just show me the tiff it may break my entire system but just show me the tiff. Um. 17:58.80 Frank Yeah. 18:09.40 Frank Is it that hard. Yeah, ah what what happened was I put the required list view I Believe every Maui apps required to have a list view in it and I put it in yeah and. 18:12.66 jamesmontemagno You know while we've talked about tiffs. But yes. 18:22.43 jamesmontemagno Yes. 18:26.56 Frank Nice. It's at the file name it. It did what it was supposed to do but I'm like there really should be an icon here. What should the icon be so I'm like you know one thing I haven't learned yet in Mali was how to do graphics now I do skia graphics. 18:39.87 jamesmontemagno Are. 18:45.50 Frank Extensively an I circuit I like skia graphics. It's excellent, especially when you get the Opengl and Gpu accelerated versions of it I absolutely love it. Um, but I was having. Trouble getting skia to work in Maui I'm sure I was doing something wrong I know I didn't read the manual I tried the dot use skiia but something was still broken and blah blah blah but I'm like everyone keeps telling me. There's graphics built into Maui so like why am I even yeah maui dot graphics. 19:04.49 jamesmontemagno Earth. 19:11.27 jamesmontemagno Um, it's right there? Yeah, it's right there. It's ready to go. It's it's in the box. Some some say. 19:13.83 Frank That was called I think that's what's called. Yeah, and what's it called I think a graphics view I think is the control you want and the graphics view only takes one property a drawable object and it's a simple interface with I believe just. 19:35.18 jamesmontemagno Yeah, it's like it's like a canvas. Basically it's a canvas you know why they didn't call it a canvas who knows but it's a canvas. Let's just just say what it is. It's a canvas and you draw on the canvas. 19:35.39 Frank Call on it called like draw or something like that. Yeah yeah. 19:47.99 Frank Well, there is 1 design decision about it that I don't like um the design requires that each object know its size whereas what I wanted was a view that adapted to its size and the apis not exactly the api would have designed for that. But. 19:54.87 jamesmontemagno Are. 20:05.28 Frank I I ignored I ignored the little devil on my shoulder and was like Frank just use the Api. Please don't write a ui framework just don't do it. Don't do it so I shut my mouth and wrote a cute little I drawable. Ah my eye drawable was of course a 3 d renderer. So. I take the three d world I do all the math on it to bring it down to 2 dimensions and then re-render it using maui graphics in my eye drawable and I'm just having a good time because it's so much fun I love hot reload and I love things like that. 20:41.84 jamesmontemagno Is this cool I think this is ah a really neat example of an app because not only is it like oh yeah, you could use it just for desktop apps right? But then you're like I'm going to do this custom drawing cool thing and it looks really neat I mean I know it's It's one page and people can go look at the code we'll put it in in the show notes. But. 20:55.60 Frank Yeah. 20:59.53 jamesmontemagno Yeah, it's pretty cool to me like in general I'm looking at it I was like this is really is really neat I think like that that little pop of visualizations is a real delight. 21:10.40 Frank Yeah, and it's a 1 ne-off program. It's silly. It doesn't need a drawing you know people are just going to do this and they're going to export the files and they're going to be happy, but you know sometimes you have standards and I was also using as a moment to just practice Maui because it's such a simple app that. You can't really mess anything up so have some fun like I said learn how the graphics view works throughout something else I learned with it to oh I was going to try to learn how to use shell. But ah I still haven't learned how to use shell one of these days I'll learn how to use shell but not this not this time? Yes, exactly. 21:43.90 jamesmontemagno You mean for this app that is 1 page. Yeah, you did use shell. It's in there I think no is it in there I know it does. 21:49.28 Frank I figured I could. Okay, oh yeah, because I think the file new template has it. Um, these kind of apps though there is a style about them. Okay, you are supposed to make them gaudy. You are supposed to theme the heck out of them. You are supposed to put an about box that has midi playing in the background and text scrolling. Okay, so like I'm a little angry myself that I didn't get to all those levels but there is basically no end to camp with a app like this and it's fun. It's It's the opposite of like the ios world where you're supposed to be like perfect and shiny and glistening and perfect. Ah just perfect with these kinds of apps. They're so much more liberating because like it should look like an app from 9095 the background should be black. The text should be green. You know, like there's a certain aesthetic to it and it's fun to just be able to like give given to that kind of aesthetic for a little bit of time. 22:48.32 jamesmontemagno I Think you know welcome to my streamtimer Frank I'm just saying that welcome to the world that I live in every day of of that's exactly what you know I would like to have gone even further out that I think your Europe has more visual pop than mind does your colors are different. 23:01.34 Frank You write. 23:07.95 jamesmontemagno Your buttons have different colors on them. That's pretty cool. Um you know and and it does use it nicer. It looks it looks dice. That's what I'm saying my you know my stream timer. What a what a terrible little but there that's what they are what they are they are they are for all intents and purposes command line apps that have a Gui right. 23:25.15 Frank I. 23:27.33 jamesmontemagno My streamtimer you could do everything with it without the gui. It doesn't need a guig can just be run by the command line like almost 100% because it's just writing to disk and you could just do different things but it's like oh this is great because you know it's like ah it's all you need I don't know it's great. 23:41.94 Frank I know but like my streamer time I could use like a pulsing clock like some animation James give me a little bit of animation. But yeah and I don't put enough animation in my apps and I almost wish I'd gone 10 23:49.96 jamesmontemagno Um, now. 23:56.63 Frank Times farther in this or further and and in in making it even more gaudy and like weird and all that stuff because that's the only time you grow is when you get to do something that you don't normally do and so I hope that you'll take a moment and make like the synth wave version of my stream time. 24:13.90 jamesmontemagno I Do need to do that. 24:15.96 Frank It's not necessary but man sometimes it just makes life worth living to do the silly stuff. 24:22.45 jamesmontemagno I Love it. That's so I love it just so cool. Um. 24:26.70 Frank Yeah, so this is the fun one. Um, just to bring that PngG story back all around and so the the overengineering part look James all this app had to do was take a 3 d object file from 9095 and bring it to a modern format done. 24:31.52 jamesmontemagno Um, yeah. 24:42.82 Frank And was done in like a half hour but then it's like you know, a lot of these ah old graphic file for formats reference textures. You know you got to texture your polygons and that's in a weird file format. So what? if my app also. Not only converts three d os to a modern file format. But what if it also converts all the textures to a modern file format and man that was the biggest blast from the past because I got to read old hacking specifications from my good old friends from when I was fifteen years old 25:03.50 jamesmontemagno Um, do. 25:16.19 Frank Eve Borrkman if you're out there eve hello ah so it was fun I got to read all these old docs and I'm like you know what? I'm just going to do it and so I wrote um the texture map converter that takes the textures reads them in from the ninety ninety five file format and outputs png files and it was just. Fun to write. You know a little nostalgia trip and again because I was in a weird mood I I wrote the p and g code from scratch using just zlib built into dot net. Super fun. 25:49.75 jamesmontemagno That's awesome. Oh man. 25:51.58 Frank The overengine engineering we do for small projects it even end there I noticed that the the way that a modern renderer ah will automatically do vertex normals has changed from how we used to do it in 9095 compared to today. How how renderers do it by default and so I'm like well you know it should do a faithful conversion. It shouldn't be a half as a version. Sorry everyone for ah so I decided to rewrite all the polygon data in the file. So that. 26:14.94 jamesmontemagno That. 26:27.11 Frank Modern renderers would render it the way it should have been rendered 9095 because I'm insane and I over ah overdo everything but I had such a blast and so it's the silliest Mali app with the silliest basic Ui but even the smallest app you can just keep going into. And going into and making better and better. 26:48.43 jamesmontemagno I love it I love it Frank it's the type of app that um you know it puts more than a number on the screen but it does put some really cool blobs on this on the screen that that were 3 d and now that's now what I really want for you to do. 27:02.94 Frank Me. 27:04.99 jamesmontemagno And figure it out I don't know I'm sure it's possible somehow. But what if those 3 do files instead of them being 2 d bitmaps what if they rotated and were three dimensional. 27:14.87 Frank Oh I want it don't you worry I want it I'm just learning how Maui Graphics does animation because I haven't figured out how to do a proper animation loop in it. What I'm really trying to hold myself back from doing is building a maui three d control. But. 27:29.59 jamesmontemagno Yeah. 27:32.43 Frank It might happen sooner than later because I keep wanting to put three D into my apps and I need a nice simple control for it. 27:38.11 jamesmontemagno Yeah, I'm not sure I don't I I got to ask someone if if there's got to be 1 that exists out there most of the stuff is two d that I know of but I would think. 27:46.26 Frank Ah, probably um, you know when we were designing sorry when we were designing back when I was working on the team that was designing Wpf. Um, there was huge 3 D features in Wpf. It has one of the most sophisticated 3 D rendering engines out there. It's not fast like unity but it's Powerful. It's scary powerful and I knew the people testing it. They it scary powerful. Um, it's kind of sad that that didn't live on into the more modern Frameworks because. 28:01.68 jamesmontemagno Um. 28:07.28 jamesmontemagno Now. 28:19.68 Frank Back in 2004 we still considered three d views very important to the future and it's a little sad that we don't include them much anymore. But um, definitely easy ways to bring them to Maui you could copy the wpf api which is probably way too sophisticated for anyone's needs. 28:35.36 jamesmontemagno A. 28:38.17 Frank Or do a simpler api where you can just draw some primitives and some meshes and be happy. Um. 28:41.43 jamesmontemagno Back in my day Frank I used to do a lot of windforms development and that's what I that's what that was my tools development the game studio. So we're circa 2007 yeah she has an 8 yep and there's a. 28:51.14 Frank Yeah, yeah. 28:59.84 jamesmontemagno There's a direct X control that you can just drop in. It's and so the part I had this particle tool because the whole idea was our we had our we had our we had our graphics designers and what they did is they would create like the textures and they're like here's the textures for an explosion for a bullet. 29:00.17 Frank Oh isn't that great. 29:10.53 Frank Yeah, yeah. 29:19.13 jamesmontemagno For whatever and what they needed to do what and I may have talked about this on the pod. So I sorry everyone. But but this is pertinent to this story of 3 dimensional stuff. But what they needed to do is they needed to be able to stack textures on a 3 d model so they could say oh here's a here is a ah. 29:26.29 Frank I. 29:39.13 jamesmontemagno Ah, rock that's floating so they load up the dot x model which is the Directx model and now we have boom. We have this thing and then what they would do is they said okay, we need to create an explosion and we need to pragmatically do that. So like we can make the texture. Heres the smoke here's the fire here's the thing. So what the ui let them do is they would pick a file. 29:44.28 Frank Ah. 29:57.30 jamesmontemagno And add textures onto a queue and each of those textures had its own animation system that I built into it so they'd have all the different properties so you could say Okay, it's going this direction you know and or or a random direction and it spawns this often and decays this fast and. 30:01.81 Frank Nice. 30:16.43 jamesmontemagno blah blah blah right and and what's that is it is the decay getting bigger in size is smaller inside all these properties and they could. They had a beautiful ui right? So you could do this stuff and then the the graphic designers my like my buddy band I would give him this tool and he would put it in there and he'd create this beautiful explosion and then. Um I I would need to put it in the game. So then I added a button that said export code and then it just exported the c plus plus code. So I like drop that class into the into the game engine and it was like a beautiful thing. That's what I that's what the first that's where I fell in love with desktop development right? as like in in college still at this point I just fell in love with. 30:36.16 Frank A. Love it. 30:54.16 jamesmontemagno These really cool. Ah you know tools development at the end of the day I just I Just think it's so cool and and half the apps that I build nowadays they're kind of tools right? like I think of my cadence is basically a tool if I think of my stream timer as a tool in a different way. It's like I build these tool type applications because I think that's what I. 31:03.28 Frank Yeah, yeah. 31:13.14 jamesmontemagno Ah, passion is. But anyways yeah, that's what I did so funny enough back in my day twenty no twenty to say fifteen sixteen fifteen years ago. No thirteen. No what I say 2007 16 15 16 years ago I was doing some similar stuff. It's crazy now. 31:14.73 Frank This is. 31:29.59 Frank Yeah, yeah, ah that direct X view was good but you had to be a graphics programmer like you to use it back then that was not an easy control to use. So I would try to make something a little bit easier in these like I remember when um X and a came out. 31:36.72 jamesmontemagno Yes. 31:47.47 Frank And we were all so relieved because we didn't have to write directex code anymore and that's why we all loved it. So I would try to target something a more high level like that anyway. 31:48.38 jamesmontemagno Um. 31:57.14 jamesmontemagno So the funny. The funny part is that we um, my buddy Chris he that he basically built the engine from the ground up the engine for the game and c plus plus and then like a year and a half into the development x and a came out. 32:04.83 Frank Yeah. 32:11.67 Frank Is that right? Yeah, it's it's tough could you have written your game in X and a I mean X and a had limitations but it was pretty general purpose. Yeah. 32:15.60 jamesmontemagno Ah, and we were like ah man. 32:22.30 jamesmontemagno I Think we could have I mean we there might have been some stuff we went needed to to work around like anything like any Ui toolkit but I but I bet we could have done it. 32:28.72 Frank Yeah, at well funny. This has been a weird episode. It was a little bit of maui a little bit of 3 d kind of perfect for me. 32:42.49 jamesmontemagno Little bit of everything That's what happens when you start to Convert Star Star Wars assets into different modes and build a gui on top of it. Boom Ah, but with reminiscing it was the was the best of times and it was also the best of times. 32:51.62 Frank Ah, isn't it funny. The blast from the past. It's great. 32:57.65 Frank So. 32:59.87 jamesmontemagno Ah, no, my goodness all right? Well, that's going to do it for this week's podcast everybody we have to have the most amazing morning afternoon evening of your entire life and thank you for spending with us and if you like this podcast you know, maybe leave a review if you're on Apple Podcasts was like a button in the show notes Bim you can do that. Check out Frank's project it's also in the show notes and you're can become a Patreon subscriber you know we have a Patreon page where you can give us money and you get bonus podcasts. That's super cool. There's 60 people that are our patreons you just see that and that helps fund the podcast and our time and our money it's amazing. Do give me get a free trial just give it away just download all of them for for free. Just go for it. Um, yeah, thank you for being here and um, that' gonna it for this week's podcast. So until next time I'm James Mont to mag pace. 33:36.71 Frank Oh. 33:46.60 Frank And I'm Frank Krueger thanks for listening.