Difference between revisions of "Python"

From RogueBasin
Jump to navigation Jump to search
m (→‎Roguelike games in Python: remove Twilight (abandoned project))
(reformat as table)
Line 1: Line 1:
{{Template:Programming language| name = Python
{{Programming language| name = Python
|company = Python Software Foundation
|company = Python Software Foundation
|influences = ABC programming language  
|influences = ABC programming language  
Line 48: Line 48:


== Roguelike games in Python ==
== Roguelike games in Python ==
 
{|class="wikitable sortable" style="width:50%"
* {{beta}} [[Artisan]]
!style="width:15%;"|Status || Name
* {{alpha}} [[CrashRun]]
|-
* {{alpha}} [[CyberRogue]]
| {{beta}} ||  [[Artisan]]
* {{7DRL}} [[Cypress Tree Manor]]
|-
* {{7DRL}} [[Fist of the Rogue Warrior]]
| {{alpha}} ||  [[CrashRun]]
* {{alpha}} [[Herculeum]]
|-
* {{alpha}} [[Ighalsk]]
| {{alpha}} ||  [[CyberRogue]]
* {{defunct}} [[I, Monster]]
|-
* {{alpha}} [[Lands of Elderlore]]
| {{7DRL}} ||  [[Cypress Tree Manor]]
* {{beta}} [[Mines of Elderlore]]
|-
* {{beta}} [[Netpack]]
| {{7DRL}} ||  [[Fist of the Rogue Warrior]]
* {{beta}} [[Nyctos]]
|-
* {{alpha}} [[Pyro]]
| {{alpha}} ||  [[Herculeum]]
* {{alpha}} [[Shuruppak]]
|-
* {{7DRL}} [[Swamp Monster]]
| {{alpha}} ||  [[Ighalsk]]
* {{beta}} [[Test Adventure]]
|-
* {{alpha}} [[Torchlit]]
| {{defunct}} ||  [[I, Monster]]
* {{7DRL}} [[TrapRL]]
|-
* {{alpha}} [[Ultima Ratio Regum]]
| {{alpha}} ||  [[Lands of Elderlore]]
* {{alpha}} [[Wa]]
|-
* {{7DRL}} [[Whispers in the Void]]
| {{beta}} ||  [[Mines of Elderlore]]
* {{7DRL}} [[Z-Day]]
|-
| {{beta}} ||  [[Netpack]]
|-
| {{beta}} ||  [[Nyctos]]
|-
| {{alpha}} ||  [[Pyro]]
|-
| {{alpha}} ||  [[Shuruppak]]
|-
| {{7DRL}} ||  [[Swamp Monster]]
|-
| {{beta}} ||  [[Test Adventure]]
|-
| {{alpha}} ||  [[Torchlit]]
|-
| {{7DRL}} ||  [[TrapRL]]
|-
| {{alpha}} ||  [[Ultima Ratio Regum]]
|-
| {{alpha}} ||  [[Wa]]
|-
| {{7DRL}} ||  [[Whispers in the Void]]
|-
| {{7DRL}} ||  [[Z-Day]]
|}

Revision as of 15:08, 23 March 2013

Python
Programming Language
Company Python Software Foundation
Influences ABC programming language
Updated Sept 29 2012 (3.3.0) and April 9, 2012 (2.7.3)
Status Stable
Licensing Open Source (Python 3.3.0 license)
Platforms Linux, Unix, Mac OS X, Windows and others.
Official site of Python


What is Python?

From the official Python FAQ:

"Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many Unix variants, on the Mac, and on PCs under MS-DOS, Windows, Windows NT, and OS/2."

A full set of features can be found here.

Roguelike Specific Details

Python's expressive code, dynamic typing, flexible data types, and powerful OO and exception handling facilities make it well-suited to quick, productive RL development. However, like all interpreted languages, Python has a reputation for large memory overheads and being slower in some applications when compared to compiled languages such as C++. These problems, however, can be overcome with the extension of third-party Python modules such as Psyco, and proper profiling and programming techniques. Another problem is that Python often requires the user to download an interpreter separately. A way to solve that is to include the interpreter in the game download.

Python's rapid speed of development and human-readable code makes it an excellent choice for programmers wanting to develop a roguelike in a limited amount of time, making the language ideal for 7DRL Challenges.

Python-Specific Articles on RogueBasin

Related links

  • Curses at pythonlibs, unofficial curses module implementation for Windows Python, based on PDCurses. Differs from UniCurses above in that UniCurses is a different module, whereas this fixes the feature outage found in a default Python windows install. Has 32b and 64b binaries available for 2.x and 3.x. Tiny and easy to install. Better alternative to WCurses (below). Python 3.3 will most probably have this implementation installed by default, so all of these problems will go away :)
  • UniCurses for Python, a Python wrapper module that provides consistent Curses functionality on all platforms including Microsoft Windows (by wrapping PDCurses), Linux and Mac OS X (by wrapping the original "curses" module). It supports both Python 2 and Python 3, starting with version 2.6.1.
  • WCurses, a Python module implementing a substantial subset of the Curses interface under Windows. You'll have to compile it yourself as adamv no longer issues binaries. Python includes Curses support by default for other OS's.
  • Doryen Library, libtcod is a free, fast, portable and uncomplicated API for roguelike developers providing an advanced true color console emulator, input, and lots of other utilities frequently used in roguelikes.
  • Psyco, the specializing compiler for Python. Improves performance 2 to 100 times (usually about 4 times), and requires little more from the programmer than to import the module and execute psyco.full().
  • py2exe is a package which converts Python scripts into executable Windows programs, able to run without requiring a Python installation. Since most Windows users will not have Python installed, py2exe is a good way to distribute your Python game to that audience.
  • PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux, and Mac OS X.
  • Pygame, Pygame is an SDL wrapper for Python that has been used for many graphical and non-graphical Roguelikes.
  • with_curses, just a tiny bit of help for Linux/Unix roguelikes.

Roguelike games in Python

Status Name
βeta Artisan
αlpha CrashRun
αlpha CyberRogue
7DRL Cypress Tree Manor
7DRL Fist of the Rogue Warrior
αlpha Herculeum
αlpha Ighalsk
defunct I, Monster
αlpha Lands of Elderlore
βeta Mines of Elderlore
βeta Netpack
βeta Nyctos
αlpha Pyro
αlpha Shuruppak
7DRL Swamp Monster
βeta Test Adventure
αlpha Torchlit
7DRL TrapRL
αlpha Ultima Ratio Regum
αlpha Wa
7DRL Whispers in the Void
7DRL Z-Day