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