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