Procházet zdrojové kódy

Final changes to presentation before go time

Lily Carpenter před 9 roky
rodič
revize
7565213ad7
2 změnil soubory, kde provedl 121 přidání a 3 odebrání
  1. binární
      lisplogo_256.png
  2. 121 3
      presentation.tex

binární
lisplogo_256.png


+ 121 - 3
presentation.tex

@@ -29,7 +29,7 @@
29 29
 \end{frame}
30 30
 
31 31
 \begin{frame}
32
-  \frametitle{Get it here!}
32
+  \frametitle{Get my presentation here!}
33 33
   \href{https://gitlab.com/azrazalea/lisp-game-dev-presentation}{https://gitlab.com/azrazalea/lisp-game-dev-presentation}
34 34
 \end{frame}
35 35
 \section{What is lisp?}
@@ -41,6 +41,25 @@
41 41
   \end{center}
42 42
 \end{frame}
43 43
 
44
+\begin{frame}
45
+  \frametitle{History}
46
+  \begin{itemize}
47
+  \item Lisp (not Common Lisp) was originally implemented in the early 1960s.
48
+  \item Really took off in the 1970s and 1980s.
49
+  \item Lots of differing implementations with their own ideas and features during this time period.
50
+  \item Common Lisp became an ANSI standard in 1994.
51
+  \item Historically used primarily for Artificial Intelligence.
52
+  \item Use drastically lowered after the decline of AI funding when the world realized ``true AI'' was further off than they thought.
53
+  \end{itemize}
54
+\end{frame}
55
+
56
+\begin{frame}
57
+  \frametitle{Made with Secret Alien Technology}
58
+  \begin{center}
59
+    \includegraphics[scale=0.75]{lisplogo_256}
60
+  \end{center}
61
+\end{frame}
62
+
44 63
 \begin{frame}[fragile]
45 64
   \frametitle{An example}
46 65
 \begin{minted}[gobble=4,fontsize=\footnotesize]{cl}
@@ -67,7 +86,7 @@
67 86
   \begin{itemize}
68 87
   \item Quicklisp is the library manager for Lisp. \href{https://beta.quicklisp.org}{https://beta.quicklisp.org}.
69 88
   \item While still marked as ``beta'' it is stable and usable. It just lacks some features the author wants to add before considering it released.
70
-  \item Coolest feature is the ability to install + load libraries completely from the Lisp repl without restarting the process.
89
+  \item Coolest feature is the ability to install + load libraries completely from the Lisp REPL without restarting the process.
71 90
   \end{itemize}
72 91
 \end{frame}
73 92
 
@@ -120,7 +139,7 @@
120 139
 \end{frame}
121 140
 
122 141
 \begin{frame}
123
-  \frametitle{Object System}
142
+  \frametitle{Object Oriented programming}
124 143
   \begin{itemize}
125 144
   \item Classes have slots (``instance variables'')
126 145
   \item Methods are defined in terms of generic functions.
@@ -156,4 +175,103 @@
156 175
   )
157 176
 \end{minted}
158 177
 \end{frame}
178
+
179
+\begin{frame}
180
+  \frametitle{Package System}
181
+  \begin{itemize}
182
+  \item Basically a namespace/module system. Using it may seem similar to clojure or javascript's ES6 modules.
183
+  \item The way it actually works under the hood is super cool and different from most others.
184
+  \item See \href{http://www.gigamonkeys.com/book/programming-in-the-large-packages-and-symbols.html}{Practical Common Lisp} for more info.
185
+  \end{itemize}
186
+\end{frame}
187
+
188
+\begin{frame}[fragile]
189
+  \frametitle{C Foreign Function Interface}
190
+  \begin{itemize}
191
+  \item Lisp has an excellent CFFI library found at \href{https://common-lisp.net/project/cffi/}{https://common-lisp.net/project/cffi/}. It is in quicklisp.
192
+  \item The CFFI is used heavily for game development, as OpenGL and other libraries are C.
193
+  \item Cool library \href{https://github.com/rpav/cl-autowrap}{https://github.com/rpav/cl-autowrap} makes making a new CFFI wrapper super easy.
194
+  \end{itemize}
195
+\end{frame}
196
+
197
+\begin{frame}
198
+  \frametitle{The REPL}
199
+  \begin{itemize}
200
+  \item The sheer power of the Common Lisp REPL is greater than any other REPL I know of.
201
+  \item REPL driven development is THE primary paradigm for common lisp (no this is not really at odds with TDD).
202
+  \item You can do practically anything in the REPL that you could do in a file, all without having to restart your process.
203
+  \item For a user friendly REPL experience you will want to use Emacs + Slime, Vim + slimv, or one of the few lisp specific IDEs.
204
+  \item The default command line REPLs for most implementations have a rather bad user experience compared to the above.
205
+  \end{itemize}
206
+\end{frame}
207
+
208
+\section{Lisp game tools}
209
+\begin{frame}
210
+  \frametitle{Lispgames Group}
211
+  \begin{itemize}
212
+  \item \href{https://github.com/lispgames}{https://github.com/lispgames}
213
+  \item Benevolent leader rpav/oGMo \href{https://github.com/rpav}{https://github.com/rpav}
214
+  \item Freenode IRC channel \#lispgames
215
+  \item In progress wiki/site \href{http://lispgames.org}{http://lispgames.org}
216
+  \item Focused on Common Lisp but all lispers welcome including Scheme, Clojure, and others.
217
+  \end{itemize}
218
+\end{frame}
219
+
220
+\begin{frame}
221
+  \frametitle{Libraries}
222
+  \begin{itemize}
223
+  \item For the most part if you don't want to use a pre-built engine/framework you probably want to use lispgames glkit which uses cl-sdl2, cl-sdl2kit, and cl-opengl. Find it at \href{https://github.com/lispgames/glkit}{https://github.com/lispgames/glkit}. They are all in quicklisp.
224
+  \item A cool 2D graphics library called sketch can be found at \href{https://github.com/vydd/sketch}{https://github.com/vydd/sketch}. It is not yet in quicklisp.
225
+  \item There are a variety of other libraries in various locations, if you are looking for something in particular ask about it on \#lispgames.
226
+  \end{itemize}
227
+\end{frame}
228
+
229
+\begin{frame}
230
+  \frametitle{Game Engines}
231
+  \begin{itemize}
232
+  \item CEPL by baggers, \href{https://github.com/cbaggers/cepl}{https://github.com/cbaggers/cepl}. Active work in progress.
233
+  \item CLINCH by warweasle, \href{https://github.com/BradWBeer/CLinch}{https://github.com/BradWBeer/CLinch}. Alpha, should soon be ready as a general purpose engine.
234
+  \item Xelf by dto (see dto-games on youtube), GPLv3, \href{http://xelf.me/}{http://xelf.me/}. Has been used by dto to create several games.
235
+  \end{itemize}
236
+\end{frame}
237
+
238
+\section{Learning resources}
239
+\begin{frame}
240
+  \frametitle{Books}
241
+  \begin{itemize}
242
+  \item The de facto primary learning book is ``Practical Common Lisp'' and is free online at \href{http://www.gigamonkeys.com/book/}{http://www.gigamonkeys.com/book/}
243
+  \item There is a brand new (not free) book being hailed as an excellent follow up called ``Common Lisp Recipes'' at \href{http://www.apress.com/9781484211779?gtmf=s}{http://www.apress.com/9781484211779?gtmf=s}
244
+  \item A list of other Lisp books can be found at \href{http://cliki.net/Lisp+Books}{http://cliki.net/Lisp+Books}
245
+  \end{itemize}
246
+\end{frame}
247
+
248
+\begin{frame}
249
+  \frametitle{Videos}
250
+  \begin{itemize}
251
+  \item \href{https://www.youtube.com/channel/UCKfZ9JfFgg7cxa2hYfC5O0A}{dto-games} channel on youtube, live coding and commentary.
252
+  \item cbaggers user \href{https://www.youtube.com/user/CBaggers}{https://www.youtube.com/user/CBaggers} on youtube. Demonstrations of the CEPL game engine, general tutorials.
253
+  \item Axed Code (axion) short progress videos \href{https://www.youtube.com/playlist?list=PLcdTh590GDjFgdM8JVSBqFl4vJBrh8P_l}{playlist} on youtube.
254
+  \end{itemize}
255
+\end{frame}
256
+
257
+\begin{frame}
258
+  \frametitle{Websites}
259
+  \begin{itemize}
260
+  \item Common Lisp \href{http://www.lispworks.com/documentation/HyperSpec/Front/index.htm}{Hyperspec}
261
+  \item \href{http://articulate-lisp.com/}{http://articulate-lisp.com/}
262
+  \item Common Lisp wiki \href{http://www.cliki.net/}{http://www.cliki.net}
263
+  \item Common Lisp official site \href{https://common-lisp.net/}{https://common-lisp.net/}
264
+  \item Common Lisp gitlab instance \href{https://gitlab.common-lisp.net}{https://gitlab.common-lisp.net}
265
+  \end{itemize}
266
+\end{frame}
267
+
268
+\section{Demonstration}
269
+\begin{frame}
270
+  \frametitle{Demonstration}
271
+  \begin{itemize}
272
+  \item I will be running and modifying \href{https://github.com/k-stz/picking-sticks}{https://github.com/k-stz/picking-sticks}.
273
+  \item You will need a lisp implementation, \href{https://www.quicklisp.org/beta/}{quicklisp}, libsdl2, libfreetype, working OpenGL drivers, and to put \href{https://github.com/rpav/texatl}{https://github.com/rpav/texatl} and \href{https://github.com/rpav/laconic}{https://github.com/rpav/laconic} in \texttildelow/quicklisp/local-projects.
274
+  \item Unless you've already got most of this setup I would recommend not trying to set this up during my presentation.
275
+  \end{itemize}
276
+\end{frame}
159 277
 \end{document}