pysand Changelog

New in version 1.5

March 18th, 2010
  • Network mode is now faster than ever!! It's now actually playable! maybe. at the very least bandwidth has been drastically reduced.
  • And if the particles are too big for you, you can change the size by changing the variable 'PARTICLE_SIZE' in the constants file.

New in version 1.4 (March 16th, 2010)

  • Major changes in this release.
  • I've split the game into two different versions.
  • One version uses pygame and the other uses pyglet.
  • The pyglet version is faster, so i recommend playing that one, but i've kept a pygame version if you don't want to install pyglet.
  • Speed:
  • I've tried everything to speed up the game.
  • First I tried storing coordinates as a string because I read that dictionaries are faster if the keys are strings but converting them to a string wasted too much time.
  • Then I tried hashing the tuple coordinates of a particle and using that as the key but that didn't do anything.
  • Then I tried parallel processing, giving each particle their own process but some error about pickling and objects with pointers in them came up. Then i tried fixing the error but that led to a lot of confusing code which still didn't work.
  • Then I tried using an array to store the particles and another array to keep track of their coordinates but that was even slower.
  • Then I tried storing what objects have interacted into a list and then check if they're in that list they don't interact again but that was even slower too.
  • I finally managed to double the speed of the game by giving each particle a variable telling if it's interacted or not and checking it. If it has interacted then it doesn't interact again, saving some time.
  • And then I doubled it again by using pyglet and using opengl to draw to the screen
  • I think the only way to make this any faster is to use a different language. I actually tried this in c++ with SDL a while back but the best i could get was some sand falling on the screen, a weird buggy clearing function, and the sand piling up. Some day I'll get back to it...maybe...
  • And if you have any ideas on how to speed it up please don't hesitate telling me. I'm completely out of ideas or any kind of clue on how to speed it up. And if you really wanna know the most intensive operations are the draw and interact functions. I've tried making the drawing faster with pyglet and pyglet's batch drawing and vertex lists but it just gave me a really weird/cool bug. If you want I'll release the buggy version in the next release too.
  • New Additions:
  • Added Steam
  • Extras
  • I've made it where the game doesn't try connecting to the server now until you tell it to so that way if the server is down when you start the game it won't freeze.
  • Also I now have it save your game when you exit, and load it when you play again.
  • And one of the times when I gave up on making it faster I decided to finally comment the code. The code is now heavily commented! (except for save and load functions... I have no idea how those work I'm terrible with files and strings
  • And if the particles are too big for you, you can change the size by changing the variable 'grid_size' in the particle file in the Particle class.

New in version 1.2 (March 8th, 2010)

  • Added Ice
  • Added Wood

New in version 1.1 (March 7th, 2010)

  • Game is now one program. You can toggle network mode on or off
  • Fixed pen sizes. Before on the network version the pen size was stored on the server but now it's stored with the client.
  • Pysand version 1.0 netsand no longer works because I changed some methods.

New in version 0.8 (January 27th, 2010)

  • new save and load feature thanks to monkjr!
  • press 's' to save current state
  • press 'r' to load saved state
  • saves and loads to 'test.sav'
  • put in density

New in version 0.7 (January 23rd, 2010)

  • added eraser. erases a 3x3 block of particles
  • you must now specify what size you want the grid to be at the beginning of the game by entering a number from 1-5 into the command line

New in version 0.6 (January 21st, 2010)

  • game is now completely on a grid
  • game is now not as slow with interactions
  • two new elements added. oil and salt
  • sand bug still exists
  • future features:
  • loading/saving *could use some help with this*
  • eraser, should be in next version
  • any other suggestions are welcome

New in version 0.5 (January 20th, 2010)

  • There is now a palette to choose an element from and you can chosse the sand's color now.
  • The game is now slightly faster too.
  • fps (frames per second) now shows in the window caption