summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--28-welcome-to-the-dungeon--erik-elmshauser-corwin-brust-autogen.vtt
blob: 0d7a296cea6c6aceb78181e59d6cd2f6af6a749e (plain) (tree)
1
2
3
4
5
6
7
8
9

      

                                                         
 

                             

                             
                  

                             
                                    

                             
                                                 
 

                                                    
 

                                            
 

                                 
 

                             
 

                                              
 

                                
 

                                               
 

                                     
 

                              
 

                                                      
 

                                                   
 

                             
 

                                                                 
 

                                                   
 

                                             
 

                                                                        
 

                                                      
 

                                                         
 

                                                   
 

                                          
 

                                                        
 

                                           
 

                             
 

                                            
 

                                  
 

                                                 
 

                               
 

                             
 

                                  
 

                                                  
 

                                      

                             
                                 
 

                                                               
 

                                  
 

                                    
 

                                           

                             
                                      
 

                                     
 

                             
 

                                            
 

                                                                   
 

                             
 

                                                       
 

                             
 

                             

                             
                    
 

                             
 

                                      

                             
                                         

                             
                                   

                             
                                   

                             
                                           

                             
                     

                             
                      
 

                                                     

                             
                 
 

                                                
 

                                   
 

                                  
 

                             
 

                                                          
 

                             
 

                             
 

                             
 

                                            
 

                             
 

                             
 

                                   
 

                                         
 

                                         
 


                                     
 

                                                    
 

                                   
 

                                       
 

                                                   
 

                                                           
 

                             
 

                                  
 

                                                             
 

                                                                        

                             
                                      
 

                                             
 

                                                                
 

                                 
 

                                     
 


                                        
 


                                      
 

                                                                          
 

                                                     

                             
              

                             
                                  
 

                                                       

                             
                                    

                             
                                    
 

                                                                   

                             
                                                         
 

                                                      
 

                                                 
 

                                                      
 

                                           
 

                                                             
 

                                                       
 

                                                  
 

                                                          
 

                                      
 

                                                      
 

                                                               
 


                                     
 

                                                 
 

                                                    
 

                                                  
 

                                
 

                                                              
 


                                     
 

                                 

                             
                                     

                             
                                      
 

                                                             
 

                             
 

                             
 

                                                  
 

                                                                     

                             
                               

                             
                 

                             
                                              
 

                                                           
 

                                      
 


                                  
 

                             
 

                                                        
 

                                                                               
 

                                               
 

                                                          
 

                                            
 

                                              

                             
                                          
 

                                 
 

                                   
 

                                         
 

                                                                      
 

                                                           
 

                                                        
 

                                                            
 

                                                 
 

                             
 

                                      
 

                                                                       
 

                                                                      
 

                             
 

                             
 

                                              



                                     

                                                    
 

                                                    
 

                              
 

                                          
 

                                             
 

                             
 

                                                     
 

                                

                             
                                 

                             
                   

                             
                                    
 

                             
 

                                             
 

                                
 

                                       
 

                                            
 

                             
 

                                                    
 

                                                    
 

                                                                  
 

                                    
 


                                      
 

                                  
 


                                      
 

                                    
 

                                                       
 

                                           
 

                                               
 

                                          
 

                             
 

                                                 
 

                                                 
 

                             
 

                                              
 

                                                       



































































                                      
                    































                                       
                                     










                                        
                                




                             
                      













                                        
                             













                                      
  




























                                        
                           










                                        
                                    
















                                        
                                    










                                     
                                    
















                                      
                                   

                             
      

                             
                                  
















                                     
                           

                             
                                 

                             
                          



















                                        
                               
















                                      
              




                                     
                   

                             
                                    




                                        
        

                             
                                     

























                                      
                   

                             
                                           

                             
                     










                                      
                

                             
                                  







                                      
             

                             
                       



















                                        
                                      













                                    
                                   




























                                        
                                     






















                                       
                                     







                                      
                                 




                                      
                                  




                             
                            

                             
                                    

                             
                                    







                                      
                                      













                                      
                                 






















                                        
                                   










                                        
                                 

                             
                                   






















                                       
                                   




























                                        
                                 













                                        
                                  













                                      
                                  



















                                        
                   




                                       
                  








































                                       
                   







                                       
                                   










                                        
                                  



















                                        
                                 










                                        
                           




                                 
                                 

                             
                                     




                             
            






















                                        
                                     




                             
                    

                             
                                     










                                      
           






















                                        
                                       































                                    
                                       




                             
                                     

                             
                                       













                                     
                                



















                                        
                             










                                        
                                    










                                     
                                     




                             
                                   




                                
                                   

                             
                                    







                                       
                                   













                                       
                      

























                                        
                                    




                             
                                     





















































































                                        
                              


































                                        
                       




                                      
                      

                             
                                      



















                                       
                          




                             
            






















                                       
                                      

                             
                                  




                             
                                     




                                       
             



































































                                       
                                     




                             
                                     








































                                        
                                 

                             
                                     
















                                       
                         

                             
                                   




                             
                 










                                     
                                    







                                      
 










                                   
                           
















                                       
                                   













                                        
                                   




                             
                                 
















                                        
                                































                                        
                           










                                       
                                   




                             
                         

                             
                                 

                             
                                         













                                       
                                    




                             
                






















                                  
                                  










                                    
                        

                             
                               










                                      
                































                                        
           

                             
                                     




                             
                                   

                             
                               













                                        
    




                                     
             







                                        
                                  

                             
     

                             
                                   

























                                        
              
















                                     
                                   




                             
                                




                             
                                


























































                                        
                                  




                             
                                     




                                 
                                   




                             
                                           



















                                        
                                     




                                       
                              







                                       
 

                             
       




                             
                                     




                                   
                                        










                                   
                      




                                        
                           

























                                       
   

                             
                                   










                                    
                                  



















                                        
                                   




























                                      
                                 







                                     
                                    










                                    
                            







                                      
                                  













                                      
                                     




                             
                                 

                             
                                    































                                        
             

                             
                                  







                                      
                                  




                             
                                  



















                                        
                                     



















                                        
                                   







                                 
                                




                             
                                  






















                                        
                                 

                             
                            

                             
             
















                                        
                                    













                                        
                 







                                  
  










                                        
                                    

                             
                                       




                             
                                   










                                
                                    










                                      
                                    



















                                      
                                  










                                       
                                     




                             
                             





































                                        
                                 




                                
         













                                        
                  







                                        
                                 

                             
                                    

























                                        
    

                             
                         





































                                       
                                    

























                                        
                                  
















                                        
                       

                             
                                     




                             
                                       




























                                      
                               



















                                       
                  




                                        
                                          




                             
                          













                                      
                               










                                       
                                      

                             
                                    










                                       
                           










                                     
                                   



















                                        
                                       


























































                                        
              













                                        
                        







                                        
                  



























































































                                        
                       


































































































































                                        
                   




                                  
                             

                             
                                







                                     
                                















































































                                        
                                













                                        
                                
















                                        
                                     







                                     
                                   



















                                       
                                     










                                      
                                   




                             
                                    

                             
                                     




                             
                                     






















                                      
                        
















                                        
                         

























                                       
                        




                             
                                   
































































                                       
            
















                                        
                          

                             
                               













                                    
                                   

                             
                        



















                                      
                           
















                                        
                                   







                                        
                                     







                                        
                                      

                             
                      

























                                       
                                   

                             
                                  

                             
                                 










                                     
                       

                             
                                     













                                     
                    

                             
               







                                        
                                    







                                      
                         

























                                      
                                   



















                                      
                                 


































                                        
                                  




                             
                                          

                             
                      

                             
                                     

                             
                        

                             
      

                             
                               







                                        
          






                                        




                                
 

                                            
 

                             



                             

                                                            
 

                                       
 

                             
 

                                        
 

                                    

                             
                                        






























                                      

                                                   
 

                                                                
 

                             
 

                                                

                             
                   















                                       

                             
 

                                             




                                       
        

                             
                                 

                             
                         

                             
                                        







                                
                                     
















                                        
                                       




                             
           













                                        
                                    

                             
                                        




                             
   

                             
                                   







                                  
                                        













                                        
                                    







                                      
                                      










                                       
                            













                                      
                  

                             
                    

                             
                                






















                                      
                                



















                                        
                                      
















                                       
                                  

























                                     
                                     





































                                        
                                       










































































































                                        
                                   

                             
     














































                                        
                            

























                                       
                                







                               
         










                                      
               

                             
                                     







                                    
                                   













                                        
                                     







                             
                                   




                             
                               

                             
                             








                                       
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,

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 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: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
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
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
you know write functions for the

