summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt')
-rw-r--r--2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt3187
1 files changed, 3187 insertions, 0 deletions
diff --git a/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt b/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt
new file mode 100644
index 00000000..24c1910c
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt
@@ -0,0 +1,3187 @@
+WEBVTT
+
+00:00:08.559 --> 00:00:16.074
+CORWIN: Okay. So I'm gonna start with my demo Emacs here.
+
+00:00:16.074 --> 00:00:18.000
+Erik, we're ready.
+
+00:00:18.000 --> 00:00:31.840
+AMIN: We are live.
+
+00:00:31.840 --> 00:00:35.440
+ERIK: Okay, so you're starting then.
+
+00:00:35.440 --> 00:00:39.200
+CORWIN: I guess I'll start right now. Here we go.
+
+00:00:39.200 --> 00:00:43.440
+So I'm a Windows user, as we talked about yesterday.
+
+00:00:43.440 --> 00:00:47.440
+I'm going to try to start Emacs for you now.
+
+00:00:47.440 --> 00:00:49.360
+I've got it pinned to this thing,
+
+00:00:49.360 --> 00:00:52.879
+but mostly what I actually do
+
+00:00:52.879 --> 00:00:56.320
+is grab a file explorer and head to my desktop
+
+00:00:56.320 --> 00:01:00.559
+where I have all sorts of Emacs.
+
+00:01:00.559 --> 00:01:10.840
+Erik, can you make sure that your VLC is muted?
+
+00:01:10.840 --> 00:01:39.360
+ERIK: Okay, give me a second, please.
+
+00:01:39.360 --> 00:01:41.920
+CORWIN: I do. Okay. All right.
+
+00:01:41.920 --> 00:01:44.560
+We should be working again now. My apologies for that.
+
+00:01:44.560 --> 00:01:47.360
+All right. Handling technical problems in real-time
+
+00:01:47.360 --> 00:01:49.600
+is what Emacs is all about.
+
+00:01:49.600 --> 00:01:52.799
+As we're coding, we're constantly making errors, and fixing them,
+
+00:01:52.799 --> 00:01:54.880
+and learning from the kinds of errors that we make,
+
+00:01:54.880 --> 00:01:57.759
+and adjusting the editor to be easier to use.
+
+00:01:57.759 --> 00:02:02.640
+So today we'll try to build on some of the ideas we introduced yesterday
+
+00:02:02.640 --> 00:02:07.280
+around how a community can help us learn Emacs faster,
+
+00:02:07.280 --> 00:02:12.160
+and how we can think broadly about the people in our team
+
+00:02:12.160 --> 00:02:15.920
+when we decide how what kind of Emacs configuration
+
+00:02:15.920 --> 00:02:18.000
+we're going to have going for our project.
+
+00:02:18.000 --> 00:02:21.120
+So I'm just going to fire up my normal Emacs config now,
+
+00:02:21.120 --> 00:02:24.720
+so that we get hopefully a nice pretty demo
+
+00:02:24.720 --> 00:02:28.080
+or at least some slides.
+
+00:02:28.080 --> 00:02:30.720
+For safety, we're going to avoid the server,
+
+00:02:30.720 --> 00:02:33.360
+because I hate it when it crashes.
+
+00:02:33.360 --> 00:02:41.120
+It's a little less stable under Windows, I think.
+
+00:02:41.120 --> 00:02:43.200
+And well, while this starts up,
+
+00:02:43.200 --> 00:02:44.800
+I'll just briefly introduce
+
+00:02:44.800 --> 00:02:47.680
+my lifelong friend Erik Elmshauser
+
+00:02:47.680 --> 00:02:50.400
+who's hanging in the wings and waiting impatiently
+
+00:02:50.400 --> 00:02:54.400
+for us to be able to start our slides.
+
+00:02:54.400 --> 00:02:58.560
+ERIK: Hello, everybody. I'm Erik.
+
+00:02:58.560 --> 00:03:03.200
+CORWIN: So you've heard plenty from me already this conference,
+
+00:03:03.200 --> 00:03:09.120
+I suppose, so I'm just going to...
+
+00:03:09.120 --> 00:03:10.560
+So Erik and I have worked things out
+
+00:03:10.560 --> 00:03:12.400
+so 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:16.159
+but the hope is that we'll just focus
+
+00:03:16.159 --> 00:03:17.599
+a little more on the game.
+
+00:03:17.599 --> 00:03:19.360
+If you have questions about the game at all,
+
+00:03:19.360 --> 00:03:28.480
+please don't hesitate to ask those as well as your Emacs questions.
+
+00:03:28.480 --> 00:03:30.840
+I think we're starting out.
+
+00:03:30.840 --> 00:03:41.200
+Welcome. Let's cut away here so we can show some faces.
+
+00:03:41.200 --> 00:03:43.920
+I lost you, Erik.
+
+00:03:43.920 --> 00:03:45.040
+ERIK: Why would you do that?
+
+00:03:45.040 --> 00:03:48.319
+CORWIN: There he is.
+
+00:03:48.319 --> 00:03:50.000
+Let's just do one more thing
+
+00:03:50.000 --> 00:03:53.280
+because that's just kind of offensive.
+
+00:03:53.280 --> 00:03:55.439
+I'm going to 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:25.040
+We just opened Emacs, so I have to open my slideshow,
+
+00:04:25.040 --> 00:04:28.479
+and there we are.
+
+00:04:28.479 --> 00:04:32.560
+Okay, Erik, I think I'm about as ready as I get.
+
+00:04:32.560 --> 00:04:35.120
+ERIK: Cool. Well, let's begin here.
+
+00:04:35.120 --> 00:04:37.840
+Welcome to the dungeon, everybody.
+
+00:04:37.840 --> 00:04:38.320
+As you're aware, I'm Erik and this is Corwin,
+
+00:04:38.320 --> 00:04:43.040
+and this is the Dungeon project that we've been working on
+
+00:04:43.040 --> 00:04:45.120
+for about a year now.
+
+00:04:45.120 --> 00:04:52.000
+The Dungeon game is based on
+
+00:04:52.000 --> 00:04:53.360
+a tradition of gaming
+
+00:04:53.360 --> 00:04:55.520
+that came out of the University of Minnesota
+
+00:04:55.520 --> 00:04:57.520
+back in the 1950s,
+
+00:04:57.520 --> 00:05:00.320
+as far as we can tell.
+
+00:05:00.320 --> 00:05:03.360
+It is a predecessor, an ancestor of
+
+00:05:03.360 --> 00:05:05.199
+most of the commercial role-playing games
+
+00:05:05.199 --> 00:05:07.919
+that you have heard of or maybe tried out
+
+00:05:07.919 --> 00:05:11.919
+from various stores and friends, what have you.
+
+00:05:11.919 --> 00:05:14.800
+So one of the first things we want to talk about is:
+
+00:05:14.800 --> 00:05:17.039
+What is it that sets Dungeon apart?
+
+00:05:17.039 --> 00:05:19.680
+why is it... what is it about this game
+
+00:05:19.680 --> 00:05:22.479
+that makes us want to continue bringing it forward,
+
+00:05:22.479 --> 00:05:26.479
+when there are so many games already commercially available
+
+00:05:26.479 --> 00:05:28.479
+that are descended from it?
+
+00:05:28.479 --> 00:05:34.160
+Dungeon is kind of a simpler game.
+
+00:05:34.160 --> 00:05:40.400
+Like we don't do a lot of the mechanics that you think about.
+
+00:05:40.400 --> 00:05:44.560
+What is it that defines your character? Stats and skills and attributes?
+
+00:05:44.560 --> 00:05:48.080
+We just don't deal with it in Dungeon.
+
+00:05:48.080 --> 00:05:54.720
+But Dungeon... The simplicity of it allows it
+
+00:05:54.720 --> 00:06:01.840
+to be a vehicle for creativity more than just a numbers project.
+
+00:06:01.840 --> 00:06:04.240
+So that's kind of why we like it,
+
+00:06:04.240 --> 00:06:08.533
+but also it makes it a tricky problem
+
+00:06:08.533 --> 00:06:12.567
+when it comes to writing a computer game to mimic
+
+00:06:12.567 --> 00:06:16.400
+the game that we played with paper and dice around a table.
+
+00:06:16.400 --> 00:06:24.000
+CORWIN: So when we look at it as kind of a technology problem... Whoops...
+
+00:06:24.000 --> 00:06:27.919
+When we try to... Heyo. I'm sorry. I got ahead of us.
+
+00:06:27.919 --> 00:06:32.160
+I'll cut back.
+
+00:06:32.160 --> 00:06:35.520
+ERIK: I thought we were doing fine
+
+00:06:35.520 --> 00:06:40.319
+CORWIN: Okay, well then. I'll just... yeah. Either way.
+
+00:06:40.319 --> 00:06:43.360
+ERIK: So we've been friends since...
+
+00:06:43.360 --> 00:06:46.479
+It was our parents' idea, basically.
+
+00:06:46.479 --> 00:06:53.120
+Our parents are friends, and we learned this game from our parents.
+
+00:06:53.120 --> 00:07:02.479
+Specifically, I learned it from Corwin when I was 7 or 8.
+
+00:07:02.479 --> 00:07:06.400
+CORWIN: Yeah, that's where... that's my cue in, right?
+
+00:07:09.599 --> 00:07:14.560
+My folks and Erik's folks were really tight.
+
+00:07:14.560 --> 00:07:17.360
+They used to run science fiction conventions together.
+
+00:07:17.360 --> 00:07:22.400
+Our play featured imaginative role-playing.
+
+00:07:22.400 --> 00:07:28.639
+Usually we would find ways to work the computers into things.
+
+00:07:28.639 --> 00:07:35.000
+I don't know. I hardly have memories that precede Erik.
+
+00:07:35.000 --> 00:07:39.199
+ERIK: Also, it turns out we're both kind of nerds.
+
+00:07:39.199 --> 00:07:46.560
+I learned to program from my mother back in the early 80s,
+
+00:07:46.560 --> 00:07:49.039
+and for as long as we've been friends,
+
+00:07:49.039 --> 00:07:52.800
+basically we've also been into playing with computers.
+
+00:07:52.800 --> 00:07:56.720
+Over the years, we've worked with many, many different systems.
+
+00:07:56.720 --> 00:07:59.700
+We've played with Ataris, Apples, and Amigas
+
+00:07:59.700 --> 00:08:03.567
+for a long time before either of us got PC clones
+
+00:08:03.567 --> 00:08:07.967
+and Windows or DOS or Linux or any of those systems.
+
+00:08:07.967 --> 00:08:11.360
+We went through all of them, and kinda liked them.
+
+00:08:11.360 --> 00:08:17.919
+So we also always thought, like,
+
+00:08:17.919 --> 00:08:22.639
+how is it that we can use these cool computers that we're into
+
+00:08:22.639 --> 00:08:25.967
+to build this Dungeon game that we're into?
+
+00:08:25.967 --> 00:08:28.319
+'Cause that's what you do, right?
+
+00:08:28.319 --> 00:08:32.080
+CORWIN: That's certainly what we did.
+
+00:08:32.080 --> 00:08:35.039
+So after some decades of bike-shedding
+
+00:08:35.039 --> 00:08:39.039
+where we saw really a lot of changes in the technology field,
+
+00:08:39.039 --> 00:08:40.159
+cell phones were invented,
+
+00:08:40.159 --> 00:08:41.919
+smartphones were invented...
+
+00:08:41.919 --> 00:08:45.360
+Text messaging in particular had a dramatic impact
+
+00:08:45.360 --> 00:08:49.519
+on what we thought Dungeon would have to be able to do to be more fun
+
+00:08:49.519 --> 00:08:54.720
+than scribbling in graph paper.
+
+00:08:54.720 --> 00:08:58.480
+Yeah, either way.
+
+00:08:58.480 --> 00:09:01.519
+ERIK: We've been using Linux since the mid 90s
+
+00:09:01.519 --> 00:09:06.160
+I don't remember exactly when I did my first Linux install,
+
+00:09:06.160 --> 00:09:11.200
+but I really liked it from the get-go,
+
+00:09:11.200 --> 00:09:17.267
+and I think it was shortly after I
+installed it on a 486,
+
+00:09:17.267 --> 00:09:18.900
+I went over to Corwin's house
+
+00:09:18.900 --> 00:09:23.360
+and we spent a couple of months screwing around with it.
+
+00:09:23.360 --> 00:09:28.800
+CORWIN: I'll add, I remember the day that I learned about the formation of GNU.
+
+00:09:28.800 --> 00:09:33.440
+It had a life. I mean, I read lots of licenses.
+
+00:09:33.440 --> 00:09:38.480
+I think a lot of us have written our own SWAG license code
+
+00:09:38.480 --> 00:09:42.080
+and I definitely credit the formation of GNU
+
+00:09:42.080 --> 00:09:48.640
+to my 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:54.800
+Well. So yeah, this is your turn.
+
+00:09:54.800 --> 00:09:57.360
+I already mentioned Jeff yesterday,
+
+00:09:57.360 --> 00:10:00.399
+so your turn to take it for a few slides.
+
+00:10:00.399 --> 00:10:07.600
+ERIK: Along with learning Linux, we started learning the various tools
+
+00:10:07.600 --> 00:10:11.680
+that were available through the GNU free software movement.
+
+00:10:11.680 --> 00:10:16.560
+It didn't take very long before we got into using Emacs.
+
+00:10:16.560 --> 00:10:21.839
+When we were working as software developers back in the 90s,
+
+00:10:21.839 --> 00:10:25.200
+we both were using Emacs in an office environment
+
+00:10:25.200 --> 00:10:28.959
+with some other developers.
+
+00:10:28.959 --> 00:10:32.367
+It was obviously a very powerful tool,
+
+00:10:32.367 --> 00:10:40.560
+and we have really enjoyed using it for a couple of decades since then.
+
+00:10:40.560 --> 00:10:48.880
+CORWIN: I'm not going to go on at length about my love for Emacs here.
+
+00:10:48.880 --> 00:10:52.480
+So we put together a project.
+
+00:10:52.480 --> 00:10:54.033
+Each time we rehearse this,
+
+00:10:54.033 --> 00:10:56.320
+Erik 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:11:00.880
+and we're just having a conversation with you today,
+
+00:11:00.880 --> 00:11:05.920
+I'll just jump in and say from a project standpoint,
+
+00:11:05.920 --> 00:11:08.160
+the project owes its inception
+
+00:11:08.160 --> 00:11:10.320
+to a tremendous number of people in fandom
+
+00:11:10.320 --> 00:11:15.680
+that encouraged us to just do crazy projects.
+
+00:11:15.680 --> 00:11:17.760
+In this case, to our friends
+
+00:11:17.760 --> 00:11:20.640
+that were hanging out with us on Discord all the time
+
+00:11:20.640 --> 00:11:22.560
+while we played different games.
+
+00:11:22.560 --> 00:11:25.200
+And through that, and while I was
+
+00:11:25.200 --> 00:11:26.640
+fooling with Emacs,
+
+00:11:26.640 --> 00:11:34.000
+generally other people played games,
+
+00:11:34.000 --> 00:11:35.519
+the pieces fell into place.
+
+00:11:35.519 --> 00:11:37.279
+We were all there, so we could talk about it,
+
+00:11:37.279 --> 00:11:39.760
+and the idea got exciting again.
+
+00:11:39.760 --> 00:11:41.920
+We started going back to all the places
+
+00:11:41.920 --> 00:11:44.160
+that we had had trouble with it in the past.
+
+00:11:44.160 --> 00:11:45.760
+It really did seem to add up.
+
+00:11:45.760 --> 00:11:48.880
+We built proof of concepts to do hard stuff quickly.
+
+00:11:48.880 --> 00:11:54.880
+I guess we'll probably head into that that area now.
+
+00:11:54.880 --> 00:11:59.300
+ERIK: This slide mentions: Why build a role-playing game in Emacs?
+
+00:11:59.300 --> 00:12:03.360
+I was watching the last presentation
+
+00:12:03.360 --> 00:12:08.167
+and there was a slide about all of the
+problems
+
+00:12:08.167 --> 00:12:10.333
+that Emacs poses for retro gaming,
+
+00:12:10.333 --> 00:12:14.100
+where it interrupts the game loops and
+it waits for user input.
+
+00:12:14.100 --> 00:12:17.667
+That was a whole list of reasons why
+
+00:12:17.667 --> 00:12:21.233
+Emacs actually does exactly what we want in our project
+
+00:12:21.233 --> 00:12:31.360
+and why Dungeon is a natural fit for Emacs.
+
+00:12:31.360 --> 00:12:36.480
+CORWIN: Hey there. Yeah, go ahead and continue.
+
+00:12:36.480 --> 00:12:38.639
+I just got a phone call, I think from Leo,
+
+00:12:38.639 --> 00:12:40.639
+so I'm going to mute.
+
+00:12:40.639 --> 00:12:47.279
+ERIK: So what we did in the project was basically
+
+00:12:47.279 --> 00:12:49.680
+come up with our minimum play-testable candidate.
+
+00:12:49.680 --> 00:12:50.959
+We listed all of the things
+
+00:12:50.959 --> 00:12:54.240
+that we need to be able to make the project do
+
+00:12:54.240 --> 00:12:59.519
+in order to recreate the Dungeon experience that we 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:02.160 --> 00:13:12.570
+And, I mean, we've, you know, it took a while for us to kind of
+
+00:13:12.570 --> 00:13:15.870
+tease apart the problem in a way where we could actually
+
+00:13:15.870 --> 00:13:19.370
+list out all of the features, like, what are the problems
+
+00:13:19.370 --> 00:13:22.160
+we have to solve and how do we solve them?
+
+00:13:27.160 --> 00:13:31.050
+So, creating any free software, any self-organizing free
+
+00:13:31.050 --> 00:13:34.740
+software project is challenging to start with, and we're
+
+00:13:34.740 --> 00:13:38.530
+generally people with a bunch of other responsibilities by
+
+00:13:38.530 --> 00:13:43.570
+the time we get to it. So, it's not just, hey, you know,
+
+00:13:43.570 --> 00:13:48.350
+the general herding cats, it's, you know, trying to make it
+
+00:13:48.350 --> 00:13:50.160
+a part of your life, too.
+
+00:13:52.160 --> 00:13:56.570
+That being kind of a, you know, challenging battle, we kind
+
+00:13:56.570 --> 00:14:00.580
+of aligned on some principles that we wanted to adhere to
+
+00:14:00.580 --> 00:14:04.160
+once we started taking the project seriously.
+
+00:14:04.160 --> 00:14:10.640
+Like, you know, particularly recognizing GNU in specific as
+
+00:14:10.640 --> 00:14:14.160
+we focus on giving back to the community.
+
+00:14:15.160 --> 00:14:19.830
+Taking what we learned as Perl programmers and, you know,
+
+00:14:19.830 --> 00:14:23.920
+bringing that spirit forward into our work and maybe
+
+00:14:23.920 --> 00:14:28.830
+specifically support, making sure that we can, you know,
+
+00:14:28.830 --> 00:14:34.160
+write functions for the game in Perl if we want to.
+
+00:14:35.160 --> 00:14:40.250
+And then to use the game as a vehicle to make people look
+
+00:14:40.250 --> 00:14:45.510
+beyond the typically open source – sorry, typically nom
+
+00:14:45.510 --> 00:14:50.290
+inally open source at best, generally pretty closed world of
+
+00:14:50.290 --> 00:14:52.160
+computer gaming.
+
+00:14:52.160 --> 00:14:55.260
+A lot of Windows users out there, a lot of non-free
+
+00:14:55.260 --> 00:14:58.670
+communication tools, and a lot of, you know, a lot of
+
+00:14:58.670 --> 00:15:02.160
+ground to cover from a free software perspective.
+
+00:15:03.160 --> 00:15:08.160
+So what can Emacs do from a gaming standpoint to open that up?
+
+00:15:08.160 --> 00:15:12.960
+And not to mention the hubris of the, you know, the two of
+
+00:15:12.960 --> 00:15:17.600
+us with a few friends basically deciding to take on what
+
+00:15:17.600 --> 00:15:20.160
+amounts to a huge project.
+
+00:15:20.160 --> 00:15:24.080
+You know, we're essentially a year in now and we haven't
+
+00:15:24.080 --> 00:15:29.160
+really gotten over halfway to our minimum play testable candidate.
+
+00:15:30.160 --> 00:15:34.160
+It's a work in progress. We've got a long road to go.
+
+00:15:34.160 --> 00:15:37.310
+There's at least 50 items on the things that we think are
+
+00:15:37.310 --> 00:15:40.390
+critical to be able to introduce it to my younger kids, for
+
+00:15:40.390 --> 00:15:41.160
+example.
+
+00:15:41.160 --> 00:15:48.650
+Okay, so we're in the accomplishments section. So we're
+
+00:15:48.650 --> 00:15:51.700
+supposed to be talking about the things that we have
+
+00:15:51.700 --> 00:15:54.160
+succeeded in doing in our first year.
+
+00:15:55.160 --> 00:15:59.580
+We have succeeded in working with data in org documents,
+
+00:15:59.580 --> 00:16:04.030
+using org mode tables to store the data that we're going to
+
+00:16:04.030 --> 00:16:07.160
+use in the various parts of our game.
+
+00:16:07.160 --> 00:16:14.440
+And we've had a lot of success with svg.el. It started with
+
+00:16:14.440 --> 00:16:18.130
+drawing maps and we have another talk about our mapping
+
+00:16:18.130 --> 00:16:20.160
+specifically coming up next.
+
+00:16:21.160 --> 00:16:25.160
+So we'll put off some of that discussion for a separate talk.
+
+00:16:25.160 --> 00:16:30.050
+But we've also succeeded in getting into a bunch of
+
+00:16:30.050 --> 00:16:36.770
+different elements of the game where we're, you know,
+
+00:16:36.770 --> 00:16:39.340
+making a lot of progress using this drawing engine we
+
+00:16:39.340 --> 00:16:43.360
+developed to also draw this other thing and also draw this
+
+00:16:43.360 --> 00:16:45.160
+other thing and also draw this other thing.
+
+00:16:46.160 --> 00:16:46.160
+And we kind of backed into, we've got this aesthetic
+
+00:16:46.161 --> 00:16:54.750
+and we're using it to draw interfaces for all of the different
+
+00:16:54.750 --> 00:16:56.160
+parts of the game.
+
+00:16:56.160 --> 00:17:08.160
+So let's talk a little bit about what works now.
+
+00:17:11.160 --> 00:17:15.330
+First of all, there's the mapping part that Erik mentioned
+
+00:17:15.330 --> 00:17:19.040
+and we'll jump here into, we'll start opening up some files
+
+00:17:19.040 --> 00:17:20.160
+and looking around.
+
+00:17:20.160 --> 00:17:25.060
+But then also later we'll fire up an IELM and look at some
+
+00:17:25.060 --> 00:17:28.160
+of the other proofs of concept.
+
+00:17:28.160 --> 00:17:31.350
+So hopefully we can pivot the second talk more toward the
+
+00:17:31.350 --> 00:17:34.520
+demos as we skip some of the interactive stuff that might
+
+00:17:34.520 --> 00:17:37.160
+be mentioned in the slides that we go by.
+
+00:17:37.160 --> 00:17:38.160
+Okay.
+
+00:17:38.160 --> 00:17:48.160
+So, maps, visual battleboard.
+
+00:17:48.160 --> 00:17:51.160
+The battleboard...
+
+00:17:51.160 --> 00:17:55.160
+I'm just going to skip it Erik, we'll hit it in the next one.
+
+00:17:55.160 --> 00:17:57.160
+Okay.
+
+00:17:57.160 --> 00:18:03.160
+Hang on.
+
+00:18:05.160 --> 00:18:07.660
+Okay, so I'm just going to go ahead and open up maps and
+
+00:18:07.660 --> 00:18:12.490
+let you talk from the SVG process itself, because that's
+
+00:18:12.490 --> 00:18:15.160
+the interesting part to me.
+
+00:18:15.160 --> 00:18:21.160
+Okay.
+
+00:18:22.160 --> 00:18:26.350
+Talk about the SVG process, like what do you think exactly
+
+00:18:26.350 --> 00:18:31.310
+we want to talk about? How we turn our data into an image
+
+00:18:31.310 --> 00:18:34.160
+or what are you hoping for?
+
+00:18:34.160 --> 00:18:40.140
+Yeah, so I mean did you want to talk more from the hand-d
+
+00:18:40.140 --> 00:18:43.160
+rawn SVG graphics at all?
+
+00:18:43.160 --> 00:18:48.160
+I thought we were going to save that stuff for the pathing talk.
+
+00:18:48.160 --> 00:18:49.160
+Okay, that sounds fine.
+
+00:18:49.160 --> 00:18:50.160
+But we can go into it right now if you want.
+
+00:18:50.160 --> 00:18:54.640
+Yeah, so we've got about 10 minutes before the turn where
+
+00:18:54.640 --> 00:18:58.470
+we thought we would first take any questions that are
+
+00:18:58.470 --> 00:19:00.160
+hanging out there.
+
+00:19:00.160 --> 00:19:04.160
+I unfortunately closed the Etherpad, but I can open it again real quick.
+
+00:19:04.160 --> 00:19:09.850
+Or you can jump into the pathing stuff now, or I can just
+
+00:19:09.850 --> 00:19:14.160
+throw open an IELM and we can start the demos.
+
+00:19:15.160 --> 00:19:20.600
+So let me invite Amin or Sacha back in, or Leo, if any of
+
+00:19:20.600 --> 00:19:23.350
+you want to join the conversation and make a suggestion as
+
+00:19:23.350 --> 00:19:27.160
+to how we balance between the remaining time.
+
+00:19:27.160 --> 00:19:30.300
+The rest of what we have left starts in on toward the
+
+00:19:30.300 --> 00:19:34.250
+technical, so especially if there would be questions about
+
+00:19:34.250 --> 00:19:37.160
+the game right now, that would be awesome.
+
+00:19:37.160 --> 00:19:42.160
+And I'm going to get seated again.
+
+00:19:44.160 --> 00:19:48.870
+I'm not sure if I talk over the stream, if you'll hear it,
+
+00:19:48.870 --> 00:19:57.160
+because I'm just watching your stream, but I can try writing on IRC.
+
+00:20:01.160 --> 00:20:06.140
+Sure, yeah, questions would be cool. Or, yeah, well Erik,
+
+00:20:06.140 --> 00:20:08.980
+why don't you just go ahead and start walking us through
+
+00:20:08.980 --> 00:20:12.000
+the hand drawn SVG stuff just a little bit, because I think
+
+00:20:12.000 --> 00:20:14.950
+if that isn't interesting to people, we can just preempt
+
+00:20:14.950 --> 00:20:16.160
+for a question.
+
+00:20:17.160 --> 00:20:23.010
+Okay, so historically when we decided to actually start
+
+00:20:23.010 --> 00:20:27.080
+writing code, one of the very first things we wanted to do
+
+00:20:27.080 --> 00:20:30.990
+was the maps, because initially it seemed like the maps
+
+00:20:30.990 --> 00:20:34.750
+were going to be one of the biggest challenges in terms of
+
+00:20:34.750 --> 00:20:37.160
+how do we get a text editor to draw pictures for us.
+
+00:20:40.160 --> 00:20:44.350
+So, we pretty quickly decided we wanted to work with SVGs
+
+00:20:44.350 --> 00:20:48.370
+because it allowed us to leverage the power of Emacs as a
+
+00:20:48.370 --> 00:20:53.680
+text editor and a text manipulator to write text graphics
+
+00:20:53.680 --> 00:20:56.160
+with the SVG format.
+
+00:20:56.160 --> 00:20:59.770
+So we did some SVG graphics by hand, we went in and just
+
+00:20:59.770 --> 00:21:03.620
+started hand coding things that looked visually like the
+
+00:21:03.620 --> 00:21:07.300
+maps we used to draw by hand on graph paper when we were,
+
+00:21:07.300 --> 00:21:10.160
+you know, sitting around the table.
+
+00:21:10.160 --> 00:21:13.160
+Yep, absolutely.
+
+00:21:13.160 --> 00:21:17.610
+What emerged from that is as we started working on some of
+
+00:21:17.610 --> 00:21:22.140
+these files, this particular image is a test of some 20
+
+00:21:22.140 --> 00:21:25.910
+wide water with some beaches around it and a special
+
+00:21:25.910 --> 00:21:29.160
+chamber kind of off to the side called a clapper.
+
+00:21:29.160 --> 00:21:32.960
+And this was the way we would code is by sketching by hand
+
+00:21:32.960 --> 00:21:36.940
+all of these things to look right. And then we would take
+
+00:21:36.940 --> 00:21:40.810
+that code and we noticed it became real repetitive as we
+
+00:21:40.810 --> 00:21:45.160
+would go like chunk of water chunk of water chunk of water.
+
+00:21:45.160 --> 00:21:48.860
+And we're like okay so what we really need is to define a
+
+00:21:48.860 --> 00:21:52.620
+set of, we call it tiles, but like you can think of it as
+
+00:21:52.620 --> 00:21:56.660
+rubber stamps where we write this graphics code, and then
+
+00:21:56.660 --> 00:22:01.160
+we're able to repeat it in different places around the map.
+
+00:22:01.160 --> 00:22:05.680
+You want to flip over to code view and show that or do we
+
+00:22:05.680 --> 00:22:09.160
+want to move into. Sure.
+
+00:22:09.160 --> 00:22:10.160
+Code view.
+
+00:22:10.160 --> 00:22:14.700
+So, you know, you can see just really obviously here the
+
+00:22:14.700 --> 00:22:19.240
+only thing that's changing from chunk of water to chunk of
+
+00:22:19.240 --> 00:22:22.160
+water is the x and y coordinates.
+
+00:22:22.160 --> 00:22:26.990
+And, you know, we can skip getting into the SVG directives
+
+00:22:26.990 --> 00:22:31.640
+and how all of the path statements actually work, but you
+
+00:22:31.640 --> 00:22:36.230
+can trust us, all of these D equals and there's m's and h's
+
+00:22:36.230 --> 00:22:41.160
+and V's that turns out to be horizontal lines and vertical
+
+00:22:41.160 --> 00:22:42.160
+lines and cursor moves
+
+00:22:42.160 --> 00:22:46.900
+kind of like turtle graphics if anyone remembers that far
+
+00:22:46.900 --> 00:22:50.910
+back, and we're picking up our pen and dropping it and
+
+00:22:50.910 --> 00:22:54.160
+drawing lines around on our map.
+
+00:22:54.160 --> 00:22:58.090
+Okay, so we do have a few questions if you want to take
+
+00:22:58.090 --> 00:23:01.160
+them now otherwise we can also jump in.
+
+00:23:01.160 --> 00:23:05.160
+Let's get them while they're fresh. Okay, sounds good.
+
+00:23:05.160 --> 00:23:08.540
+So we'll probably shift to question and answer mode for up
+
+00:23:08.540 --> 00:23:12.490
+to 15 minutes here. So if you do have questions, maybe
+
+00:23:12.490 --> 00:23:15.740
+stack rank, go ahead and sort the questions a little for us
+
+00:23:15.740 --> 00:23:18.880
+or comment on them to let us know which ones you want to
+
+00:23:18.880 --> 00:23:21.540
+see us get here if we start getting a little long winded or
+
+00:23:21.540 --> 00:23:23.160
+not just a long, we'll take direction.
+
+00:23:23.160 --> 00:23:26.160
+But thanks for your questions.
+
+00:23:26.160 --> 00:23:30.050
+I'd like to see a demo as well we'll look at that with the
+
+00:23:30.050 --> 00:23:33.160
+remaining time after this question block.
+
+00:23:33.160 --> 00:23:38.000
+More about what the game is okay sure. So let's let's take
+
+00:23:38.000 --> 00:23:42.510
+our one minute each swing at what the game is, you want to
+
+00:23:42.510 --> 00:23:45.160
+go first, I called weapons.
+
+00:23:45.160 --> 00:23:47.160
+Okay.
+
+00:23:47.160 --> 00:23:52.180
+Dungeon is like role playing games, but you don't really do
+
+00:23:52.180 --> 00:23:56.990
+role playing like the, for me the thing the core of being a
+
+00:23:56.990 --> 00:24:01.400
+role playing game is you take on the role of being your
+
+00:24:01.400 --> 00:24:06.500
+character and you play your character and dungeons not like
+
+00:24:06.500 --> 00:24:08.160
+that dungeon.
+
+00:24:08.160 --> 00:24:11.160
+You can play.
+
+00:24:11.160 --> 00:24:14.660
+So, the dungeon party always has eight characters in it.
+
+00:24:14.660 --> 00:24:17.890
+There's four in the front row and four in the back row and
+
+00:24:17.890 --> 00:24:22.160
+you march through the dungeon, fighting, whatever you encounter.
+
+00:24:22.160 --> 00:24:25.700
+And if there's one player you play all eight characters.
+
+00:24:25.700 --> 00:24:29.180
+And depending on how many players you have you split up the
+
+00:24:29.180 --> 00:24:33.160
+party in whatever way seems fair and equitable to everybody.
+
+00:24:33.160 --> 00:24:36.010
+And similarly I said the dungeon is kind of a simple game
+
+00:24:36.010 --> 00:24:38.720
+like there's only three races and there's only three
+
+00:24:38.720 --> 00:24:42.160
+classes, all of your characters are either human elf dwarf.
+
+00:24:42.160 --> 00:24:45.680
+They're all a warrior, a priest or a wizard, and all of
+
+00:24:45.680 --> 00:24:49.400
+these characters have, you know, special properties and
+
+00:24:49.400 --> 00:24:52.820
+special talents, that is why they come together in this
+
+00:24:52.820 --> 00:24:54.160
+party of eight.
+
+00:24:54.160 --> 00:24:57.730
+So essentially dungeon is a game about making up all of
+
+00:24:57.730 --> 00:25:01.530
+these eight characters and stomping through the dungeon
+
+00:25:01.530 --> 00:25:04.160
+killing things taking their stuff.
+
+00:25:04.160 --> 00:25:08.120
+Well you're way over but I don't know how much I have to
+
+00:25:08.120 --> 00:25:12.160
+add to that. I will just add that if, if you're.
+
+00:25:12.160 --> 00:25:15.570
+If one's passion as a dungeon master is killing player
+
+00:25:15.570 --> 00:25:19.210
+characters this game is meant for you. You don't have to
+
+00:25:19.210 --> 00:25:23.050
+build your game like that. But that's definitely a thing
+
+00:25:23.050 --> 00:25:25.160
+that people do with this game.
+
+00:25:25.160 --> 00:25:28.430
+And then as Erik said, it just encourages you to put your
+
+00:25:28.430 --> 00:25:32.160
+creativity on the table to bring all the different elements.
+
+00:25:32.160 --> 00:25:35.830
+Hopefully, this may be clear in our slides since we were a
+
+00:25:35.830 --> 00:25:39.430
+little fumbling for the first few minutes of the talk
+
+00:25:39.431 --> 00:25:44.160
+but there's also a kind of a player's guide that I started a few years ago.
+
+00:25:44.160 --> 00:25:47.950
+That's not super complete, but does cover some
+
+00:25:47.950 --> 00:25:52.160
+of the high level basics of the game that Erik's been talking from.
+
+00:25:52.160 --> 00:25:55.800
+And I would add that some of the things that you know some
+
+00:25:55.800 --> 00:25:58.890
+of what makes dungeon great is that there's a lot of
+
+00:25:58.890 --> 00:26:02.950
+mystery about it, like the player's handbook doesn't tell
+
+00:26:02.950 --> 00:26:07.020
+you all of the rules, or like any really mystery and like
+
+00:26:07.020 --> 00:26:09.160
+there's mazes and there's puzzles,
+
+00:26:09.160 --> 00:26:12.650
+and you have to figure out how things work, and like we've
+
+00:26:12.650 --> 00:26:16.020
+got all of these treasure items in there that could help
+
+00:26:16.020 --> 00:26:20.160
+you deal with a particular monster if it occurs to you to use it.
+
+00:26:20.160 --> 00:26:24.160
+And, you know, like that. There's a lot of.
+
+00:26:24.160 --> 00:26:27.450
+You don't know what's going on you're dropped in the middle
+
+00:26:27.450 --> 00:26:30.680
+of this situation and you have to try and survive and level
+
+00:26:30.680 --> 00:26:33.750
+up and figure it out. And if you succeed in doing that for
+
+00:26:33.750 --> 00:26:36.520
+a long enough eventually you start realizing that there are
+
+00:26:36.520 --> 00:26:40.890
+big picture puzzles that there are, you know, there is more to this than just
+
+00:26:40.890 --> 00:26:43.160
+killing things and taking their stuff.
+
+00:26:43.160 --> 00:26:46.190
+And that's where the joy of designing these games comes in
+
+00:26:46.190 --> 00:26:48.890
+for me is like designing the mazes and designing the
+
+00:26:48.890 --> 00:26:51.890
+puzzles and like, oh yeah and then they're going to come
+
+00:26:51.890 --> 00:26:51.890
+out of this room and you know what they're going to do.
+
+00:26:51.891 --> 00:26:57.160
+They're wanting to go that way.
+
+00:26:57.160 --> 00:27:00.160
+So I'm going to put the trap right there.
+
+00:27:00.160 --> 00:27:00.160
+And I walk right into it every time.
+
+00:27:00.161 --> 00:27:00.161
+And then when the party does get in your map
+
+00:27:00.162 --> 00:27:00.162
+and they do exactly what you thought and they hit the trap
+
+00:27:00.163 --> 00:27:07.820
+it's just really satisfying
+
+00:27:07.820 --> 00:27:07.820
+to watch the look on their little faces
+
+00:27:07.821 --> 00:27:12.160
+as they squirm and struggle to stay alive.
+
+00:27:12.160 --> 00:27:14.580
+Yeah, that's, that's what I was trying to get at. Thanks.
+
+00:27:14.580 --> 00:27:18.160
+All right, that was perfect for me. All right.
+
+00:27:18.160 --> 00:27:21.360
+So so highlight your question for me if you think it's
+
+00:27:21.360 --> 00:27:24.800
+important we grab it here before we jump into demos,
+
+00:27:24.801 --> 00:27:28.160
+but otherwise I think it's time to try running some code.
+
+00:27:28.160 --> 00:27:30.160
+Let's say.
+
+00:27:30.160 --> 00:27:37.160
+Okay, I say do it. Okay, so you less less camera more more emacs now.
+
+00:27:37.160 --> 00:27:40.380
+And hopefully I could find the right emacs the right
+
+00:27:40.380 --> 00:27:43.160
+desktop. All right, there we are.
+
+00:27:43.160 --> 00:27:49.160
+So we'll try to fire up
+
+00:27:49.160 --> 00:27:59.160
+a command right now. And I usually like to do the full path to emacs.
+
+00:27:59.160 --> 00:28:07.160
+When I'm going to run it under minus q.
+
+00:28:07.160 --> 00:28:13.160
+All right.
+
+00:28:13.160 --> 00:28:17.160
+Let's have some IELM.
+
+00:28:17.160 --> 00:28:23.270
+All right, and then I'm also going to do a load file on the
+
+00:28:23.270 --> 00:28:29.790
+net script that you can find in the repository in the emacs
+
+00:28:29.790 --> 00:28:36.160
+user and it's init scripts
+
+00:28:36.160 --> 00:28:41.160
+users folder
+
+00:28:41.160 --> 00:28:48.160
+nice.
+
+00:28:48.160 --> 00:28:51.530
+And it's called init-dm because that happened to fit with
+
+00:28:51.531 --> 00:28:54.160
+my naming scheme, potentially terrible.
+
+00:28:54.160 --> 00:28:54.160
+All right, and with that loaded in theory some very basic stuff will work
+
+00:28:54.161 --> 00:28:54.161
+even without us doing anything in IELM
+
+00:28:54.162 --> 00:29:05.870
+so I think the last thing Erik was talking about
+
+00:29:05.871 --> 00:29:07.160
+was the SVG code behind the maps.
+
+00:29:07.160 --> 00:29:11.800
+There as kind of the technical thread so we'll just fire
+
+00:29:11.800 --> 00:29:15.160
+open the maps, pick a dungeon level.
+
+00:29:15.160 --> 00:29:17.160
+Let's pick a pretty one.
+
+00:29:17.160 --> 00:29:19.160
+Okay, if I show this.
+
+00:29:19.160 --> 00:29:23.160
+Yeah, whatever.
+
+00:29:23.160 --> 00:29:27.160
+Is that the surface. Yeah.
+
+00:29:27.160 --> 00:29:32.740
+And let's scale it here I think if I recall that fun like
+
+00:29:32.740 --> 00:29:36.820
+once, once we got the engine up and running a little bit.
+
+00:29:36.820 --> 00:29:40.870
+We decided to do some experimentation about seeing
+
+00:29:40.871 --> 00:29:47.160
+what we could do to push the limits of our tile engine.
+
+00:29:47.160 --> 00:29:54.450
+So we more or less on the surface map, I basically started
+
+00:29:54.450 --> 00:29:54.450
+with almost no tiles from below like the water
+
+00:29:54.451 --> 00:30:01.370
+and the beaches and the general store and the stairs were existing tiles
+
+00:30:01.371 --> 00:30:04.730
+but then we were like this is going to be surface maps.
+
+00:30:04.731 --> 00:30:07.160
+We're outdoors so I want hills
+
+00:30:07.160 --> 00:30:11.150
+and I want trees, and I want grass, and it took a little
+
+00:30:11.150 --> 00:30:15.430
+while playing with SVG to come up with some acceptable code,
+
+00:30:15.430 --> 00:30:19.610
+but once the like the grass gets tiled out, it kind of,
+
+00:30:19.610 --> 00:30:24.510
+you know, gives the illusion of grass, and, you know, these
+
+00:30:24.510 --> 00:30:25.160
+are all in my estimation
+
+00:30:25.160 --> 00:30:29.970
+of crude graphics, but we're at the proof of concept stage,
+
+00:30:29.970 --> 00:30:34.130
+and it definitely proves that we can use our graphics
+
+00:30:34.130 --> 00:30:38.490
+engine to decide what we want our maps to look like, and
+
+00:30:38.490 --> 00:30:42.970
+real quickly compose new map tiles and stamp out a bunch of
+
+00:30:42.970 --> 00:30:44.160
+new maps.
+
+00:30:44.160 --> 00:30:48.050
+So now I'll show off one of the other things. So the next
+
+00:30:48.050 --> 00:30:51.680
+thing we did once we once we had the maps doing, and we
+
+00:30:51.680 --> 00:30:56.040
+haven't gotten into the features of the maps we can we can
+
+00:30:56.040 --> 00:30:59.200
+appoint time to that or not, but there are a number of
+
+00:30:59.200 --> 00:31:01.160
+features there that we can look at.
+
+00:31:01.160 --> 00:31:06.310
+The, we then wanted to try to see if that could make other
+
+00:31:06.310 --> 00:31:11.550
+interfaces more appealing so we built stuff like, that's
+
+00:31:11.550 --> 00:31:14.160
+going to be the map again.
+
+00:31:14.160 --> 00:31:18.580
+I'll just run it here through I am so it's more obvious
+
+00:31:18.580 --> 00:31:20.160
+what I'm doing.
+
+00:31:20.160 --> 00:31:23.160
+So let's look next to the character sheet.
+
+00:31:23.160 --> 00:31:27.160
+Oops.
+
+00:31:27.160 --> 00:31:33.160
+And alt P doesn't work. Okay.
+
+00:31:33.160 --> 00:31:35.160
+That's a bummer.
+
+00:31:35.160 --> 00:31:38.160
+That is not auto loaded.
+
+00:31:38.160 --> 00:31:41.120
+So this, this project is a bit of a mess right now, y'all,
+
+00:31:41.120 --> 00:31:43.800
+it does some stuff that's really exciting to us but the
+
+00:31:43.800 --> 00:31:46.560
+code is terrible and we need all the help we can get being
+
+00:31:46.560 --> 00:31:49.160
+told what our problems are and how to fix them.
+
+00:31:49.160 --> 00:31:53.160
+So that is if you take nothing away from this talk.
+
+00:31:53.160 --> 00:32:00.160
+Take away from it that we could use your help.
+
+00:32:00.160 --> 00:32:03.692
+Yeah, that doubles back to when we were talking about
+
+00:32:03.693 --> 00:32:07.800
+Larry Wall's cardinal virtues of programming like we definitely
+
+00:32:07.800 --> 00:32:11.160
+took on some hubris, thinking we could do this.
+
+00:32:11.160 --> 00:32:14.300
+We might not be wrong, but we could do it easier with more
+
+00:32:14.300 --> 00:32:18.160
+hands, you know, many hands make light work. All right.
+
+00:32:18.160 --> 00:32:21.160
+I'll bite.
+
+00:32:21.160 --> 00:32:24.580
+Yeah, and the character she won't load for us today I had
+
+00:32:24.580 --> 00:32:27.880
+some problems with my version control I had to revert my
+
+00:32:27.880 --> 00:32:31.290
+thing I threw all my local changes in a stash and it's it's
+
+00:32:31.290 --> 00:32:35.160
+a terrible mess let's look at stuff I tested already today.
+
+00:32:35.160 --> 00:32:40.160
+Before you got the battle board available.
+
+00:32:40.160 --> 00:32:42.160
+Let's find out.
+
+00:32:42.160 --> 00:32:46.160
+First of all, the library.
+
+00:32:46.160 --> 00:32:57.160
+In fact, actually, your basic require should work.
+
+00:32:57.160 --> 00:32:59.160
+No.
+
+00:32:59.160 --> 00:33:03.490
+You can try a load library. You know what, let's, I'm just
+
+00:33:03.490 --> 00:33:07.350
+going to go ahead and give it to you as a lab beast, since
+
+00:33:07.350 --> 00:33:10.160
+that's probably more fun to watch.
+
+00:33:10.160 --> 00:33:16.570
+So we'll take it from my own and this is more likely to be
+
+00:33:16.570 --> 00:33:17.160
+healthy.
+
+00:33:17.160 --> 00:33:19.160
+Since only some of the time.
+
+00:33:19.160 --> 00:33:25.160
+First we have to control x, all the IDM.
+
+00:33:25.160 --> 00:33:30.360
+All right, and having then loaded the net control you have
+
+00:33:30.360 --> 00:33:35.550
+nine should give me the maps, and we can verify things work
+
+00:33:35.550 --> 00:33:39.160
+in a basic way just by changing level.
+
+00:33:39.160 --> 00:33:44.160
+Let's look at something else.
+
+00:33:44.160 --> 00:33:49.380
+I mentioned, there were a number of bindings, show them
+
+00:33:49.380 --> 00:33:50.160
+briefly.
+
+00:33:50.160 --> 00:33:55.820
+We wrote our own functions to handle movement. Some of
+
+00:33:55.820 --> 00:34:00.872
+those in SVG dot el the left, left and right movements
+
+00:34:00.873 --> 00:34:07.160
+didn't seem to work quite quite likely coding, of course.
+
+00:34:07.160 --> 00:34:10.160
+Um, all right, enough.
+
+00:34:10.160 --> 00:34:13.160
+So let's, let's see if battle board works now.
+
+00:34:13.160 --> 00:34:16.160
+I really thought that was on F7.
+
+00:34:16.160 --> 00:34:19.160
+Up that's the character sheet suite.
+
+00:34:19.160 --> 00:34:25.160
+Okay, how to use your bindings.
+
+00:34:25.160 --> 00:34:28.160
+So that looks a little better.
+
+00:34:28.160 --> 00:34:34.160
+So let's talk about the character sheet.
+
+00:34:34.160 --> 00:34:36.160
+Yeah.
+
+00:34:36.160 --> 00:34:40.570
+So the character sheet was our first big repurposing of the
+
+00:34:40.570 --> 00:34:45.160
+engine that we couldn't do the battle board program that.
+
+00:34:45.160 --> 00:34:54.160
+Let's see if that runs now to.
+
+00:34:54.160 --> 00:35:01.160
+It's not interactive if it does.
+
+00:35:01.160 --> 00:35:05.160
+Good.
+
+00:35:05.160 --> 00:35:09.160
+So,
+
+00:35:09.160 --> 00:35:12.360
+try smex guess? No joy. All right, I'm not sure what's
+
+00:35:12.360 --> 00:35:14.160
+up with the battle board Erik.
+
+00:35:14.160 --> 00:35:17.190
+We haven't messed with that one for a while in fact we had
+
+00:35:17.190 --> 00:35:20.270
+discussed using its code as an example so maybe we'll debug
+
+00:35:20.270 --> 00:35:21.160
+it with you.
+
+00:35:21.160 --> 00:35:24.160
+I'll certainly check for questions first.
+
+00:35:24.160 --> 00:35:29.740
+Um, the. So the character sheet which is not scaling
+
+00:35:29.740 --> 00:35:31.160
+ideally here.
+
+00:35:31.160 --> 00:35:36.160
+See if reloading it does anything.
+
+00:35:36.160 --> 00:35:37.160
+Nope.
+
+00:35:37.160 --> 00:35:40.660
+As far as I can tell, assuming you don't have this
+
+00:35:40.660 --> 00:35:43.160
+implemented character sheet.
+
+00:35:43.160 --> 00:35:49.800
+That's right, there's everything in scale, it take in order
+
+00:35:49.800 --> 00:35:54.160
+to get what you were looking at there.
+
+00:35:54.160 --> 00:35:56.160
+All right.
+
+00:35:56.160 --> 00:36:03.201
+This, this whole thing is hard coded, basically to the
+
+00:36:03.202 --> 00:36:08.160
+gills, except for things like this.
+
+00:36:08.160 --> 00:36:11.780
+This program represents a re implementation of the drawing
+
+00:36:11.780 --> 00:36:17.420
+engine using all of the same things. Let's see that
+
+00:36:17.420 --> 00:36:20.160
+selected so
+
+00:36:20.160 --> 00:36:23.160
+we'll just try bringing up a map again.
+
+00:36:23.160 --> 00:36:27.180
+There's one and you'll notice DM map doesn't know anything
+
+00:36:27.180 --> 00:36:31.240
+about the new draw engine, and there are a couple of places
+
+00:36:31.240 --> 00:36:35.160
+where the new draw engine is still hooked in to the.
+
+00:36:35.160 --> 00:36:38.250
+For example, particularly the sizing of the graph paper
+
+00:36:38.250 --> 00:36:43.160
+background. So I've started the work in DM draw.
+
+00:36:44.160 --> 00:36:47.950
+Of trying to show how exactly we did this removing the, how
+
+00:36:47.950 --> 00:36:51.040
+did we get data out of org mode that I talked about
+
+00:36:51.040 --> 00:36:56.410
+yesterday with our ETL flows, and just focusing on what how
+
+00:36:56.410 --> 00:37:00.580
+did we solve the problem of predicated drawing, which I
+
+00:37:00.580 --> 00:37:04.290
+realized we didn't really talk about so should I jump into
+
+00:37:04.290 --> 00:37:05.160
+that.
+
+00:37:05.160 --> 00:37:06.160
+Yeah, I guess.
+
+00:37:06.160 --> 00:37:09.160
+How are we on time, we have time for detours.
+
+00:37:09.160 --> 00:37:12.450
+Um, yeah, it looks like we could spend two or three minutes
+
+00:37:12.450 --> 00:37:15.160
+on that and then come back for the questions.
+
+00:37:15.160 --> 00:37:18.160
+Cool.
+
+00:37:18.160 --> 00:37:21.440
+And I'm just going to peek into my org mode into my chat
+
+00:37:21.440 --> 00:37:24.970
+conference and I don't see anybody talking to me from the
+
+00:37:24.970 --> 00:37:29.160
+organizer channel, so I'm gonna assume that's a good guess.
+
+00:37:29.160 --> 00:37:33.700
+All right, so let's go ahead and play with the map a
+
+00:37:33.700 --> 00:37:38.170
+little then that is pretty fun and so much fun that we
+
+00:37:38.170 --> 00:37:42.640
+had to curtail play sessions in order to keep working on
+
+00:37:42.640 --> 00:37:44.160
+the project.
+
+00:37:44.160 --> 00:37:52.160
+So, I'll, I'll do the.
+
+00:37:52.160 --> 00:37:58.516
+Um, we'll try to find something different from any gift
+
+00:37:58.517 --> 00:38:01.160
+I've shared here right.
+
+00:38:01.160 --> 00:38:06.160
+So here we are in a random. Go ahead, Erik, you feel.
+
+00:38:06.160 --> 00:38:10.660
+Okay, so what we're, what Corwin is doing here is he's
+
+00:38:10.660 --> 00:38:15.380
+about to put the map into play mode, which is going to turn
+
+00:38:15.380 --> 00:38:17.160
+on the fog of war.
+
+00:38:17.160 --> 00:38:21.100
+And then we're going to use the fog of war and the, the
+
+00:38:21.100 --> 00:38:25.230
+play mode to kind of reveal the map, one square at a time
+
+00:38:25.230 --> 00:38:28.160
+like we would during a play session.
+
+00:38:28.160 --> 00:38:32.350
+So we'll just drop the party randomly somewhere onto this
+
+00:38:32.350 --> 00:38:36.160
+map looks like we're on alpha maze level three here.
+
+00:38:36.160 --> 00:38:46.160
+And then we'll walk around a little.
+
+00:38:46.160 --> 00:38:52.280
+Okay, so we're halfway there. I'll have to, I'll have to do
+
+00:38:52.280 --> 00:38:55.540
+a full redraw the sketch the sketching stuff has has has
+
+00:38:55.540 --> 00:38:58.980
+broken things here like I said, the two aren't separated
+
+00:38:58.980 --> 00:39:01.910
+once I run them in the same instance, they're not
+
+00:39:01.910 --> 00:39:03.160
+predictable.
+
+00:39:03.160 --> 00:39:08.060
+Okay, so let me elaborate here when he says the sketching
+
+00:39:08.060 --> 00:39:12.960
+stuff. The current focus of our work is to turn all of this
+
+00:39:12.960 --> 00:39:17.940
+map stuff we've got into a basically a WYSIWYG map editor,
+
+00:39:17.940 --> 00:39:22.330
+where we can get into the tiles, and we'll be able to
+
+00:39:22.330 --> 00:39:24.160
+select the tile and basically rubber
+
+00:39:24.160 --> 00:39:30.510
+stamp it into a map graphically, and then save the map file
+
+00:39:30.510 --> 00:39:36.470
+out and load it back in later, so that we're able to just
+
+00:39:36.470 --> 00:39:40.160
+pound out these maps real fast.
+
+00:39:40.160 --> 00:39:44.480
+Using a graphical editor rather than having to hand code
+
+00:39:44.480 --> 00:39:48.160
+every symbol and every square of the tables.
+
+00:39:48.160 --> 00:39:51.160
+So the process of doing that.
+
+00:39:51.160 --> 00:39:56.190
+I hate them on things are a mess we've got covers off those
+
+00:39:56.190 --> 00:40:03.160
+wires hanging out different stuff works on different days.
+
+00:40:03.160 --> 00:40:06.860
+Well, I will say in our defense this is exactly why we
+
+00:40:06.860 --> 00:40:10.880
+staged a complicated thing, and probably we should have
+
+00:40:10.880 --> 00:40:14.510
+just gone with that instead of trying to give you the
+
+00:40:14.510 --> 00:40:18.460
+experience of, of what it's like to use Emacs to do this
+
+00:40:18.460 --> 00:40:21.160
+which is sort of the last
+
+00:40:21.160 --> 00:40:26.450
+thought there and my apologies for that if that's made it
+
+00:40:26.450 --> 00:40:31.650
+harder to follow the thread. Let's check back now for
+
+00:40:31.650 --> 00:40:37.160
+questions and see if anybody wants to redirect at all.
+
+00:40:37.160 --> 00:40:41.438
+Oh yep, this. So what you're looking at all uses
+
+00:40:41.439 --> 00:40:46.860
+progrmamatic SVG generation for question number four there,
+
+00:40:46.860 --> 00:40:52.160
+have you played with generating SVGs programmatically in Emacs.
+
+00:40:52.160 --> 00:40:58.160
+That is what the maps are doing in terms of
+
+00:40:58.160 --> 00:41:01.860
+being more explicit about that we started hand coding
+
+00:41:01.860 --> 00:41:05.650
+things and once we got the, the idea of what the code was
+
+00:41:05.650 --> 00:41:10.160
+going to look like we switched to doing it programmatically.
+
+00:41:10.160 --> 00:41:13.330
+So, we were going to open up maybe now we've got time we
+
+00:41:13.330 --> 00:41:16.910
+can get into the tileset real quick. Sure, we definitely
+
+00:41:16.910 --> 00:41:19.820
+didn't do any of the pathing slides and so now we've
+
+00:41:19.820 --> 00:41:23.160
+skipped over some stuff we were going to present.
+
+00:41:23.160 --> 00:41:27.030
+Yeah, that's right we skipped a whole bunch of slides and I
+
+00:41:27.030 --> 00:41:31.160
+can certainly go back to them they're open here obviously.
+
+00:41:31.160 --> 00:41:34.110
+I'm right I was just showing off the sketching tool,
+
+00:41:34.110 --> 00:41:37.530
+briefly in that context but I think you're right, let's, we
+
+00:41:37.530 --> 00:41:40.800
+can jump over to the actually I should finish with this now
+
+00:41:40.800 --> 00:41:42.160
+having teased it.
+
+00:41:42.160 --> 00:41:46.970
+So let's do the same thing here Ctrl H M, and you'll see in
+
+00:41:46.970 --> 00:41:52.160
+this case there are very few key bindings that are set up.
+
+00:41:52.160 --> 00:41:57.320
+This shift delete has a terror or shift with a control
+
+00:41:57.320 --> 00:42:01.920
+delete, it would seem to be. So that has a couple obvious
+
+00:42:01.920 --> 00:42:06.590
+bugs with it right didn't pick it didn't pick up those
+
+00:42:06.590 --> 00:42:12.160
+control points until I reuse them not clearing that stack.
+
+00:42:12.160 --> 00:42:16.720
+I think we can also should probably think about whether the
+
+00:42:16.720 --> 00:42:21.060
+origin should return and hey marking that origin would be
+
+00:42:21.060 --> 00:42:25.370
+nice. So there's a tremendous amount to do here this is
+
+00:42:25.370 --> 00:42:30.090
+just showing that it is possible to use, essentially like a
+
+00:42:30.090 --> 00:42:31.160
+touch input to,
+
+00:42:31.160 --> 00:42:40.730
+yeah, and then also we can switch over to our place tool,
+
+00:42:40.730 --> 00:42:46.830
+and hopefully we can get a nice big menu of all the tiles that
+
+00:42:46.830 --> 00:42:50.160
+Erik prepared for the game maps.
+
+00:42:50.160 --> 00:42:55.160
+That was probably a terrible choice but there you have just
+
+00:42:55.160 --> 00:42:57.160
+a bit of corridor right.
+
+00:42:57.160 --> 00:43:01.160
+That looks.
+
+00:43:01.160 --> 00:43:03.160
+And even the click.
+
+00:43:03.160 --> 00:43:06.870
+Yep, and this click action here is the last thing I
+
+00:43:06.870 --> 00:43:10.510
+was working on before I dropped everything to build the
+
+00:43:10.510 --> 00:43:14.160
+decks that we will soon share for this conference.
+
+00:43:14.160 --> 00:43:20.160
+So okay, back to the tile sets.
+
+00:43:20.160 --> 00:43:24.130
+So the way we approached drawing it programmatically is we
+
+00:43:24.130 --> 00:43:28.160
+broke our code up into little snippets we called tiles.
+
+00:43:28.160 --> 00:43:31.240
+And so this is where I was going to open up the tiles out
+
+00:43:31.240 --> 00:43:34.610
+here, basically each tile has a name, and then with that
+
+00:43:34.610 --> 00:43:38.160
+name we place data into different layers of the image.
+
+00:43:38.160 --> 00:43:43.290
+Some of the layers are just SVG paths, and the data is just
+
+00:43:43.290 --> 00:43:48.430
+SVG commands, like we saw in that handwritten code, and
+
+00:43:48.430 --> 00:43:53.560
+some of it is compositions of other tiles, so a tile can be
+
+00:43:53.560 --> 00:43:56.160
+made up of other tiles.
+
+00:43:56.160 --> 00:44:00.270
+Furthermore, some of these tiles have conditional code in
+
+00:44:00.270 --> 00:44:04.460
+it, where like some of this stuff is talking about elf and
+
+00:44:04.460 --> 00:44:05.160
+bang elf.
+
+00:44:05.160 --> 00:44:09.540
+So the map is going to be drawn differently depending on
+
+00:44:09.540 --> 00:44:13.160
+whether or not there's elves in the party.
+
+00:44:13.160 --> 00:44:17.160
+So, and that's the demo they broke.
+
+00:44:17.160 --> 00:44:20.160
+So the engine has to make all those decisions.
+
+00:44:20.160 --> 00:44:22.887
+And that's what we're calling predicated drawing. Oh, there's
+
+00:44:22.888 --> 00:44:26.810
+a special room here. Do you have any elves? You do. So I
+
+00:44:26.810 --> 00:44:33.160
+draw it the "there is elves" way.
+
+00:44:33.160 --> 00:44:37.440
+Yeah, so we built up the set of tiles, and then we
+
+00:44:37.440 --> 00:44:42.450
+basically made map files, which take our map and break it
+
+00:44:42.450 --> 00:44:46.840
+up into XY grids, and then we drop these tiles into
+
+00:44:46.840 --> 00:44:49.160
+positions on the map.
+
+00:44:49.160 --> 00:44:52.060
+So we can use the same tile square after square after
+
+00:44:52.060 --> 00:44:55.470
+square. When there's a corridor north-south, it's the same
+
+00:44:55.470 --> 00:44:59.980
+tile over and over again. And that makes it easy to reuse
+
+00:44:59.980 --> 00:45:01.160
+the code.
+
+00:45:01.160 --> 00:45:12.370
+And also, when we go to present the -- what am I trying to
+
+00:45:12.370 --> 00:45:16.180
+say -- the drawing in fog of war mode, as we move down the
+
+00:45:16.180 --> 00:45:20.280
+corridor, we can just add the necessary code one bit at a
+
+00:45:20.280 --> 00:45:24.160
+time to the visible image, so that what we're displaying
+
+00:45:24.160 --> 00:45:28.160
+doesn't contain any data except what the party has already
+
+00:45:28.160 --> 00:45:30.160
+discovered.
+
+00:45:30.160 --> 00:45:34.720
+And thus we have kind of spoiler-rich documents sitting on
+
+00:45:34.720 --> 00:45:39.120
+the GM server, and then less -- and spoiler-free data that
+
+00:45:39.120 --> 00:45:43.160
+flows down to the org mode files on the player system.
+
+00:45:43.160 --> 00:45:47.660
+And the only real challenge is making sure that nothing
+
+00:45:47.660 --> 00:45:52.230
+that the game does can mess with the users -- the players'
+
+00:45:52.230 --> 00:45:56.610
+data file, in case they might have their own notes and
+
+00:45:56.610 --> 00:46:03.800
+things in it. That would be the one, you know, number one
+
+00:46:03.800 --> 00:46:06.160
+thing to avoid.
+
+00:46:06.160 --> 00:46:09.200
+Another thing we can talk about here is that there are
+
+00:46:09.200 --> 00:46:12.350
+layers. You can see this table at the bottom has tile and
+
+00:46:12.350 --> 00:46:16.860
+overlay. The overlay column is just going to contain some
+
+00:46:16.860 --> 00:46:19.160
+actual SVG XML style tags.
+
+00:46:19.160 --> 00:46:23.100
+So that's where we can add whatever text elements or other
+
+00:46:23.100 --> 00:46:27.120
+SVG, like raw SVG tags we want. Whereas a lot of the other
+
+00:46:27.120 --> 00:46:30.980
+layers are going to be like path layers, we've got water
+
+00:46:30.980 --> 00:46:33.160
+layers and beach layers.
+
+00:46:33.160 --> 00:46:36.370
+And our plan was to have a style sheet that defines how
+
+00:46:36.370 --> 00:46:39.790
+each of those layers are represented. So like when the
+
+00:46:39.790 --> 00:46:43.140
+water gets drawn blue and it's got arrows on it giving it
+
+00:46:43.140 --> 00:46:47.140
+direction, all of that can be customized with a style sheet
+
+00:46:47.140 --> 00:46:50.160
+to change the water to be whatever you want.
+
+00:46:50.160 --> 00:46:53.430
+And like we have beaches as yellow, but maybe you like
+
+00:46:53.430 --> 00:46:56.160
+beaches as red or, you know, whatever.
+
+00:46:56.160 --> 00:47:03.570
+So we also built some test programs and various -- I'm not
+
+00:47:03.570 --> 00:47:05.900
+sure what kind of shape we're going to find these in, but
+
+00:47:05.900 --> 00:47:07.160
+we can try running them.
+
+00:47:07.160 --> 00:47:13.950
+Here, for example, is just a very basic -- using the same
+
+00:47:13.950 --> 00:47:21.160
+file to define the tiles and then the layout, so to speak.
+
+00:47:21.160 --> 00:47:25.160
+Oh, look at that.
+
+00:47:25.160 --> 00:47:29.160
+There's the layout. Okay, so that actually looks fine. Tile.
+
+00:47:29.160 --> 00:47:33.430
+And it's path. So this is defining a tile named "seas" and
+
+00:47:33.430 --> 00:47:37.160
+it's going to have a list of tiles defined above.
+
+00:47:37.160 --> 00:47:41.120
+And you'll notice also that we can just sort of freely
+
+00:47:41.120 --> 00:47:44.750
+define and redefine and it sort of figures out, oh, this
+
+00:47:44.750 --> 00:47:47.160
+must still be part of the B row.
+
+00:47:47.160 --> 00:48:00.160
+We could also have done this.
+
+00:48:00.160 --> 00:48:08.160
+Okay, so this would work as would this.
+
+00:48:08.160 --> 00:48:11.930
+>> Early on in development when we were talking about
+
+00:48:11.930 --> 00:48:16.520
+getting data in and out of these org tables, it was kind of
+
+00:48:16.520 --> 00:48:22.160
+a priority to us to leave the way the data is organized
+
+00:48:22.160 --> 00:48:25.160
+open to the users and to the dungeon masters.
+
+00:48:25.160 --> 00:48:30.860
+So while we set our tile set apart from our map sets, this
+
+00:48:30.860 --> 00:48:36.430
+clearly shows that you can cram a tile set and a map into a
+
+00:48:36.430 --> 00:48:38.160
+single file.
+
+00:48:38.160 --> 00:48:41.170
+So in situations like the surface where we're using
+
+00:48:41.170 --> 00:48:44.610
+different tiles from other maps, maybe it makes sense to
+
+00:48:44.610 --> 00:48:47.890
+move, you know, those tiles just into the file with your
+
+00:48:47.890 --> 00:48:49.160
+map.
+
+00:48:49.160 --> 00:48:51.880
+But we also wanted to make sure, like, it's hard for us to
+
+00:48:51.880 --> 00:48:54.640
+predict how other people are going to want to use this when
+
+00:48:54.640 --> 00:48:56.160
+they design their games.
+
+00:48:56.160 --> 00:49:00.780
+So we wanted to leave it as versatile as possible about how
+
+00:49:00.780 --> 00:49:02.160
+you can use it.
+
+00:49:02.160 --> 00:49:04.810
+>> Where it matters, right? Not support every feature in
+
+00:49:04.810 --> 00:49:05.160
+the world.
+
+00:49:05.160 --> 00:49:08.560
+I can't count the number of times I said, Erik, Erik, Erik,
+
+00:49:08.560 --> 00:49:12.000
+hey, if we do it like this, people will be -- and he just,
+
+00:49:12.000 --> 00:49:14.160
+like, does it have to do that?
+
+00:49:14.160 --> 00:49:19.090
+Like, do we need it right away? Do you have to really
+
+00:49:19.090 --> 00:49:21.160
+rewrite everything so it can all do that?
+
+00:49:21.160 --> 00:49:26.160
+And a lot of those conversations, too.
+
+00:49:26.160 --> 00:49:30.160
+But the key flexibilities are really there.
+
+00:49:30.160 --> 00:49:32.160
+People might want to use a lot of different files.
+
+00:49:32.160 --> 00:49:34.160
+They might want to lay the tables out however they want.
+
+00:49:34.160 --> 00:49:37.590
+They have to be able to say, hey, this is a table that has
+
+00:49:37.590 --> 00:49:40.950
+data that's controlled by the game, and everything else in
+
+00:49:40.950 --> 00:49:43.160
+the file is not the game's problem.
+
+00:49:43.160 --> 00:49:45.980
+>> And our table, some of our tables started getting really
+
+00:49:45.980 --> 00:49:48.160
+wide, so we started striping the tables.
+
+00:49:48.160 --> 00:49:52.140
+We'll repeat the same table over and over and over again to
+
+00:49:52.140 --> 00:49:56.180
+get all of the columns in there without making it, you know,
+
+00:49:56.180 --> 00:49:58.160
+a million miles wide.
+
+00:49:58.160 --> 00:49:59.160
+>> Yeah.
+
+00:49:59.160 --> 00:50:02.450
+Do you want to -- should I go ahead and pull open, like, a
+
+00:50:02.450 --> 00:50:04.160
+level here, do you think?
+
+00:50:04.160 --> 00:50:05.160
+>> Sure.
+
+00:50:05.160 --> 00:50:06.160
+>> Just to have shown it.
+
+00:50:06.160 --> 00:50:08.750
+>> The file set's a great example of striped tables if you
+
+00:50:08.750 --> 00:50:11.160
+look down, like, in the level change feature.
+
+00:50:11.160 --> 00:50:18.160
+>> Oh, sure.
+
+00:50:18.160 --> 00:50:21.160
+>> Sorry, I'm not quite sitting well to my keyboard here.
+
+00:50:21.160 --> 00:50:30.160
+I can just readjust things real quick.
+
+00:50:30.160 --> 00:50:33.920
+So what, you know, you can see here, like, some of these
+
+00:50:33.920 --> 00:50:38.160
+tables got real wide when we're stuffing SVG tags into them.
+
+00:50:38.160 --> 00:50:44.160
+And what we -- oh, maybe it's not in these.
+
+00:50:44.160 --> 00:50:50.160
+I thought it was.
+
+00:50:50.160 --> 00:50:51.160
+It's special, probably.
+
+00:50:51.160 --> 00:50:52.160
+>> Yeah.
+
+00:50:52.160 --> 00:50:54.160
+No, there it is, yeah.
+
+00:50:54.160 --> 00:50:55.160
+It was in level change.
+
+00:50:55.160 --> 00:50:57.160
+It does the table key repeat.
+
+00:50:57.160 --> 00:50:58.160
+>> Okay, great.
+
+00:50:58.160 --> 00:50:59.720
+>> You were just scrolling up and down so fast I didn't
+
+00:50:59.720 --> 00:51:00.160
+realize.
+
+00:51:00.160 --> 00:51:04.270
+So this first table, we've got path and what is that,
+
+00:51:04.270 --> 00:51:05.160
+stairs?
+
+00:51:05.160 --> 00:51:09.010
+So the stairs level is one that draws in, like, a pink
+
+00:51:09.010 --> 00:51:13.160
+color to highlight places where you can change level.
+
+00:51:13.160 --> 00:51:16.120
+And then if we scroll down to the second half of this
+
+00:51:16.120 --> 00:51:19.380
+section, the second table is going to have all of these
+
+00:51:19.380 --> 00:51:24.000
+same tiles in it, but instead of path and stairs, we're
+
+00:51:24.000 --> 00:51:27.160
+going to have other columns.
+
+00:51:27.160 --> 00:51:31.160
+Can we see the next table?
+
+00:51:31.160 --> 00:51:32.160
+There we go.
+
+00:51:32.160 --> 00:51:35.610
+So the same tiles, only here we've got overlay,
+
+00:51:35.610 --> 00:51:38.160
+documentation, and behavior.
+
+00:51:38.160 --> 00:51:40.160
+And I guess we haven't talked about this at all.
+
+00:51:40.160 --> 00:51:44.920
+The behavior column was our concept of a way that we could
+
+00:51:44.920 --> 00:51:50.100
+attach functions, basically, to these different areas of
+
+00:51:50.100 --> 00:51:51.160
+the map.
+
+00:51:51.160 --> 00:51:55.920
+Because sometimes when you enter an area, we want it to do
+
+00:51:55.920 --> 00:51:57.160
+something.
+
+00:51:57.160 --> 00:52:00.880
+Like when you enter a stairs down, maybe we want it to
+
+00:52:00.880 --> 00:52:04.850
+change to the next level and draw the stairs up behind you
+
+00:52:04.850 --> 00:52:08.160
+and draw you where you are on the next level.
+
+00:52:08.160 --> 00:52:13.470
+So these are like hooks where we could attach functions or,
+
+00:52:13.470 --> 00:52:18.390
+you know, macros or whatever to make the map have these
+
+00:52:18.390 --> 00:52:23.160
+behaviors as we get further towards automation.
+
+00:52:23.160 --> 00:52:25.160
+Cool.
+
+00:52:25.160 --> 00:52:31.160
+So that's that should be pretty close to our time.
+
+00:52:31.160 --> 00:52:34.160
+Questions or just say goodbye.
+
+00:52:34.160 --> 00:52:38.160
+Yeah, so there's the I'm sorry we couldn't show it earlier.
+
+00:52:38.160 --> 00:52:41.160
+There is the battle board.
+
+00:52:41.160 --> 00:52:46.160
+And so this is used just to keep track of hit points.
+
+00:52:46.160 --> 00:52:50.540
+So with this example, battle board, dm battle board.el,
+
+00:52:50.540 --> 00:52:54.590
+there's there's a complete example of not only in a single
+
+00:52:54.590 --> 00:52:58.430
+file reaper, we filling out the tell the cells and the
+
+00:52:58.430 --> 00:53:03.720
+tiles, but then coming in and keeping the org mode file in
+
+00:53:03.720 --> 00:53:06.160
+sync with with clicks.
+
+00:53:06.160 --> 00:53:11.040
+So, and I can press the star key and set my damage to minus
+
+00:53:11.040 --> 00:53:14.160
+one and take the damage back off.
+
+00:53:14.160 --> 00:53:17.770
+I just haven't spent a lot of time building up fancy bind
+
+00:53:17.770 --> 00:53:21.620
+ings for this, you'll also find that the crew probably find
+
+00:53:21.620 --> 00:53:25.270
+how I figure out what was clicked on in the code hard, but
+
+00:53:25.270 --> 00:53:30.010
+if I just assign something recognizable for damage, and
+
+00:53:30.010 --> 00:53:33.160
+then come into.
+
+00:53:33.160 --> 00:53:39.030
+It will now have opened the org mode file behind the scenes
+
+00:53:39.030 --> 00:53:41.160
+because it's changing it.
+
+00:53:41.160 --> 00:53:48.340
+And we can then look at that file a little bit and
+
+00:53:48.340 --> 00:53:54.130
+hopefully that is on large enough you can kind of see there
+
+00:53:54.130 --> 00:53:57.160
+'s our 17 damage landed in armor.
+
+00:53:57.160 --> 00:54:04.200
+The logic that sits behind that to figure out the part of
+
+00:54:04.200 --> 00:54:10.160
+the screen is not necessarily our finest work.
+
+00:54:10.160 --> 00:54:12.960
+But it does work and that's one kind of stuff was used on
+
+00:54:12.960 --> 00:54:16.030
+the map a little bit too. We didn't really get to show that
+
+00:54:16.030 --> 00:54:18.970
+in the demo but as you're scrolling around there's like a
+
+00:54:18.970 --> 00:54:22.160
+highlighter that that, you know, we were drawing on.
+
+00:54:22.160 --> 00:54:26.160
+Oh sure, show you which square you've got selected.
+
+00:54:26.160 --> 00:54:30.300
+We were having trouble with that code. Initially, and we
+
+00:54:30.300 --> 00:54:33.160
+were sometimes revealing the wrong.
+
+00:54:33.160 --> 00:54:38.160
+Okay.
+
+00:54:38.160 --> 00:54:41.320
+And I don't know how we're set for time but I just saw a
+
+00:54:41.320 --> 00:54:45.240
+message from Trixie that she could jump on if we want her.
+
+00:54:45.240 --> 00:54:48.290
+Oh, that would be amazing. Yeah, go ahead and invite her in
+
+00:54:48.290 --> 00:54:51.160
+I'll just cut to the scene as soon as she's in.
+
+00:54:51.160 --> 00:54:54.160
+I think.
+
+00:54:54.160 --> 00:54:58.080
+Yeah, so we're reaching the ask me anything portion of the
+
+00:54:58.080 --> 00:55:01.760
+program here with what, with what time we have left for
+
+00:55:01.760 --> 00:55:03.160
+your questions.
+
+00:55:03.160 --> 00:55:09.170
+Please correct me if we're still like 10 minutes, you know,
+
+00:55:09.170 --> 00:55:15.450
+if we're, if we're more than like 15 to 20 minutes from our
+
+00:55:15.450 --> 00:55:20.560
+time but I suspect we've left way left way less than that
+
+00:55:20.560 --> 00:55:25.160
+and out of respect for all the other presenters.
+
+00:55:25.160 --> 00:55:29.160
+I don't want to close that actually.
+
+00:55:29.160 --> 00:55:33.060
+I think I may have found an old version of my slides that
+
+00:55:33.060 --> 00:55:35.160
+can have some good stuff.
+
+00:55:35.160 --> 00:55:40.220
+It's been an event for a couple of weeks here I had a break
+
+00:55:40.220 --> 00:55:45.190
+in and my somebody got into our bank accounts and nasty
+
+00:55:45.190 --> 00:55:51.160
+business, just a lot going on over, over this whole year I think.
+
+00:55:51.160 --> 00:55:54.160
+Any more questions to share.
+
+00:55:54.160 --> 00:56:02.240
+Sure. So, I think there was at least one we deferred a
+
+00:56:02.240 --> 00:56:06.160
+little bit with the game is
+
+00:56:06.160 --> 00:56:08.990
+always eight characters that can be divided right that's so
+
+00:56:08.990 --> 00:56:11.660
+always eight characters that can be divided between the
+
+00:56:11.660 --> 00:56:14.540
+party is the classic formula, it actually works pretty well
+
+00:56:14.540 --> 00:56:16.160
+for a conversational group.
+
+00:56:16.160 --> 00:56:18.810
+I think the idea that role playing games are about talking
+
+00:56:18.810 --> 00:56:21.330
+to each other and being good at them is about taking
+
+00:56:21.330 --> 00:56:23.770
+excellent notes. So, when you're sitting around with a
+
+00:56:23.770 --> 00:56:26.070
+group of people and you're going to have to wait for them
+
+00:56:26.070 --> 00:56:29.410
+while they dig through their notes and listen to all of the
+
+00:56:29.410 --> 00:56:33.160
+things they find interesting to say, and try to reach an
+
+00:56:33.160 --> 00:56:35.160
+imaginative place that you can stay together.
+
+00:56:35.160 --> 00:56:38.800
+And when you're doing all that and working in dice and
+
+00:56:38.800 --> 00:56:43.250
+remembering the rules. It's actually a complicated activity,
+
+00:56:43.250 --> 00:56:47.340
+I liken it more to a bridge game, then to like, you know,
+
+00:56:47.340 --> 00:56:51.310
+part cheesy or perhaps even like risk or access and allies
+
+00:56:51.310 --> 00:56:55.620
+or other games that have have definitely the strategy to
+
+00:56:55.620 --> 00:56:57.160
+them but I don't.
+
+00:56:57.160 --> 00:57:01.160
+Erik, your thoughts.
+
+00:57:02.160 --> 00:57:05.160
+I think that's fair.
+
+00:57:05.160 --> 00:57:08.880
+You know yes definitely. The, the tradition is to always
+
+00:57:08.880 --> 00:57:12.600
+have eight characters in the party, and, you know, one of
+
+00:57:12.600 --> 00:57:16.320
+the great things about dungeon is that everybody who writes
+
+00:57:16.320 --> 00:57:19.730
+their own dungeon gets to write their own rules, and is
+
+00:57:19.730 --> 00:57:22.160
+free to change whatever you want.
+
+00:57:22.160 --> 00:57:26.700
+I've definitely seen people try to take on challenging that
+
+00:57:26.700 --> 00:57:30.160
+always eight characters in a party thing.
+
+00:57:30.160 --> 00:57:33.460
+I've seen people take approaches like every player gets two
+
+00:57:33.460 --> 00:57:36.570
+characters and then you can have a party ranging from two
+
+00:57:36.570 --> 00:57:40.130
+to 10, or there's always going to be 10 or there's, you
+
+00:57:40.130 --> 00:57:43.340
+know, this or that or people have tried stuff, and none of
+
+00:57:43.340 --> 00:57:47.170
+it has really worked out very satisfactorily we always seem
+
+00:57:47.170 --> 00:57:50.160
+to keep coming back to our party of eight.
+
+00:57:50.160 --> 00:57:55.710
+It's, it's one of the things that dungeon that you can't
+
+00:57:55.710 --> 00:57:59.290
+change when you write your own dungeon. And that's the
+
+00:57:59.290 --> 00:58:03.900
+reason it's so complicated as a, as a software project why
+
+00:58:03.900 --> 00:58:08.640
+it's taken us decades, because trying to model the data for
+
+00:58:08.640 --> 00:58:13.820
+example or really any attempt, quantify it in specific
+
+00:58:13.820 --> 00:58:16.160
+terms always falls to examples.
+
+00:58:16.160 --> 00:58:20.740
+You know dungeons usually have elves, elves, dwarves and
+
+00:58:20.740 --> 00:58:25.160
+humans. They have priests, wizards and warriors.
+
+00:58:25.160 --> 00:58:29.330
+They have eight characters in the party. The Balrogs are
+
+00:58:29.330 --> 00:58:34.160
+particularly nasty and live in a room of some specific shape.
+
+00:58:34.160 --> 00:58:57.160
+And they have spoilers.
+
+00:58:57.160 --> 00:59:00.900
+So let's touch on special power real quick since that's one
+
+00:59:00.900 --> 00:59:04.820
+of the things that is kind of unique to dungeon. And one of
+
+00:59:04.820 --> 00:59:08.710
+the things that is the biggest challenge to us and trying
+
+00:59:08.710 --> 00:59:12.160
+to code a system like this for automated play.
+
+00:59:12.160 --> 00:59:15.680
+And that's that every character gets a unique special power
+
+00:59:15.680 --> 00:59:19.300
+and traditionally you negotiate your special power with the
+
+00:59:19.300 --> 00:59:22.600
+dungeon master when you create your character, and
+
+00:59:22.600 --> 00:59:25.970
+occasionally throughout the course of the characters life
+
+00:59:25.970 --> 00:59:29.160
+their special power might change due to game circumstances,
+
+00:59:29.160 --> 00:59:34.160
+usually it improves but sometimes not.
+
+00:59:34.160 --> 00:59:37.180
+So those are the most fun conversations right sometimes we
+
+00:59:37.180 --> 00:59:39.820
+have fun gaming sessions where we barely get all the
+
+00:59:39.820 --> 00:59:42.800
+characters created and started, because we get off into
+
+00:59:42.800 --> 00:59:45.780
+arguing about the special powers no Zelda special powers
+
+00:59:45.780 --> 00:59:49.160
+obviously the candle Come on.
+
+00:59:49.160 --> 00:59:54.160
+Also that was like, not so.
+
+00:59:54.160 --> 01:00:02.160
+I still have my t shirt. Hey, there she is. Let's cut scene.
+
+01:00:02.160 --> 01:00:05.890
+I'm going to be working with fun filters today, because
+
+01:00:05.890 --> 01:00:12.250
+that's what we got going on over here. All right, I'm going
+
+01:00:12.250 --> 01:00:19.160
+to recut everybody hang on tight.
+
+01:00:19.160 --> 01:00:21.160
+All right, there's Erik.
+
+01:00:21.160 --> 01:00:24.160
+This is going to be Erik for a second home.
+
+01:00:24.160 --> 01:00:27.680
+No worries. And welcome to that welcome to the stream. Trix
+
+01:00:27.680 --> 01:00:29.160
+ie horror.
+
+01:00:29.160 --> 01:00:33.410
+Who is one of our project team members somebody who's
+
+01:00:33.410 --> 01:00:37.160
+learning Emacs as part of the project, and.
+
+01:00:37.160 --> 01:00:42.690
+Yeah, I particularly wanted to invite you on to talk about
+
+01:00:42.690 --> 01:00:47.700
+your experience learning Emacs I think you have run into
+
+01:00:47.700 --> 01:00:52.900
+places where it's a pain in the butt to learn Emacs and that
+
+01:00:52.900 --> 01:00:56.160
+this is a safe space to talk about that.
+
+01:00:56.160 --> 01:01:02.160
+I'll jump in by saying the Emacs cheat sheet.
+
+01:01:02.160 --> 01:01:07.160
+I think it's the one that can do puts out is a lifesaver.
+
+01:01:07.160 --> 01:01:12.030
+I think there's a little bit of a vocabulary disconnect,
+
+01:01:12.030 --> 01:01:16.050
+like, and this actually kind of comes up a lot in
+
+01:01:16.050 --> 01:01:21.080
+conversation with Corwin and Erik and I, but coffee paste
+
+01:01:21.080 --> 01:01:25.160
+versus what yank and w, whatever w killing yank.
+
+01:01:25.160 --> 01:01:28.160
+Yeah.
+
+01:01:28.160 --> 01:01:31.380
+Why would you even do that to us right where where were you
+
+01:01:31.380 --> 01:01:34.810
+when zeros park happened. No, I understand that makes sense.
+
+01:01:34.810 --> 01:01:39.160
+What else.
+
+01:01:39.160 --> 01:01:41.920
+I mean you don't have to sit here and rag on Emacs but we're
+
+01:01:41.920 --> 01:01:44.160
+here for that. That's all I'm saying.
+
+01:01:44.160 --> 01:01:48.250
+I think that's the biggest thing, like, I'm, I'm used to,
+
+01:01:48.250 --> 01:01:52.170
+like, just kind of the very binary nature of like, nope,
+
+01:01:52.170 --> 01:01:55.160
+that didn't work, try something else.
+
+01:01:55.160 --> 01:02:00.680
+So, as long as you're willing to try other stuff like Emacs
+
+01:02:00.680 --> 01:02:07.160
+will be fine. So, it's a tough cookie it can take it.
+
+01:02:07.160 --> 01:02:14.430
+The only thing that happens is you have to install it
+
+01:02:14.430 --> 01:02:21.160
+through your file that you hopefully have a backup of.
+
+01:02:21.160 --> 01:02:25.160
+Um, are there more questions in the hopper.
+
+01:02:25.160 --> 01:02:29.500
+If anybody does have any questions up there for hope for
+
+01:02:29.500 --> 01:02:34.210
+Erik or I so just to summarize, I've known Erik, I've known
+
+01:02:34.210 --> 01:02:38.640
+Erik, my whole life, I've known hope around a decade we
+
+01:02:38.640 --> 01:02:41.760
+work together on a project for, for a science fiction
+
+01:02:41.760 --> 01:02:42.160
+convention.
+
+01:02:42.160 --> 01:02:45.160
+Yeah.
+
+01:02:45.160 --> 01:02:49.360
+I've written a few conventions and then I also helped with
+
+01:02:49.360 --> 01:02:53.710
+I just wrote a bio. So this should like all theoretically
+
+01:02:53.710 --> 01:02:55.160
+be in my head right.
+
+01:02:55.160 --> 01:03:01.660
+I want to refer to my own bio project coordinator for
+
+01:03:01.660 --> 01:03:03.160
+dungeon mode.
+
+01:03:03.160 --> 01:03:07.160
+I was a bird assistant good credit.
+
+01:03:07.160 --> 01:03:13.160
+And family friend to the Bruce. Oh,
+
+01:03:13.160 --> 01:03:17.870
+yeah, we've gotten a ton of support from a lot of our
+
+01:03:17.870 --> 01:03:21.720
+lifelong friends people, and also people that we just met.
+
+01:03:21.720 --> 01:03:24.160
+Maybe that's a that's a great segue.
+
+01:03:24.160 --> 01:03:26.900
+Do throw your questions in there I'm going to fill for just
+
+01:03:26.900 --> 01:03:29.160
+a second and then we'll probably cut away.
+
+01:03:29.160 --> 01:03:35.970
+But, I'm thinking thematically actually, that's that's too
+
+01:03:35.970 --> 01:03:38.810
+abrupt so we need to go around the room, Erik you had hours
+
+01:03:38.810 --> 01:03:41.480
+and hours to rehearse hope kind of jumped in on the last
+
+01:03:41.480 --> 01:03:42.160
+minute.
+
+01:03:42.160 --> 01:03:47.050
+So let's let's, is it okay to pick on you or do you want me
+
+01:03:47.050 --> 01:03:48.160
+to get mine.
+
+01:03:48.160 --> 01:03:51.490
+What are you asking me to do what do you what do you want
+
+01:03:51.490 --> 01:03:55.280
+people to take away from this talk, you know, as we think
+
+01:03:55.280 --> 01:03:59.010
+about dungeon and sharing it's sharing its tradition, as we
+
+01:03:59.010 --> 01:04:03.160
+think about learning Emacs, and like making that awesome.
+
+01:04:03.160 --> 01:04:08.210
+And just, you know, generally what's up with free software
+
+01:04:08.210 --> 01:04:13.160
+and trying to make computers a tool to make people freer.
+
+01:04:13.160 --> 01:04:18.160
+Yeah, I'm going to ask like five questions. Yeah, so just
+
+01:04:18.160 --> 01:04:19.160
+jump in.
+
+01:04:19.160 --> 01:04:24.160
+I think that dungeon is a lot of fun. And, you know, I'm, I
+
+01:04:24.160 --> 01:04:29.260
+'ve played many commercial role playing games over the years
+
+01:04:29.260 --> 01:04:32.160
+, and I've enjoyed all of them.
+
+01:04:32.160 --> 01:04:36.500
+But there's very few of them that I've had as many belly
+
+01:04:36.500 --> 01:04:41.410
+laughs and as much just joy, playing as from dungeon. And I
+
+01:04:41.410 --> 01:04:44.500
+think, you know, the magic of it is, you know, like any
+
+01:04:44.500 --> 01:04:47.400
+game like the real magic is the people you play with and
+
+01:04:47.400 --> 01:04:50.160
+having fun with your friends.
+
+01:04:50.160 --> 01:04:53.780
+And what I would hope that people can take away from is
+
+01:04:53.780 --> 01:04:57.900
+that dungeon has the ability to be that magical thing. And
+
+01:04:57.900 --> 01:05:01.870
+hopefully we can get our project to the point where it gets
+
+01:05:01.870 --> 01:05:06.160
+out of the way and lets you have that fun with your friends.
+
+01:05:06.160 --> 01:05:12.180
+So I think there's a lot of work to do we could use some
+
+01:05:12.180 --> 01:05:19.330
+help. So if you're interested in having fun. Come help us
+
+01:05:19.330 --> 01:05:22.160
+build this fun tool.
+
+01:05:22.160 --> 01:05:25.370
+Alright so I just got the call that we've got just about
+
+01:05:25.370 --> 01:05:29.160
+two to three minutes left, and we should start our wrap up.
+
+01:05:29.160 --> 01:05:31.160
+Wrap up.
+
+01:05:31.160 --> 01:05:35.090
+Yeah, so I'll see if I can charge the room with some energy
+
+01:05:35.090 --> 01:05:38.160
+unless you're ready to have that at home.
+
+01:05:38.160 --> 01:05:43.160
+Here, here's, here's what I want people to take away.
+
+01:05:43.160 --> 01:05:47.160
+Were you like, No, okay.
+
+01:05:47.160 --> 01:05:54.160
+I'm not getting your audio hope.
+
+01:05:54.160 --> 01:05:57.160
+So my end, maybe I just need to speak up.
+
+01:05:57.160 --> 01:06:01.160
+Is this better, let me know when I'm coming through.
+
+01:06:01.160 --> 01:06:05.160
+Okay, cool.
+
+01:06:05.160 --> 01:06:07.160
+I was gonna say go ahead.
+
+01:06:07.160 --> 01:06:11.240
+I didn't. Okay. I mean I don't know that I know what I want
+
+01:06:11.240 --> 01:06:15.290
+to say either except a whole ton of thank you. So, I will,
+
+01:06:15.290 --> 01:06:19.160
+I will save those for the, for the literal end here.
+
+01:06:19.160 --> 01:06:26.630
+And instead, what I would say is, as we build our amazing
+
+01:06:26.630 --> 01:06:32.160
+innovations and explore our ideas in Emacs.
+
+01:06:32.160 --> 01:06:34.980
+We are fighting our own ego for the will to get them done,
+
+01:06:34.980 --> 01:06:37.740
+it's hard and we're not sure if they're going to be a good
+
+01:06:37.740 --> 01:06:39.960
+idea and will it excite people and part of our
+
+01:06:39.960 --> 01:06:42.780
+responsibility is to excite people so that they can feel
+
+01:06:42.780 --> 01:06:44.160
+good about liking them.
+
+01:06:44.160 --> 01:06:47.930
+If you come off and you're like hey this is a terrible idea
+
+01:06:47.930 --> 01:06:51.470
+it's really hard to be like, no I love that idea works
+
+01:06:51.470 --> 01:06:55.160
+theatrically but in larger groups may not scale.
+
+01:06:55.160 --> 01:07:00.160
+So that's a crucible for ideas and a crucible for teams.
+
+01:07:00.160 --> 01:07:05.280
+The first part is definitely healthy. The second part,
+
+01:07:05.280 --> 01:07:10.070
+there's a lot we can we can do, you know, having a front
+
+01:07:10.070 --> 01:07:15.160
+and and and good faith conversations on that subject.
+
+01:07:15.160 --> 01:07:19.600
+Anybody else want to want to wade in after that sorry that
+
+01:07:19.600 --> 01:07:23.160
+that was more of a calm down than a fire out.
+
+01:07:23.160 --> 01:07:25.160
+Okay.
+
+01:07:25.160 --> 01:07:27.160
+I think.
+
+01:07:27.160 --> 01:07:32.180
+The first part of this but I think we would be remiss not
+
+01:07:32.180 --> 01:07:35.860
+to highlight org mode, a little bit. Yeah, like, that's,
+
+01:07:35.860 --> 01:07:39.280
+that's our bread and butter. Yeah, our whole project is
+
+01:07:39.280 --> 01:07:40.160
+built on org mode.
+
+01:07:40.160 --> 01:07:44.580
+Right. And I'm just really excited because, like, I have, I
+
+01:07:44.580 --> 01:07:48.670
+don't have ADHD, but I have like something similar. And so,
+
+01:07:48.670 --> 01:07:52.230
+like to know that there's something that exists, that is
+
+01:07:52.230 --> 01:07:54.160
+like purely hierarchical.
+
+01:07:54.160 --> 01:07:59.170
+It's incredible, like I can just run a report, basically
+
+01:07:59.170 --> 01:08:03.550
+and get all of my like to do lists that I didn't have to
+
+01:08:03.550 --> 01:08:06.160
+put in one specific place.
+
+01:08:06.160 --> 01:08:13.190
+And, like, that's kind of been a complex issue for me of
+
+01:08:13.190 --> 01:08:16.680
+like, okay, I have all these to do lists, like in Google
+
+01:08:16.680 --> 01:08:19.160
+Keep or whatever like what do I do with them now.
+
+01:08:19.160 --> 01:08:24.160
+So being able to like pull them into one list.
+
+01:08:24.160 --> 01:08:27.160
+And then recycle through them is really incredible.
+
+01:08:27.160 --> 01:08:35.500
+And I think taking dungeon and like using it to like
+
+01:08:35.500 --> 01:08:40.160
+combining it with org mode basically really.
+
+01:08:40.160 --> 01:08:44.210
+I'm excited about it and I'm excited to see like what it
+
+01:08:44.210 --> 01:08:46.160
+can do for player groups.
+
+01:08:46.160 --> 01:08:49.190
+Especially now that quarantine like I was excited about
+
+01:08:49.190 --> 01:08:50.160
+dungeon mode.
+
+01:08:50.160 --> 01:08:54.040
+Before the pandemic and now like I'm only more enthusiastic.
+
+01:08:54.040 --> 01:08:57.940
+So, yeah, definitely the pandemic has been the greatest
+
+01:08:57.940 --> 01:09:01.720
+thing that happened to this game, terrible terrible as it
+
+01:09:01.720 --> 01:09:05.090
+is to say that it, if we needed a hobby and it turns out
+
+01:09:05.090 --> 01:09:11.160
+role playing games are are really good.
+
+01:09:11.160 --> 01:09:16.610
+So, so I think that's probably about our time. I'm guessing
+
+01:09:16.610 --> 01:09:21.160
+that's my call. And thank you very much.
+
+01:09:21.160 --> 01:09:24.970
+Thank you everybody will be around for discord and stuff
+
+01:09:24.970 --> 01:09:27.160
+later come catch us if you want to talk.
+
+01:09:27.160 --> 01:09:30.160
+Okay.