Skip to content

Commit

Permalink
Merge branch 'master' of github.com:cymonsgames/ASCIIpOrtal into orig…
Browse files Browse the repository at this point in the history
…in_master
  • Loading branch information
cymonsgames committed Jul 19, 2011
2 parents b670a3b + 4dce85c commit 7c186a9
Show file tree
Hide file tree
Showing 12 changed files with 166 additions and 150 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ o Save data is persistent across reinstallation (%APPDATA% on win32,
~/.asciiportal otherwise)
o Map pack's 'credits.txt' now gets added to the default credits.
o The nosdl port (truly ASCII!) should be roughly working now.
o OS X port with the latest version.

1.2c bugfixes.

Expand Down
10 changes: 7 additions & 3 deletions CONTRIBUTE
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ So far, ASCIIpOrtal has been known to work on the following systems:
should work using Mingw);
+ Linux 32 bits;
+ Linux 64 bits;
+ Mac OS X (an old version though);
+ Mac OS X;
+ GP2X;
+ DINGOO.

Expand All @@ -55,8 +55,12 @@ Official releases

We officially release ASCIIpOrtal packages for the following systems:
+ Windows: binary zip file;
+ Linux: binary tarball, debian package (not yet available),
Archlinux package (AUR);
+ Linux: binary tarball for 32 and 64-bits, debian package (not yet
available), Archlinux package (AUR);
+ OS X Intel dmg (courtesy of cynddl, it might be sometimes outdated)

