Difference between revisions of "Complete Roguelike Tutorial, using python3+libtcod, setup Mac"

From RogueBasin
Jump to navigation Jump to search
Line 66: Line 66:
The version should be at least "Python 3.6.5".
The version should be at least "Python 3.6.5".


 
=== Pip ===
 
Python 3 comes bundled with a python package manager called `pip` which is used to install all python related dependencies.  To make sure we have `pip` installed run in a terminal:
=== Setting up Python dependencies ===
 
==== Pip ====
Python 3 comes bundled with a python package manager called `pip`.  To make sure we have `pip` installed run in a terminal:
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">python -m ensurepip</syntaxhighlight></div>
<div style="padding: 5px; border: solid 1px #C0C0C0; background-color: #F0F0F0"><syntaxhighlight lang="bash">python -m ensurepip</syntaxhighlight></div>
==== Python Virtual Environments ====


== Installing libtcod ==
== Installing libtcod ==

Revision as of 16:55, 10 June 2018

This is part of a series of tutorials; the main page can be found here.

Setup Mac

Installing an Editor

Editors are often a personal choice. Their primary function is to allow the creation and editing of code. Additional functionality may be included such as code intelligence, code completion, static analysis, testing, debugging, etc. usually through plugins. Some editors are also IDEs or integrated development environments. They can help manage the lifetime of a project. For this tutorial, you only need an editor and none of the extra functionality, but an IDE may be very helpful when learning programming (or Python) for the first time.

The following editors are all excellent for python development. You only need one.

Note that these are listed in order of decreasing preference for development with python as a beginner. (i.e. pick one of the top ones for the best out of the box python experience)


Setting up Bash

Open finder (cmd + space) and go to your home folder and then press CMD + SHIFT + . (command + shift + period). Look for a ".bashrc" file within finder. Open it up in your editor or create a new file. Make sure the following lines show up at the bottom of the file:

# Setup prompt colors
reset_color="\[\e[m\]"
declare -A fg
magenta="\[\e[35m\]"
yellow="\[\e[33m\]"
green="\[\e[32m\]"

function virtualenv_prompt() {
    if [ -n "$VIRTUAL_ENV" ]; then
        pyver=$(python -V 2>&1 | cut -f2 -d' ')
        echo "(${magenta}venv${reset_color}:${yellow}${VIRTUAL_ENV##*/}$reset_color|${green}${pyver}${reset_color}) "
    fi
}

export PS1="$(virtualenv_prompt)${PS1}"
export LIBTCOD_DLL_PATH="/usr/local/lib;/usr/lib;$HOME/.local/lib;$HOME/lib"

Opening a Terminal

While Mac comes with a Terminal built-in, Iterm2 is the recommend install for a terminal. Once installed, simply press `Cmd + Space Bar` and type in iterm or terminal (for the default mac terminal). Whether you've installed iterm or are using the default terminal, we will use the word "terminal" below to refer to your preferred program (iterm or terminal).


Setting up Homebrew

Homebrew is a package manager for Mac. Within a terminal, type the following to install homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


Setting up Mercurial

Now that we have homebrew, we can install several dependencies. Mercurial allows us to download the `libtcod` library from `bitbucket.org` where the source code resides. Mercurial is an alternative to Git for software configuration management. Within a terminal, run:

brew install mercurial


Setting up Python

To install the latest python version, simply run within a terminal:

brew install python3

To validate that we've installed python correctly, within a terminal, run:

python --version

The version should be at least "Python 3.6.5".

Pip

Python 3 comes bundled with a python package manager called `pip` which is used to install all python related dependencies. To make sure we have `pip` installed run in a terminal:

python -m ensurepip

Installing libtcod

At this point, we should be ready to download and install libtcod. There are several basic steps required to make this work.

  • install libtcod dependencies
  • download the source code from bitbucket using mercurial
  • build the source code with scons from within our virtual environment
  • move the resulting library file (libtcod.dylib) into a proper folder


Install libtcod build and runtime dependencies

Libtcod relies upon SDL2 to run and several other packages to build. To install sdl, run within the terminal:

brew install autoconf automake libtool pkg-config sdl2 mercurial

Download libtcod

The build process is fairly straight forward, but first we need to download the source code from bitbucket.

cd $HOME
mkdir -p $HOME/repos/other/
cd $HOME/repos/other
hg clone https://bitbucket.org/libtcod/libtcod


Build libtcod

Configuring the build tools

There are several options for building, but the most straightforward mechanism is to use autotools to build.

Make sure you're at the top of the libtcod repo:

cd $HOME/repos/other/libtcod

Change to the autotools build folder:

cd build/autotools

Run autotools configuration:

autoreconf -i

Run libtcod compilation configuration:

./configure CFLAGS='-O2'

Build libtcod:

make

Installing libtcod

To install in the recommended system path:

cd $HOME/repos/other/libtcod
mkdir -p /usr/local/lib
cp -rf build/autotools/.libs/*  /usr/local/lib

Setting up your Project

Creating a virtual environment

Most python developers will use a virtual environment to isolate python and any project related dependencies from being installed into the system. This practice is a safety measure to prevent a developer's computer from becoming unstable and is highly recommended.

Installing vsh

Vsh is a virtual environment generation tool. This will help you manage and build virtual environments. Most python developers will use a virtual environment to isolate their projects from their system. Additionally, vsh runs the python virtualenv in a sub-process shell To install:

python3 -m pip install vsh

Creating a virtual environment using vsh

To create a new virtual environment with python 3 for our project, just use the following:

vsh rl

You should now be in your virtual environment

(venv:rl|3.6.5) bash-3.2$

To make sure, test your python version. You should see something like version "3.6.5". Note that the version number and virtual env name is also in the command-line prompt

(venv:rl|3.6.5) bash-3.2$ python --version

Installing libtcod into our project

Navigate to where libtcod was downloaded and then run the installation or libtcod:

(venv:rl|3.6.2) $ cd $HOME/repos/other/libtcod/python
(venv:rl|3.6.2) $ pip install .

Validate that we have libtcod installed.

(venv:rl|3.6.2) $ cd $HOME/repos/other/libtcod/python
(venv:rl|3.6.2) $ python -c "import libtcodpy"

Folder structure

Our first roguelike will be run entirely from a single file, firstrl.py. However, to support some future needs regarding packaging and to make development easier, we need to add our dependencies into the project folder.

When we're all done, the basic folder structure should look like this:

  • \project\
    \firstrl.py
mkdir -p $HOME/repos/mine/roguelike
touch $HOME/repos/mine/roguelike/firstrl.py

Finishing touches

Congratulations!

You're ready to start editing firstrl.py!

Now you're ready to start writing code.