--- Log opened Wed Jan 09 00:00:49 2013 00:15 < hij1nx> dominictarr 00:17 < mbalho> chrisdickinson: wow i didnt even know contextmenu was an event 00:17 < evbogue> Is Storm --> https://github.com/nathanmarz/storm kind of like ZeroMQ just Twitterized? 00:20 < evbogue> (or maybe it's just not relevent in the context of node?) 00:28 < st_luke> substack: have you had any time to check out this PR for optimist for collecting args without echoing them in the shell? https://github.com/substack/node-optimist/pull/58 (not from me) 00:47 < st_luke> actually nm it's easy enough to use keypress along with optimist 00:54 < substack> Raynos_: https://gist.github.com/2657075 00:55 < substack> I'm #12, you're #21! 00:55 < substack> dominictarr is #33 00:55 < substack> gozala: you're in there too 00:56 < substack> odd that isaacs isn't showing up 00:57 < CoverSlide> not odd at all 00:58 < CoverSlide> probably reads and reviews a lot more code than he gets to write 00:58 < substack> his profile says 3655 https://github.com/isaacs 00:58 < CoverSlide> and is this # of commits, # of lines? 00:58 < mbalho> if only mine was accurate :( 00:59 < mbalho> substack: have you ever created png heightmap from vector contours before? 00:59 < substack> vector contours? 00:59 < mbalho> yea 00:59 < mbalho> like elevation relief contours 01:00 < gozala> wow 01:10 < defunctzombie> When I try to set an environ variable for an app that doesn't exist it fails 01:10 < defunctzombie> however, I don't want to deploy my app before I set the vars 01:10 < defunctzombie> or is there a way to deploy but not start? 01:15 < defunctzombie> bah 01:15 < defunctzombie> wrong room 01:16 < defunctzombie> guess no one in here wants to help me with my nodejitsu problems :p 01:17 < mbalho> substack: im hacking on voxel san francisco right now :D 01:20 < isaacs> substack: yes, i should be on that list. 01:20 < isaacs> substack: that makes me think that probably a lot of people are missed 01:29 < Raynos_> substack: now that is silly 03:53 < jjjjohnnny> substack: the sod gun has excellent range and accuracy 03:53 < dominictarr> mbalho: hey had an idea yesterday 03:54 < substack> jjjjohnnny: indeed! 03:54 < jjjjohnnny> LETS PLAY GUESS THE IDEA 03:54 < LOUDBOT> I'M DONE WITH MY ATTITUDE 03:54 < substack> jjjjohnnny: I want a block-smashing sniper rifle 03:54 < dominictarr> what about a programming tutorial that is just opening the console and messing with sites via js 03:54 < dominictarr> WEB CHEATCODES 03:54 < LOUDBOT> BUY IMPULSES FOR $5! WE HAVE THREE IN STOCK 03:55 < jjjjohnnny> cheated 03:55 < dominictarr> like in twitter you have jquery and you can do stuff like 03:55 < dominictarr> $('.favorite').click() 03:56 < dominictarr> and instantly favorite everyone 03:56 < dominictarr> I did that yesterday, and like 15 new people followed me 03:56 < jjjjohnnny> dominictarr: i don't know if we should teach js the same way we learned it :\ 03:56 < jjjjohnnny> that is jquery first 03:57 < dominictarr> well, not all sites have jquery 03:57 < dominictarr> like facebook doesn't 03:57 < dominictarr> the point is, to show kids where the controls are 03:57 < dominictarr> show them what power they have 03:58 < jjjjohnnny> its a good idea tho i like it #swish 03:59 < jjjjohnnny> dominictarr: i tried to get my NKO team to do an a similar idea for the command line 03:59 < dominictarr> how so? 03:59 < jjjjohnnny> basically adding a layer of fine customization on top 03:59 < jjjjohnnny> curate specific functionality 04:00 < dominictarr> not sure what you mean. can you elaborate? 04:00 < jjjjohnnny> well, adding simple UI to the CLI 04:00 < jjjjohnnny> addomh search 04:00 < jjjjohnnny> adding 04:01 < jjjjohnnny> by command line, i mean a CLI built in HTML5 04:01 < jjjjohnnny> which runs your programs CLI style 04:01 < dominictarr> right. the web dev console? or the terminal? 04:01 < jjjjohnnny> terminal 04:02 < jjjjohnnny> you know, use play, rec, youtubedl, and myriad node programs 04:02 < jjjjohnnny> tuner 04:02 < jjjjohnnny> but for people who dont use the CLI at all yet 04:03 < jjjjohnnny> instead of having an icon somewheres, they can type "timer 20 dingdong,mp3 04:04 < dominictarr> right… so is it just a terminal in the browser? 04:05 < dominictarr> or is there additional handholding involved? 04:05 < jjjjohnnny> plus some small amount of style and UI 04:05 < defunctzombie> dominictarr: has to be simpler than that 04:05 < jjjjohnnny> helpers 04:05 < defunctzombie> really the basics start with simple variables 04:05 < defunctzombie> and changing them to see results 04:05 < dominictarr> defunctzombie: yes seeing results is what i'm going for 04:06 < defunctzombie> the problem is even with teh jquery example you are bringing in a lot of notions that would not be obvious 04:06 < defunctzombie> like what is this ".favorite" 04:06 < defunctzombie> why is it in quotes 04:06 < defunctzombie> what is special about the $ 04:06 < defunctzombie> why is the .click not in quotes 04:06 < defunctzombie> why are there two () after click 04:06 < dominictarr> yes, but you need to motivate first 04:07 < defunctzombie> when you start to break down a simple statement like that it is very complex in reality 04:07 < defunctzombie> software is complex because it is abstract 04:07 < defunctzombie> you gotta make it less abstract 04:07 < dominictarr> when you just start at "hey, so this is a variable, isn't that cool! numbers!" that is not exciting unless you can do something with it 04:07 < defunctzombie> this is why simple block based approaches work really well 04:07 < defunctzombie> and the lego stuff is great 04:08 < dominictarr> but people are familiar with cheatcodes 04:08 < dominictarr> as an arbitary pattern 04:08 < defunctzombie> that is a terrible way to start (the variable thing) 04:08 < dominictarr> but the difference with these cheat codes is that there is a logic to them. 04:09 < dominictarr> anyway… this is just another approach to try. 04:09 < defunctzombie> yep 04:09 < dominictarr> not the be-all-end-all 04:10 < defunctzombie> the problem with the cheat codes is that it isn't easy to think about it yourself outside the scope of what you were told to copy and paste 04:10 < dominictarr> that is when you direct users to a regular tutorial 04:11 < dominictarr> explaining something is one thing, but the most important thing is to get people to realize that programming is fun. 04:12 < dominictarr> if you have that, they can just teach them selves. 04:18 < dominictarr> hey gwenbell, welcome to stackvm 04:19 < gwenbell> oh hi, dominictarr! 04:19 < dominictarr> so, I googled you… I discovered you had written this interesting book 04:20 < gwenbell> haha oh god 04:20 < dominictarr> but I can't find anyplace to get a copy 04:20 < gwenbell> ok, i can send it to you if you want 04:20 < gwenbell> dw? 04:20 < dominictarr> yeah 04:20 < gwenbell> it feels so long ago now 04:21 < dominictarr> like a .mobi or something? 04:21 < dominictarr> dominic.tarr@gmail.com 04:21 < gwenbell> cool 04:22 < gwenbell> i'll get it off my hard drive. sorta transitioning out of the writerly world into the developery world 04:22 < dominictarr> cool 04:23 < gwenbell> what's new in the mad science channel today? 04:23 < dominictarr> scheming ways to teach programming 04:24 < dominictarr> (read: promote anarchism) 04:24 < gwenbell> i took some classes at codecademy, and i love eloquent javascript! what have you come up with? 04:24 < dominictarr> just an idea, 04:25 < dominictarr> a tutorial based on opening the dev console 04:25 < dominictarr> and poking about websites with javascript 04:25 < dominictarr> like, on twitter you can do $('.favorite').click() 04:26 < dominictarr> and favorite EVERY tweet that is on your timeline. 04:26 < gwenbell> nice 04:26 < gwenbell> for all time? 04:26 < dominictarr> I did that yesterday, and got 15 new followers 04:26 < gwenbell> b/c it pings them when they're favorited? 04:26 < dominictarr> no just the ones they are on the current page 04:26 < dominictarr> yes 04:26 < dools> spamtastic! 04:27 < dominictarr> yes 04:30 < dominictarr> you can also unfollow everyone using jquery 04:31 < fotoverite> YES! 04:31 < fotoverite> DO THAT! 04:31 < LOUDBOT> HOW ARE RFC FORMATTED. HOW DOCUMENT GET RENDERED 04:31 < dominictarr> that is what marak did 04:31 < fotoverite> Is that how you did the favorite everything last night dominictarr 04:32 < dominictarr> no, I clicked every favorite button manually. with love. 04:33 < dominictarr> (yes, I used jquery, but still with love) 04:41 < gwenbell> dominictarr: sent! 04:41 < dominictarr> thanks 04:43 < mbalho> gwenbell: http://for-cats.com 04:44 < dominictarr> gwenbell: I think one of the problems with social media is that it's not just like regular life (which can get pretty hectic on it's own) but it's actually designed to addict you and change your behaviour. 04:44 < gwenbell> right 04:44 < gwenbell> that's why i quit all but github 04:44 < dominictarr> sometimes I wonder if you could design systems that people wanted to use, but didn't drain you emotionally 04:44 < gwenbell> which, now that it has a leaderboard thing going on is taking on an addictive quality all its own 04:45 < gwenbell> which may not be problematic if it makes us not just more prolific coders, but more thoughtful ones, too 04:45 < dominictarr> hmm, I'm not sure 04:46 < gwenbell> i just don't go to the web for nutrition other than to learn/find new info -- i don't go to the web as much for emotional connection anymore 04:46 < dominictarr> sure 04:47 < dominictarr> but for somethings, it would be impossible to build a community around without the internet 04:47 < dominictarr> because there is not sufficient density of people with that interest, except in a few places 04:48 < gwenbell> mbalho: amazing 04:52 < gwenbell> dominictarr: my guess is when we have a truly p2p connection with people, the addictive components will start to abate 04:52 < dominictarr_> I was about to quit, but then I realized that I could just unsubscribe from everyone - no newsfeed - and still use it to keep in contact with my overseas friends. 04:52 < gwenbell> when i quit i lost touch with everyone 04:52 < gwenbell> it was hella hard 04:52 < gwenbell> like, still is 04:58 < mbalho> substack: now with mountainous coloration http://maxogden.github.com/voxel-perlin-terrain/ 04:58 < mbalho> gwenbell: your usage of hella suggests you live in oakland (like me and substack) 05:03 < substack> mbalho: damn that looks really good 05:03 < gwenbell> mbalho: haven't even been to oakland believe it or not, well, except passing through on the bart 05:03 < mbalho> ah 05:05 < gwenbell> i hear it's cool in oakland 05:05 < mbalho> hella chillll 05:06 < gwenbell> you guys wanna play me in browserquest? 05:06 < gwenbell> http://browserquest.mozilla.org/ 05:07 < mbalho> im about to go offline 05:07 < gwenbell> browserquest is written in node 05:07 < gwenbell> !! 05:07 < gwenbell> ok, bye mbalho 06:20 < jjjjohnnny> im playing 06:20 < jjjjohnnny> im stopped 06:22 < mbalho> jjjjohnnny: haha 06:23 < mbalho> jjjjohnnny: new hotness maxogden.github.com/voxel-perlin-terrain 06:23 < mbalho> jjjjohnnny: wanna help me write an efficient server implementation 06:23 < mbalho> jjjjohnnny: terrain one isnt multiplayer tho 06:24 < jjjjohnnny> whoa 06:25 < mbalho> substack: ive noticed that super noisy terrain (lots of holes) slows down rendering performance a lotttt 06:25 < mbalho> substack: but noisy surface terrain is fine 06:30 < jjjjohnnny> i'll have to decline your offer for now tho 06:30 < mbalho> dang 06:30 < jjjjohnnny> you should lower gravity by a lot 06:31 < jjjjohnnny> ive been following along tho 06:31 < jjjjohnnny> and reading some code 06:31 < jjjjohnnny> ima jump in soon 06:32 < jjjjohnnny> quite a view from the top o Mt. Voxel 06:46 < mbalho> substack: also we need to write a demo using this https://github.com/thisandagain/logo 06:46 < mbalho> substack: so you can write logo macros and click to make them appear 06:49 < mbalho> substack: http://www.raspberrypi.org/archives/2872 06:54 < mbalho> substack: also you can apparently run firefox with webgl on the raspberry pi 06:59 < jjjjohnnny> mbalho: minecraft will have a (presumably) http API for programming the world 07:00 < jjjjohnnny> or that ras pi thing will 07:00 < jjjjohnnny> not as cool as directly programming the nevironment 07:00 < mbalho> jjjjohnnny: ive tried to write an http api for minecraft worlds 07:01 < mbalho> jjjjohnnny: its definitely not there yet 07:01 < mbalho> jjjjohnnny: also i think that is for the raspi minecraft only but who knows 07:11 < dominictarr> mbalho! yes! must generate procedural castels, etc, instead of clicking! 07:12 < mbalho> dominictarr: write voxel-castle on npm and i will use it 07:14 < substack> http://substack.net/projects/voxel-forest/ 07:27 < jjjjohnnny> i'll tell you what I want in an api for a 3d gameworld at this early stage 07:27 < jjjjohnnny> define a block 07:27 < jjjjohnnny> place a block some where in xyz 07:27 < substack> game.setBlock(pos, value) 07:27 < jjjjohnnny> translate and rotate a block my a matrix 07:28 < substack> value is just an int, pos is just an object with x, y, z 07:28 < jjjjohnnny> what is value for 07:29 < jjjjohnnny> object as in a three.js object? 07:29 < substack> value is the type of block 07:30 < substack> object is just something with x, y, and z 07:30 < substack> as in {} 07:37 < jjjjohnnny> very well halfway there 07:38 < jjjjohnnny> 1/4 really 07:39 < mbalho> jjjjohnnny: the entire world in in memory and you can do fast bulk edits via x,y,z lookup 07:39 < mbalho> jjjjohnnny: and then you just have to call re-render on the chunks you edited 07:42 < jjjjohnnny> substack: how do you made the voxels move when exploded 07:43 < substack> game.addItem() handles gravity 07:43 < substack> and doing the item ticks 07:46 < mbalho> substack: im working on a website also 07:46 < substack> sweet! 07:52 < mbalho> substack: http://i.imgur.com/5LMDs.gif 07:52 < mbalho> substack: oops forgot to make it repeat 08:34 < Altreus> I think substack is trying to reinvent minecraft in html5 08:35 < Altreus> substack: ah the forest works :) 08:44 < substack> Altreus: mbalho and me both 08:44 < Altreus> :) 08:45 < substack> not reinventing so much as letting other people reinvent and extend the game in their own ways 08:45 < Altreus> The modding community is pretty big already 08:51 < substack> \o/ 09:38 < substack> mbalho: http://www.youtube.com/watch?v=OuimNuADS2E 09:39 < dominictarr> Raynos: idea: coupled scuttlebutts. so, one is updated, and that change is propagated to another via a filter. 09:39 < dominictarr> so, you could have some properties that are shared between two sets of scuttlebutts, but not others 09:40 < dominictarr> this could be good for security 09:43 < substack> also for efficiency? 09:49 < dominictarr> yes, if there are some clients that don't need all the data 09:57 < dominictarr> hmm, probably not to hard to do manually... 11:00 < st_luke> I was going to sleep then I woke up and thought of a silly module, I hope nobody's made this already https://github.com/st-luke/crawly 11:04 < substack> if you think up a silly module idea then you should WRITE IT UP AND PUBLISH IT IMMEDIATELY 11:04 < st_luke> haha thats what I did 11:04 < substack> else it might be lost FOREVER 11:05 < st_luke> I woke up and wrote it really quickly 11:05 < substack> oh that's good 11:05 < substack> check this out too: http://substack.net/projects/voxel-forest/ 11:05 < substack> forests! 11:05 < st_luke> holy crap 11:06 < st_luke> fucking trees 11:07 < substack> it's fun to snipe them from far away 11:13 < st_luke> I didnt even realize i could blow them up 11:13 < substack> yep! 11:13 < jesusabdullah> I'm gonna write that awk-like lib one of these days 11:13 < substack> st_luke: using https://github.com/substack/voxel-debris 11:13 < jesusabdullah> require('awk')('pattern', fxn1, ...) 11:13 < jesusabdullah> you get the idea 11:13 < substack> jesusabdullah: build voxel-engine libs! 11:14 < substack> it's the most addictive thing ever 11:14 < jesusabdullah> what is voxel-engine 11:14 < jesusabdullah> show me 11:14 < substack> jesusabdullah: http://substack.net/projects/voxel-forest/ 11:14 < substack> it's like minecraft, only as a commonjs webgl lib 11:14 < substack> https://github.com/maxogden/voxel-engine 11:15 < substack> jesusabdullah: and in this demo I got some creatures to bounce around http://substack.net/projects/voxel-demo/ 11:16 < substack> each of these demos is a really small amount of code https://github.com/substack/voxel-debris/blob/master/example/simple.js https://github.com/substack/voxel-forest/blob/master/example/forest.js 11:17 < jesusabdullah> that's kinda cool 11:17 < jesusabdullah> one nitpick 11:17 < jesusabdullah> left and right should turn not sidestep 11:18 < substack> what do those keys do in minecraft? 11:18 < jesusabdullah> turn 11:18 < substack> I've mostly just been using the wasd controls 11:18 < jesusabdullah> I'll give those a try, wondering if they're different 11:18 < jesusabdullah> sidestep is nice if you have a "real mouse" 11:19 < jesusabdullah> on a laptop it's painful though 11:19 < jesusabdullah> yeah, wasd is a little better hands-wise but same behavior 11:21 < st_luke> works pretty well for me 11:21 < st_luke> with the sidestepping 11:24 < jesusabdullah> I still prefer turning 11:25 < st_luke> WELL SIR THERE IS ONLY ONE WAY TO SOLVE THIS 11:25 < LOUDBOT> IRSSI IS VERBOTEN FROM NOW THE OTHER 11:28 < jesusabdullah> inCORRECT Sir 12:01 < substack> jesusabdullah: lawlor is mostly using webgl for his simulations in computer graphics course this year! 12:01 < substack> I can't wait to start toying with some of those demos 12:19 < jesusabdullah> nice 12:22 < substack> http://www.youtube.com/watch?v=v7qTHbOEiDY 12:35 < jesusabdullah> lolwut 12:36 < jesusabdullah> and at least a little sexist 12:36 < jesusabdullah> haha, ythese actors 12:36 < jesusabdullah> these* 12:36 < jesusabdullah> "yeah I used a phone once" 12:38 < jesusabdullah> "liek txting!" 12:38 < jesusabdullah> "**I** have a hot girlfriend!" 13:53 < devaholic> substack: lol, fell to my death 18:20 < mbalho> jesusabdullah: a and d in minecraft sidestep 18:22 < jesusabdullah> mbalho: hmm 20:41 < mbalho> substack: we should use http://workshop.chromeexperiments.com/examples/gui/#1--Basic-Usage mebbe 20:42 < CoverSlide> ... wtf 20:49 < mbalho> substack: also https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking 20:50 < CoverSlide> mbalho: also have you read: http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php 20:50 < mbalho> CoverSlide: yea 20:50 < CoverSlide> it's a pretty good article on the same idea 20:50 < chrisdickinson> also: http://docs.garagegames.com/tgea/official/content/documentation/Engine%20Overview/Networking.html 20:51 < mbalho> nice 20:54 < Raynos> mbalho, substack: please write an open source latency compensation library :D 21:18 < mbalho> Raynos: doesnt seem like thats the hard part 21:18 < chrisdickinson> would love a predictive pvs for slim client updates 21:19 < mbalho> yea 21:20 < mbalho> im gonna hack on a multiplayer server that runs all the block collisions for players and sends authoritative position updates to all connected players 21:20 < mbalho> it shouldnt be too complicated since our world is all voxels 21:40 < jez0990_> i love being able to climb the trees in voxel-forest, it's definitely a feature :D 21:51 < mbalho> jez0990_: haha yea its pretty awesome 22:28 < Raynos> mbalho: it is hard. 22:29 < mbalho> Raynos: what part? i admittedly have a naieve understanding 22:29 < Raynos> because your effectively doing time travel 22:29 < Raynos> the part where your client runs about n ticks behind the server 22:30 < Raynos> but when you shoot locally your actually sending a message to the server saying "I shoot gun at tick n" and server is at tick n + latency and it needs to go and merge that state change in the past and replay things 22:31 < Raynos> the main point is the server can't say event happened at SERVER_TIME because that sucks for gameplay for clients 22:31 < Raynos> and each client has it's own local clock and the server needs to play events in the past to match the clients clock 22:31 < Raynos> and shit is fucked up ._. 22:31 < Raynos> time travel. 22:31 < mbalho> lol 22:31 < mbalho> well ill give it a shot and see how it goes 22:31 < Raynos> it doesnt matter for non real-time stuff 22:31 < Raynos> for bullet trajectories it's kind of important :p 22:32 < Raynos> don't create any short lived really fast entities like bullets :D 22:32 < Raynos> mbalho: there's another problem. Consider a pushable box in 3D and 4 players. Each player pushes the box at their own clock. Considering the emulation of the box's physic runs on the server, what's the correct state of the box at any time? 22:33 < Raynos> note that correct is not about what's correct 22:33 < mbalho> well im just turning on and off voxels 22:33 < Raynos> it's about from a client's gameplay point of view what is interpreted as fair 22:33 < mbalho> gotcha 22:33 < Raynos> anyway. 22:33 < CoverSlide> TIL game development is hard 22:34 < Raynos> none of these edge cases are probably relevant 22:34 < Raynos> which is awesome because those edge cases suck 22:34 < mbalho> lol 22:35 < Raynos> mbalho: what's really interesting is thinking about how you can build a distributed server that allows each client to run it's own local emulation of game state and not have an authorative server 22:35 < Raynos> central authorative servers running the simulation of the game are boring 22:35 < mbalho> Raynos: what does a decentralized case offer in terms of game mechanics (and not just a new engineering problem to solve) 22:36 < mbalho> Raynos: or is it just about not having to pay for a server 22:37 < Raynos> well you make latency dissappear 22:37 < Raynos> because your doing all your emulations locally 22:37 < Raynos> there is still latency from other players 22:37 < Raynos> but there is no round trip to server latency 22:37 < Raynos> the other game mechanic you gain is offline play 22:37 < mbalho> Raynos: interesting, is there any game that has ever done that? 22:38 < mbalho> Raynos: i think seamline offline/online or at least syncing from a offline 'instance' to an online server somewhere would be compelling 22:38 < Raynos> mbalho: I can't think of any games like this, me and jden were talking about what it looks like to build a game where p2p is a feature 22:38 < mbalho> Raynos: but i think you can achieve offine and sync without abandoning synchronous server 22:39 < Raynos> mbalho: think of multiple universe game. Want new features / content / experience. Connect to a random peer and merge his parallel world into yours 22:39 < mbalho> Raynos: sure, as long as the perceived latency 'feels' the same 22:40 < Raynos> the other thing about a p2p system 22:40 < Raynos> is the feature of being able to become a server 22:40 < Raynos> and host a game 22:40 < mbalho> Raynos: im gonna implement a centralized server first just to do it and get familiar but then this sounds interesting to hack on 22:40 < Raynos> but that's negated by just making it very easy to build a server 22:40 < mbalho> Raynos: yea 22:41 < Raynos> But dont listen to me 22:41 < Raynos> I have a p2p fetish 22:53 < chrisdickinson> i would think that the p2p clients would randomly "elect" a server 22:53 < chrisdickinson> and that to keep things fair-ish you could reelect every N turns 22:57 < j_dulaney> gwenbell or gwenbell: Ping 22:58 < j_dulaney> gwenbell_ 23:12 < gwenbell> Hey, j_dulaney! You hang out here, too! 23:12 * j_dulaney remember y'all were here 23:13 < Raynos> chrisdickinson: I would think about partitioning the world into n partition and each client has control of a section 23:13 < Raynos> so only one client runs the emulation for a world partition at a time 23:13 < chrisdickinson> (aside from prediction) 23:13 < Raynos> which would work nicely with parallel worlds 23:13 < Raynos> because each client emulates it's own world. 23:13 < Raynos> I want to write a p2p parallel worlds came 23:13 < Raynos> game* 23:16 < mbalho> Raynos: get webgl yo 23:16 < mbalho> substack: i accidentally just made this hehehe http://i.imgur.com/nQVhP.png 23:17 < Raynos> mbalho: maybe 23:17 < mbalho> Raynos: srsly its fun 23:17 * chrisdickinson starts working on "collision" module 23:18 < mbalho> chrisdickinson: whats the scope? 23:18 < chrisdickinson> it's basically to provide the collision modelling from fpsjs 23:19 < mbalho> chrisdickinson: all of our collision code is here https://github.com/maxogden/voxel-engine/blob/master/lib/game.js#L425 which calls this https://github.com/maxogden/voxel-engine/blob/master/lib/player-controls.js#L86 23:19 < Raynos> mbalho: it sounds fun. 23:20 < mbalho> chrisdickinson: ours is arguably easier because its a voxel world so we dont have to do raycasting, just penetration vectors (which we havent implemented really) 23:20 * chrisdickinson nods 23:20 < chrisdickinson> though 23:21 < gwenbell> mbalho: if i visit oakland, will you go ghost ridin' with me? 23:21 < mbalho> gwenbell: yea and hella sideshows 23:21 < gwenbell> niiiice 23:21 < jez0990_> Raynos: "a distributed server that allows each client to run it's own local emulation of game state and not have an authorative server" -- we could totally have existential debate about that comment 23:21 < mbalho> lol 23:22 < chrisdickinson> i suppose voxels help more with "what could i hit", not "what do i do when i've hit it" 23:22 < chrisdickinson> hmm 23:23 < Raynos> what is a voxel? 23:23 < Raynos> BLARGH 23:23 < Raynos> I WANT TO HACK ON TIS 23:23 < LOUDBOT> WHAT DO WE DO WITH ONE OF THOSE 23:23 < jez0990_> ha! 23:23 < tanepiper> you guys doing minecraft stuff with node? 23:23 < CoverSlide> google ken silverman voxels 23:23 < mbalho> tanepiper: yar 23:23 < mbalho> tanepiper: https://github.com/maxogden/voxel-engine dont tweet yet 23:23 < chrisdickinson> so my original approach was going to be "give me an object with position, and computed current velocity, and a list of those objects" and it would transform the original object's velocity appropriately 23:24 < tanepiper> nice 23:26 < jez0990_> CoverSlide: Voxlap is genius ...http://www.youtube.com/watch?v=XaUt31ooCXs 23:27 < Raynos> chrisdickinson: 23:27 < Raynos> > Matt: Collision detection is trivial in voxel land 23:27 < Raynos> Really trivial 23:27 < Raynos> You have a fixed grid 23:27 < Raynos> You stepwise move any moving objects by a distance proportional to the grid size 23:27 < Raynos> And block test 23:28 < chrisdickinson> theoretically 23:28 < chrisdickinson> but really you want to do the penetration test because that's what you (for example) slide against a wall that you're running slightly into 23:28 < mbalho> thats what we do now but getting the velocity and collisions and crap to feel correctly is tricky 23:28 < mbalho> chrisdickinson: yes that 23:29 < mbalho> chrisdickinson: any ideas on how to implement sliding against a wall with our current collision setup linked above? 23:31 < jjjjohnnny> vectors plus vectors 23:31 < chrisdickinson> yeahhh 23:32 < chrisdickinson> so you're doing after the velocity has already been applied 23:32 < mbalho> i need to lerp some shiz dont i 23:33 * chrisdickinson rereads his own collision code 23:33 < chrisdickinson> tbh i usually have to write and rewrite and rewrite collision code 23:33 < mbalho> chrisdickinson: it seems hard to generalize 23:33 < chrisdickinson> i feel like it could be generalized, especially with aabb-plane collisions 23:34 < chrisdickinson> and then you just need a "view" onto the voxel data that makes the voxels "look like" planes. 23:34 < mbalho> chrisdickinson: you can look up a x,y,z coord and you get if it is in a voxel or not 23:34 < mbalho> chrisdickinson: O(n) 23:34 < chrisdickinson> shouldn't it be O(1)? 23:35 < mbalho> oh right i always suck at tht notation 23:35 < chrisdickinson> ah okay :D just making sure it was just an array lookup 23:35 < mbalho> i try to be all smart sometimes 23:36 < mbalho> substack: also just accidentally made a noisy thing http://i.imgur.com/PIIHw.png 23:40 < Raynos> mbalho, chrisdickinson, substack: maintain a todo list of features for this voxel related stuff somewhere 23:40 < Raynos> so I can figure out what to work on :D 23:41 < mbalho> Raynos: will do, i just put all the current modules/demos into the voxel-engine readme github.com/maxogden/voxel-engine 23:41 < Raynos> mbalho: you can skip "npm install browserify -g" by using ./node_modules/.bin/browserify in yoru makefile 23:42 < Raynos> or move the targets in to npm scrips 23:42 < Raynos> and turn makefile into npm run x 23:42 < mbalho> Raynos: there are like 800 ways to do it yea 23:42 < mbalho> Raynos: its targeted at noobs 23:42 < Raynos> i just dont like having to globally install stuff :P 23:42 < Raynos> having a local browserify is nicer 23:43 < mbalho> Raynos: if you pull request a fix on a branch called bike-shed i will merge it :D 23:43 < chrisdickinson> aw, pointer-lock's not in there D: 23:43 < mbalho> chrisdickinson: interact is 23:43 < chrisdickinson> oh, lol 23:43 < Raynos> :D 23:44 < chrisdickinson> man, my collision code is hilaroius 23:44 < chrisdickinson> hilarious, even. 23:47 < chrisdickinson> so you subtract the new point from the target plane's origin to get the origin_to_new_point vector, get the vector from the origin of the plane to the top right of the plane, dot those two vectors together... 23:48 < chrisdickinson> if it's < 0 or > cube plane size, there's no collision and it can safely be skipped 23:52 < mbalho> substack: http://i.imgur.com/y1N0E.png --- Log closed Thu Jan 10 00:00:55 2013