00:14:30.639 --> 00:14:31.760
game

00:14:31.760 --> 00:14:35.199
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
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

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 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
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
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

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
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
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
but we've also succeeded in

00:16:28.720 --> 00:16:32.320
getting into a bunch of different

00:16:32.320 --> 00:16:35.680
elements of the game where

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
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
what works now

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 Erik mentioned

00:17:14.640 --> 00:17:18.480
and we'll jump here into 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
but then

00:17:22.160 --> 00:17:25.520
also later 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

00:17:50.080 --> 00:17:53.120
the battle board I'm just going to I'm just

00:17:53.120 --> 00:17:54.160
going to skip it Erik

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 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 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
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 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 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 going to 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
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

00:20:01.200 --> 00:20:04.640
sure yeah questions would be cool or

00:20:04.640 --> 00:20:07.360
yeah well Erik 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
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
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 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 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 we called it tiles 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
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

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
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
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
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 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
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
one minute each swing at what the

00:23:40.720 --> 00:23:42.799
game is you want to go first I called

00:23:42.799 --> 00:23:45.120
weapons

00:23:45.120 --> 00:23:48.840
okay 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 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
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
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
and then as Erik 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
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 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

00:25:43.760 --> 00:25:45.919
that's that's not super complete

00:25:45.919 --> 00:25:48.400
but but does cover some of the high

