Welcome to sphere.sf.net
Main Menu  

Preferred language:


Sphere 1.0 (final) Released

Posted by: aegis on Feb 18, 2003 - 07:40 PM
Well, it's finally done. Sphere 1.0 has been released, six years after development began. What started as a 640x480 24-bit color tile scrolling demo has become a full 2D RPG development environment.

Download the installer here. The rest of the files are here.

Sphere has been my primary project for a LONG time, and I have learned a great deal from it... graphics programming, sound programming, software architecture, project management, build processes, release processes, scripting languages, etc. Sphere has been more educational than a large number of my college classes!

I've been impressed time and time again by the quality of the games created by the community. Who would have thought that when I finally gave in and added networking support that we'd suddenly have an IRC client! Or when I added textured quad rendering that people would make 3D engines... It's been a great six years.

I'd like to thank several of you (in no particular order) for your support over the years.

  • My girlfriend, Laura, for understanding when I was busy writing code instead of talking.

  • My parents for not enforcing the "one hour of computer time per day" rule.

  • My roommate Mike for thinking of the name and letting me stay up until 6:00 a.m. while working on some new feature.

  • Jacky Chong (Darklich) for helping me early on with a lot of the code.

  • Brian Robb (Flik) for helping me get Sphere 1.0 out by tackling bugs and feature requests left and right as well as writing a huge amount of tutorials.

  • Lyell Embery (Alienax) for porting the editor to wxWindows and adding several features.

  • Dusty Leary (kepler) and Andy Friesen (the Speed Bump) for design ideas.

  • Brandon Mechtley (malis) for creating sphere.sf.net, one of the best things to ever happen to Sphere.

  • Dennis Rosenfeld (DRosen) and Dustin Wilson (Khadgar) for the icons.

  • The rest of the community for taking Sphere to the limit and writing documentation for nearly every one of Sphere's features.

What next? I probably won't work on Sphere anymore, except for bug fixes. I want to spend more time with the virtual reality resources I have available at the VRAC... so expect some more nifty software, even if it doesn't run on commodity hardware. ;) I also have ideas for other game engines... We'll see.

This doesn't mean Sphere will go undeveloped. It's open source, so anyone can work on it. In fact, I've written documentation and scripts to make it easy to compile Sphere on your own. Brian Robb (Flik) is the new project leader and a great programmer, so look forward to more releases and features!

It's been fun. Best of luck with your games!

Chad Austin

The changelog since 0.97 (last official release) is below, as usual.

- show the version number in the engine and editor windows as well
as the start menu
- integrated SDHawk's startup game
- include all files in packages, including files without dots in
their name

- you can no longer add zones that have a width and height of zero

- added help menu to take you to the sphere.sf.net FAQ
- removed the reference to MIDI files from the editor... you can no
longer add them to your projects, because they are unsupported

- removed "Alternate DirectBlit method" from sphere_gl's
configuration, since it is never used.

- fixed a stack overflow bug when using the fill tool on large images
- removed the options dialog box from the editor
- fix trigger activation so you can activate a trigger more than
once on a map
- make rawfile.read return a ByteArray object
- redraw the map after ResizeAllLayers
- when resizing or rescaling the tileset, move entities, the
start point, and zones appropriately as well
- changed the Paste Area tool's tooltip to "Paste Area" instead of
- clarified documentation for ExitMapEngine()
- added a 1000 millisecond delay before error messages go away
- when zone scripts fail, the map engine stops (just like triggers
and person scripts)
- calling Exit() in a bound script or person script or trigger
(etc.) no longer gives an error
- added Eric Duvic's circles.js system script
- made Clock.getTime() return an array if you pass true to it.
(August Bigelow)

- fixed GrabImage crash bug in standard16 and interpolate16
- fixed: GrabImage in sphere_gl grabbed the wrong pixels (and
inverted them too)

- fixed bug where phantom buttons would appear in tool palettes while
resizing them
- fixed bug where drawing gradient window styles in sphere_gl would
leave a gap along the edge of the center
- fixed bug where drawing a gradient rectangle before drawing any
images would cause the gradient to not show up
- open sounds in the editor as a stream so huge files don't take
forever to load
- moving between two adjacent triggers now activates the new one
(this may be a regression from when I fixed the trigger detection
to be pixel-perfect)
- added IsLayerReflective and SetLayerReflective (Brian Robb)
- fix GetCurrentMap() in map entry scripts
- don't crash when loading a corrupt spriteset
- added file_object.flush()
- added links to web sites and documentation from the editor's help menu
- beta 3 released

