0:00:08.559,0:00:10.880 okay 0:00:12.960,0:00:18.000 so I'm gonna start with my just my demo 0:00:14.960,0:00:31.840 Emacs here eric we're ready 0:00:18.000,0:00:35.440 oh we are live 0:00:31.840,0:00:39.200 okay so you're starting then 0:00:35.440,0:00:41.760 I guess I'll start right now here we go 0:00:39.200,0:00:43.440 so I'm a windows user as we talked about 0:00:41.760,0:00:46.719 yesterday 0:00:43.440,0:00:47.440 I'm gonna try to uh start Emacs for you 0:00:46.719,0:00:48.960 now 0:00:47.440,0:00:52.879 and I've kind of got it pinned to this 0:00:48.960,0:00:55.760 thing but mostly what I actually do 0:00:52.879,0:01:00.160 is grab a file explorer and head to my 0:00:55.760,0:01:00.160 desktop where I have all sorts of Emacs 0:01:00.559,0:01:04.160 eric can you make sure that your vlc is 0:01:05.960,0:01:08.960 muted 0:01:10.840,0:01:13.840 okay 0:01:21.840,0:01:27.840 give me a second please 0:01:39.360,0:01:44.000 I do okay all right we should be we 0:01:42.079,0:01:44.560 should be working again now my apologies 0:01:44.000,0:01:46.560 for that 0:01:44.560,0:01:47.759 all right handling technical problems in 0:01:46.560,0:01:50.079 real time is 0:01:47.759,0:01:52.079 uh what Emacs is all about as we're 0:01:50.079,0:01:53.360 coding we're constantly making errors 0:01:52.079,0:01:54.560 and fixing them and 0:01:53.360,0:01:56.159 learning from the kinds of errors that 0:01:54.560,0:01:57.759 we make and adjusting the editor to be 0:01:56.159,0:02:00.719 easier to use 0:01:57.759,0:02:02.640 so today we'll try to build on uh some 0:02:00.719,0:02:05.600 of the ideas we introduced yesterday 0:02:02.640,0:02:07.280 around how a community can help us learn 0:02:05.600,0:02:10.479 Emacs faster 0:02:07.280,0:02:13.040 and how we can think broadly 0:02:10.479,0:02:14.160 about the people in our team when we 0:02:13.040,0:02:16.080 decide how 0:02:14.160,0:02:18.000 what kind of Emacs configuration we're 0:02:16.080,0:02:19.680 going to have going for our project 0:02:18.000,0:02:22.239 so I'm just going to fire up my normal 0:02:19.680,0:02:25.440 Emacs config now so that we get 0:02:22.239,0:02:29.120 uh hopefully a nice pretty demo or uh 0:02:25.440,0:02:30.959 at least some slides and for safety 0:02:29.120,0:02:33.360 we're going to avoid the server because 0:02:30.959,0:02:35.280 I hate it when it crashes 0:02:33.360,0:02:37.840 it's a little less stable under windows 0:02:35.280,0:02:37.840 I think 0:02:41.120,0:02:44.800 and well uh while this starts up I'll 0:02:43.360,0:02:47.200 just briefly introduce 0:02:44.800,0:02:49.519 my lifelong friend and eric uh elm 0:02:47.200,0:02:51.120 salzer who's hanging in the wings and 0:02:49.519,0:02:53.840 waiting impatiently for us to be able to 0:02:51.120,0:02:53.840 start our slides 0:02:54.400,0:02:57.280 hello everybody 0:02:58.560,0:03:02.000 so you've heard plenty from me already 0:03:00.720,0:03:05.760 this conference 0:03:02.000,0:03:09.120 um I suppose 0:03:05.760,0:03:10.720 uh so I'm just gonna uh 0:03:09.120,0:03:12.400 so eric and I have worked things out so 0:03:10.720,0:03:14.159 that he'll do most of the talking today 0:03:12.400,0:03:14.879 I'll drive us through some code parts 0:03:14.159,0:03:16.239 but 0:03:14.879,0:03:18.000 the hope is that we'll just focus a 0:03:16.239,0:03:20.000 little more on the game and if you have 0:03:18.000,0:03:21.840 questions about the game at all please 0:03:20.000,0:03:24.879 don't hesitate to ask those as well as 0:03:21.840,0:03:24.879 your Emacs questions 0:03:28.480,0:03:33.840 and I think we're starting out welcome 0:03:34.959,0:03:40.400 and let's cut away here so we can show 0:03:37.680,0:03:40.400 some faces 0:03:41.200,0:03:47.840 I lost you eric why would you do that 0:03:45.040,0:03:47.840 there he is 0:03:48.319,0:03:53.280 and let's just do one more thing because 0:03:50.239,0:03:55.439 that's just kind of offensive 0:03:53.280,0:03:59.360 I'm gonna kill off that cute wallpaper 0:03:55.439,0:04:02.640 we all were playing with yesterday 0:03:59.360,0:04:04.480 although that's not so bad anymore 0:04:02.640,0:04:07.360 oh that's terrible it's got to come back 0:04:04.480,0:04:07.360 I'm sorry everybody 0:04:11.120,0:04:15.840 oh my dear all right 0:04:16.720,0:04:22.400 and we just opened Emacs so I have to 0:04:19.040,0:04:22.400 open my slideshow 0:04:25.040,0:04:30.320 and there we are 0:04:28.479,0:04:32.560 okay eric I think I'm about as ready as 0:04:30.320,0:04:35.520 I get 0:04:32.560,0:04:37.840 cool well uh let's begin here welcome to 0:04:35.520,0:04:40.560 the dungeon everybody 0:04:37.840,0:04:40.560 I'm eric and this 0:04:41.199,0:04:45.120 london is that we've been working on for 0:04:43.199,0:04:48.240 about a year now 0:04:45.120,0:04:52.000 um the dungeon 0:04:48.240,0:04:54.000 game is based on 0:04:52.000,0:04:56.160 a tradition of gaming that came out of 0:04:54.000,0:04:57.520 the university of minnesota back in like 0:04:56.160,0:05:00.639 the 1950s 0:04:57.520,0:05:03.680 as far as we can tell and it 0:05:00.639,0:05:05.199 is a predecessor an ancestor of most of 0:05:03.680,0:05:07.680 the commercial role-playing games 0:05:05.199,0:05:08.720 that you have heard of or maybe tried 0:05:07.680,0:05:10.800 out from 0:05:08.720,0:05:11.919 various stores and friends when I have 0:05:10.800,0:05:14.240 you 0:05:11.919,0:05:15.759 so one of the first things we want to 0:05:14.240,0:05:17.039 talk about is what is it that sets 0:05:15.759,0:05:19.440 dungeon apart 0:05:17.039,0:05:20.800 why is it you know what is it about this 0:05:19.440,0:05:22.880 game that makes us want to 0:05:20.800,0:05:25.039 continue bringing it forward when there 0:05:22.880,0:05:26.800 are so many games 0:05:25.039,0:05:28.479 already commercially available that are 0:05:26.800,0:05:32.400 descended from it 0:05:28.479,0:05:36.479 um dungeon is kind of a 0:05:32.400,0:05:39.280 simpler game like we 0:05:36.479,0:05:40.400 don't a lot of the mechanics that you 0:05:39.280,0:05:42.240 think of about like 0:05:40.400,0:05:44.560 what is it that defines your character 0:05:42.240,0:05:48.080 stats and skills and attributes 0:05:44.560,0:05:51.199 we just don't deal with in dungeon um 0:05:48.080,0:05:54.720 but dungeon 0:05:51.199,0:05:59.560 the simplicity of it allows it um 0:05:54.720,0:06:01.840 to be a view over creativity more than 0:05:59.560,0:06:04.720 um 0:06:01.840,0:06:07.039 so that's kind of why we like it but 0:06:04.720,0:06:07.039 also 0:06:16.639,0:06:24.000 so when we look at it as kind of like 0:06:20.800,0:06:26.880 uh a technology problem whoops 0:06:24.000,0:06:27.919 when we try to hey home uh I'm sorry I 0:06:26.880,0:06:30.560 got ahead of us I'll 0:06:27.919,0:06:30.560 I'll cut back 0:06:32.160,0:06:37.600 I I thought we were doing fine 0:06:35.520,0:06:40.000 okay well then I'll I'll just yeah 0:06:37.600,0:06:40.000 either way 0:06:40.319,0:06:46.479 so we've been friends since um 0:06:43.360,0:06:49.840 it was our parents basically 0:06:46.479,0:06:53.120 um our parents are friends uh and 0:06:49.840,0:07:02.479 we learn this game from our parents 0:06:53.120,0:07:04.560 um specifically um 0:07:02.479,0:07:06.400 uh yeah that's where that's that's 0:07:04.560,0:07:09.599 that's my q in right 0:07:06.400,0:07:13.759 so um yeah my my 0:07:09.599,0:07:15.120 my folks uh and and eric's folks were 0:07:13.759,0:07:17.360 were really tight they used to run 0:07:15.120,0:07:20.400 science fiction conventions together 0:07:17.360,0:07:21.840 and yeah we our play 0:07:20.400,0:07:23.520 featured you know imaginative 0:07:21.840,0:07:25.360 role-playing usually we would find ways 0:07:23.520,0:07:28.639 to work the computers in 0:07:25.360,0:07:30.479 to things and uh uh 0:07:28.639,0:07:34.160 I don't I don't know I I hardly have 0:07:30.479,0:07:34.160 memories uh that proceed eric 0:07:35.000,0:07:44.240 um also it turns out we're both 0:07:37.840,0:07:47.280 kind of nervous uh we've been um 0:07:44.240,0:07:49.039 back in the early 80s and 0:07:47.280,0:07:51.360 for as long as we've been friends 0:07:49.039,0:07:52.800 basically we've also been into playing 0:07:51.360,0:07:55.440 with computers 0:07:52.800,0:07:55.840 um over the years we've worked with many 0:07:55.440,0:07:59.120 many 0:07:55.840,0:07:59.120 different systems we've played 0:08:11.360,0:08:17.919 like um so we 0:08:14.560,0:08:20.800 also always thought like 0:08:17.919,0:08:22.639 how is it that we can use these cool 0:08:20.800,0:08:27.840 computers 0:08:22.639,0:08:27.840 to build this dungeons 0:08:28.319,0:08:35.039 right that's certainly what we did um 0:08:32.080,0:08:35.839 so after some decades of bike shedding 0:08:35.039,0:08:37.360 where we saw 0:08:35.839,0:08:39.039 really a lot of changes in the 0:08:37.360,0:08:40.800 technology field 0:08:39.039,0:08:42.880 cell phones were invented smartphones 0:08:40.800,0:08:44.720 were invented text messaging in 0:08:42.880,0:08:47.120 particular had a dramatic 0:08:44.720,0:08:48.640 impact on on what we thought dungeon 0:08:47.120,0:08:49.519 would have to be able to do to be more 0:08:48.640,0:08:54.720 fun 0:08:49.519,0:08:58.480 than scribbling in in graph paper 0:08:54.720,0:09:01.519 um yeah either way 0:08:58.480,0:09:04.399 we've been using linux since the mid 90s 0:09:01.519,0:09:06.160 um I don't remember exactly when I did 0:09:04.399,0:09:09.279 my first linux install 0:09:06.160,0:09:12.560 but uh I really 0:09:09.279,0:09:13.279 liked it from the get-go and um I think 0:09:12.560,0:09:23.360 it was 0:09:13.279,0:09:26.320 you know um 0:09:23.360,0:09:28.800 uh and I'll add I remember the day that 0:09:26.320,0:09:32.560 I learned about the formation of gnu 0:09:28.800,0:09:33.440 it um it had a life I I mean I read lots 0:09:32.560,0:09:36.880 of licenses I 0:09:33.440,0:09:38.480 I think a lot of us have written our own 0:09:36.880,0:09:41.600 swag license code 0:09:38.480,0:09:42.800 and uh I definitely credit the formation 0:09:41.600,0:09:46.240 of gnu to my 0:09:42.800,0:09:46.240 being interested in thinking about that 0:09:48.640,0:09:53.040 right I am working the slides here okay 0:09:50.720,0:09:55.200 well um 0:09:53.040,0:09:56.080 so yeah this is your turn I already 0:09:55.200,0:09:58.720 mentioned uh 0:09:56.080,0:10:00.399 jeff yesterday so you're turning to take 0:09:58.720,0:10:03.519 it for a few slides 0:10:00.399,0:10:04.240 okay well I mean you know along the 0:10:03.519,0:10:07.200 learning 0:10:04.240,0:10:08.560 linux we started learning the various 0:10:07.200,0:10:11.680 tools that were available 0:10:08.560,0:10:14.000 through the new free software movement 0:10:11.680,0:10:14.720 and um it didn't take very long before 0:10:14.000,0:10:18.240 we got 0:10:14.720,0:10:21.040 into using Emacs um and when we were 0:10:18.240,0:10:24.000 working as software developers um back 0:10:21.040,0:10:25.680 in the 90s we both were using Emacs in 0:10:24.000,0:10:28.959 an office environment with 0:10:25.680,0:10:33.360 some other developers and it I mean 0:10:28.959,0:10:33.360 it was obviously a very powerful 0:10:40.560,0:10:48.000 um yeah I'm not going to go on at length 0:10:43.120,0:10:48.000 about my love for Emacs here so um 0:10:48.880,0:10:52.480 so we yeah so we put together a project 0:10:52.000,0:10:54.240 and 0:10:52.480,0:10:56.320 and each time we rehearse this eric 0:10:54.240,0:10:58.000 introduces it with it's my story to tell 0:10:56.320,0:10:59.360 but since our flow is already to hell 0:10:58.000,0:11:00.880 and we're just having a conversation 0:10:59.360,0:11:03.920 with you today 0:11:00.880,0:11:06.399 um I'll just jump in and say 0:11:03.920,0:11:08.160 from a project standpoint the the 0:11:06.399,0:11:09.839 project owes its inception 0:11:08.160,0:11:12.079 to a tremendous number of people in 0:11:09.839,0:11:14.000 fandom that you know 0:11:12.079,0:11:15.680 uh encouraged us to just do crazy 0:11:14.000,0:11:18.160 projects and 0:11:15.680,0:11:18.800 in this case to our friends that were 0:11:18.160,0:11:21.360 hanging out 0:11:18.800,0:11:22.560 with us on discord all the time while we 0:11:21.360,0:11:25.200 played different games 0:11:22.560,0:11:26.640 and uh through that and while I was 0:11:25.200,0:11:31.839 fooling with Emacs is 0:11:26.640,0:11:31.839 generally other people played games uh 0:11:34.000,0:11:37.200 kind of the pieces fell into place and 0:11:35.680,0:11:38.320 we were all there so we could talk about 0:11:37.200,0:11:41.040 it and the idea got 0:11:38.320,0:11:42.800 exciting again and we started going back 0:11:41.040,0:11:44.480 to all the places that we had 0:11:42.800,0:11:46.640 had trouble with it in the past and it 0:11:44.480,0:11:48.000 really did seem to add up we built proof 0:11:46.640,0:11:50.240 of concepts to do 0:11:48.000,0:11:51.440 hard stuff quickly and I guess we'll 0:11:50.240,0:11:54.320 probably head into that 0:11:51.440,0:11:54.320 that area now 0:11:54.880,0:11:57.040 so 0:12:03.360,0:12:11.839 and there was a slide about all of 0:12:06.800,0:12:11.839 the problems 0:12:31.360,0:12:37.279 hey there hey 0:12:34.959,0:12:38.800 um yeah go ahead and continue I just got 0:12:37.279,0:12:40.639 a phone call I think from leo so I'm 0:12:38.800,0:12:44.480 gonna mute 0:12:40.639,0:12:47.600 okay so um what we did in 0:12:44.480,0:12:49.680 in the project was basically come up 0:12:47.600,0:12:51.440 with our minimum play testable candidate 0:12:49.680,0:12:52.000 we listed all of the things that we need 0:12:51.440,0:12:56.240 to be able 0:12:52.000,0:12:59.040 to make the project do in order to 0:12:56.240,0:12:59.519 recreate the dungeon experience that we 0:12:59.040,0:13:01.279 had 0:12:59.519,0:13:04.720 with paper and dice sitting around a 0:13:01.279,0:13:04.720 table when we were kids 0:13:05.600,0:13:07.839 and 0:13:09.680,0:13:13.839 I mean we you know it took a while for 0:13:12.079,0:13:16.079 us to kind of 0:13:13.839,0:13:18.000 tease apart the problem in a way where 0:13:16.079,0:13:19.120 we could actually list out all of the 0:13:18.000,0:13:20.959 features like 0:13:19.120,0:13:23.920 what are the problems we have to solve 0:13:20.959,0:13:23.920 and how do we solve them 0:13:27.760,0:13:33.040 so creating any free software any 0:13:30.959,0:13:36.000 self-organizing free software project 0:13:33.040,0:13:37.200 is is challenging to start with and 0:13:36.000,0:13:38.480 we're generally 0:13:37.200,0:13:40.320 people with a bunch of other 0:13:38.480,0:13:40.560 responsibilities by the time we get to 0:13:40.320,0:13:44.000 it 0:13:40.560,0:13:47.040 so it's it's not just hey 0:13:44.000,0:13:47.680 you know the general herding cats it's 0:13:47.040,0:13:49.120 it's 0:13:47.680,0:13:51.040 you know trying to make it a part of 0:13:49.120,0:13:54.399 your life to 0:13:51.040,0:13:57.680 uh that being kind of a 0:13:54.399,0:14:00.480 you know challenging battle we we 0:13:57.680,0:14:02.639 kind of aligned on some some principles 0:14:00.480,0:14:04.079 that we wanted to adhere to 0:14:02.639,0:14:05.680 once we started taking the project 0:14:04.079,0:14:09.519 seriously 0:14:05.680,0:14:12.720 like pre you know particularly 0:14:09.519,0:14:15.199 recognizing gnu in specific as we focus 0:14:12.720,0:14:16.480 on giving back to the community 0:14:15.199,0:14:18.240 taking what we learned as pearl 0:14:16.480,0:14:22.079 programmers and 0:14:18.240,0:14:24.320 uh you know bringing that spirit forward 0:14:22.079,0:14:26.399 into into our work and maybe 0:14:24.320,0:14:27.120 specifically support making sure that we 0:14:26.399,0:14:30.639 can 0:14:27.120,0:14:31.760 um you know write uh functions for the 0:14:30.639,0:14:35.199 game 0:14:31.760,0:14:38.079 um in pearl if we want to 0:14:35.199,0:14:40.320 and then to use the game as a vehicle to 0:14:38.079,0:14:42.560 make people look beyond 0:14:40.320,0:14:42.560 the 0:14:43.360,0:14:49.600 typically open source or sorry typically 0:14:46.800,0:14:52.160 uh nominally open source at best 0:14:49.600,0:14:54.160 generally pretty closed world of 0:14:52.160,0:14:55.440 computer gaming a lot of windows users 0:14:54.160,0:14:57.519 out there a lot of free 0:14:55.440,0:14:59.760 non-free communication tools and a lot 0:14:57.519,0:15:01.839 of uh 0:14:59.760,0:15:03.360 you know a lot of ground to cover from a 0:15:01.839,0:15:05.920 free software perspective 0:15:03.360,0:15:07.360 so what can Emacs do from a gaming 0:15:05.920,0:15:12.160 standpoint to 0:15:07.360,0:15:14.880 to open that up 0:15:12.160,0:15:16.720 and not to mention the hubris of the you 0:15:14.880,0:15:18.399 know the two of us with a few friends 0:15:16.720,0:15:19.440 basically deciding to take on what 0:15:18.399,0:15:21.839 amounts to a 0:15:19.440,0:15:24.720 huge project um you know we're 0:15:21.839,0:15:27.839 essentially a year in now and we haven't 0:15:24.720,0:15:30.000 really gotten over halfway to our 0:15:27.839,0:15:32.880 minimum playtestable candidate 0:15:30.000,0:15:34.320 um it's a it's a work in progress we've 0:15:32.880,0:15:36.800 got a long row to go 0:15:34.320,0:15:38.399 there's at least 50 items on the things 0:15:36.800,0:15:40.320 that we think are critical to 0:15:38.399,0:15:43.279 to be able to introduce it to my younger 0:15:40.320,0:15:43.279 kids for example 0:15:44.720,0:15:49.279 um okay so we're in the accomplishments 0:15:48.399,0:15:50.959 section 0:15:49.279,0:15:52.639 so we're supposed to be talking about 0:15:50.959,0:15:55.920 the things that we have 0:15:52.639,0:15:58.880 succeeded in doing in our first year um 0:15:55.920,0:16:01.199 we have succeeded in working with data 0:15:58.880,0:16:04.480 in org documents using org mode 0:16:01.199,0:16:05.360 tables to store the data that we're 0:16:04.480,0:16:09.279 going to use 0:16:05.360,0:16:12.519 in the various parts of our game 0:16:09.279,0:16:14.160 um and we've had a lot of success with 0:16:12.519,0:16:16.639 svg.el 0:16:14.160,0:16:17.279 uh it started withdrawing maps and we 0:16:16.639,0:16:19.440 have 0:16:17.279,0:16:21.440 another talk about our mapping 0:16:19.440,0:16:23.759 specifically coming up next so we'll 0:16:21.440,0:16:25.199 put off some of that discussion for a 0:16:23.759,0:16:28.720 separate talk 0:16:25.199,0:16:32.320 um but we've also succeeded in 0:16:28.720,0:16:35.680 um getting into a bunch of different 0:16:32.320,0:16:38.160 elements of the game where uh 0:16:35.680,0:16:38.959 we're you know making a lot of progress 0:16:38.160,0:16:41.920 using this 0:16:38.959,0:16:43.759 drawing engine we developed to also draw 0:16:41.920,0:16:45.279 this other thing and also draw this 0:16:43.759,0:16:46.079 other thing and also draw this other 0:16:45.279,0:16:49.519 thing and it's 0:16:46.079,0:16:52.560 um you know we kind of backed into 0:16:49.519,0:16:54.720 we've got this aesthetic and we're 0:16:52.560,0:16:57.839 using it to draw interfaces for all of 0:16:54.720,0:16:57.839 the different parts of the game 0:17:03.120,0:17:06.959 so let's talk let's talk a little bit 0:17:05.600,0:17:10.880 about what 0:17:06.959,0:17:13.360 uh what works now um 0:17:10.880,0:17:14.640 first of all there's the mapping part 0:17:13.360,0:17:18.480 that eric mentioned 0:17:14.640,0:17:20.880 and we'll jump here into um we'll start 0:17:18.480,0:17:22.160 opening up some files and looking around 0:17:20.880,0:17:25.520 um but then 0:17:22.160,0:17:26.959 also later uh we'll we'll fire up an eye 0:17:25.520,0:17:28.400 elm and look at some of the 0:17:26.959,0:17:30.240 some of the other proofs of concept so 0:17:28.400,0:17:32.240 hopefully we can 0:17:30.240,0:17:34.320 pivot the second talk more toward the 0:17:32.240,0:17:35.520 demos as as we skip some of the 0:17:34.320,0:17:39.120 interactive stuff that might be 0:17:35.520,0:17:39.120 mentioned in the slides that we go by 0:17:43.200,0:17:50.080 so maps 0:17:46.880,0:17:53.120 visual battle board um 0:17:50.080,0:17:54.160 the battle board I'm just gonna I'm just 0:17:53.120,0:18:01.840 gonna skip it eric 0:17:54.160,0:18:01.840 we'll hit it in the next one okay 0:18:02.000,0:18:04.480 hang on 0:18:08.480,0:18:11.840 okay so I'm just going to go ahead and 0:18:09.919,0:18:13.760 open up uh maps and 0:18:11.840,0:18:15.039 let you talk from the from the svg 0:18:13.760,0:18:16.480 process itself 0:18:15.039,0:18:20.080 because that's the interesting part to 0:18:16.480,0:18:20.080 me that uh to me 0:18:22.240,0:18:28.640 okay talk about the svg 0:18:26.080,0:18:30.640 process like what what are you thinking 0:18:28.640,0:18:33.760 exactly we want to talk about how 0:18:30.640,0:18:37.919 we turn our data into an image or 0:18:33.760,0:18:39.760 what what are you hoping for yeah so 0:18:37.919,0:18:41.200 I mean did you did you want to talk more 0:18:39.760,0:18:45.679 from from the 0:18:41.200,0:18:47.039 svg the hand-drawn svg graphics at all 0:18:45.679,0:18:49.760 I thought we were going to save that 0:18:47.039,0:18:52.000 stuff for the passing talk okay 0:18:49.760,0:18:53.440 right now if you want yeah I mean so 0:18:52.000,0:18:56.559 we've got about 0:18:53.440,0:18:58.400 uh 10 minutes before the turn where we 0:18:56.559,0:19:00.400 thought we would first take any 0:18:58.400,0:19:02.320 questions that are hanging out there 0:19:00.400,0:19:04.799 I unfortunately closed the ether pad but 0:19:02.320,0:19:08.480 I can open it again real quick 0:19:04.799,0:19:11.440 and or you can jump 0:19:08.480,0:19:12.320 jump into the to the pathing stuff now 0:19:11.440,0:19:13.760 or I can just 0:19:12.320,0:19:15.440 throw up an animal and we can start the 0:19:13.760,0:19:18.880 demos so 0:19:15.440,0:19:19.840 let me invite uh almond or sasha back in 0:19:18.880,0:19:22.160 if you guys 0:19:19.840,0:19:22.960 or leo if any of you want to join the 0:19:22.160,0:19:25.840 conversation 0:19:22.960,0:19:27.120 make a suggestion as to how we balance 0:19:25.840,0:19:29.840 between the remaining time 0:19:27.120,0:19:32.480 the rest of what we have left starts in 0:19:29.840,0:19:35.120 on toward the technical so especially 0:19:32.480,0:19:36.840 if there would be questions uh questions 0:19:35.120,0:19:39.840 about the game right now that would be 0:19:36.840,0:19:39.840 awesome 0:19:40.160,0:19:43.600 and I'm gonna get seated again 0:19:48.720,0:19:53.200 I'm not sure if I talk over the stream 0:19:51.200,0:19:54.720 um if you'll hear it because I'm just 0:19:53.200,0:19:59.520 watching your stream 0:19:54.720,0:19:59.520 but I can try writing an irc um 0:20:01.200,0:20:07.360 sure yeah questions would be cool um or 0:20:04.640,0:20:08.559 um yeah well eric why don't you just go 0:20:07.360,0:20:09.120 ahead and start walking us through the 0:20:08.559,0:20:11.440 hand 0:20:09.120,0:20:12.960 hand-drawn svg stuff just a little bit 0:20:11.440,0:20:14.640 because I think 0:20:12.960,0:20:17.120 if that isn't interesting to people we 0:20:14.640,0:20:21.120 can just preempt for a question 0:20:17.120,0:20:24.080 okay so historically when we 0:20:21.120,0:20:25.840 um decided to actually start writing 0:20:24.080,0:20:26.720 code one of the very first things we 0:20:25.840,0:20:30.080 wanted to do 0:20:26.720,0:20:31.919 was the maps because initially it seemed 0:20:30.080,0:20:33.840 like the maps were going to be one of 0:20:31.919,0:20:35.760 the biggest challenges 0:20:33.840,0:20:38.000 in terms of how do we get a text editor 0:20:35.760,0:20:42.159 to draw pictures for us 0:20:38.000,0:20:45.280 um we pretty quickly decided we wanted 0:20:42.159,0:20:48.559 to work with svgs because it allowed us 0:20:45.280,0:20:52.159 to leverage the power of Emacs as a text 0:20:48.559,0:20:56.080 editor and a text manipulator to write 0:20:52.159,0:20:59.520 text graphics with the svg format 0:20:56.080,0:21:01.440 so we did some svg graphics by hand 0:20:59.520,0:21:02.640 we went in and just started hand coding 0:21:01.440,0:21:05.440 things that looked 0:21:02.640,0:21:07.440 visually like the maps we used to draw 0:21:05.440,0:21:08.960 by hand on graph paper when 0:21:07.440,0:21:11.280 we were you know sitting around the 0:21:08.960,0:21:11.280 table 0:21:11.360,0:21:17.840 yep absolutely what emerged from that 0:21:14.559,0:21:20.400 is as we started working on um some of 0:21:17.840,0:21:24.000 these files this particular image is a 0:21:20.400,0:21:26.240 test of some 20 wide water 0:21:24.000,0:21:28.000 with some beaches around it and a 0:21:26.240,0:21:29.679 special chamber kind of off to the side 0:21:28.000,0:21:33.760 called a clapper 0:21:29.679,0:21:36.559 and this was the way we would code is by 0:21:33.760,0:21:37.600 sketching by hand all of these things to 0:21:36.559,0:21:39.440 look right 0:21:37.600,0:21:42.080 and then we would take that code and we 0:21:39.440,0:21:43.919 noticed um it became real repetitive 0:21:42.080,0:21:45.440 as we would go like chunk of water chunk 0:21:43.919,0:21:46.880 of water chunk of water 0:21:45.440,0:21:48.559 and we're like okay so what we really 0:21:46.880,0:21:52.000 need is to define a 0:21:48.559,0:21:53.600 set of um we called it tiles um but like 0:21:52.000,0:21:55.760 you could think of it as rubber stamps 0:21:53.600,0:21:57.440 where we write this graphics code 0:21:55.760,0:22:00.400 and then we're able to repeat it in 0:21:57.440,0:22:03.039 different places around the map 0:22:00.400,0:22:06.880 um you want to flip over to code view 0:22:03.039,0:22:06.880 and show that or do we want to move into 0:22:07.120,0:22:12.720 tiles code 0:22:10.240,0:22:14.320 so you know you can see just really 0:22:12.720,0:22:15.200 obviously here the only thing that's 0:22:14.320,0:22:18.240 changing from 0:22:15.200,0:22:21.600 chunk of water to chunk of water is the 0:22:18.240,0:22:24.640 x and y coordinates um 0:22:21.600,0:22:26.000 we're you know we can skip getting into 0:22:24.640,0:22:29.360 the svg directives 0:22:26.000,0:22:30.640 and how all of the path statements 0:22:29.360,0:22:33.679 actually work 0:22:30.640,0:22:36.480 but you can trust us 0:22:33.679,0:22:39.039 all of these d equals and there's m's 0:22:36.480,0:22:41.039 and h's and v's that turns out to be 0:22:39.039,0:22:42.480 horizontal lines and vertical lines and 0:22:41.039,0:22:44.159 cursor moves and it's kind of like 0:22:42.480,0:22:46.640 turtle graphics if anyone 0:22:44.159,0:22:48.720 remembers that far back and we're 0:22:46.640,0:22:54.720 picking up our pen and dropping it and 0:22:48.720,0:22:56.240 drawing lines around on our map 0:22:54.720,0:22:58.000 so we do have a few questions if you 0:22:56.240,0:23:01.200 want to take them now otherwise 0:22:58.000,0:23:03.120 um we can also jump in 0:23:01.200,0:23:04.559 let's get them while they're fresh okay 0:23:03.120,0:23:07.520 sounds good 0:23:04.559,0:23:08.000 um so we'll probably shift to question 0:23:07.520,0:23:10.799 and answer 0:23:08.000,0:23:11.919 mode for up to 15 minutes here so if you 0:23:10.799,0:23:14.480 do have questions 0:23:11.919,0:23:15.679 um maybe stack rank go ahead and sort 0:23:14.480,0:23:17.600 the questions 0:23:15.679,0:23:18.960 a little for us or comment on them to 0:23:17.600,0:23:19.760 let us know which ones you want to see 0:23:18.960,0:23:21.280 us get here 0:23:19.760,0:23:23.600 if we start getting a little long-winded 0:23:21.280,0:23:26.960 or nudges along we'll take direction 0:23:23.600,0:23:28.799 but thanks for your questions um I'd 0:23:26.960,0:23:30.720 like to see a demo as well we'll look at 0:23:28.799,0:23:32.159 that with the remaining time after this 0:23:30.720,0:23:35.200 question block 0:23:32.159,0:23:38.720 um more about what the game is 0:23:35.200,0:23:40.720 okay sure so let's let's take our 0:23:38.720,0:23:42.799 uh one minute each swing at what the 0:23:40.720,0:23:45.120 game is you wanna go first I called 0:23:42.799,0:23:48.840 weapons 0:23:45.120,0:23:52.720 okay um dungeon 0:23:48.840,0:23:55.440 is like role-playing games 0:23:52.720,0:23:56.159 but you don't really do role-playing 0:23:55.440,0:23:57.919 like the 0:23:56.159,0:23:59.520 for me the thing the core of being a 0:23:57.919,0:24:02.080 role-playing game is you 0:23:59.520,0:24:03.039 take on the role of being your character 0:24:02.080,0:24:06.000 and you play 0:24:03.039,0:24:06.400 your character and dungeon's not like 0:24:06.000,0:24:10.320 that 0:24:06.400,0:24:12.640 dungeon um you can play 0:24:10.320,0:24:13.840 so the dungeon party always has eight 0:24:12.640,0:24:15.840 characters in it 0:24:13.840,0:24:17.679 there's four in the front row and four 0:24:15.840,0:24:18.720 in the back row and you march through 0:24:17.679,0:24:22.159 the dungeon 0:24:18.720,0:24:24.000 fighting whatever you encounter and if 0:24:22.159,0:24:25.200 there's one player you play all eight 0:24:24.000,0:24:27.120 characters 0:24:25.200,0:24:28.720 and depending on how many players you 0:24:27.120,0:24:30.799 have you split up the party 0:24:28.720,0:24:32.960 in whatever way seems fair and equitable 0:24:30.799,0:24:34.880 to everybody 0:24:32.960,0:24:36.720 similarly I said the dungeon is kind of 0:24:34.880,0:24:38.320 a simple game like there's only 0:24:36.720,0:24:40.080 three races and there's only three 0:24:38.320,0:24:41.760 classes all of your characters are 0:24:40.080,0:24:44.080 either human elf dwarf 0:24:41.760,0:24:44.880 they're all a warrior a priest or a 0:24:44.080,0:24:46.640 wizard 0:24:44.880,0:24:48.320 and all of these characters have you 0:24:46.640,0:24:51.279 know special properties 0:24:48.320,0:24:53.760 and special talents that is why they 0:24:51.279,0:24:56.240 come together in this party of eight 0:24:53.760,0:24:57.600 but essentially dungeon is a game about 0:24:56.240,0:25:00.000 making up all of these 0:24:57.600,0:25:01.679 um eight characters and stomping through 0:25:00.000,0:25:03.840 the dungeon killing things taking their 0:25:01.679,0:25:05.120 stuff 0:25:03.840,0:25:06.960 well you're way over but I don't know 0:25:05.120,0:25:10.080 how much I have to add to that 0:25:06.960,0:25:14.159 I will just add that if if you're 0:25:10.080,0:25:16.559 uh if if one's passion as a dungeon 0:25:14.159,0:25:17.120 master is killing player characters this 0:25:16.559,0:25:19.600 game 0:25:17.120,0:25:21.039 is meant for you you don't have to build 0:25:19.600,0:25:22.559 your game like that 0:25:21.039,0:25:24.400 but that's definitely a thing that 0:25:22.559,0:25:27.360 people do with this game 0:25:24.400,0:25:28.960 um and then as eric said it just 0:25:27.360,0:25:30.320 encourages you to put your creativity on 0:25:28.960,0:25:31.039 the table to bring all the different 0:25:30.320,0:25:33.760 elements 0:25:31.039,0:25:35.039 um and this hopefully this may be clear 0:25:33.760,0:25:36.400 in our slides since we were a little 0:25:35.039,0:25:36.960 fumbling for the first few minutes of 0:25:36.400,0:25:40.480 the talk 0:25:36.960,0:25:41.200 but um there's also a kind of a player's 0:25:40.480,0:25:43.760 guide 0:25:41.200,0:25:45.919 that that I started a few years ago um 0:25:43.760,0:25:48.400 that's that's not super complete 0:25:45.919,0:25:50.159 but um but does cover some of the high 0:25:48.400,0:25:52.320 level basics of the game that eric's 0:25:50.159,0:25:55.679 been talking from 0:25:52.320,0:25:56.960 and I would add that some of the things 0:25:55.679,0:25:58.480 you know some of what makes dungeon 0:25:56.960,0:25:59.360 great is that there's a lot of mystery 0:25:58.480,0:26:01.120 about it 0:25:59.360,0:26:02.880 like the player's handbook doesn't tell 0:26:01.120,0:26:06.080 you all of the rules 0:26:02.880,0:26:08.080 um or like really mystery 0:26:06.080,0:26:09.679 and like there's mazes and there's 0:26:08.080,0:26:12.240 puzzles and 0:26:09.679,0:26:12.799 you have to figure out how things work 0:26:12.240,0:26:14.559 and like 0:26:12.799,0:26:16.640 we've got all of these treasure items in 0:26:14.559,0:26:18.480 there that could help you deal with a 0:26:16.640,0:26:19.919 particular monster if it occurs to you 0:26:18.480,0:26:22.720 to use it 0:26:19.919,0:26:23.360 and um you know like that there's a lot 0:26:22.720,0:26:25.279 of 0:26:23.360,0:26:27.039 um you don't know what's going on you're 0:26:25.279,0:26:28.559 dropped in the middle of this situation 0:26:27.039,0:26:31.919 and you have to try and survive 0:26:28.559,0:26:33.840 and level up and figure it out and 0:26:31.919,0:26:35.520 if you succeed in doing that for long 0:26:33.840,0:26:37.520 enough eventually you start realizing 0:26:35.520,0:26:40.000 that there are big picture puzzles 0:26:37.520,0:26:41.760 that there are you know there is more to 0:26:40.000,0:26:43.360 this than just killing things and taking 0:26:41.760,0:26:46.000 their stuff 0:26:43.360,0:26:47.279 and that's where the joy of designing 0:26:46.000,0:26:49.679 these games comes in 0:26:47.279,0:26:51.679 for me is like designing the mazes and 0:26:49.679,0:26:53.200 designing the puzzles and like 0:26:51.679,0:26:54.240 oh yeah and then they're going to come 0:26:53.200,0:26:55.919 out of this room and you know what 0:26:54.240,0:26:58.240 they're going to do they want to 0:26:55.919,0:26:59.600 go that way so I'm going to put the trap 0:26:58.240,0:27:01.360 right there 0:26:59.600,0:27:03.840 and they'll walk right into it every 0:27:01.360,0:27:05.440 time and then when the party does get in 0:27:03.840,0:27:07.200 your map and they do exactly what you 0:27:05.440,0:27:09.279 thought and they hit the trap it's just 0:27:07.200,0:27:10.960 really satisfying to watch the look on 0:27:09.279,0:27:12.320 their little faces as they squirm and 0:27:10.960,0:27:13.760 struggle to stay alive 0:27:12.320,0:27:15.520 yeah that's that's what I was trying to 0:27:13.760,0:27:16.320 get at thanks all right that was perfect 0:27:15.520,0:27:19.200 for me 0:27:16.320,0:27:20.320 all right um so so highlight your 0:27:19.200,0:27:21.840 question for me if you think it's 0:27:20.320,0:27:22.960 important we grab it here before we jump 0:27:21.840,0:27:25.039 into demos 0:27:22.960,0:27:27.760 but otherwise I think it's time to try 0:27:25.039,0:27:27.760 running some code 0:27:27.919,0:27:33.840 what say okay I say do it 0:27:31.279,0:27:36.480 okay so you less less camera more more 0:27:33.840,0:27:39.120 Emacs now 0:27:36.480,0:27:39.840 and hopefully I could find the right e 0:27:39.120,0:27:42.960 max 0:27:39.840,0:27:48.799 the right desktop all right there we are 0:27:42.960,0:27:54.000 so we'll try to fire up uh 0:27:48.799,0:27:58.799 and right now and I usually like to do 0:27:54.000,0:27:58.799 the full path to emax 0:27:59.120,0:28:03.840 when I'm gonna run it under minus q 0:28:07.279,0:28:10.000 all right 0:28:13.120,0:28:19.360 let's have some iom 0:28:16.720,0:28:20.000 all right and then I'm also going to do 0:28:19.360,0:28:24.000 a 0:28:20.000,0:28:25.840 load file on the init script that you 0:28:24.000,0:28:30.480 can find in the repository 0:28:25.840,0:28:33.279 in the Emacs user and it's uh 0:28:30.480,0:28:33.279 init scripts 0:28:34.960,0:28:38.159 uh users folder 0:28:40.159,0:28:45.840 user folder nice 0:28:48.080,0:28:51.840 and it's called init dm because that 0:28:49.919,0:28:55.360 happened to fit with my naming scheme 0:28:51.840,0:28:56.320 potentially terrible all right and with 0:28:55.360,0:28:58.320 that loaded 0:28:56.320,0:29:00.159 in theory some very basic stuff will 0:28:58.320,0:29:02.159 work even without us doing anything in 0:29:00.159,0:29:04.399 iom so I think the the last thing eric 0:29:02.159,0:29:06.000 was talking about was the svg code 0:29:04.399,0:29:10.720 behind the maps 0:29:06.000,0:29:13.760 um there as kind of the technical thread 0:29:10.720,0:29:15.440 so we'll just fire open the maps pick a 0:29:13.760,0:29:18.480 dungeon level 0:29:15.440,0:29:19.840 let's pick a pretty one okay if I show 0:29:18.480,0:29:22.480 this 0:29:19.840,0:29:22.480 yeah whatever 0:29:23.440,0:29:30.799 is that the surface yeah 0:29:27.679,0:29:32.159 and let's scale it here I think if I 0:29:30.799,0:29:34.960 wrap 0:29:32.159,0:29:36.399 like once once we got the engine up and 0:29:34.960,0:29:39.120 running a little bit 0:29:36.399,0:29:42.480 we decided to do some experimentation 0:29:39.120,0:29:46.080 about seeing what we could do to push 0:29:42.480,0:29:49.360 the limits of our tile 0:29:46.080,0:29:50.080 and gender so we more or less on the 0:29:49.360,0:29:52.799 surface 0:29:50.080,0:29:52.799 map I 0:29:53.120,0:29:58.399 basically started with almost no 0:29:56.399,0:30:00.240 tiles from below like the water and the 0:29:58.399,0:30:01.279 beaches and the general store and the 0:30:00.240,0:30:03.679 stairs 0:30:01.279,0:30:05.200 were existing tiles but then we were 0:30:03.679,0:30:07.279 like this is going to be a surface map 0:30:05.200,0:30:08.399 so we're outdoors so I want hills and I 0:30:07.279,0:30:11.760 want trees 0:30:08.399,0:30:12.399 and I want grass and um it took a little 0:30:11.760,0:30:15.039 while 0:30:12.399,0:30:16.320 playing with svg to come up with some 0:30:15.039,0:30:18.480 acceptable code 0:30:16.320,0:30:19.840 but once the like the grass gets tiled 0:30:18.480,0:30:21.600 out it 0:30:19.840,0:30:23.039 kind of you know gives the illusion of 0:30:21.600,0:30:24.880 grass and 0:30:23.039,0:30:26.399 you know these are all in my estimation 0:30:24.880,0:30:28.640 kind of crude graphics 0:30:26.399,0:30:30.399 but we're at the proof of concept stage 0:30:28.640,0:30:31.679 and it definitely proves that we can use 0:30:30.399,0:30:34.640 our graphics engine 0:30:31.679,0:30:35.279 to decide what we want our maps to look 0:30:34.640,0:30:39.440 like 0:30:35.279,0:30:44.240 and real quickly compose new map tiles 0:30:39.440,0:30:46.880 and uh stamp out a bunch of new maps 0:30:44.240,0:30:48.640 so now I'll uh show off one of the other 0:30:46.880,0:30:50.559 things so the next thing we did once we 0:30:48.640,0:30:51.919 once we had the maps doing 0:30:50.559,0:30:53.600 and we haven't gotten into the features 0:30:51.919,0:30:54.960 of the maps we can we can appoint time 0:30:53.600,0:30:58.960 to that or not 0:30:54.960,0:31:00.720 but um there are a number of 0:30:58.960,0:31:02.840 uh featured features there that we can 0:31:00.720,0:31:05.760 look at the 0:31:02.840,0:31:08.640 uh we then wanted to 0:31:05.760,0:31:10.399 try to see if that could make other 0:31:08.640,0:31:11.360 interfaces more appealing so we built 0:31:10.399,0:31:14.320 stuff like 0:31:11.360,0:31:15.919 oop that's gonna be the map again um 0:31:14.320,0:31:18.320 I'll just run it here through I 0:31:15.919,0:31:20.080 am so it's more obvious what I'm doing 0:31:18.320,0:31:21.679 um 0:31:20.080,0:31:25.360 so let's look next to the character 0:31:21.679,0:31:25.360 sheet oops 0:31:26.080,0:31:35.840 back and alt p doesn't work okay 0:31:32.880,0:31:38.240 that's a bummer uh that is not 0:31:35.840,0:31:40.559 autoloaded 0:31:38.240,0:31:41.600 so this this project is a bit of a mess 0:31:40.559,0:31:43.120 right now y'all 0:31:41.600,0:31:45.120 it does some stuff that's really 0:31:43.120,0:31:47.039 exciting to us but the code is terrible 0:31:45.120,0:31:48.399 and we need all the help we can get uh 0:31:47.039,0:31:49.279 being told what our problems are and how 0:31:48.399,0:31:51.360 to fix them 0:31:49.279,0:31:52.559 so that is if you take nothing away from 0:31:51.360,0:31:54.799 this talk 0:31:52.559,0:32:00.480 uh take away from it that we could use 0:31:54.799,0:32:02.399 your help 0:32:00.480,0:32:04.640 yeah that doubles back to uh when we 0:32:02.399,0:32:06.320 were talking about larry wall's cardinal 0:32:04.640,0:32:07.440 virtues of programming like we 0:32:06.320,0:32:09.760 definitely 0:32:07.440,0:32:10.640 took on some hubris thinking we could do 0:32:09.760,0:32:13.519 this 0:32:10.640,0:32:14.799 and we might not be wrong but um we 0:32:13.519,0:32:16.799 could do it easier with 0:32:14.799,0:32:18.240 more hands you know many hands make 0:32:16.799,0:32:21.760 light work all right 0:32:18.240,0:32:23.360 I'll bite yeah 0:32:21.760,0:32:24.799 and the character she won't load for us 0:32:23.360,0:32:26.960 today I had some problems with my 0:32:24.799,0:32:29.360 version control I had to revert my thing 0:32:26.960,0:32:31.200 I threw all my local changes in a stash 0:32:29.360,0:32:32.080 and it's it's a terrible mess let's look 0:32:31.200,0:32:37.519 at stuff I 0:32:32.080,0:32:40.559 tested already today uh before 0:32:37.519,0:32:43.760 you got the battle board available 0:32:40.559,0:32:45.760 let's find out first we'll load library 0:32:43.760,0:32:48.000 it 0:32:45.760,0:32:57.440 uh in fact actually your basic require 0:32:48.000,0:33:00.480 should work 0:32:57.440,0:33:02.640 no uh I can try load library 0:33:00.480,0:33:03.760 uh you know what let's forg I'm just 0:33:02.640,0:33:04.960 gonna go ahead and give it to you as a 0:33:03.760,0:33:09.919 lab beast 0:33:04.960,0:33:11.600 since that's probably more fun to watch 0:33:09.919,0:33:15.919 we'll take it from my own inet 0:33:11.600,0:33:15.919 this is more likely to be healthy 0:33:16.640,0:33:20.880 since only some of the time uh first we 0:33:19.840,0:33:24.799 have to 0:33:20.880,0:33:28.559 uh ctrl x alt I d m 0:33:24.799,0:33:31.760 all right and having then loaded 0:33:28.559,0:33:34.080 the init control u f9 0:33:31.760,0:33:35.200 should give me the maps and we can 0:33:34.080,0:33:37.200 verify 0:33:35.200,0:33:38.640 things work in a basic way just by 0:33:37.200,0:33:41.679 changing level 0:33:38.640,0:33:41.679 let's look at something else 0:33:43.200,0:33:47.360 um I mentioned there were a number of 0:33:46.399,0:33:51.600 bindings 0:33:47.360,0:33:54.080 show them briefly we wrote our own 0:33:51.600,0:33:56.640 functions to handle movement some of 0:33:54.080,0:33:59.679 those in svg.el the left 0:33:56.640,0:34:02.640 uh left and right movements didn't 0:33:59.679,0:34:03.120 didn't seem to work quite quite likely 0:34:02.640,0:34:06.720 coding 0:34:03.120,0:34:09.760 of course 0:34:06.720,0:34:11.760 um all right enough 0:34:09.760,0:34:13.040 so let's let's see if battleboard works 0:34:11.760,0:34:15.760 now 0:34:13.040,0:34:17.040 I really thought that was on f7 up 0:34:15.760,0:34:19.679 that's the character sheet 0:34:17.040,0:34:22.159 sweet that's why you stay out of user 0:34:19.679,0:34:22.159 bindings 0:34:24.879,0:34:33.919 so that looks a little better 0:34:28.079,0:34:35.919 so let's talk about the character sheet 0:34:33.919,0:34:38.000 yeah 0:34:35.919,0:34:39.839 so the character sheet was our first big 0:34:38.000,0:34:42.560 uh repurposing 0:34:39.839,0:34:44.159 of the engine that we couldn't do uh the 0:34:42.560,0:34:49.839 battle board program 0:34:44.159,0:34:49.839 that uh let's see if that runs now too 0:34:53.599,0:34:57.359 uh it's not interactive if it does 0:35:00.880,0:35:03.839 good 0:35:04.960,0:35:07.119 no 0:35:08.480,0:35:13.040 try let cemex guess no joy all right I'm 0:35:11.760,0:35:14.079 not sure what's up with the battle board 0:35:13.040,0:35:15.280 eric 0:35:14.079,0:35:17.119 we haven't messed with that one for a 0:35:15.280,0:35:18.880 while in fact um 0:35:17.119,0:35:21.040 we had discussed using its code as an 0:35:18.880,0:35:22.640 example so maybe we'll debug it with you 0:35:21.040,0:35:25.359 um I'll certainly check for questions 0:35:22.640,0:35:28.079 first um 0:35:25.359,0:35:31.280 the uh so the character sheet which is 0:35:28.079,0:35:34.800 not scaling ideally here 0:35:31.280,0:35:34.800 see if reloading it does anything 0:35:35.680,0:35:40.960 nope not as far as I can tell assuming 0:35:39.440,0:35:42.800 you don't have this scale implemented 0:35:40.960,0:35:44.960 for character sheet 0:35:42.800,0:35:46.800 that's right there's everything in scale 0:35:44.960,0:35:49.599 it take in order to get what you were 0:35:46.800,0:35:49.599 looking at there 0:35:54.079,0:36:02.240 all right this uh 0:35:58.640,0:36:05.440 this whole thing is hard-coded 0:36:02.240,0:36:09.040 basically to the gills except 0:36:05.440,0:36:10.640 for things like this this program 0:36:09.040,0:36:11.040 represents a re-implementation of the 0:36:10.640,0:36:14.880 draw 0:36:11.040,0:36:18.640 engine using um all of the same things 0:36:14.880,0:36:18.640 let's see that's selected so 0:36:19.599,0:36:23.119 uh we'll just try bringing up a map 0:36:21.680,0:36:26.320 again 0:36:23.119,0:36:28.560 there's one and you'll notice um dm 0:36:26.320,0:36:29.839 map doesn't know anything about the new 0:36:28.560,0:36:31.599 draw engine 0:36:29.839,0:36:33.520 and there are a couple of places where 0:36:31.599,0:36:36.480 the new draw engine is still 0:36:33.520,0:36:37.440 hooked in to the s for example 0:36:36.480,0:36:39.680 particularly 0:36:37.440,0:36:41.119 the sizing of the graph paper background 0:36:39.680,0:36:44.240 so I've started the work 0:36:41.119,0:36:47.040 in dmdraw.el 0:36:44.240,0:36:47.440 of trying to show how exactly we did 0:36:47.040,0:36:50.160 this 0:36:47.440,0:36:51.760 removing the how did we get data out of 0:36:50.160,0:36:53.280 org mode that I talked about yesterday 0:36:51.760,0:36:56.480 with our etl flows 0:36:53.280,0:36:58.960 and just focusing on 0:36:56.480,0:37:00.160 how did we solve the problem of 0:36:58.960,0:37:01.839 predicated drawing 0:37:00.160,0:37:05.200 which I realized we didn't really talk 0:37:01.839,0:37:07.760 about so should I jump into that 0:37:05.200,0:37:09.280 yeah I guess uh how are we on time we 0:37:07.760,0:37:11.359 have time for detours 0:37:09.280,0:37:12.800 um yeah it looks like we could spend two 0:37:11.359,0:37:15.599 or three minutes on that and then 0:37:12.800,0:37:17.680 uh come back for the questions cool do 0:37:15.599,0:37:20.480 it 0:37:17.680,0:37:20.800 and I'm just gonna peek into my org mode 0:37:20.480,0:37:23.200 by 0:37:20.800,0:37:24.960 into my chat conference and I don't see 0:37:23.200,0:37:25.520 anybody talking to me from the organizer 0:37:24.960,0:37:26.560 channel 0:37:25.520,0:37:28.800 so I'm going to assume that's a good 0:37:26.560,0:37:32.079 guess 0:37:28.800,0:37:34.160 um all right so let's let's go ahead and 0:37:32.079,0:37:37.760 play with the map a little then that is 0:37:34.160,0:37:39.440 uh pretty fun and and uh so much fun 0:37:37.760,0:37:41.760 that we had to curtail play sessions in 0:37:39.440,0:37:44.000 order to keep working on the project 0:37:41.760,0:37:44.000 um 0:37:45.119,0:37:51.839 so uh I'll 0:37:48.480,0:37:55.920 I'll do the 0:37:51.839,0:37:59.839 um we'll try to find something different 0:37:55.920,0:37:59.839 from any gif I've shared here right 0:38:01.040,0:38:05.760 so here we are in a random go ahead eric 0:38:03.359,0:38:08.240 you phil 0:38:05.760,0:38:10.000 oh okay so what what what corwin is 0:38:08.240,0:38:13.359 doing here is he's about to put the 0:38:10.000,0:38:16.800 the map into play mode um 0:38:13.359,0:38:19.920 which is going to turn on the fog of war 0:38:16.800,0:38:23.040 and then we're gonna use 0:38:19.920,0:38:24.560 the fog of war and the the play mode to 0:38:23.040,0:38:26.240 kind of reveal the map 0:38:24.560,0:38:28.160 one square at a time like we would 0:38:26.240,0:38:29.920 during a play session 0:38:28.160,0:38:31.280 so we'll just drop the party randomly 0:38:29.920,0:38:33.839 somewhere onto this map 0:38:31.280,0:38:36.079 looks like we're on alpha maze level 0:38:33.839,0:38:38.800 three here 0:38:36.079,0:38:38.800 and um 0:38:40.800,0:38:50.480 uh-oh then we'll walk around a little 0:38:46.320,0:38:52.160 okay there we go we're halfway there 0:38:50.480,0:38:53.520 I'll have to I'll have to do a full 0:38:52.160,0:38:55.920 redraw 0:38:53.520,0:38:58.480 uh the sketch the sketching stuff has 0:38:55.920,0:39:00.240 has has broken things here like I said 0:38:58.480,0:39:01.599 the two aren't separated once I run them 0:39:00.240,0:39:03.520 in the same instance they're not 0:39:01.599,0:39:05.359 predictable 0:39:03.520,0:39:07.040 okay so let me elaborate here when he 0:39:05.359,0:39:10.560 says the sketching stuff 0:39:07.040,0:39:13.520 the current um focus of our work is to 0:39:10.560,0:39:14.320 turn all of this map stuff we've got 0:39:13.520,0:39:17.920 into 0:39:14.320,0:39:20.880 a basically a wysiwyg map editor 0:39:17.920,0:39:22.160 where we can get into the tiles and 0:39:20.880,0:39:24.480 we'll be able to 0:39:22.160,0:39:26.560 select the tile and basically rubber 0:39:24.480,0:39:29.680 stamp it into a map 0:39:26.560,0:39:30.000 graphically and then save the map file 0:39:29.680,0:39:33.280 out 0:39:30.000,0:39:36.720 and load it back in later so that um 0:39:33.280,0:39:38.480 we're able to you know just pound out 0:39:36.720,0:39:42.000 these maps real fast 0:39:38.480,0:39:43.200 um using a graphical editor rather than 0:39:42.000,0:39:45.440 having to hand code 0:39:43.200,0:39:47.839 every symbol and every square of the 0:39:45.440,0:39:47.839 tables 0:39:48.000,0:39:51.839 so the process of doing that um 0:39:52.960,0:39:56.720 things are a mess we've got covers off 0:39:54.800,0:39:58.720 there's wires hanging out 0:39:56.720,0:40:01.040 um different stuff works on different 0:39:58.720,0:40:01.040 days 0:40:03.119,0:40:07.119 well I will say in our defense this is 0:40:05.200,0:40:07.520 exactly why we staged a complicated 0:40:07.119,0:40:09.680 thing 0:40:07.520,0:40:11.119 and uh probably we should have just gone 0:40:09.680,0:40:14.160 with that instead of 0:40:11.119,0:40:17.760 trying to give you uh the experience 0:40:14.160,0:40:19.200 of of of what it's like uh to use Emacs 0:40:17.760,0:40:21.359 to do this which is 0:40:19.200,0:40:23.280 which is sort of the last minute thought 0:40:21.359,0:40:25.119 there and my apologies for that 0:40:23.280,0:40:27.200 if that's made it harder to follow the 0:40:25.119,0:40:28.240 thread let's check back now for 0:40:27.200,0:40:30.000 questions 0:40:28.240,0:40:32.079 and see if anybody wants to redirect at 0:40:30.000,0:40:32.079 all 0:40:36.640,0:40:40.800 so yep this so what you're looking at 0:40:39.599,0:40:44.880 all uses prog 0:40:40.800,0:40:47.760 pragmatic svg uh 0:40:44.880,0:40:49.119 svg generation uh for question number 0:40:47.760,0:40:52.000 four there have you played with 0:40:49.119,0:40:55.119 generating svgs pragmatically in Emacs 0:40:52.000,0:40:55.680 that is what the maps are doing um in 0:40:55.119,0:40:58.480 terms 0:40:55.680,0:41:00.400 of uh uh we should have been maybe more 0:40:58.480,0:41:01.680 explicit about that we started hand 0:41:00.400,0:41:05.119 coding things and 0:41:01.680,0:41:06.400 once we got the idea of what the code 0:41:05.119,0:41:09.359 was going to look like 0:41:06.400,0:41:10.000 we switched to doing it programmatically 0:41:09.359,0:41:12.880 so 0:41:10.000,0:41:14.640 um we were going to open up maybe now if 0:41:12.880,0:41:15.839 we've got time we can get into the tile 0:41:14.640,0:41:18.640 set real quick 0:41:15.839,0:41:20.560 sure we definitely didn't do any of the 0:41:18.640,0:41:23.040 pathing slides and so now we've skipped 0:41:20.560,0:41:25.040 over some stuff we were going to present 0:41:23.040,0:41:26.880 yeah that's right we skipped a whole 0:41:25.040,0:41:28.160 bunch of slides and I can certainly uh 0:41:26.880,0:41:30.640 go back to them they're open here 0:41:28.160,0:41:30.640 obviously 0:41:31.040,0:41:34.480 um right I was just showing off the 0:41:33.599,0:41:36.880 sketching 0:41:34.480,0:41:38.000 tool uh briefly in that context but I 0:41:36.880,0:41:40.000 think you're right let's 0:41:38.000,0:41:41.280 we can jump over to the actually I 0:41:40.000,0:41:42.000 should finish with this now having 0:41:41.280,0:41:45.119 teased it 0:41:42.000,0:41:47.119 so let's do the same thing here ctrl h m 0:41:45.119,0:41:48.560 and you'll see in this case there are 0:41:47.119,0:41:52.160 very few keyboard 0:41:48.560,0:41:55.359 key bindings that are set up um even 0:41:52.160,0:41:59.280 this uh shift delete has a tera uh 0:41:55.359,0:42:02.560 or shift with uh 0:41:59.280,0:42:05.680 yeah control delete it would seem to be 0:42:02.560,0:42:07.119 so that has couple obvious bugs with it 0:42:05.680,0:42:09.280 right didn't pick it didn't pick up 0:42:07.119,0:42:11.280 those control points until I reused them 0:42:09.280,0:42:13.760 not clearing that stack 0:42:11.280,0:42:14.480 um and also should probably think about 0:42:13.760,0:42:16.720 whether 0:42:14.480,0:42:18.400 the origin should return and hey marking 0:42:16.720,0:42:19.839 that origin would be nice 0:42:18.400,0:42:21.680 so there's a tremendous amount to do 0:42:19.839,0:42:24.400 here this is just uh 0:42:21.680,0:42:26.079 showing that it is possible to use 0:42:24.400,0:42:31.680 essentially like a touch input 0:42:26.079,0:42:35.119 to um uh 0:42:31.680,0:42:35.760 yeah and then also we can switch over to 0:42:35.119,0:42:39.040 our place 0:42:35.760,0:42:43.040 tool and 0:42:39.040,0:42:45.040 um hopefully we can get a nice big menu 0:42:43.040,0:42:48.000 of all the tiles that eric prepared for 0:42:45.040,0:42:48.000 the game maps 0:42:49.440,0:42:53.119 uh that was probably a terrible choice 0:42:51.680,0:42:55.839 but there you have just a bit of 0:42:53.119,0:42:55.839 corridor right 0:42:56.800,0:42:59.839 that looks 0:43:00.480,0:43:06.160 uh and even the click yep and this this 0:43:04.560,0:43:07.280 glitch action here is the last thing I 0:43:06.160,0:43:08.079 was working on before I dropped 0:43:07.280,0:43:10.079 everything to 0:43:08.079,0:43:13.839 to build the decks that uh we will soon 0:43:10.079,0:43:13.839 share for this conference 0:43:14.240,0:43:18.240 so okay back to the tile sets 0:43:19.680,0:43:23.440 right so the way we approached drawing 0:43:22.160,0:43:25.200 it programmatically 0:43:23.440,0:43:27.280 is we broke our code up into little 0:43:25.200,0:43:29.280 snippets we called tiles 0:43:27.280,0:43:32.160 um corman's going to open up the tile 0:43:29.280,0:43:35.280 set here basically each tile has a name 0:43:32.160,0:43:37.920 and then with that name we place data 0:43:35.280,0:43:40.640 into different layers of the image 0:43:37.920,0:43:41.280 some of the layers are just svg paths 0:43:40.640,0:43:44.880 and 0:43:41.280,0:43:47.920 the data is just svg commands 0:43:44.880,0:43:50.960 like we saw in that handwritten code and 0:43:47.920,0:43:54.160 some of it is compositions of other 0:43:50.960,0:43:56.160 tiles so a tile can be made up of other 0:43:54.160,0:43:58.000 tiles 0:43:56.160,0:43:59.599 furthermore some of these tiles have 0:43:58.000,0:44:02.319 conditional code in it 0:43:59.599,0:44:02.720 where like some of this stuff is talking 0:44:02.319,0:44:06.560 about 0:44:02.720,0:44:08.079 elf and bang elf so the map is going to 0:44:06.560,0:44:09.440 be drawn differently depending 0:44:08.079,0:44:11.200 on whether or not there's elves in the 0:44:09.440,0:44:16.880 party 0:44:11.200,0:44:18.240 um so and that's the demo they broke 0:44:16.880,0:44:20.000 the engine has to make all those 0:44:18.240,0:44:21.599 decisions um 0:44:20.000,0:44:23.280 and that's what we're calling predicated 0:44:21.599,0:44:25.200 drawing oh there's a 0:44:23.280,0:44:26.480 special room here do you have any elves 0:44:25.200,0:44:31.440 you do so I draw 0:44:26.480,0:44:31.440 there is elf's way um 0:44:32.880,0:44:36.319 yeah so we built up the set of tiles and 0:44:35.839,0:44:39.920 then 0:44:36.319,0:44:43.760 um we basically made map files which 0:44:39.920,0:44:47.839 take um our map and break it up into xy 0:44:43.760,0:44:50.240 grids and then we drop these tiles into 0:44:47.839,0:44:52.000 positions on the map so we can use the 0:44:50.240,0:44:52.480 same tile square after square after 0:44:52.000,0:44:54.720 square 0:44:52.480,0:44:55.680 when there's a corridor north south it's 0:44:54.720,0:44:59.119 the same tile 0:44:55.680,0:45:02.400 over and over again and that makes it 0:44:59.119,0:45:05.839 easy to reuse the code and then also 0:45:02.400,0:45:05.839 when uh 0:45:05.920,0:45:10.319 when we go to present um the 0:45:10.560,0:45:15.839 what am I trying to say the the drawing 0:45:13.520,0:45:18.000 in in fog of war mode as we move down 0:45:15.839,0:45:20.640 the corridor we can just add the 0:45:18.000,0:45:23.440 necessary code one bit at a time to the 0:45:20.640,0:45:24.960 visible image so that what we're 0:45:23.440,0:45:27.359 displaying doesn't contain 0:45:24.960,0:45:30.160 any data except what the party has 0:45:27.359,0:45:30.160 already discovered 0:45:30.240,0:45:34.400 and thus we have kind of spoiler rich 0:45:32.319,0:45:37.359 documents sitting on the gm 0:45:34.400,0:45:38.400 server and then less you know and 0:45:37.359,0:45:41.440 spoiler-free 0:45:38.400,0:45:44.000 data that flows down to the org mode uh 0:45:41.440,0:45:47.040 files on the player system and the only 0:45:44.000,0:45:50.160 real challenge is making sure that the 0:45:47.040,0:45:50.960 the nothing that the game does can mess 0:45:50.160,0:45:54.480 with the 0:45:50.960,0:45:55.280 the the users the the players data file 0:45:54.480,0:45:57.680 in case they 0:45:55.280,0:46:00.160 might have their own notes and things in 0:45:57.680,0:46:05.359 it that that would be the one 0:46:00.160,0:46:05.359 uh you know number one thing to avoid 0:46:06.160,0:46:09.680 another thing we can talk about here is 0:46:08.000,0:46:11.839 that there are layers 0:46:09.680,0:46:13.520 you can see this table at the bottom has 0:46:11.839,0:46:15.119 tile and overlay 0:46:13.520,0:46:17.040 the overlay column is just going to 0:46:15.119,0:46:20.800 contain some actual svg 0:46:17.040,0:46:21.599 xml style tags um so that's where we can 0:46:20.800,0:46:25.359 add whatever 0:46:21.599,0:46:26.720 text elements or other svg like raw svg 0:46:25.359,0:46:28.880 tags we want 0:46:26.720,0:46:30.560 whereas a lot of the other layers are 0:46:28.880,0:46:32.960 going to be like path layers we've got 0:46:30.560,0:46:35.359 water layers and beach layers 0:46:32.960,0:46:37.680 and our plan was to have a style sheet 0:46:35.359,0:46:38.720 that defines how each of those layers 0:46:37.680,0:46:40.720 are represented 0:46:38.720,0:46:42.160 so like when the water gets drawn blue 0:46:40.720,0:46:45.520 and it's got arrows on it 0:46:42.160,0:46:47.680 giving it direction um all of that 0:46:45.520,0:46:49.200 can be customized with a style sheet to 0:46:47.680,0:46:51.200 change the water to be 0:46:49.200,0:46:52.960 whatever you want and like we have 0:46:51.200,0:46:54.319 beaches as yellow but maybe you like 0:46:52.960,0:46:57.359 beaches as red or 0:46:54.319,0:47:01.200 you know whatever so we also built 0:46:57.359,0:47:04.079 some test programs um 0:47:01.200,0:47:05.359 and various of the I'm not not sure what 0:47:04.079,0:47:07.040 kind of shape we're gonna find these in 0:47:05.359,0:47:10.640 but we can try running them 0:47:07.040,0:47:12.960 um here for example is just a 0:47:10.640,0:47:15.119 very basic all of using a saint using 0:47:12.960,0:47:18.560 the same file to define 0:47:15.119,0:47:24.880 the tiles and and then 0:47:18.560,0:47:26.640 the layout so to speak oh look at that 0:47:24.880,0:47:28.960 uh there's the layout okay so that 0:47:26.640,0:47:30.960 actually looks fine tile 0:47:28.960,0:47:32.400 and it's pat so this is defining a tile 0:47:30.960,0:47:35.440 named seas 0:47:32.400,0:47:38.720 and uh it's gonna have a list of tiles 0:47:35.440,0:47:41.839 defined above um and you'll notice also 0:47:38.720,0:47:44.559 that we can just sort of freely define 0:47:41.839,0:47:46.160 and redefine and it sort of figures out 0:47:44.559,0:47:50.839 oh this must still be part of the b 0:47:46.160,0:47:53.839 row um we could also have done 0:47:50.839,0:47:53.839 this 0:48:00.000,0:48:07.839 okay so this would this would work as 0:48:02.160,0:48:07.839 would this 0:48:08.480,0:48:12.720 one of uh early on in development when 0:48:11.599,0:48:14.400 we were talking about 0:48:12.720,0:48:15.839 getting data in and out of these org 0:48:14.400,0:48:19.440 tables it 0:48:15.839,0:48:22.319 was kind of a priority to us to 0:48:19.440,0:48:23.040 leave the way the data is organized open 0:48:22.319,0:48:26.960 to 0:48:23.040,0:48:30.720 the users and to the dungeon masters so 0:48:26.960,0:48:32.559 while we set our tile set apart from our 0:48:30.720,0:48:35.440 map sets 0:48:32.559,0:48:38.319 this clearly shows that you can cram a 0:48:35.440,0:48:41.040 tile set and a map into a single file 0:48:38.319,0:48:43.040 so in situations like the surface where 0:48:41.040,0:48:43.760 we're using different tiles from other 0:48:43.040,0:48:46.559 maps 0:48:43.760,0:48:48.079 maybe it makes sense to move you know 0:48:46.559,0:48:50.559 those tiles just into the file 0:48:48.079,0:48:52.400 with your map or like it's hard for us 0:48:50.559,0:48:54.319 to predict how other people are going to 0:48:52.400,0:48:55.119 want to use this when they design their 0:48:54.319,0:48:57.359 games 0:48:55.119,0:48:58.160 so we wanted to leave it as versatile as 0:48:57.359,0:49:01.599 possible 0:48:58.160,0:49:02.640 about how you can use it where it 0:49:01.599,0:49:04.319 matters right 0:49:02.640,0:49:05.920 not support every feature in the world I 0:49:04.319,0:49:07.280 can't count the number of times I said 0:49:05.920,0:49:09.200 eric eric eric 0:49:07.280,0:49:10.800 hey if we do it like this people will be 0:49:09.200,0:49:14.000 able and he just like 0:49:10.800,0:49:14.480 does it have to do that do we do we does 0:49:14.000,0:49:17.920 it like 0:49:14.480,0:49:19.599 do we need it right away uh 0:49:17.920,0:49:21.040 do you have to really rewrite everything 0:49:19.599,0:49:24.160 so it can all do that 0:49:21.040,0:49:26.880 and uh a lot of those 0:49:24.160,0:49:28.240 a lot of those conversations too but the 0:49:26.880,0:49:31.200 the key flexibilities 0:49:28.240,0:49:32.559 are really there people might want to 0:49:31.200,0:49:34.160 use a lot of different files they might 0:49:32.559,0:49:35.760 want to lay the tables out however they 0:49:34.160,0:49:37.440 want they have to be able to say hey 0:49:35.760,0:49:39.440 this is a table that has 0:49:37.440,0:49:40.720 data that's controlled by the game and 0:49:39.440,0:49:44.079 everything else in the file 0:49:40.720,0:49:45.920 is not the game's problem 0:49:44.079,0:49:47.440 on our table some of our tables started 0:49:45.920,0:49:48.960 getting really wide so we started 0:49:47.440,0:49:51.119 striping the tables 0:49:48.960,0:49:52.640 where we'll repeat the same table over 0:49:51.119,0:49:56.400 and over and over again to 0:49:52.640,0:49:59.119 get all of the columns in there without 0:49:56.400,0:49:59.599 making it you know a million miles wide 0:49:59.119,0:50:01.040 yeah 0:49:59.599,0:50:02.640 do you want to should I go ahead and 0:50:01.040,0:50:06.079 pull open like a level here 0:50:02.640,0:50:08.319 do you think sure just to have shown it 0:50:06.079,0:50:09.680 the aisle set's a great example of 0:50:08.319,0:50:11.119 striped tables if you 0:50:09.680,0:50:13.839 look down like in the level change 0:50:11.119,0:50:13.839 feature oh sure 0:50:18.800,0:50:22.400 sorry I'm not quite sitting well to my 0:50:20.240,0:50:27.839 keyboard here I can just readjust things 0:50:22.400,0:50:27.839 real quick 0:50:30.079,0:50:35.200 so what you know you can see here 0:50:33.280,0:50:36.800 like some of these tables got real wide 0:50:35.200,0:50:40.559 when we're stuffing svg 0:50:36.800,0:50:44.160 tags into them and what we 0:50:40.559,0:50:49.359 oh maybe it's not in these 0:50:44.160,0:50:49.359 I thought it was 0:50:50.079,0:50:54.240 special probably yeah no there it is 0:50:52.960,0:50:56.000 yeah 0:50:54.240,0:50:58.720 it was in level change it does the table 0:50:56.000,0:51:00.640 can you repeat okay great 0:50:58.720,0:51:01.920 up and down so fast I didn't realize so 0:51:00.640,0:51:05.680 this first table 0:51:01.920,0:51:08.800 we've got path and what is that stairs 0:51:05.680,0:51:10.079 so the stairs level is one that draws in 0:51:08.800,0:51:11.920 like a pink color 0:51:10.079,0:51:13.440 to highlight the places where you can 0:51:11.920,0:51:15.200 change level 0:51:13.440,0:51:17.200 and then if we scroll down to the second 0:51:15.200,0:51:19.359 half of this section 0:51:17.200,0:51:20.960 the second table is going to have all of 0:51:19.359,0:51:22.800 these same tiles in it but 0:51:20.960,0:51:24.720 instead of path and stairs we're going 0:51:22.800,0:51:27.920 to have other 0:51:24.720,0:51:31.200 columns can we 0:51:27.920,0:51:31.200 see the next table 0:51:31.680,0:51:35.359 there we go so the same tiles only here 0:51:33.839,0:51:38.720 we've got overlay 0:51:35.359,0:51:40.319 documentation and behavior and I guess 0:51:38.720,0:51:41.839 we haven't talked about this at all the 0:51:40.319,0:51:44.880 behavior column 0:51:41.839,0:51:47.359 was our concept of a way that we could 0:51:44.880,0:51:47.359 attach 0:51:47.520,0:51:51.359 functions basically to these different 0:51:49.680,0:51:54.720 areas of the map 0:51:51.359,0:51:57.760 because sometimes when you enter an area 0:51:54.720,0:51:59.920 we want it to do something like 0:51:57.760,0:52:02.319 when you enter a stairs down maybe we 0:51:59.920,0:52:04.559 want it to change to the next level 0:52:02.319,0:52:06.160 and draw the stairs up behind you and 0:52:04.559,0:52:09.200 draw you where you are 0:52:06.160,0:52:11.040 on the next level so 0:52:09.200,0:52:12.240 these are like hooks where we could 0:52:11.040,0:52:16.400 attach functions 0:52:12.240,0:52:18.480 or you know macros or whatever to 0:52:16.400,0:52:22.079 make the map have these behaviors as we 0:52:18.480,0:52:22.079 get further towards automation 0:52:23.440,0:52:30.839 cool um so that's that 0:52:26.559,0:52:33.920 should be pretty close to our time 0:52:30.839,0:52:36.880 um questions or just say goodbye 0:52:33.920,0:52:38.559 um yeah so there's the I'm sorry we 0:52:36.880,0:52:40.000 couldn't show it earlier there is the 0:52:38.559,0:52:44.240 battle board 0:52:40.000,0:52:48.079 um and so this is used just to keep 0:52:44.240,0:52:49.319 track of hit points so with this example 0:52:48.079,0:52:51.680 battle board 0:52:49.319,0:52:53.760 dmbattleboard.el there's there's a 0:52:51.680,0:52:57.200 complete example of not only 0:52:53.760,0:53:00.480 in a single file repub filling out the 0:52:57.200,0:53:00.960 the cells and the tiles but then coming 0:53:00.480,0:53:04.640 in 0:53:00.960,0:53:05.280 and keeping the org mode file in sync 0:53:04.640,0:53:09.040 with 0:53:05.280,0:53:12.319 with clicks so and I can press the star 0:53:09.040,0:53:15.359 key and set my damage to -1 and 0:53:12.319,0:53:16.400 take the damage back off I just haven't 0:53:15.359,0:53:18.079 spent a lot of time 0:53:16.400,0:53:20.800 building up fancy bindings for this 0:53:18.079,0:53:23.119 you'll also find that the crew 0:53:20.800,0:53:23.839 probably find how I figure out what was 0:53:23.119,0:53:26.880 clicked on 0:53:23.839,0:53:28.000 in the code hard but if I just assign 0:53:26.880,0:53:32.960 something recognizable 0:53:28.000,0:53:32.960 for damage and then come into 0:53:33.520,0:53:37.040 it will now have opened the org mode 0:53:35.440,0:53:39.680 file behind the scenes because it's 0:53:37.040,0:53:39.680 changing it 0:53:41.280,0:53:47.599 and we can then look at that file a 0:53:44.640,0:53:51.040 little bit and hopefully 0:53:47.599,0:53:53.440 that is un 0:53:51.040,0:53:55.520 uh large enough you can kind of see 0:53:53.440,0:53:59.119 there's our 17 damage landed 0:53:55.520,0:54:01.200 in armor the logic that sits behind that 0:53:59.119,0:54:06.240 to figure out the part of the screen 0:54:01.200,0:54:06.240 is not necessarily our finest work 0:54:08.880,0:54:12.319 uh uh but it but it does work and it's 0:54:11.839,0:54:14.000 one for 0:54:12.319,0:54:15.920 the stuff was used on the map a little 0:54:14.000,0:54:17.520 bit too we didn't really need to show 0:54:15.920,0:54:19.680 that in the demo but as you're scrolling 0:54:17.520,0:54:22.960 around there's like a highlighter 0:54:19.680,0:54:24.720 um that that you know we were drawing on 0:54:22.960,0:54:26.160 shaft to show you which square you've 0:54:24.720,0:54:28.800 got selected 0:54:26.160,0:54:29.839 um because we were having trouble with 0:54:28.800,0:54:31.280 that code 0:54:29.839,0:54:34.160 initially and we were sometimes 0:54:31.280,0:54:34.160 revealing the wrong 0:54:36.839,0:54:40.480 okay 0:54:38.720,0:54:42.160 and I don't know how we're set for time 0:54:40.480,0:54:44.400 but I just saw a message 0:54:42.160,0:54:46.480 um from trixie that she could jump on if 0:54:44.400,0:54:47.920 we want her oh that would be amazing 0:54:46.480,0:54:51.520 yeah go ahead and invite her in I'll 0:54:47.920,0:54:51.520 just cut to the scene as soon as she's 0:54:51.680,0:54:56.799 I in uh yeah so we're reaching the ask 0:54:56.160,0:54:58.960 me any 0:54:56.799,0:55:01.200 anything uh portion of the program here 0:54:58.960,0:55:02.559 with what uh with what time we have left 0:55:01.200,0:55:05.200 for your questions 0:55:02.559,0:55:06.160 um please correct me if we're still like 0:55:05.200,0:55:08.799 10 minutes 0:55:06.160,0:55:10.000 you know if we're if we're more than 0:55:08.799,0:55:12.640 like 0:55:10.000,0:55:13.760 15 to 20 minutes from our time but I I 0:55:12.640,0:55:16.640 suspect we've less weight 0:55:13.760,0:55:17.440 left way less than that and out of 0:55:16.640,0:55:21.839 respect for 0:55:17.440,0:55:21.839 all the other presenters um 0:55:24.319,0:55:30.640 oh I don't want to close that actually 0:55:28.720,0:55:32.839 I think I may have found an old version 0:55:30.640,0:55:35.200 of my slides that could have some good 0:55:32.839,0:55:36.799 stuff 0:55:35.200,0:55:38.799 it's been an event for a couple of weeks 0:55:36.799,0:55:41.359 here I had a break in and uh 0:55:38.799,0:55:43.599 my somebody got into our bank accounts 0:55:41.359,0:55:46.880 and 0:55:43.599,0:55:50.079 nasty business just a lot going on over 0:55:46.880,0:55:50.079 over this whole year I think 0:55:50.720,0:55:53.839 do we have more questions to shag or 0:55:53.040,0:55:56.960 where 0:55:53.839,0:55:58.799 sure so I think 0:55:56.960,0:56:01.040 there was at least one we deferred a 0:55:58.799,0:56:03.839 little bit uh what the game 0:56:01.040,0:56:03.839 is 0:56:05.040,0:56:08.400 uh always eight characters that can be 0:56:06.799,0:56:10.000 divided right that's so always eight 0:56:08.400,0:56:12.160 characters that can be divided between 0:56:10.000,0:56:14.319 the party is the classic formula 0:56:12.160,0:56:16.240 it actually works pretty well for a 0:56:14.319,0:56:17.760 conversational group remember that 0:56:16.240,0:56:18.480 role-playing games are about talking to 0:56:17.760,0:56:20.000 each other 0:56:18.480,0:56:22.079 and being good at them is about taking 0:56:20.000,0:56:23.200 excellent notes so 0:56:22.079,0:56:24.559 when you're sitting around with a group 0:56:23.200,0:56:25.920 of people and you're going to have to 0:56:24.559,0:56:26.880 wait for them while they dig through 0:56:25.920,0:56:28.720 their notes 0:56:26.880,0:56:30.319 and listen to all of the things they 0:56:28.720,0:56:32.240 find interesting to say 0:56:30.319,0:56:34.160 and try to reach an imaginative place 0:56:32.240,0:56:36.160 that you can stay together 0:56:34.160,0:56:38.319 while you're doing all that and working 0:56:36.160,0:56:40.880 in dice and remembering the rules 0:56:38.319,0:56:43.200 it's actually a complicated activity I 0:56:40.880,0:56:46.240 liken it more to a bridge game 0:56:43.200,0:56:48.960 than to like uh 0:56:46.240,0:56:51.359 you know parcheesi or perhaps even like 0:56:48.960,0:56:52.160 risk or access and allies or other games 0:56:51.359,0:56:54.319 that 0:56:52.160,0:56:56.160 have have definitely the strategy to 0:56:54.319,0:56:59.839 them but 0:56:56.160,0:56:59.839 I don't eric your thoughts 0:57:00.160,0:57:06.640 yeah I mean I think that's fair um 0:57:03.920,0:57:08.160 you know yes definitely the the 0:57:06.640,0:57:09.440 tradition is to always have eight 0:57:08.160,0:57:12.079 characters in the party 0:57:09.440,0:57:13.760 and you know one of the great things 0:57:12.079,0:57:15.200 about dungeon is that everybody who 0:57:13.760,0:57:18.000 writes their own dungeon 0:57:15.200,0:57:19.440 gets to write their own rules and is 0:57:18.000,0:57:21.760 free to change whatever 0:57:19.440,0:57:22.720 you want and that being said I've 0:57:21.760,0:57:25.839 certainly seen 0:57:22.720,0:57:28.079 people try to take on challenging that 0:57:25.839,0:57:30.640 always eight characters in a party 0:57:28.079,0:57:32.640 thing um I've seen people take 0:57:30.640,0:57:34.640 approaches like every player gets two 0:57:32.640,0:57:36.319 characters and then you can have a party 0:57:34.640,0:57:38.079 ranging from two to ten 0:57:36.319,0:57:40.000 or there's always going to be ten or 0:57:38.079,0:57:43.200 there's you know this or that or people 0:57:40.000,0:57:45.280 have um tried stuff and none of it has 0:57:43.200,0:57:45.839 really worked out very satisfactorily we 0:57:45.280,0:57:48.319 always 0:57:45.839,0:57:49.680 seem to keep coming back to our um party 0:57:48.319,0:57:54.160 of eight 0:57:49.680,0:57:55.839 yeah it's I I I I it's one of the things 0:57:54.160,0:57:57.359 dungeon that you can't change when you 0:57:55.839,0:57:58.720 write your own dungeon 0:57:57.359,0:58:00.960 and that's the reason it's so 0:57:58.720,0:58:03.119 complicated as a as a software 0:58:00.960,0:58:04.559 project why it's taken us decades 0:58:03.119,0:58:08.000 because 0:58:04.559,0:58:11.280 trying to model the data for example or 0:58:08.000,0:58:14.160 really any attempt to 0:58:11.280,0:58:15.680 quantify it in specific terms always 0:58:14.160,0:58:18.880 falls to examples 0:58:15.680,0:58:22.079 well you know dungeons usually have 0:58:18.880,0:58:25.280 elves dwarves and humans they have uh 0:58:22.079,0:58:27.599 priests wizards and warriors uh they 0:58:25.280,0:58:30.000 have eight characters in the party 0:58:27.599,0:58:31.680 the bell rocks are particularly nasty 0:58:30.000,0:58:35.119 and live in a room of some 0:58:31.680,0:58:38.319 specific shape um spoilers 0:58:35.119,0:58:39.520 uh right and we don't tell you the rules 0:58:38.319,0:58:40.960 and that's what you know 0:58:39.520,0:58:42.640 and you sit down at the table and you 0:58:40.960,0:58:44.480 say what's your character name and 0:58:42.640,0:58:48.400 what's your special power 0:58:44.480,0:58:51.599 and and then I say uh I 0:58:48.400,0:58:53.839 I I'm zelda and uh 0:58:51.599,0:58:56.000 I I have this bridge that I can put down 0:58:53.839,0:58:59.040 that always gets me across the river 0:58:56.000,0:58:59.359 um so let's touch on special power real 0:58:59.040,0:59:01.119 quick 0:58:59.359,0:59:03.280 since that's one of the things that is 0:59:01.119,0:59:06.160 kind of unique to dungeon 0:59:03.280,0:59:06.720 and one of the things that is the 0:59:06.160,0:59:08.960 biggest 0:59:06.720,0:59:10.240 challenge to us in trying to code a 0:59:08.960,0:59:13.200 system like this for 0:59:10.240,0:59:14.319 automated play and that's that every 0:59:13.200,0:59:17.119 character gets a 0:59:14.319,0:59:18.000 unique special power and traditionally 0:59:17.119,0:59:19.520 you negotiate 0:59:18.000,0:59:21.839 your special power with the dungeon 0:59:19.520,0:59:24.079 master when you create your character 0:59:21.839,0:59:25.839 and occasionally throughout the course 0:59:24.079,0:59:27.359 of the character's life their special 0:59:25.839,0:59:29.920 power might change 0:59:27.359,0:59:33.280 due to game circumstances usually it 0:59:29.920,0:59:34.960 improves but sometimes not 0:59:33.280,0:59:36.960 uh and that's those are the most fun 0:59:34.960,0:59:39.440 conversations right sometimes we have 0:59:36.960,0:59:41.760 fun gaming sessions where we barely get 0:59:39.440,0:59:43.680 all the characters created and started 0:59:41.760,0:59:45.440 because we get off into arguing about 0:59:43.680,0:59:48.319 the special powers no zelda special 0:59:45.440,0:59:52.079 powers obviously the candle come on 0:59:48.319,0:59:52.079 also that was link not zelda 0:59:53.359,1:00:01.440 I still have my t-shirt hey there she is 0:59:56.240,1:00:05.839 let's cut scene 1:00:01.440,1:00:07.359 you get video fun filters today because 1:00:05.839,1:00:08.799 that's what we got going on over here 1:00:07.359,1:00:15.839 today all right I'm gonna recut 1:00:08.799,1:00:15.839 everybody hang on tight 1:00:18.079,1:00:23.200 all right there's eric this is gonna be 1:00:20.799,1:00:25.200 eric for a second hope 1:00:23.200,1:00:27.440 no worries and welcome to the welcome to 1:00:25.200,1:00:30.960 the stream uh trixie horror 1:00:27.440,1:00:32.720 uh who is 1:00:30.960,1:00:34.559 uh one of our project team members 1:00:32.720,1:00:35.440 somebody who's learning Emacs as part of 1:00:34.559,1:00:38.480 the project 1:00:35.440,1:00:40.720 and um yeah I 1:00:38.480,1:00:42.160 I I particularly wanted to invite you on 1:00:40.720,1:00:44.319 to talk about your experience learning 1:00:42.160,1:00:46.079 Emacs I think you have run into 1:00:44.319,1:00:47.839 places where it's a pain in the butt to 1:00:46.079,1:00:56.000 learn Emacs and that this is a safe 1:00:47.839,1:00:58.960 space to talk about that 1:00:56.000,1:01:00.640 jump into that by saying um the Emacs 1:00:58.960,1:01:02.880 cheat sheet 1:01:00.640,1:01:03.680 um I think it's the one that canoe puts 1:01:02.880,1:01:07.680 out 1:01:03.680,1:01:09.440 is a lifesaver um a little bit of a 1:01:07.680,1:01:12.480 vocabulary disconnect 1:01:09.440,1:01:13.359 like and this actually kind of comes up 1:01:12.480,1:01:15.200 a lot 1:01:13.359,1:01:18.000 in conversation with corona and eric and 1:01:15.200,1:01:21.920 I but copy paste versus 1:01:18.000,1:01:24.480 what yank and w 1:01:21.920,1:01:24.480 whatever w 1:01:27.920,1:01:31.200 why would you even do that to us right 1:01:30.000,1:01:33.359 where where were you 1:01:31.200,1:01:38.480 when zero's park happened no I I 1:01:33.359,1:01:39.520 understand that makes sense what else 1:01:38.480,1:01:41.440 I mean you don't have to sit here and 1:01:39.520,1:01:43.119 rag on Emacs but we're here for that 1:01:41.440,1:01:44.400 that's all I'm saying 1:01:43.119,1:01:46.799 no I'm like that's been the biggest 1:01:44.400,1:01:49.920 thing like I'm 1:01:46.799,1:01:52.319 I'm used to like just kind of the 1:01:49.920,1:01:53.839 very binary nature like nope that didn't 1:01:52.319,1:01:57.119 work try something else 1:01:53.839,1:01:59.200 so as long as you're like willing to try 1:01:57.119,1:02:02.880 other stuff 1:01:59.200,1:02:06.559 like Emacs will be fine so 1:02:02.880,1:02:08.960 it's a tough cookie I can take it 1:02:06.559,1:02:11.119 worst thing that happens is you have to 1:02:08.960,1:02:13.520 really install it 1:02:11.119,1:02:16.799 throw your ignite file that you 1:02:13.520,1:02:16.799 hopefully have a backup of 1:02:19.920,1:02:24.640 all right fine um are there more 1:02:22.079,1:02:26.480 questions in the hopper 1:02:24.640,1:02:27.680 yeah if anybody does have any questions 1:02:26.480,1:02:29.839 up there uh 1:02:27.680,1:02:32.000 for hope for eric or I so just to 1:02:29.839,1:02:34.240 summarize I've known eric 1:02:32.000,1:02:36.160 I've known eric my whole life I've known 1:02:34.240,1:02:39.599 hope around a decade we 1:02:36.160,1:02:44.480 worked together on a project for 1:02:39.599,1:02:44.480 uh for a science fiction convention yeah 1:02:44.559,1:02:48.960 we got conventions and then I also 1:02:46.880,1:02:50.799 helped with I just wrote a bio 1:02:48.960,1:02:53.520 so this should like all theoretically be 1:02:50.799,1:02:53.520 in my head right 1:02:53.599,1:03:00.160 I want I refer to my own bio 1:02:58.079,1:03:02.640 I'm the project coordinator for dungeon 1:03:00.160,1:03:02.640 mode 1:03:10.799,1:03:16.400 um that's nice 1:03:14.000,1:03:18.000 we've gotten a ton of support from a lot 1:03:16.400,1:03:20.480 of our lifelong friends people 1:03:18.000,1:03:22.319 and also people that we just met maybe 1:03:20.480,1:03:25.039 that's a that's a great segue 1:03:22.319,1:03:26.400 um do throw your questions in there I'm 1:03:25.039,1:03:27.839 gonna fill for just a second and then 1:03:26.400,1:03:31.920 we'll probably cut away 1:03:27.839,1:03:31.920 um but uh 1:03:32.319,1:03:36.319 uh I mean thematically actually that's 1:03:34.960,1:03:37.200 that's too abrupt so we need to go 1:03:36.319,1:03:39.119 around the room 1:03:37.200,1:03:40.720 eric you had hours and hours to rehearse 1:03:39.119,1:03:41.359 hope kind of jumped in on the last 1:03:40.720,1:03:43.520 minute 1:03:41.359,1:03:46.319 so let's let's is it okay to pick on you 1:03:43.520,1:03:48.880 or do you want me to give mine 1:03:46.319,1:03:50.000 uh to what are you asking me to do what 1:03:48.880,1:03:51.359 do you what do you want people to take 1:03:50.000,1:03:54.240 away from this talk 1:03:51.359,1:03:55.280 you know as we think about dungeon and 1:03:54.240,1:03:57.520 sharing it's 1:03:55.280,1:03:58.799 sharing its tradition as we think about 1:03:57.520,1:04:02.799 learning Emacs 1:03:58.799,1:04:04.880 and like making that awesome um 1:04:02.799,1:04:07.599 and just you know generally what's up 1:04:04.880,1:04:12.480 with free software and trying to make 1:04:07.599,1:04:15.200 computers a tool to make people freer 1:04:12.480,1:04:15.920 wow that's like five questions yeah so 1:04:15.200,1:04:18.960 I'm gonna start 1:04:15.920,1:04:22.240 with jumping um I think 1:04:18.960,1:04:25.359 that dungeon is a lot of fun and 1:04:22.240,1:04:27.599 you know I'm I've played many 1:04:25.359,1:04:28.480 commercial role-playing games over the 1:04:27.599,1:04:31.680 years 1:04:28.480,1:04:32.000 and I've enjoyed all of them and there 1:04:31.680,1:04:34.720 are 1:04:32.000,1:04:36.319 very few of them that I've had as many 1:04:34.720,1:04:40.160 belly laughs and as much 1:04:36.319,1:04:42.799 just joy playing as from dungeon 1:04:40.160,1:04:43.280 and I think you know the magic of it is 1:04:42.799,1:04:45.520 you know 1:04:43.280,1:04:47.200 like any game like the real magic is the 1:04:45.520,1:04:49.599 people you play with and having fun with 1:04:47.200,1:04:51.280 your friends 1:04:49.599,1:04:53.440 and what I would hope that people can 1:04:51.280,1:04:55.920 take away from is that dungeon has the 1:04:53.440,1:04:59.280 ability to be that magical thing 1:04:55.920,1:05:00.000 and hopefully we can get our project to 1:04:59.280,1:05:02.160 the point 1:05:00.000,1:05:04.960 where it gets out of the way and lets 1:05:02.160,1:05:07.200 you have that fun with your friends 1:05:04.960,1:05:08.240 um but there's a lot of work to do we 1:05:07.200,1:05:10.880 could use some help 1:05:08.240,1:05:14.480 so if you're interested in having fun 1:05:10.880,1:05:14.480 come help us build this fun tool 1:05:20.960,1:05:24.079 all right so I just got the call that 1:05:22.319,1:05:25.039 we've got just about two to three 1:05:24.079,1:05:28.160 minutes left 1:05:25.039,1:05:31.440 and we should start our wrap-up 1:05:28.160,1:05:34.240 okay wrap up so 1:05:31.440,1:05:35.920 yeah um so I'll I'll see if I can charge 1:05:34.240,1:05:38.480 the room with some energy unless you're 1:05:35.920,1:05:40.720 ready to have at it hope 1:05:38.480,1:05:42.799 here here's here's what I want people to 1:05:40.720,1:05:46.720 take away 1:05:42.799,1:05:46.720 were you like no okay 1:05:47.039,1:05:51.839 I'm not getting your audio hope 1:05:53.599,1:05:57.359 it's okay on my end maybe I just need to 1:05:55.839,1:05:58.880 speak up 1:05:57.359,1:06:00.640 is this better let me know when I'm 1:05:58.880,1:06:01.680 coming through yeah you're coming 1:06:00.640,1:06:05.359 through now 1:06:01.680,1:06:08.799 okay cool oh no I 1:06:05.359,1:06:10.559 was gonna say go ahead I didn't okay 1:06:08.799,1:06:12.880 I mean I I don't know that I know what I 1:06:10.559,1:06:13.599 want to say either except a whole ton of 1:06:12.880,1:06:16.480 thank yous 1:06:13.599,1:06:17.200 so I will I will save those for the for 1:06:16.480,1:06:20.880 the literal 1:06:17.200,1:06:24.160 end here and instead 1:06:20.880,1:06:27.839 what I would say is as we build 1:06:24.160,1:06:32.160 our amazing innovations and 1:06:27.839,1:06:35.119 explore our ideas in Emacs 1:06:32.160,1:06:36.079 we are fighting our own ego for the will 1:06:35.119,1:06:37.680 to get them done 1:06:36.079,1:06:38.960 it's hard and we're not sure if they're 1:06:37.680,1:06:40.000 going to be a good idea and will it 1:06:38.960,1:06:41.680 excite people and part of our 1:06:40.000,1:06:43.440 responsibility is to excite people so 1:06:41.680,1:06:44.240 that they can feel good about liking 1:06:43.440,1:06:45.680 them 1:06:44.240,1:06:47.359 if you come off and you're like hey this 1:06:45.680,1:06:47.920 is a terrible idea it's really hard to 1:06:47.359,1:06:49.760 be like 1:06:47.920,1:06:51.200 no I love that idea it works 1:06:49.760,1:06:55.520 theatrically but 1:06:51.200,1:06:55.520 in larger groups may not scale 1:06:55.680,1:07:00.400 so that's a crucible for ideas and a 1:06:58.400,1:07:03.280 crucible for teams 1:07:00.400,1:07:04.240 the first part is definitely healthy the 1:07:03.280,1:07:07.440 second part 1:07:04.240,1:07:08.640 there's a lot we can we can do you know 1:07:07.440,1:07:10.880 having upfront 1:07:08.640,1:07:15.440 and and and good faith conversations on 1:07:10.880,1:07:17.520 that subject 1:07:15.440,1:07:19.119 anybody else wanted I want to weigh it 1:07:17.520,1:07:22.960 in after that sorry that that was more 1:07:19.119,1:07:22.960 of a calm down than a then a fire out 1:07:23.200,1:07:26.000 oh that's okay 1:07:27.280,1:07:30.960 I mean um the first part of this but I 1:07:29.280,1:07:32.960 think um 1:07:30.960,1:07:34.880 we would be remiss not to highlight org 1:07:32.960,1:07:37.839 mode a little bit 1:07:34.880,1:07:38.480 yeah like that's that's our bread and 1:07:37.839,1:07:40.240 butter 1:07:38.480,1:07:42.720 yeah our whole project is built on org 1:07:40.240,1:07:46.240 mode right and I'm just really excited 1:07:42.720,1:07:49.680 because like I have I don't have adhd 1:07:46.240,1:07:51.119 but I have like something similar and so 1:07:49.680,1:07:54.880 like to know that there's something that 1:07:51.119,1:07:57.760 exists that is like purely hierarchical 1:07:54.880,1:07:58.559 is incredible like I can just run a 1:07:57.760,1:08:01.839 report 1:07:58.559,1:08:03.839 basically and get all of my like 1:08:01.839,1:08:05.760 to-do lists that I didn't have to put in 1:08:03.839,1:08:10.240 one specific place 1:08:05.760,1:08:10.240 um and like that's kind of been 1:08:10.559,1:08:16.480 a complex issue for me of like 1:08:14.559,1:08:18.080 okay I have all these to-do lists like 1:08:16.480,1:08:18.319 in google keep or whatever like what do 1:08:18.080,1:08:20.719 I 1:08:18.319,1:08:21.359 do with them now so being able to like 1:08:20.719,1:08:24.400 pull them 1:08:21.359,1:08:26.640 into one list and then just cycle 1:08:24.400,1:08:30.239 through them is really incredible 1:08:26.640,1:08:34.480 and I think taking a dungeon and 1:08:30.239,1:08:35.839 like using it to 1:08:34.480,1:08:37.759 like combining it with org mode 1:08:35.839,1:08:41.040 basically um 1:08:37.759,1:08:42.560 really yeah I'm excited about it I'm 1:08:41.040,1:08:44.159 excited to see like what it can do for 1:08:42.560,1:08:47.759 player groups 1:08:44.159,1:08:50.319 um yeah especially 1:08:47.759,1:08:52.319 like I was excited about dungeon mode um 1:08:50.319,1:08:53.920 before the pandemic and now like I'm 1:08:52.319,1:08:57.120 only more enthusiastic 1:08:53.920,1:08:58.400 so yeah uh definitely the pandemic has 1:08:57.120,1:08:59.120 been the greatest thing that happened to 1:08:58.400,1:09:02.080 this game 1:08:59.120,1:09:02.640 terrible terrible as it is to say that 1:09:02.080,1:09:05.120 it 1:09:02.640,1:09:06.719 if we uh needed a hobby and it turns out 1:09:05.120,1:09:09.839 role-playing games are 1:09:06.719,1:09:09.839 a really good fit 1:09:11.279,1:09:14.799 so um so I think that's probably about 1:09:13.839,1:09:18.560 our time 1:09:14.799,1:09:21.759 um I'm guessing that's my call and 1:09:18.560,1:09:23.120 uh thank you very much thank you 1:09:21.759,1:09:25.679 everybody 1:09:23.120,1:09:31.759 we'll be around for discord and stuff 1:09:25.679,1:09:31.759 later come catch us if you want to talk