00:25:48.400 --> 00:25:50.159
level basics of the game that Erik'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
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 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
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 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

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 Emacs

00:27:59.120 --> 00:28:07.279
when I'm going to 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

00:28:30.480 --> 00:28:34.960
init scripts

00:28:34.960 --> 00:28:40.159
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 Erik

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
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 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 stamp out a bunch of new maps

00:30:44.240 --> 00:30:46.880
so now I'll 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 there are a number of

00:30:58.960 --> 00:31:00.720
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
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 going to be the map again

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


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 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

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
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 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 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 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
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 I can try load library

00:33:00.480 --> 00:33:02.640
you know what let's forg I'm just

00:33:02.640 --> 00:33:03.760
going to 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 first we

00:33:19.840 --> 00:33:20.880
have to

00:33:20.880 --> 00:33:24.799
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
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
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
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
repurposing

00:34:39.839 --> 00:34:42.560
of the engine that we couldn't do the

00:34:42.560 --> 00:34:44.159
battle board program

00:34:44.159 --> 00:34:53.599
that let's see if that runs now too

00:34:53.599 --> 00:35:00.880
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
Erik

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

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
I'll certainly check for questions

00:35:22.640 --> 00:35:25.359
first

00:35:25.359 --> 00:35:28.079
the 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

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 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
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 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 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
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
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 going to 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
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
pretty fun and and 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


00:37:45.119 --> 00:37:48.480
so I'll

00:37:48.480 --> 00:37:51.839
I'll do the

00:37:51.839 --> 00:37:55.920
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 Erik

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

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 going to 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

00:38:40.800 --> 00:38:46.320
-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
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 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

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
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

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
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 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 the experience

00:40:14.160 --> 00:40:17.760
of of of what it's like 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

00:40:44.880 --> 00:40:47.760
SVG generation 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 in

00:40:55.119 --> 00:40:55.680
terms

00:40:55.680 --> 00:40:58.480
of  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
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

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
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 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 even