- make ExecuteGame work no matter where the game calling it is
located on the filesystem
- fix bug where OpenRawFile('blah', true) wouldn't actually create
the file
- Added new functions to joysticks.js system script and improved old
functions' robustness (Brian Robb)

- added Flik's joysticks.js system script
- fixed the "person doesn't exist inside of 'on create' script" bug

- Sphere 1.0 beta 2 released.

- upgraded JS engine to 1.5 RC 5, which should improve framerates
and fix a few crashes.
- improved GetGameList() so that it returns author and description
information as well
- the Game Settings dialog box now has author and description
- you no longer need to explicitly set the game script. The first
script added to the project is automatically set as the game script.

- added AreZonesAt, ExecuteZones, ExecuteZoneScript, GetZoneX/Y,
GetZoneWidth/Height, GetNumZones (Brian Robb)
- made the Run Sphere button in the editor work no matter what
project is open. now you can open a project file anywhere on your
hard drive and run the game with the lightning bolt.

- added Get/SetTileDelay and Get/SetNextAnimatedTile (Brian Robb)

- various fixes to the new SCons build system
- pruned source tree, getting rid of many obsolete directories and
- made build system convert text files from UNIX to DOS format when
installing them
- added an installer, which registers file types with Windows
(double-clicking on packages, finally!)
- updated icons to DRosen's new ones
- bumped version number to 1.0 beta 1 (beta release!)
- added GetTileImage() and SetTileImage() (BrianRobb)
- fixed a ton of bugs in the spriteset editor
- made line numbers count from 1 instead of 0 (Brian Robb)

- fixed error message in GetPersonList() and made person name error
checking more compact (Brian Robb)
- reverted convert.js to be compatible with 0.97 games (Brian Robb)
- support building with VC6 and SCons in Cygwin (replacing the old
DevStudio build environment)

- changed OpenRawFile to take an optional writeable parameter,
defaults to false for compatibility with old games (Brian Robb)

- added raw_file.write() (Brian Robb)

- changing the script font remembers the font size (Brian Robb)
- added Get/SetLayerAlpha to the docs (Brian Robb)
- added GetLayerName() so you can refer to layers by name (Brian Robb)
- added GetObstructingTile/Person(name,x,y) to the map engine (Brian Robb)

- added more script editor options (change font, tab size, toggle
highlighting) (Brian Robb)
- added RequireScript() and RequireSystemScript() (Brian Robb)
- added spriteset color replacer (Brian Robb)
- added layerview -> export all visible layers as image (Brian Robb)
- added Get/SetMapEngineFrameRate() (Brian Robb)
- added Ignore{Person,Tile}Obstructions() and
IsIgnoring{Person,Tile}Obstructions() (Brian Robb)
- fixed bug where it was possible to undo after first opening a
script (Brian Robb)
- fixed bug where it was possible to set a frame rate of 0 using
MapEngine(map, 0) (Brian Robb)
- added line numbers in script dialog (Brian Robb)

