{"author_link":"\/author\/dark-arts-and-sciences\/","author_name":"Dark Arts and Sciences","author_uid":"13938","comments":[{"author_name":"Croze","author_uid":"24715","time":"Aug 27, 2013 @ 2:29am","epoch":1377570240,"text":"Isn't even a game... Is this even playable?"},{"author_name":"ShadowFire3800","author_uid":"24097","time":"Aug 27, 2013 @ 2:40am","epoch":1377570900,"text":"Would be nice if you could have a little tutorial on how to play your game."},{"author_name":"megashroom","author_uid":"24770","time":"Aug 27, 2013 @ 4:03am","epoch":1377575880,"text":"Nice game\/simulation (it was a little esoteric).\r<br\/>The boid flocking was pretty nicely done too.\r<br\/>Also, you might want to put a link to pygame in the description, so that some more people could download it."},{"author_name":"Qaterknan","author_uid":"11181","time":"Aug 27, 2013 @ 9:43am","epoch":1377596280,"text":"It is good concept."},{"author_name":"rylgh","author_uid":"15833","time":"Aug 27, 2013 @ 9:33pm","epoch":1377638880,"text":"Wasn't sure what to do, but the movement simulation was very lifelike... &quot;trigger warning&quot; is an apt name as I could see how someone with aversion to bugs would be freaked out by this. Kind of made me itchy while playing with it... movement's too realistic. Neat :)"},{"author_name":"Darien","author_uid":"7355","time":"Aug 29, 2013 @ 2:31pm","epoch":1377786360,"text":"What's here seems to work more or less as advertised, but it's not much."},{"author_name":"Jacic","author_uid":"5267","time":"Aug 30, 2013 @ 8:49pm","epoch":1377895440,"text":"I don't really understand what's going on, but I like the physics."},{"author_name":"alts","author_uid":"18267","time":"Sep 5, 2013 @ 7:23am","epoch":1378365480,"text":"I'm impressed that you had time to port the game to Python. I am, however, surprised that the game performs better in Python than AS3. I wouldn't have expected that.\r<br\/>\r<br\/>Despite being incomplete, the primary interaction felt nice, and the potential for &quot;herding&quot; games with it seemed interesting."},{"author_name":"Spelchan","author_uid":"15656","time":"Sep 13, 2013 @ 10:45pm","epoch":1379112000,"text":"Interesting flocking mechanism but not much of a game."},{"author_name":"sans_seraph","author_uid":"26719","time":"Sep 14, 2013 @ 8:41am","epoch":1379147760,"text":"Very interesting prototype!  It looks nice and was fun to play with.  I'd be interested to see a full game come out of it, you could do a lot of cool stuff with this."}],"images":["ld27\/13938-786c5ae661cabde98c609a8526f82273.jpg","ld27\/13938-e09b298fec47a2bb31a3fe9ec3c443f1.jpg","ld27\/13938-9f3fa0e4d7838ec7e93c1a1a20ee48d8.jpg"],"links":[{"url":"http:\/\/github.com\/DarkArtsAndSciences\/trigger-warning","text":"Post-Compo"},{"url":"http:\/\/www.darkartsandsciences.com\/trigger_warning","text":"Flash (older)"},{"url":"http:\/\/pastebin.com\/U1tVuwvv","text":"Python (newer)"},{"url":"http:\/\/www.darkartsandsciences.com\/trigger-warning-source.zip","text":"Source (both versions + resources + git logs, 9.3MB)"}],"metadata":{"g_key":"23736","g_author":"13938","g_event":"LD27","g_eventkey":"18","g_subevent":"JAM","g_urlkey":"23766","g_title":"Trigger Warning","g_status":"UCHK1","g_place":"601","g_commentcount":"10","g_site2_node_id":"0","g_hide":"N","g_has_icon":"Y","g_rqueue":"0","g_random":"0"},"nds":[],"node":null,"orig_images":["http:\/\/ludumdare.com\/compo\/wp-content\/compo2\/\/273708\/13938-shot0.png-eq-900-500.jpg","http:\/\/ludumdare.com\/compo\/wp-content\/compo2\/\/273708\/13938-shot1.png-eq-900-500.jpg","http:\/\/ludumdare.com\/compo\/wp-content\/compo2\/\/273708\/13938-shot2.png-eq-900-500.jpg"],"text":"*** This isn't finished, but it's headed somewhere interesting. I'm posting what I have now and hoping social pressure will make me finish it instead of sending it to the Island of Forgotten Prototypes. ***\r\n\r\nFlash \"protoype\": Requires only a web browser with Flash.\r\nPython rewrite: Requires python and pygame. Download the file from the pastebin as \"trigger_warning.py\" and run it from the command line via \"python trigger_warning.py\"\r\nSource: Contains both Flash and Python versions, all source files and resources, and git logs from start to finish (the folder might be invisible, but they're there). Bonus: countdown.py script for displaying competition time left, works with GeekTool.\r\n\r\nControls - Flash: Hold down the mouse to attract boids, release it to scare them away.\r\nControls - Python: Hold down the mouse to attract boids.  Attract the boids to the triggers; they'll turn yellow if you succeed. Press R to rewind time by 1\/4 second.\r\n\r\nBoids set off triggers that they touch.\r\n\r\nBoids are yellow if they have touched a trigger, blue if they're angry about other boids flying too close, and red if they're very angry.\r\n\r\nLuckily for you, I ran out of time and did not implement any painful triggers. (You're welcome.)\r\n\r\nFor future pain-enhanced versions, visit:\r\n\tdarkartsandsciences.com\r\n\r\nLonger notes:\r\n\r\nNo, it isn't complete.  Here's what IS finished:\r\n\r\nThe flying dots are Boids [http:\/\/en.wikipedia.org\/wiki\/Boids]. Boids are an artificial life form that use simple rules to produce complex behavior simulating a flock of birds. Each boid INDIVIDUALLY looks at rest of the flock and chooses where to fly next.\r\n\r\nI did not invent Boids; the original algorithm was developed in 1986.  I started with this pseudocode [http:\/\/www.kfish.org\/boids\/pseudocode.html], converted it into Flash, realized that a: With more than five boids, Flash doesn't have enough power to calculate that many nested for loops in one frame on a MacBook Air and b: I quit using ActionScript and learned Python for many Very Good Reasons. And re-converted it into Python.\r\n\r\nI don't regret starting over, but I do regret not giving up on the Flash version sooner. The two versions may have similar features, but the Flash code is at touch-anything-and-everything-breaks while the Python version is still fun to work on. If I'd moved on sooner, I'd have something much more playable.\r\n\r\nAnyway, my core idea is to stick a few more rules on top of the emergent behavior already in Boids and see what happens.  Boids. Ten seconds. Trigger. Warning.\r\n\r\nThus, the rest of the rules:\r\n\r\nTriggers have warnings (the red text) and an effect (any function) that happens ten seconds later.  Like the intro says, you can't edit THAT ten seconds, but you CAN edit time itself.\r\n\r\nTime is pausable and rewindable.  Watch the intro closely. That isn't your computer lagging; game time actually STOPS (on \"itself\" and \"can\", if it's synced right).\r\n\r\nEditing time affects when warnings and effects happen.  Boids are not affected directly, but will immediately react to any changes in the game world.\r\n\r\nThe trigger system actually creates everything except the intro text and the first two trigger dots.  The red \"Warning!\" message is the first warning. It takes ten seconds to fade out, then triggers the \"start game\" effect, which turns on the trigger dots and creates the boids. Those triggers then turn boids that touch them yellow.\r\n\r\nBoids have moods which affect their behavior. (\"Angry Boids\" would not be an inaccurate alternate title.)\r\n\r\nIn the Python version, the only mood is anger, which goes up when a boid has to fly around another boid and goes down over time.  If you make the boids fly into each other (by holding the mouse down and waiting for them to fly to it), they will turn blue and eventually red.  It's hard to see, but angrier boids have a higher maximum speed.\r\n\r\nIn the Flash version, boids have separate anger\/red, fear\/blue and tired\/green variables, which combine smoothly to set the boid's color. Angry boids won't try to avoid collisions with other boids. Boids that are startled by noise\/mouse clicks, fly too fast, or almost hit other boids become fearful.  Tired boids will drop to the bottom of the screen and rest for ten seconds, which regenerates all their moods.\r\n\r\nFlash only: When you release the mouse button, boids are startled away from that point for ten seconds.  They remember the startle point instead of avoiding the mouse's current location.\r\n\r\nHere's what ISN'T finished:\r\n\r\nThe initial two triggers should rewind time by a second whenever a boid touches them. (I almost got this in right before the deadline, but Python didn't like where I was accessing the time offset variable from. If I had more of a game by that point, I'd have called it a game-breaking bug and spent a few more minutes passing references around. Rewinding works, triggering it doesn't.)\r\n\r\nOnce you've messed with time enough, the real levels should start. If you don't figure out what you're supposed to be doing within ten seconds, a help message appears explaining the controls, something like \"Click and hold and the mouse on a green thing until a white dot hits it and turns yellow. Look what the timer did. Now do that nine more times because a: theme and b: I want to be SURE you understand the controls.\"\r\n\r\nReal levels. I don't have ANYTHING implemented here, but here's the design document I wrote during the competition. [http:\/\/www.darkartsandsciences\/trigger-warning-design] Short version: you don't control the boids directly, but you can create and\/or fire triggers that affect their behavior.","title":"Trigger Warning"}