00:41:52.160 --> 00:41:55.359
this shift delete has a tera

00:41:55.359 --> 00:41:59.280
or shift with

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
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

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

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
hopefully we can get a nice big menu

00:42:43.040 --> 00:42:45.040
of all the tiles that Erik prepared for

00:42:45.040 --> 00:42:49.440
the game maps

00:42:49.440 --> 00:42:51.680
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
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 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
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
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

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

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
we basically made map files which

00:44:39.920 --> 00:44:43.760
take 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

00:45:05.920 --> 00:45:10.560
when we go to present 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

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
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 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 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

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 going to 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
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
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 it's going to have a list of tiles

00:47:35.440 --> 00:47:38.720
defined above 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 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 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
Erik Erik Erik

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

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 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 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
questions or just say goodbye

00:52:33.920 --> 00:52:36.880
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
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
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
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
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
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
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 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 portion of the program here

00:54:58.960 --> 00:55:01.200
with what 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
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

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

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 what the game

00:56:01.040 --> 00:56:05.040
is

00:56:05.040 --> 00:56:06.799
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

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 Erik your thoughts

00:57:00.160 --> 00:57:03.920
yeah I mean I think that's fair

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 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 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 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

00:58:22.079 --> 00:58:25.280
priests wizards and warriors 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 spoilers

00:58:35.119 --> 00:58:38.319
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 I

00:58:48.400 --> 00:58:51.599
I I'm zelda and

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
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
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 going to 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 Erik this is going to be

01:00:20.799 --> 01:00:23.200
Erik for a second hope

01:00:23.200 --> 01:00:25.200
no worries. welcome to the welcome to

01:00:25.200 --> 01:00:27.440
the stream trixie horror

01:00:27.440 --> 01:00:30.960
who is

01:00:30.960 --> 01:00:32.720
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 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:42.640
Emacs

01:00:42.640 --> 01:00:44.640
I think you have run into places

01:00:44.640 --> 01:00:46.799
where it's a pain in the butt to learn Emacs

01:00:46.799 --> 01:00:47.839
and that this is a safe

01:00:47.839 --> 01:00:56.000
space to talk about that

01:00:56.000 --> 01:01:00.640
TRIXIE: I'll jump into that by saying the Emacs cheat sheet,

01:01:00.640 --> 01:01:03.680
I think it's the one that GNU puts out,

01:01:03.680 --> 01:01:06.559
is a lifesaver.

01:01:06.559 --> 01:01:09.440
A little bit of a vocabulary disconnect.

01:01:09.440 --> 01:01:13.359
This actually kind of comes up a lot

01:01:13.359 --> 01:01:15.200
in conversation with Corwin and Erik 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:46.799
TRIXIE: No, I'm like that's been the biggest thing.

01:01:46.799 --> 01:01:52.799
I'm used to the very binary nature, like, nope that didn't work.

01:01:52.799 --> 01:01:53.839
Try something else.

01:01:53.839 --> 01:01:59.200
So as long as you're willing to try other stuff,

01:01:59.200 --> 01:02:02.880
Emacs will be fine.

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:21.520
all right fine

01:02:21.520 --> 01:02:24.640
ERIK: Are there more 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

01:02:27.680 --> 01:02:29.839
for hope for Erik or I so just to

01:02:29.839 --> 01:02:32.000
summarize I've known Erik

01:02:32.000 --> 01:02:34.240
I've known Erik 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
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
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
do throw your questions in there I'm

01:03:25.039 --> 01:03:26.400
going to 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
but

01:03:32.319 --> 01:03:34.960
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
Erik 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
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

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 going to start

01:04:15.920 --> 01:04:18.960
with jumping 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
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 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 going to 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 the first part of this but I

01:07:29.280 --> 01:07:30.960
think

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
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

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
yeah especially

01:08:47.759 --> 01:08:50.319
like I was excited about Dungeon mode

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 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 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 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
I'm guessing that's my call and

01:09:18.560 --> 01:09:21.759
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