summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/wargame/doc/tutorial/game.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/wargame/doc/tutorial/game.tex')
-rw-r--r--macros/latex/contrib/wargame/doc/tutorial/game.tex200
1 files changed, 200 insertions, 0 deletions
diff --git a/macros/latex/contrib/wargame/doc/tutorial/game.tex b/macros/latex/contrib/wargame/doc/tutorial/game.tex
new file mode 100644
index 0000000000..6db72bff27
--- /dev/null
+++ b/macros/latex/contrib/wargame/doc/tutorial/game.tex
@@ -0,0 +1,200 @@
+\documentclass[11pt,twoside]{ltxdoc}
+
+\usepackage{game}
+\usepackage[margin=1cm,bottom=2cm,top=2cm,a4paper]{geometry}
+\newcommand\Tikz{Ti{\itshape k}Z/PGF}
+\setlength{\parskip}{.5ex}
+\setlength{\parindent}{0em}
+\newcommand\tightlist{\setlength{\itemsep}{3pt}
+ \setlength{\parskip}{0pt}}
+\newcommand\copyleftnotice{{%
+ \footnotesize \copyright{} 2022, Christian Holm Christensen,
+ licensed under the CC-BY-SA 4.0}}
+\makeatletter
+\def\ps@game{%
+ \def\@oddfoot{\hfill\copyleftnotice\hfill}%
+ \def\@evenfoot{\hfill\copyleftnotice\hfill}%
+ \def\@oddhead{The \textsf{wargame} tutorial\hfill\thepage}%
+ \def\@evenhead{\thepage\hfill\rightmark}
+ \def\sectionmark##1{%
+ \markright{\ifnum\c@secnumdepth>\z@%
+ \thesection. \ \fi##1}}}
+\makeatother
+\pagestyle{game}
+
+\title{The \LaTeX{} \textsf{wargame} package\\
+ {\large A tutorial}}
+\author{Christian Holm Christensen}
+\date{\today}
+
+\def\MacroFont{%
+ \fontencoding{\encodingdefault}%
+ \fontfamily{\ttdefault}%
+ \fontseries{\mddefault}%
+ \fontshape{\shapedefault}%
+ \footnotesize}
+\let\theCodelineNo\empty
+\begin{document}
+\thispagestyle{plain}
+\twocolumn
+\maketitle
+
+\section{Introduction}
+
+This is a short tutorial on how to use the \LaTeX{} \textsf{wargame}
+package. We will walk through the definition materials for a game.
+We will \emph{not} give actual rules for the game. That is a whole
+different topic and I refer you to the literature, for example
+
+\begin{description}\tightlist
+\item[\href{https://www.bloomsbury.com/uk/simulating-war-9781472533913/}{\textit{Simulating war}}] by P.Sabin
+\item[\href{https://www.professionalwargaming.co.uk/Complete-Wargames-Handbook-Dunnigan.pdf}{\textit{The
+ Complete Wargames Handbook}}] by J.F.Dunnigan
+\item[\href{https://www.scribd.com/book/220336866/Designing-Wargames-Introduction}{Designing
+ Wargames: Introduction}] by G.Phillies (and associated
+ \href{https://www.youtube.com/playlist?list=PLjnA1DE9KX645eBC2gDWHkSlCPvpb4JAQ}{Youtube
+ lecture series})
+
+\end{description}
+
+\section{The game}
+
+The game we will create is a small game with two factions (sides, or
+players). The game is \emph{not} supposed to be play-able, and we'll
+leave out a lot of details which we would need in a full game.
+
+\DocInput{game.sty}
+
+\section{Rules}
+
+We will not write any rules for this demonstration game. The focus of
+this tutorial is how to use the \textsf{wargame} package, not how to
+design a game.
+
+The \textsf{wargame} package does however have a number of tools that
+helps the developer write the rules. We've already seen some of them
+in action. For example, we saw how to add stacks of units to a board
+in Section~\ref{sec:board:units} or how to make board clippings to
+show a zoom of the map (Section~\ref{sec:board:clipped}).
+
+Figure~\ref{fig:clipped-attack} showed how we can illustrate an attack,
+for example. The package also provides means to indicate eliminated
+units, movement, retreats, advances, and much more. The manual gives
+a lot more information about this.
+
+\DocInput{export.tex}
+
+\section{The materials}
+
+Next, we will make some materials for printing. The next few pages
+will contain only the materials and no text, so we will summarise what
+we do here.
+
+The first thing we put out is the map. That is pretty simple. We do
+
+\begin{verbatim}
+ \begin{board}
+ \end{board}
+\end{verbatim}
+
+Then comes the OOB. We simply use the \verb+\fulloob+ macro.
+
+After that are the two tables put into one page.
+
+\begin{verbatim}
+ \crt \tec
+\end{verbatim}
+
+And the final part are the counter sheets. We will take advantage of
+the macros \verb+\alla+ and \verb+\allb+ yet again.
+
+\begin{verbatim}
+ \doublechits{\allb}{4}{1.24}
+\end{verbatim}
+
+As a final bonus, we also make a board that includes our three charts:
+The OOB, CRT, and TE. We will not demonstrate the code here, but take
+a look in the sources if you are curious.
+
+\newcommand\fullboard[1][]{%
+ \begin{tikzpicture}[#1,rotate=90]%
+ \begin{scope}
+ \begin{innerboard}
+ \end{innerboard}
+ \end{scope}
+ \begin{scope}[shift={($(frame.north east)+(7,-2.5)$)}]
+ \inneroob
+ \end{scope}
+ %
+ \node[anchor=south west,minimum width=6.2cm,minimum height=10cm,
+ line width=1pt,sub title,scale=.66,draw,align=center,
+ text depth=9.7cm,fill=neutral,transform shape]
+ at (oob frame.south west)
+ {{\LARGE Charts}};
+ %
+ \node[above right=5mm and 4mm of oob frame.south west,
+ inner sep=0pt,
+ transform shape,scale=.75,anchor=south west] (crt) {\crt};
+ %
+ \node[above=5mm of crt.north west,anchor=south west,inner sep=0pt,
+ transform shape,scale=.9] (tec) {\tec};
+ %
+ % \end{scope}
+ \node[below=1mm of frame.south west,anchor=north west,
+ transform shape]{%
+ \copyleftnotice};
+ \end{tikzpicture}}
+
+We put in \verb+\cleardoublepage+ between all this so that we can
+print directly on a duplex printer.
+
+\section{Epilogue}
+
+I hope that this short tutorial has helped you. Suggestions,
+corrections, and so on are very welcomed.
+
+\begin{flushright}
+ \textit{Christian}
+\end{flushright}
+\onecolumn
+\cleardoublepage
+
+\begin{center}
+ \begin{board}
+ \end{board}
+\end{center}
+\cleardoublepage
+
+\begin{center}
+ \fulloob
+\end{center}
+\cleardoublepage
+
+\begin{center}
+ \crt\space\space\tec
+\end{center}
+\cleardoublepage
+
+\begin{center}
+ \begin{tikzpicture}
+ \doublechits{\allb}{7}{1.24}
+ \end{tikzpicture}
+
+ \begin{tikzpicture}
+ \doublechits{\alla}{6}{1.24}
+ \end{tikzpicture}
+
+ \begin{tikzpicture}
+ \doublechits{{game turn}}{1}{1.24}
+ \end{tikzpicture}
+\end{center}
+
+\cleardoublepage
+\newgeometry{margin=7mm}
+\pagestyle{empty}
+\fullboard
+
+\end{document}
+%% Local Variables:
+%% mode: LaTeX
+%% End: