Phun, a Master Thesis by Emil Ernerfeldt (aka emilk). Contact: phungame@gmail.com
www.acc.umu.se/~emilk/ or www.vrlab.umu.se/research/phun/
Beta 3.12, 2008-02-24

For how to use the program, see Help.txt, or click the help button inside Phun.

If you have problems running the program, follow these steps:
- Download the latest graphics drivers for your computer
- Set your monitor bit depth to 32-bits (or set Phun to 16 bit by adding "System.depth = 16;" to config.cfg, see below)
- Disable any secondary monitors

Try Phun again, if no success, try these things:
- Erase the contents of config.cfg (or create an empty config.cfg if none exists, in the same folder as autoexec.cfg).
- Add "Resources.shaders = false;" to the end of config.cfg (using e.g. notepad)
- Try setting different resolutions on your monitor
- Try setting these config variables (again, at the end of config.cfg) to different things:
	System.fullscreen = true; // or try false
	System.resolution = [1024, 768]; // or your default resolution
	System.vSync = false;
- Delete the Shaders folder under Phun/Data/

Phun is free for non-commercial use.
Use Phun at your own risk! It comes with no warranty, and it can be quite addictive!


Changelog:

Beta 3.11 and 3.12, 2008-02-21
* Beta 3.11 fixed a bug Stric pointed out to me
* Beta 3.12 removed the dependency on multi texturing support.

Beta 3.1, 2008-02-21
* Removed the dependency on vcredist by compiling with mingw instead (thanks to Zao for the help)
* The linux version now figures out it's path.
* Moving objects moves them to the front of the screen again.
* Moving a geometry does no longer move all objects fixated to it
* You can now set a geometry not to collide with anything else by a checkbox in popup->geom.
* Added two console commands: System.minFPS and System.maxFPS. The simulation will be slowed down to match an FPS of System.minFPS; and the program will sleep so it won't go past System.maxFPS.
* Added the ability to click on a slider value and enter a new one.
* Fixed a bug where the text cursor would be drawn in the wrong place.
* Fixed so air buoyancy and friction adds to the rotation of an object (the heaviest part of an object will tend to fall first etc)
* Set Resources.shaders to false per default. Turn on shaders in the options menu.
* Added an option to turn off the clouds.

Beta 3.0, 2008-02-20
* Added the ability to choose object color
* Added the ability to follow objects (right-click them to do so, and right-click background to stop).
* Optimized any scene containing water (more speed improvements to come though).
* Added a file command for removing all water from a scene
* Holding down shift while rotating now rotates in increments of 15
* Prevented popups from coming to close to the bottom right corner of the screen.
* Set vsync off by default for better performance. Turn on again with System.vSync = true;
* Removed a couple of usages of OpenGL before I had a GL context (may have caused some start-up crashes).
* Fixed a bug where deleting things while moving them would cause the program to crash.
* Added circle LOD; if a circle is less than 10 pixels wide, it will be drawn in a simpler and faster way.
* No longer create the last hinge of a chain connected to the same body (like the world).
* Fixed a bug where you couldn't undo a clone
* Several minor fixes and tweaks.
* Added a Phun program icon by Marty
* Renamed scene files from .cfg to .phn (your old files will be renamed automaticly at startup, and there is full backwards-compability by just renaming).
* Fixed so you know can tell Windows explorer so associate .phn files to Phun (you could before too, but now it works)
* Added an option for simple water rendering (good for FPS and for those having trouble with the other water render paths)
* Holding down ALT while clicking a chain let's you select individual joints.

Beta 2.51, 2008-02-17
* Renamed App.shaders to Resources.shaders (just to confuse you), and made it acctually work this time.
* Water droplets lie flat on surfaces (looks better)

Beta 2.5, 2008-02-16
* Added a non-shader render path (turn on by putting "App.shaders=false;" in autoexec.cfg).
* Added the ability to control hinge motors with the arrow keys.
* Upgraded the tools so that you can draw with the hinge-, drag- and fixate-tools.
* Upgraded the brush tool to drawing straight lines when SHIFT is pressed (thanks to the people who suggested this feature)
* Added an option for drawing objects inside other objects
* Added an option for hiding hinges and fixates when the simulation is running (thanks for the tip, Jooh4n).
* Added autosave of config file.
* Fixed a bug where moving hinged objects may break the hinge
* Fixed a bug where 'Zoom to scene' wouldn't work
* Added detachable submenus to the popup-menu.
* Did some small rendering optimizations
* Added air buoyancy (lighter-than-air flight possible for light-weight objects)
* Renamed CRASH.cfg and LAST.cfg to _AUTOSAVE.cfg and _ONEXITSAVE.cfg

Beta 2.3, 2008-02-13
* Fixed a bug where motor hinges would add velocity to the objects attached to it
* Fixed a bug where you could click right through a GUI window

Beta 2.2, 2008-02-12
* Redesigned the UI, with new File and Options menus.
* Dissalowed left-click-menus by default. Turn back on in the new options menu
* Slightly better box-box collision detection
* Fixed a bug where the length of springs would be forgotten when moved
* Lowered the default spring strength to make it act a bit more springy by default
* Lowered the default water droplet size
* Fixed a problem where button-clicks would go undetected at low frame-rates
* You can now change the scale of the UI with the console command GUI.Scale
* Optimized the GUI rendering slightly

Beta 2.0, 2008-02-07
* Made it easier to rotate planes.
* Added groups. You can now assign objects to group (0-9 on the keyboard) using ctrl-#, and select them by pressing that number.
* Added friction to water, so water droplets no longer slide frictionless over a surface
* Water no longer bounces on objects
* The water is now more stable
* Optimized water-world collision.
* Changed the object look slightly (removed polygon borders)
* Optimized polygon drawing for older hardware (no more floating point textures)
* Fixed a problem where Fixate-crosses would dissapear when they were being moved
* Fixed a bug where a hinge motor would have trouble rotating with a spring attached
* Fixed three seperate instances of the NULL SharedPtr crash, involving geometry-fixating (often occuring during Undo:ing), water and bad objects. Hopefully this will fix all crashes (dream on, Emil...)
* Fixed a major memory leak. Things should run a lot smoother and use less memory from now on.
* Added a window title

Beta 1.7, 2008-01-30
* A swedish translation accessible by a clicking the Swedish flag on the left
* Prettier background (clear blue sky with clouds floating)
* Max and minimum zoom level
* Zoom slider
* Help window
* About window
* Redesigned UI
* Single water droplets now evaporates after a while
* New keyboard shortcuts
* A lot of bugfixes
* Bundled TODO.txt and BUGS.txt for all to see
* More things I have forgotten about

Beta 1.6, 2008-01-24
* Added Linux binary
* Fixed a bug regaring drawing squares (hold down shift while usign the box tool)
* Removed the guitar background


Beta 1.5, 2008-01-23
* Ability to clone objects (drag while holding control, or click selection and choose "clone")
* Objects now have color
* Added hinge motors
* More stable drag tool
* Varius speed optimizations
* Improved UI
* Animated background


Beta 1.2, 2007-12-18
* Fixed a bug where adding a fixjoint at the wrong place would crash the program
* Added arrows for the undo/redo buttons making the measier to spot
* Added a (stable) linux binary


Beta 1.1, 2007-12-18
* Fixed a bug in the physics solver
* Fixed a bug causing the program to crash when adding zero sized objects
* Rearanged the menu bar and added icons for the panner and zoomer
* Optimized the rendering slightly


Beta 1.0, 2007-12-17
* A completely new physics solver!
* A new Chain tool for placing out a string of circles connected with hinges
* The ability to tweak object restitution and friction
* A lot of fixes and tweaks


Alpha 4.5, 2007-12-13
* Added support for simpler shaders
* Added sliders for adjusting simulation speed, object density and spring settings
* Added stripes on circles so their rotation can be observed
* Fixed a lot of bugs with the tools
* Fixed crash at exit (at least on Windows)


Alpha 4.1, 2007-11-30
* Fixed rendering to work on older hardware


Alpha 4, 2007-11-28

Changed:
* Added three tools: Box, FixJoint and Drag
* Added undo/redo
* Added ability to save and load scenes to file
* Visual upgrades
* Friction (Sim.friction)
* Added cvars antiAlias, fullscreen, resizable, resolution and vSync under System. Modify these in the config, or in the console at runtime (follow with a call to System.recreateWindow to apply).


Alpha 3, 2007-11-08

Added:
* Fix joints
* Rotational joints
* Water
* Popup-menus for bodies (only two options: erase and liquify)
* Unified rendering for polygons, circles and planes

Fixed:
* Collision detection bugs
* Lots more


Alpha 2, 2007-10-31

Features:
* Polygons, circles, planes and springs
* A very simple physics engine (temporary)
* A GUI for choosing different tools (brush, plane, circle and spring)
* A console and the Thyme scripting language (my own)
* Bugs!

Known issues:
* Crashes at exit
* The simulation checkbox not showing the simulation status
