\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{NeonKnightOA} \pdfinfo{ /Title (netradiant-1-5-for-openarena.pdf) /Creator (Cheatography) /Author (NeonKnightOA) /Subject (NetRadiant 1.5 for OpenArena Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{870C0C} \definecolor{LightBackground}{HTML}{FBF7F7} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{NetRadiant 1.5 for OpenArena Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{NeonKnightOA} via \textcolor{DarkBackground}{\uline{cheatography.com/24399/cs/6016/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}NeonKnightOA \\ \uline{cheatography.com/neonknightoa} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 9th November, 2015.\\ Updated 8th October, 2017.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{3.52 cm} x{4.48 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Download and installation}} \tn % Row 0 \SetRowColor{LightBackground} The game & http://openarena.ws \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} The editor (Win32) & https://goo.gl/UyXRUJ \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} The editor (Win64) & https://goo.gl/gBQSGC \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} The editor (Source code) & \seqsplit{https://github.com/Garux/netradiant-custom} \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} BSPC & \seqsplit{https://github.com/sago007/bspc/releases/download/v2016.6.28/sago007\_bspc\_2016-06-28.zip} \tn % Row Count 11 (+ 4) % Row 5 \SetRowColor{white} Gamepack (0.8.8) & \seqsplit{https://github.com/NeonKnightOA/oaassets/tree/master/tools/gamepacks/netradiant-oa088} \tn % Row Count 15 (+ 4) % Row 6 \SetRowColor{LightBackground} Gamepack (SVN r951) & \seqsplit{https://github.com/NeonKnightOA/oaassets/tree/master/tools/gamepacks/netradiant-oasvn951} \tn % Row Count 19 (+ 4) % Row 7 \SetRowColor{white} Mapping resources and tutorials & \seqsplit{http://openarena.wikia.com/wiki/Mapping\_manual} \tn % Row Count 22 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{UPDATED Oct 8, 2017}} \newline 1) {\bf{Download OpenArena 0.8.8 or build dev version with {\emph{svn https://openarena.ws/svn }}.}} \newline 2) {\bf{Download the editor and unzip.}} \newline 3) {\bf{Go to the gamepack page you wish to download. Click on "Clone / Download" and unzip in the Editor's location.}} \newline 4) {\bf{Make sure }}/home/.openarena/baseoa {\emph{(Linux){\bf{}} or }}Users/\textless{}yourusername\textgreater{}/AppData/Roaming/OpenArena/baseoa {\emph{(Win7 onwards){\bf{}} folder is clean.}} \newline 5) Build {\bf{bspc}} or download it from somewhere.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Basic configuration (Edit → Preferences)}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Global}} & {\emph{Enable Logging}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} {\bf{Global → Game}} & {\emph{Show Global Preferences}} (to check you're going to map for OA) \tn % Row Count 4 (+ 3) % Row 2 \SetRowColor{LightBackground} {\bf{Interface → Layout}} & Choose {\emph{C/XY/XZ/YZ}} (third from left) Check that all checkboxes are selected. \tn % Row Count 8 (+ 4) % Row 3 \SetRowColor{white} {\bf{Settings → Brush}} & Enable {\emph{Snap planes to integer grid}} and {\emph{Always use caulk for new brushes}}. \tn % Row Count 12 (+ 4) % Row 4 \SetRowColor{LightBackground} {\bf{Settings → Camera}} & Disable {\emph{Enable far-clip plane}}. \tn % Row Count 14 (+ 2) % Row 5 \SetRowColor{white} {\bf{Settings → Clipper}} & Enable {\emph{Clipper tool uses caulk}}. \tn % Row Count 16 (+ 2) % Row 6 \SetRowColor{LightBackground} {\bf{Settings → Build}} & {\emph{Enable Build Process Monitoring}} and {\emph{Stop Compilation On Leak}} \tn % Row Count 19 (+ 3) % Row 7 \SetRowColor{white} {\bf{Settings → Autosave}} & {\emph{Enable Autosave}} and {\emph{Save snapshots}}. \tn % Row Count 21 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{First time open:}} Choose {\bf{Open Arena}} as game and look for the folder of your uncompressed 0.8.8/built dev version next. \newline {\bf{Alternative projection:}} Allows the editor to open maps created with older editors. Go to {\emph{Edit → Preferences}} then to {\emph{Settings → Brush}} and check {\emph{Use alternative texture projection (primitives)}}.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{The 10 Mapping Commandments}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{1. Thou shalt ALWAYS plan your map before opening the editor.}} \newline % Row Count 2 (+ 2) Remember to also bear in mind the limitations of the game you're mapping to (physics, weaponry, etc). \newline % Row Count 5 (+ 3) {\bf{2. Thou shalt NOT place KEY GAME OBJECTIVES (flags, obelisks, control points) in areas only reachable throughout trickjumping.}} \newline % Row Count 8 (+ 3) It creates unnecessary imbalance giving unfair advantages to humans, especially if they involve trickjumping. Key game objectives should be available to everyone on equal foot, regardless of skill level, PERIOD. \newline % Row Count 13 (+ 5) {\bf{3. Thou shalt NOT make trickjumping mandatory in order to navigate the map.}} \newline % Row Count 15 (+ 2) Try to get scale right before sitting down and doing things. Maps should be navigable by both humans and bots. And speaking of botplay, refrain from sealing areas of your map for specific gametypes, as they may confuse the bots! \newline % Row Count 20 (+ 5) {\bf{4. Thou shalt ALWAYS handle weapon/item placement with care.}} \newline % Row Count 22 (+ 2) The powerfulness of the weapons should match how riskful is to get them. The players should work hard in order to get that sweet BFG of mass destruction! Also refrain from placing ammo near their respective weapons or too many powerful items at near-distance. \newline % Row Count 28 (+ 6) {\bf{5. Thou shalt NOT limit the powerfulness of overpowered items by modifying the item's properties.}} \newline % Row Count 31 (+ 3) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{The 10 Mapping Commandments (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Doing so messes with the player's natural timing of the items. Better limit the weapons' powerfulness with the map itself. \newline % Row Count 3 (+ 3) {\bf{6. Thou shalt NOT go overboard with (and abuse) dynamic features (traps, movable/triggered platforms/"trains", doors...) or shaders.}} \newline % Row Count 6 (+ 3) They hurt the flow of your map if handled in a careless way. Bear in mind the limitations of the game (framerates, connectivity, etc) and be smart and conservative with them! Also, tons of transparent and stage-based shaders make your map's performance slow as hell. \newline % Row Count 12 (+ 6) {\bf{7. Thou shalt NOT rely on global ambient lighting}} \newline % Row Count 14 (+ 2) It. Is. Lazy. Ambient lighting makes the map look washed up. This, however, doesn't mean that your map also needs to be dark. Take your time to lit your map properly and adjust the map's lights until it looks reasonably well lit without looking too washed up. \newline % Row Count 20 (+ 6) {\bf{8. Thou shalt NOT unbalance asymmetrical CTF maps}} \newline % Row Count 22 (+ 2) Give the same weaponry/itemry to both teams. If a team has an advantageous feature then work a counterfeature so the other team can stand against their enemies. After all, "balance in a multiplayer map means symmetry in opportunities to win, not necessarily layout". \newline % Row Count 28 (+ 6) {\bf{9. Thou shalt NOT force your map to work with any gametype}} \newline % Row Count 30 (+ 2) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{The 10 Mapping Commandments (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Better start with one main gametype and then add the gametypes it can support without problems. \newline % Row Count 2 (+ 2) {\bf{10. And most important of it all: THOU SHALT MAKE SURE YER MAP PLAYS AT ALL!}} \newline % Row Count 4 (+ 2) Nobody (except server trolls) wants to play a map which crashes the game.% Row Count 6 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{The 10 Radiant Commandments}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{1. Thou shalt ALWAYS use common/caulk for new brushes}} \newline % Row Count 2 (+ 2) It saves time by you only needing to texture the sides of the brush you want. The options {\emph{Clipper tool uses caulk}} and {\emph{Always use caulk on new brushes}} are your friends. \newline % Row Count 6 (+ 4) {\bf{2. Thou shalt handle patches with love}} \newline % Row Count 7 (+ 1) If you want to create smooth curves, patches are the most efficient way to go about this. Also, patches get along well with Hint brushes. Also, you should use Bevels instead of Endcaps or Cylinders. Vertex manipulation is your friend! \newline % Row Count 12 (+ 5) {\bf{3. Thou shalt ALWAYS mapmodel thy complex decorative brushes if ye need to use them a lot}} \newline % Row Count 14 (+ 2) If the "model" is complicated and cannot be easily created via brushes then use models. No second thoughts. \newline % Row Count 17 (+ 3) {\bf{4. Thou shalt NOT make a map composed by over 90\% of structural brushes}} \newline % Row Count 19 (+ 2) Bad use of structural brushes adds compilation time and screws up VIS, making the game to render what it isn't supposed to render. The only brushes which must be kept marked as Structural are those which seal the map from the void and those which are meant to block VIS. Everything else must be made detail. \newline % Row Count 26 (+ 7) {\bf{5. Thou shalt ALWAYS use the brush clipper and vertex editing tools instead of CSG Subtract and CSG Hollow.}} \newline % Row Count 29 (+ 3) CSG Subtract and CSG Hollow are lazy tools which create more problems than necessary. Manual modification of brushes is a far better option, as well as it being slightly better for optimization purposes. Not to mention that it will look a lot cleaner too. \newline % Row Count 35 (+ 6) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{The 10 Radiant Commandments (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{6. Thou shalt ALWAYS match the vertex points of thy brushes and NEVER use grid sizes lower than 8.}} \newline % Row Count 3 (+ 3) Unless you want to painfully deal with T-junction errors, sparklies, and all kinds of avoidable glitches. \newline % Row Count 6 (+ 3) {\bf{7. Thou shalt NOT abuse of doors, areaportals and hint brushes in thy map}} \newline % Row Count 8 (+ 2) If your map has overdraw problems, you can use them mainly for VIS stage optimization in creating clever portals so that large portions of a map that you can't see does not get rendered. Incorrect use of these tools can produce worse results instead of better results. \newline % Row Count 14 (+ 6) {\bf{8. Thou shalt NOT workaround thy leaks by encasing thy map into a hollow block}} \newline % Row Count 16 (+ 2) With leaks, better seal the hulls yourself (use Pointfiles). With skies, better reduce the space and use sky shaders, otherwise tris count will get high! In other words: FIX THY LEAKS, YE BASTARD! \newline % Row Count 20 (+ 4) {\bf{9. Thou shalt name thy map differently for every new version released.}} \newline % Row Count 22 (+ 2) Naming conventions (a3, b4, v2) also help trace bugs with newer releases which weren't in the older versions. \newline % Row Count 25 (+ 3) {\bf{10. Thou shalt ALWAYS include an .aas file with thy map}} \newline % Row Count 27 (+ 2) The odds of your map ending up in a server you don't own are close to null. With BSPC doing the job for you, you have NO excuses. And even when there are issues with limitations, there's a way to workaround this.% Row Count 32 (+ 5) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}