Author Topic: Powder Game  (Read 47168 times)

0 Members and 1 Guest are viewing this topic.

Offline Spenceboy98

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 547
  • Rating: +59/-2
    • View Profile
Re: Powder Game
« Reply #210 on: March 31, 2012, 03:29:57 pm »
I wish that someone would port a Powder Game for the Prizm. I love the original game.
I like milk.

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: Powder Game
« Reply #211 on: March 31, 2012, 04:05:27 pm »
Hmm, too bad the project is now deadish :[ I do have a few particle rules and I was rewriting the particle engine to Grammer, so if you ever pick this up again, feel free to bug me :P I am currently looking into a method I thought of that will use lots of RAM, but allow for fast interaction with particles (so you can quickly instantly detect if there oil under your water, for example). Unfortunately, the program could require >9000 bytes of free RAM, but it might be worth it...

EDIT: Of course, on a Prizm, this would not be a big deal and could allow for about 20 different particle types o.o

Offline aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3915
  • Rating: +184/-32
    • View Profile
    • wank.party
Re: Powder Game
« Reply #212 on: March 31, 2012, 04:38:22 pm »
Woah, impressive xeda ^.^someone really should complete this :D
I'm not a nerd but I pretend:

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: Powder Game
« Reply #213 on: March 31, 2012, 04:48:16 pm »
Basically, I am on this kick of using multiple buffers. For example, you have a buffer for water, a buffer for sand, and a buffer for immovable objects. The water moves and it checks above and below. If there is a space below on all buffers, move down. Otherwise, check left/right and do the same trick. If there is still no room, check up. If the sand buffer has a pixel on swap the pixel locations. You then have similar rules for other particles :)

The only issues you might have from there is that you don't easily get pressure or temp involved. For that, you would need to modify the algorithms for each pixel, slightly. Then you can create an array for each pixel on the screen for pressure. If I were doing this, I would do 1 nibble per pixels where each bit in the nibble corresponded to a direction. 1 means pressure in that direction and 0 means no pressure. This would help decide the primary directions for a particle to move and then secondary directions, and further.

EDIT: For the Prizm, if we work in a 128x128 region, it would require 2KB per layer and 64KB for the pressure buffer. The Prizm has 2MB, so that should be fine :) with 10 particle types, that would be 84KB of RAM used.

Offline ZippyDee

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 729
  • Rating: +83/-8
  • Why not zoidberg?
    • View Profile
Re: Powder Game
« Reply #214 on: March 31, 2012, 09:31:09 pm »
Sounds like a somewhat space consuming solution :P Definitely more viable on the Prizm, in my opinion.
There's something about Tuesday...


Pushpins 'n' stuff...


Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: Powder Game
« Reply #215 on: March 31, 2012, 11:09:43 pm »
Yeah, it is definitely one of the most space consuming models, but the plus is that it will run much faster than other methods . Plus, you can have particles occupying the whole screen :D

Also, since the Prizm has a color screen, you could simplify the method to just having everything on the screen. Just use the colors to figure out which particles are which, then you can use the pressure buffer in combination. Then for a full screen, it would be 41472 bytes for the pressure buffer and whatever buffer the LCD is on :)