Polynomial.

(C) 2009 Dmytry Lavrov, all rights reserved.
Pre-release version from 31 July 2009

Playing game:

Use scroll wheel (or w and s), and try both mouse buttons.
Shot red stuff, collect green stuff, avoid getting shot by red stuff.
Stay close to stars for ship to self-heal.
When you get shot, you either die or score is halved, depending to options.
Ahh, and by the way, you can reverse and fly backward quickly only near stars, so you can reverse while shooting when you're in starfield, but you can't just fly backwards into infinity while shooting :).

Making art:

you can use this program to make cool images and custom levels, see instructions below.

Controls:

ESC shows menu and pauses game.
Move mouse to turn.
Scroll wheel is throttle (alternatively, w and s keys).
a and d roll.
Left mouse button (and spacebar) shoots.
Right mouse button zooms.
F2 takes screenshot (saved in png format in the folder where you placed
the program).
h hides/shows HUD (arrows, boxes, and things).
r hides/shows radar.

HUD:

Arrows and boxes light up when enemies shoot at you.
Green boxes are for friendly things, red for unfriendly, and blue for various temporary objects like bullet impact splashers or firework heads. I did it for debugging, then found that it looks cool, and didn't disable it.

Blinking Hazards:

Orange radioactivity icon means you've been hit.
Orange thunderbolt icon means low energy (i.e. you must get closer to stars to self heal your ship. By stars I mean dots that the arena is
made from, not enemies ofc)

Bonuses:


Left to right: fast bullets(more damage), autoaim, booster.

Configuration files:

On first run, configuration files are created in:
Windows: 'Your home folder/Application Data/Polynomial/config.txt'
Linux: 'Your home folder/.polynomial/config.txt'
OS X: 'Your home folder/Library/Preferences/com.pandromeda.dmytry/Polynomial/config.txt'
If you need to revert all settings to default without running the game, delete the configuration file.
If you want to store configuration file alongside the game itself (e.g. to put it on usb drive and carry with you around), you can copy or move the configuration file to:
Windows: data/config.txt
Linux: bin/data/config.txt
OS X: Polynomial_osx.app/Contents/Resources/config.txt
Once you do so, Polynomial will no longer create or use configuration from home directory.

Bugs:

If you see ugly pixelation, press esc, open Visuals tab, and turn on "Radeon 1950 workaround". Check up to date list of issues first. If you see some bug in program, send the log.txt as attachment to dmytry_lavrov&at;yahoo.com , with description of issue and screenshots if necessary (preferably taken using f2 key).

On Windows and OS X, log.txt is application folder.
On Linux, log is printed on console. Run it from command line, for example ./Polynomial32 >log.txt

 

Creating your own artwork:

Press esc to show GUI.
In the Game panel, choose difficulty None , and click on 'Restart level' to remove all game stuff.
Switch to the Editor panel.
You can uncheck "Game mode" to allow for faster camera movements, and check it to see how level feels with game speed.

Try enter arbitrary number in the Seed field, then press next or prev, and wait up to a second.
The program will automatically try few hundreds of random sets of parameters starting from your seed until it finds something that may look cool. Press next until you find something you like.
Most of the arenas in the game were created in this manner.

If you bought full version of the game, you can now save your work as level, or save
current view as image.
When you save an image, for example, myart.png , the settings will be saved as myart.png.polynomial.txt , this is done to avoid losing the "source" to the image.
Future versions may include software renderer for making images of arbitrary sizes.

Note: for unknown reasons, on Linux, file selector popup sometimes opens as pop-under.
If you don't see it, check your taskbar for the popup.

Advanced editing:

You can tune attractor parameters in this scary looking matrix, or dt parameter, and press Apply. Try changing some value a little - e.g. replace 1 by 1.1 .
Don't be affraid to tweak! I myself cannot for life of me tell how specific set of parameters will look before i try it.
You can do it as well as I can, or better.
If you make a mistake, click on the field that you edited last time, and press ctrl-z to undo or ctrl-y to redo. The text fields support local undo and redo, even though there is no global undo.

The videos of editing process will be uploaded to youtube and posted on blog at
http://dmytry.blogspot.com

Library credits:

//========================================================================
// GLFW - An OpenGL framework
// API version: 2.6
// WWW:         http://glfw.sourceforge.net
//------------------------------------------------------------------------
// Copyright (c) 2002-2006 Camilla Berglund
//
// This software is provided 'as-is', without any express or implied
// warranty. In no event will the authors be held liable for any damages
// arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it
// freely, subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not
//    claim that you wrote the original software. If you use this software
//    in a product, an acknowledgment in the product documentation would
//    be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such, and must not
//    be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source
//    distribution.
//
//========================================================================


* GLee (OpenGL Easy Extension library)
* Version : 5.33
*
* Copyright (c)2008  Ben Woodhouse  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer as
* the first lines of this file unmodified.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BEN WOODHOUSE ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL BEN WOODHOUSE BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


// MersenneTwister.h
// Mersenne Twister random number generator -- a C++ class MTRand
// Based on code by Makoto Matsumoto, Takuji Nishimura, and Shawn Cokus
// Richard J. Wagner  v1.0  15 May 2003  rjwagner@writeme.com

// The Mersenne Twister is an algorithm for generating random numbers.  It
// was designed with consideration of the flaws in various other generators.
// The period, 2^19937-1, and the order of equidistribution, 623 dimensions,
// are far greater.  The generator is also fast; it avoids multiplication and
// division, and it benefits from caches and pipelines.  For more information
// see the inventors' web page at http://www.math.keio.ac.jp/~matumoto/emt.html

// Reference
// M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-Dimensionally
// Equidistributed Uniform Pseudo-Random Number Generator", ACM Transactions on
// Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3-30.

// Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
// Copyright (C) 2000 - 2003, Richard J. Wagner
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
//   1. Redistributions of source code must retain the above copyright
//      notice, this list of conditions and the following disclaimer.
//
//   2. Redistributions in binary form must reproduce the above copyright
//      notice, this list of conditions and the following disclaimer in the
//      documentation and/or other materials provided with the distribution.
//
//   3. The names of its contributors may not be used to endorse or promote
//      products derived from this software without specific prior written
//      permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

// The original code included the following notice:
//
//     When you use this, send an email to: matumoto@math.keio.ac.jp
//     with an appropriate reference to your work.
//
// It would be nice to CC: rjwagner@writeme.com and Cokus@math.washington.edu
// when you write.

Shared library credits:
OpenAL32.dll , libopenal.so (openal-soft audio engine):

/**
 * OpenAL cross platform audio library
 * Copyright (C) 1999-2007 by authors.
 * This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 *  License along with this library; if not, write to the
 *  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 *  Boston, MA  02111-1307, USA.
 * Or go to http://www.gnu.org/copyleft/lgpl.html
 */

alure32.dll, libalure.so, libalure.dylib:
/*
 * ALURE utility library
 * Copyright (C) 2009 by Chris Robinson.
 * This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 *  License along with this library; if not, write to the
 *  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 *  Boston, MA  02111-1307, USA.
 * Or go to http://www.gnu.org/copyleft/lgpl.html
 */


Lua Interpreter (embedded):

Lua License
-----------

Lua is licensed under the terms of the MIT license reproduced below.
This means that Lua is free software and can be used for both academic
and commercial purposes at absolutely no cost.

For details and rationale, see http://www.lua.org/license.html .

===============================================================================

Copyright (C) 1994-2008 Lua.org, PUC-Rio.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

===============================================================================

(end of COPYRIGHT)