- slightly tweaked trigger locations so you cannot slip between two
adjacent ones
- cannot delete a tile if there is only one left (Brian Robb)
- optionally prune tileset when using Import Image To Map (Brian Robb)
- added map -> slide -> up/right/down/left (doesn't move entities though)
(Brian Robb)
- added layer view -> slide -> up/right/down/left (Brian Robb)
- replace color with new color in tileset range (Brian Robb)
- layers are no longer reflective by default (Brian Robb)
- Change Font option in the script editor (Brian Robb)

- add support for exporting spritesets as images
- add support for stretched window style backgrounds
- add a drawZoomedFrame method to animation objects
- fix SetFrameRate(0)
- add keyboard shortcuts to the font editor so you can press a
letter and jump to that character. you can also use arrow keys.
- added left and right arrow keyboard shortcuts to the map/tileset
- added keyboard shortcuts for some of the obstruction things
- added ability to paste RGB or alpha into image editor (Brian Robb)
- added GetCurrentMap() function (Brian Robb)
- added an option for drawing a grid in the image editor
- removed BlendPaste and changed Negative Image so it can choose
between RGB/Alpha/Both
- added GetTalkDistance() and GetTalkActivationKey() (Brian Robb)
- added a menu option in the map editor to lock the layers in place
so you don't accidentally drag them around (Brian Robb)
- added support for joysticks
- added IsTriggerAt() and ExecuteTrigger() (Brian Robb)

- display the Corona and Audiere version numbers in Help | About.
Also update copyright to 2003
- partially fix resource leak when switching between editor
windows. this should alleviate a few random editor crashes.
- document alt-f4 in keys.txt
- added documentation that says you shouldn't use SetFrameRate() at
the same time as the map engine
- added NegativeImage and Solarize to image editor (Brian Robb)
- added a GetVersion() function that returns the current version as
a floating point number
- added some documentation for packages
- added a surface.replaceColor method

- fix bug where Sphere would assign "north" to person entities that
didn't even have a "north" direction.
- make trigger location detection more reliable by checking one
extra pixel to the left and one up so people can't slip between
two adjacent triggers.
- fix bug where switching from larger map to smaller map makes
Sphere think smaller map is bigger than it really is
- when inserting person entities into a map, put them one more pixel
up and one more pixel left so they are aligned with tiles.
- animate obstructions with tiles
- ExecuteGame() changes so drivers don't keep images around
after the driver has been destroyed. this prevents sphere_gl
texture corruption.
- fix a crash bug in the FLIC animation code. prevents some crashes
from invalid FLIC animation files.
- fix a crash bug in the MNG animation code
- fix memory leak in DestroyPerson()
- don't allow setPixel() or getPixel() to access pixels outside of
the surface
- standard32: don't crash when creating a surface from an image with
an alpha of 0

- sphere_gl: don't put a border around the window when running
- sphere_gl: fix GrabImage in sphere_gl

- fix a horrible invalid memory usage bug in config.exe

- added GetTileWidth and GetTileHeight to the docs
- added ReplaceTilesOnLayer function
- don't allow SetFrameRate() to take an fps less than 1

- Got Sphere to build in Cygwin with SCons (100% free software!)

- removed GetCurrentMap() from documentation, because it doesn't
actually exist
- fixed animation_object's width and height documentation
- added some documentation for animation_object's getNumFrames()
- documented system keypresses (F1 = toggle framerate throttle in
map engine, F11 = show fps, F12 = take screenshot)

- Fixed clipping in ApplyColorFX() (Lyell Embery)
- Bug fix: MapToScreenX/Y() and ScreenToMapX/Y() were doing
something other than converting from map to screen coordinates
(and vice versa) (Lyell Embery)

- added ColorMatrix object and applyColorFX4 method to surface
objects (Lyell Embery)

- added ApplyColorFX() method to surface objects (Lyell Embery)
- added Flik's colorspace conversion system script
- added Flik's math.js system script

- added SetPersonFrameRevert(), which allows a person to revert to
the first frame of an animation after a given amount of frames
(Lyell Embery)
- added floating point precision on person object positions

- added Daroth's map_animation.js system script
- added documentation for map_animation.js script

- added support for movement speeds other than 1 (Lyell Embery)
- fixed potential crash when sound objects are destroyed

- added support for zones (Lyell Embery)
- added a wxeditor port of the old MFC editor (Lyell Embery)

- clarified GetPersonX and GetPersonY documentation

- upgraded Sphere to new audiere, allowing user to choose whether to
run without sound or not
- added panning and pitch shifting to sound objects

- fixed bug: infinite recursion of search text is in replace text
(Lyell Embery)
- switch focus to clicked scripts (Lyell Embery)

- added obstruction move tool (Lyell Embery)
- holding control while placing obstructions aligns the endpoints to
tile_width / 4 (Lyell Embery)
- draws an xor line when adding or moving an obstruction line (Lyell Embery)

- added Flik's layers system script
- fix bug where Sphere wouldn't report errors in render or update
scripts (by reverting to an older version of the JS engine)

- added IsLayerVisible and SetLayerVisible to the documentation

- clarified GetFrameRate() documentation

- reset map engine frame throttling if an update script takes more
than a second

- if an audio context can't be opened, try to open the null one

- 0.97 release

Sphere 1.0 (final) Released | Log-in or register a new user account | 1 Comment
Comments are statements made by the person that posted them.
They do not necessarily represent the opinions of the site editor.

Re: Sphere 1.0 (final) Released

(Score: 1)
by malis (user malis at host cherem dot org) on Feb 20, 2003 - 01:43 AM
(User information  | Send a message http://tadan.us/~malis)
Rock on. An excellent job, indeed! I look forward to your future projects :)

There are 1 unlogged user and 0 registered users online.

You can log-in or register for a user account here.



 Log in Problems?
 New User? Sign Up!

SourceForge LogoAll trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the poster.
Page created in 0.26269292831421 seconds.