See the website for downloads: http://cymonsgames.com/zorun/test-website
for the moment (it should become http://asciiportal.cymonsgames.com soon)

We would be very happy to add other systems to that list -- especially
GP2X and DINGOO, since the code is already running on these.
Expand Down
15 changes: 8 additions & 7 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ About ASCIIpOrtal
See README.
This is documenting the way to build ASCIIpOrtal; if you only want to
play, you should check ASCIIpOrtal main website, we have pre-compiled
packages for Windows, Linux 32-bits and Linux 64-bits.
packages for Windows, Linux 32-bits and Linux 64-bits (we also have an
experimental package for OS X on intel).

http://cymonsgames.com/asciiportal/

Expand Down Expand Up @@ -46,16 +47,16 @@ the moment (most notably, the keyboard input really sucks)
Using the Makefiles
~~~~~~~~~~~~~~~~~~~

If you don't have PDCurses with SDL support on your system, just run
the default target:
If you have neither PDCurses with SDL support, nor yaml-cpp available on
your system, then just run the default target:

$ make

It should download and build PDCurses, then build ASCIIpOrtal.
It should download and build PDCurses and yaml-cpp, then build ASCIIpOrtal.

If you already have PDCurses on your system, you might want to use the
'linux' target:
If you already have PDCurses and yaml-cpp on your system, you might want to
use the 'linux' target (note that it could work fine on OS X too):

$ make linux

It basically does the same, without caring for PDCurses.
It basically does the same, without building PDCurses or yaml-cpp first.
2 changes: 1 addition & 1 deletion Makefile.common
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
ASCIIPORTAL = asciiportal

# This is also used in the code at compilation time
AP_VERSION = 1.3-beta6
AP_VERSION = 1.3-beta7

# This is the base name for the tarball generated
DISTNAME = $(ASCIIPORTAL)-$(AP_VERSION)
Expand Down
253 changes: 127 additions & 126 deletions README
Original file line number Diff line number Diff line change
@@ -1,126 +1,127 @@
ASCIIpOrtal
By Joe Larson
Sound Design by Steve Fenton.

Inspired by Increpare's Portile game
(http://www.increpare.com/2008/11/portile/) and Super Serif Bros
(http://foon.co.uk/farcade/ssb/) and Valve's Portal.

Check http://cymonsgames.com/asciiportal for updates or our Github page
at https://github.com/cymonsgames/ASCIIpOrtal

HOW TO PLAY
===========
Grab your hand-held portal device and enter the test chambers for a
non-euclidean good time.

ASCIIpOrtal is a text based puzzle game inspired by the popular video game.
In ASCIIpOrtal you overcome challenges by placing portal way-points, joining
two points in the map. If they player or any object passes through one portal
way-point it will seamlessly exit the other. Since both way-points are the
same point on the map the player's view through the portal reflects this and
space warps around you as you pass through the portal.

From the main menu you can choose to 'Begin' from the first map, 'Select
Level' to visit any level you've already beaten, 'Change Map Set' to load a
new set of levels from any map set subdirectory in your ASCIIpOrtal
directory, Read the 'Instructions', view the map set's 'Credits', or 'Quit'
the game.

Within the game you can use the following keys to play:
Left/Right Arrows . Move Left/Right
Up/Down Arrows .... Move Up/Down Ladders
or adjust aim.
Number Pad Keys ... Quick Aim.
Z/0 ............... Fire Blue Portal
X/PERIOD .......... Fire Yellow Portal
SPACE/5 ........... Fire 'Next' Portal
C ................. Clear Portals

ESC/F1 ............ Menu
P ................. In-game Pause
F2 ................ Change Portal Render
F3 ................ Set to Default Speed
+ ................. Increase Game Speed
- ................. Decrease Game Speed
R ................. Restart Level
M ................. Mute/Unmute music
? ................. This menu

The goal of each level is to make it to one of exits on the level. Exits
appear as an E on a green field.

USING PORTALS
=============
Portals link 2 places on the map and make them as one place. Remember that
you can aim diagonally to aid portal placement, except when on ladders. While
on ladders your aim remains steady and can only be adjusted using the Number
Pad for quick aim.

When passing through portals if the in direction and out direction are
different then any object passing through the portal will exit it rotated,
preserving momentum. This opens up several techniques:

HOROZONTAL FLING - Fall into a portal placed on the floor from a height and
exit a portal on the wall. You will travel a horizontal distance relative to
how far you fell before gravity will take over.

VERTICAL FLING - Fall into a portal placed on the floor from a height and
exit a portal placed on the floor. You will travel a distance up relative to
how far you fell. It's important to note that the distance you fall up will
be less than the height you fell from, so vertical re-flings will eventually
fall to zero.

OBJECT RELOCATION - Occasionally you will need get objects from where they
are and pushing them either will not work (in the case of a box stuck in the
corner) or is not possible (in the case of boulders). Placing a portal under
or in the path of an object can aid in getting things where you want them.

For any other use of portals experimentation is key.

STATS
=====
After each level you will be given your stats for that level. They are:

Game beats - How many in game "turns" it took you.

Portals Used - How many portals you opened in the last successful run. Missed
placements that don't open don't count against your score.

Deaths/Restarts - How many times you had to try to get that last successful run.

MAKING YOUR OWN CHALLENGES
==========================
Please see the included MAP_MAKING_TIPS.txt for the how-to on making your own
challenging maps.

COMMAND LINE PROMPTS
====================
-? This help menu
-m [mappackname] load a map pack
-r <width>x<height> Choose the screen resolution (default: 640x480)
-f Fullscreen mode
-w Windowed mode (default)

Please visit Cymon's Games and register on the forums
(http://cymonsgames.com/forum).

Any comments or critisism you can either post on the forums or e-mail me
directly at [email protected].

KNOWN ISSUES
============
o If a portal is on one side of a wall, and you attempt to place a portal on
the other side of the same wall in the same time you will not be allowed.
This is because both portals, despite not being invisible to each other,
will be trying to occupy the same space. Does not warrant the time to fix it.

THANK YOU
=========
Thanks again to Erin Robinson who without which I would not have been as well
known as quickly. It was her tweet that got me on Kotaku, Boing Boing, Wired,
Joystiq, and just about every other games news website.

Thanks to Nicholas McGuire, Mads Lund, arminwagner, Sparky, and i300 for
designing levels during the beta that were used in the initial public
release. Thank you to everyone else who helped with the beta testing.
ASCIIpOrtal
By Joe Larson
Sound Design by Steve Fenton.

Inspired by Increpare's Portile game
(http://www.increpare.com/2008/11/portile/) and Super Serif Bros
(http://foon.co.uk/farcade/ssb/) and Valve's Portal.

Check http://cymonsgames.com/asciiportal for updates or our Github page
at https://github.com/cymonsgames/ASCIIpOrtal

HOW TO PLAY
===========
Grab your hand-held portal device and enter the test chambers for a
non-euclidean good time.

ASCIIpOrtal is a text based puzzle game inspired by the popular video game.
In ASCIIpOrtal you overcome challenges by placing portal way-points, joining
two points in the map. If they player or any object passes through one portal
way-point it will seamlessly exit the other. Since both way-points are the
same point on the map the player's view through the portal reflects this and
space warps around you as you pass through the portal.

From the main menu you can choose to 'Begin' from the first map, 'Select
Level' to visit any level you've already beaten, 'Change Map Set' to load a
new set of levels from any map set subdirectory in your ASCIIpOrtal
directory, Read the 'Instructions', view the map set's 'Credits', or 'Quit'
the game.

Within the game you can use the following keys to play:
Left/Right Arrows . Move Left/Right
Up/Down Arrows .... Move Up/Down Ladders
or adjust aim.
Number Pad Keys ... Quick Aim.
Z/0 ............... Fire Blue Portal
X/PERIOD .......... Fire Yellow Portal
SPACE/5 ........... Fire 'Next' Portal
C ................. Clear Portals

ESC/F1 ............ Menu
P ................. In-game Pause
F2 ................ Change Portal Render
F3 ................ Set to Default Speed
+ ................. Increase Game Speed
- ................. Decrease Game Speed
R ................. Restart Level
M ................. Mute/Unmute music
? ................. This menu

The goal of each level is to make it to one of exits on the level. Exits
appear as an E on a green field.

USING PORTALS
=============
Portals link 2 places on the map and make them as one place. Remember that
you can aim diagonally to aid portal placement, except when on ladders. While
on ladders your aim remains steady and can only be adjusted using the Number
Pad for quick aim.

When passing through portals if the in direction and out direction are
different then any object passing through the portal will exit it rotated,
preserving momentum. This opens up several techniques:

HOROZONTAL FLING - Fall into a portal placed on the floor from a height and
exit a portal on the wall. You will travel a horizontal distance relative to
how far you fell before gravity will take over.

VERTICAL FLING - Fall into a portal placed on the floor from a height and
exit a portal placed on the floor. You will travel a distance up relative to
how far you fell. It's important to note that the distance you fall up will
be less than the height you fell from, so vertical re-flings will eventually
fall to zero.

OBJECT RELOCATION - Occasionally you will need get objects from where they
are and pushing them either will not work (in the case of a box stuck in the
corner) or is not possible (in the case of boulders). Placing a portal under
or in the path of an object can aid in getting things where you want them.

For any other use of portals experimentation is key.

STATS
=====
After each level you will be given your stats for that level. They are:

Game beats - How many in game "turns" it took you.

Portals Used - How many portals you opened in the last successful run. Missed
placements that don't open don't count against your score.

Deaths/Restarts - How many times you had to try to get that last successful run.

MAKING YOUR OWN CHALLENGES
==========================
Please see the included MAP_MAKING_TIPS.txt for the how-to on making your own
challenging maps.

COMMAND LINE PROMPTS
====================
-? This help menu
-m [mappackname] load a map pack
-r <width>x<height> Choose the screen resolution (default: 640x480)
-f Fullscreen mode
-w Windowed mode (default)

Please visit Cymon's Games and register on the forums
(http://cymonsgames.com/forum).

Any comments or critisism you can either post on the forums or e-mail me
directly at [email protected].

KNOWN ISSUES
============
o If a portal is on one side of a wall, and you attempt to place a portal on
the other side of the same wall in the same time you will not be allowed.
This is because both portals, despite not being invisible to each other,
will be trying to occupy the same space. Does not warrant the time to fix it.
o See the issue tracker on Github

THANK YOU
=========
Thanks again to Erin Robinson who without which I would not have been as well
known as quickly. It was her tweet that got me on Kotaku, Boing Boing, Wired,
Joystiq, and just about every other games news website.

Thanks to Nicholas McGuire, Mads Lund, arminwagner, Sparky, and i300 for
designing levels during the beta that were used in the initial public
release. Thank you to everyone else who helped with the beta testing.
6 changes: 1 addition & 5 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
TODO list:
TODO list: (see also Github's issue tracker)
- 'make all' : the -j option gets discarded sometimes in the way (yeah, I own a quad core server and I want compilation to be fast :) ) -zorun

- The mouse events should not do anything (ie. returning ERR), but they do have an effect sometimes. -zorun

- Refactor all of the user interaction (displaying menus, etc). Could use some curses wrapper (although many of them seem abandonned). Also, wtf, curses has a structure called a *window*, that makes things easier (no need to always stay in the main stdscr) -zorun

- There seems to be duplicate levels across map packs. Also, need to fill in descriptions (files 'infos.yaml'). -zorun

- Be able to configure keyboard (to play with ZQSD in France, for instance) -zorun

- Rework the very first levels (it is confusing to have the portal gun while not being able to use it) -zorun
10 changes: 5 additions & 5 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
asciiportal (1.3-beta6) unstable; urgency=low

* Initial release

-- Baptiste Jonglez <[email protected]> Fri, 13 May 2011 18:48:58 -0600
asciiportal (1.3-beta7) unstable; urgency=low
* Initial release
-- Baptiste Jonglez <[email protected]> Fri, 13 May 2011 18:48:58 -0600
2 changes: 1 addition & 1 deletion maps/challengeme/infos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ description: |
author: Joe Larson (and others) # The author of the map pack.
version: 1.0 # Version. You might want to provide a changelog file.
difficulty: 5 # Difficulty range from 0 (easiest) to 10 (hardest)
priority: 5 # This is used for official map packs only. The default should be fine.
priority: 10 # This is used for official map packs only. The default should be fine.
2 changes: 1 addition & 1 deletion maps/default/infos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Default levels # The name of the map pack. Should not exceed 30 characters
description: |
The map set of choice to begin with ASCIIpOrtal. Basic skills of ASCIIpOrtal are introduced here. The game defaults to this map pack.
Version 1.0 - 50 grueling levels.
Version 2.0 - 25 easy levels. The extra leves were put into their own map pack called ChallengeMe.
Version 2.0 - 25 easy levels. The extra levels were put into their own map pack called "Bonus Challenge" (ChallengeMe).
author: Joe Larson # The author of the map pack.
version: 2.0 # Version. You might want to provide a changelog file.
difficulty: 2 # Difficulty range from 0 (easiest) to 10 (hardest)
Expand Down
1 change: 0 additions & 1 deletion maps/ivanq/save.dat

This file was deleted.

9 changes: 9 additions & 0 deletions src/ap_maps.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ void operator>>(ifstream& instream, mp_properties& p) {
parser.GetNextDocument(node);

node["protocol"] >> p.protocol;

if (p.protocol > MAPS_PROTOCOL) { // new format we don't know about
//TODO: use the window manager when it's done
string _name;
node["name"] >> _name;
cerr << "Warning!! This map pack (" << _name << ") makes use of a newer description format! Please upgrade your ASCIIpOrtal, or weird things will happen..." << endl;
return;
}

node["name"] >> p.name;
node["description"] >> p.description;
node["author"] >> p.author;
Expand Down
5 changes: 5 additions & 0 deletions src/asciiportal.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@
#define AP_VERSION "1.3"
#endif

// level file syntax
#ifndef MAPS_PROTOCOL
#define MAPS_PROTOCOL 1
#endif

// Note that the Makefile handles this
#ifndef __NOSDL__
//#define __NOSDL__
Expand Down

0 comments on commit 7c186a9

Please sign in to comment.