From c1e5607e7b1e41fa90a08c763d346bafc27f2a82 Mon Sep 17 00:00:00 2001 From: Matt Mascarenhas Date: Sat, 9 May 2020 21:59:36 +0100 Subject: [PATCH] Cinera 0.7.0 Update Add output parameter to all of hero/code, hero/intro-to-c and hero/misc, preserving the current URLs while allowing different .hmml filenames, notably for hero/misc which now gets sorted chronologically. Update the cinera__*.css files --- cmuratori/hero/cinera__hero.css | 36 ++++++++---- cmuratori/hero/code/code001.hmml | 2 +- cmuratori/hero/code/code001qa.hmml | 2 +- cmuratori/hero/code/code002.hmml | 2 +- cmuratori/hero/code/code002qa.hmml | 2 +- cmuratori/hero/code/code003.hmml | 2 +- cmuratori/hero/code/code004.hmml | 2 +- cmuratori/hero/code/code005.hmml | 2 +- cmuratori/hero/code/code006.hmml | 2 +- cmuratori/hero/code/code007.hmml | 2 +- cmuratori/hero/code/code008.hmml | 2 +- cmuratori/hero/code/code009.hmml | 2 +- cmuratori/hero/code/code010.hmml | 2 +- cmuratori/hero/code/code011.hmml | 2 +- cmuratori/hero/code/code012.hmml | 2 +- cmuratori/hero/code/code013.hmml | 2 +- cmuratori/hero/code/code014.hmml | 2 +- cmuratori/hero/code/code015.hmml | 2 +- cmuratori/hero/code/code016.hmml | 2 +- cmuratori/hero/code/code017.hmml | 2 +- cmuratori/hero/code/code018.hmml | 2 +- cmuratori/hero/code/code019.hmml | 2 +- cmuratori/hero/code/code020.hmml | 2 +- cmuratori/hero/code/code021.hmml | 2 +- cmuratori/hero/code/code022.hmml | 2 +- cmuratori/hero/code/code023.hmml | 2 +- cmuratori/hero/code/code024.hmml | 2 +- cmuratori/hero/code/code025.hmml | 2 +- cmuratori/hero/code/code026.hmml | 2 +- cmuratori/hero/code/code027.hmml | 2 +- cmuratori/hero/code/code028.hmml | 2 +- cmuratori/hero/code/code029.hmml | 2 +- cmuratori/hero/code/code030.hmml | 2 +- cmuratori/hero/code/code031.hmml | 2 +- cmuratori/hero/code/code032.hmml | 2 +- cmuratori/hero/code/code033.hmml | 2 +- cmuratori/hero/code/code034.hmml | 2 +- cmuratori/hero/code/code035.hmml | 2 +- cmuratori/hero/code/code036.hmml | 2 +- cmuratori/hero/code/code037.hmml | 2 +- cmuratori/hero/code/code038.hmml | 2 +- cmuratori/hero/code/code039.hmml | 2 +- cmuratori/hero/code/code040.hmml | 2 +- cmuratori/hero/code/code041.hmml | 2 +- cmuratori/hero/code/code042.hmml | 2 +- cmuratori/hero/code/code043.hmml | 2 +- cmuratori/hero/code/code044.hmml | 2 +- cmuratori/hero/code/code045.hmml | 2 +- cmuratori/hero/code/code046.hmml | 2 +- cmuratori/hero/code/code047.hmml | 2 +- cmuratori/hero/code/code048.hmml | 2 +- cmuratori/hero/code/code049.hmml | 2 +- cmuratori/hero/code/code050.hmml | 2 +- cmuratori/hero/code/code051.hmml | 2 +- cmuratori/hero/code/code052.hmml | 2 +- cmuratori/hero/code/code053.hmml | 2 +- cmuratori/hero/code/code054.hmml | 2 +- cmuratori/hero/code/code055.hmml | 2 +- cmuratori/hero/code/code056.hmml | 2 +- cmuratori/hero/code/code057.hmml | 2 +- cmuratori/hero/code/code058.hmml | 2 +- cmuratori/hero/code/code059.hmml | 2 +- cmuratori/hero/code/code060.hmml | 2 +- cmuratori/hero/code/code061.hmml | 2 +- cmuratori/hero/code/code062.hmml | 2 +- cmuratori/hero/code/code063.hmml | 2 +- cmuratori/hero/code/code064.hmml | 2 +- cmuratori/hero/code/code065.hmml | 2 +- cmuratori/hero/code/code066.hmml | 2 +- cmuratori/hero/code/code067.hmml | 2 +- cmuratori/hero/code/code068.hmml | 2 +- cmuratori/hero/code/code069.hmml | 2 +- cmuratori/hero/code/code070.hmml | 2 +- cmuratori/hero/code/code071.hmml | 2 +- cmuratori/hero/code/code072.hmml | 2 +- cmuratori/hero/code/code073.hmml | 2 +- cmuratori/hero/code/code074.hmml | 2 +- cmuratori/hero/code/code075.hmml | 2 +- cmuratori/hero/code/code076.hmml | 2 +- cmuratori/hero/code/code077.hmml | 2 +- cmuratori/hero/code/code078.hmml | 2 +- cmuratori/hero/code/code079.hmml | 2 +- cmuratori/hero/code/code080.hmml | 2 +- cmuratori/hero/code/code081.hmml | 2 +- cmuratori/hero/code/code082.hmml | 2 +- cmuratori/hero/code/code083.hmml | 2 +- cmuratori/hero/code/code084.hmml | 2 +- cmuratori/hero/code/code085.hmml | 2 +- cmuratori/hero/code/code086.hmml | 2 +- cmuratori/hero/code/code087.hmml | 2 +- cmuratori/hero/code/code088.hmml | 2 +- cmuratori/hero/code/code089.hmml | 2 +- cmuratori/hero/code/code090.hmml | 2 +- cmuratori/hero/code/code091.hmml | 2 +- cmuratori/hero/code/code092.hmml | 2 +- cmuratori/hero/code/code093.hmml | 2 +- cmuratori/hero/code/code094.hmml | 2 +- cmuratori/hero/code/code095.hmml | 2 +- cmuratori/hero/code/code096.hmml | 2 +- cmuratori/hero/code/code097.hmml | 2 +- cmuratori/hero/code/code098.hmml | 2 +- cmuratori/hero/code/code099.hmml | 2 +- cmuratori/hero/code/code100.hmml | 2 +- cmuratori/hero/code/code101.hmml | 2 +- cmuratori/hero/code/code102.hmml | 2 +- cmuratori/hero/code/code103.hmml | 2 +- cmuratori/hero/code/code104.hmml | 2 +- cmuratori/hero/code/code105.hmml | 2 +- cmuratori/hero/code/code106.hmml | 2 +- cmuratori/hero/code/code107.hmml | 2 +- cmuratori/hero/code/code108.hmml | 2 +- cmuratori/hero/code/code109.hmml | 2 +- cmuratori/hero/code/code110.hmml | 2 +- cmuratori/hero/code/code111.hmml | 2 +- cmuratori/hero/code/code112.hmml | 2 +- cmuratori/hero/code/code113.hmml | 2 +- cmuratori/hero/code/code114.hmml | 2 +- cmuratori/hero/code/code115.hmml | 2 +- cmuratori/hero/code/code116.hmml | 2 +- cmuratori/hero/code/code117.hmml | 2 +- cmuratori/hero/code/code118.hmml | 2 +- cmuratori/hero/code/code119.hmml | 2 +- cmuratori/hero/code/code120.hmml | 2 +- cmuratori/hero/code/code121.hmml | 2 +- cmuratori/hero/code/code122.hmml | 2 +- cmuratori/hero/code/code123.hmml | 2 +- cmuratori/hero/code/code124.hmml | 2 +- cmuratori/hero/code/code125.hmml | 2 +- cmuratori/hero/code/code126.hmml | 2 +- cmuratori/hero/code/code127.hmml | 2 +- cmuratori/hero/code/code128.hmml | 2 +- cmuratori/hero/code/code129.hmml | 2 +- cmuratori/hero/code/code130.hmml | 2 +- cmuratori/hero/code/code131.hmml | 2 +- cmuratori/hero/code/code132.hmml | 2 +- cmuratori/hero/code/code133.hmml | 2 +- cmuratori/hero/code/code134.hmml | 2 +- cmuratori/hero/code/code135.hmml | 2 +- cmuratori/hero/code/code136.hmml | 2 +- cmuratori/hero/code/code137.hmml | 2 +- cmuratori/hero/code/code138.hmml | 2 +- cmuratori/hero/code/code139.hmml | 2 +- cmuratori/hero/code/code140.hmml | 2 +- cmuratori/hero/code/code141.hmml | 2 +- cmuratori/hero/code/code142.hmml | 2 +- cmuratori/hero/code/code143.hmml | 2 +- cmuratori/hero/code/code144.hmml | 2 +- cmuratori/hero/code/code145.hmml | 2 +- cmuratori/hero/code/code146.hmml | 2 +- cmuratori/hero/code/code147.hmml | 2 +- cmuratori/hero/code/code148.hmml | 2 +- cmuratori/hero/code/code149.hmml | 2 +- cmuratori/hero/code/code150.hmml | 2 +- cmuratori/hero/code/code151.hmml | 2 +- cmuratori/hero/code/code152.hmml | 2 +- cmuratori/hero/code/code153.hmml | 2 +- cmuratori/hero/code/code154.hmml | 2 +- cmuratori/hero/code/code155.hmml | 2 +- cmuratori/hero/code/code156.hmml | 2 +- cmuratori/hero/code/code157.hmml | 2 +- cmuratori/hero/code/code158.hmml | 2 +- cmuratori/hero/code/code159.hmml | 2 +- cmuratori/hero/code/code160.hmml | 2 +- cmuratori/hero/code/code161.hmml | 2 +- cmuratori/hero/code/code162.hmml | 2 +- cmuratori/hero/code/code163.hmml | 2 +- cmuratori/hero/code/code164.hmml | 2 +- cmuratori/hero/code/code165.hmml | 2 +- cmuratori/hero/code/code166.hmml | 2 +- cmuratori/hero/code/code167.hmml | 2 +- cmuratori/hero/code/code168.hmml | 2 +- cmuratori/hero/code/code169.hmml | 2 +- cmuratori/hero/code/code170.hmml | 2 +- cmuratori/hero/code/code171.hmml | 2 +- cmuratori/hero/code/code172.hmml | 2 +- cmuratori/hero/code/code173.hmml | 2 +- cmuratori/hero/code/code174.hmml | 2 +- cmuratori/hero/code/code175.hmml | 2 +- cmuratori/hero/code/code176.hmml | 2 +- cmuratori/hero/code/code177.hmml | 2 +- cmuratori/hero/code/code178.hmml | 2 +- cmuratori/hero/code/code179.hmml | 2 +- cmuratori/hero/code/code180.hmml | 2 +- cmuratori/hero/code/code181.hmml | 2 +- cmuratori/hero/code/code182.hmml | 2 +- cmuratori/hero/code/code183.hmml | 2 +- cmuratori/hero/code/code184.hmml | 2 +- cmuratori/hero/code/code185.hmml | 2 +- cmuratori/hero/code/code186.hmml | 2 +- cmuratori/hero/code/code187.hmml | 2 +- cmuratori/hero/code/code188.hmml | 2 +- cmuratori/hero/code/code189.hmml | 2 +- cmuratori/hero/code/code190.hmml | 2 +- cmuratori/hero/code/code191.hmml | 2 +- cmuratori/hero/code/code192.hmml | 2 +- cmuratori/hero/code/code193.hmml | 2 +- cmuratori/hero/code/code194.hmml | 2 +- cmuratori/hero/code/code195.hmml | 2 +- cmuratori/hero/code/code196.hmml | 2 +- cmuratori/hero/code/code197.hmml | 2 +- cmuratori/hero/code/code198.hmml | 2 +- cmuratori/hero/code/code199.hmml | 2 +- cmuratori/hero/code/code200.hmml | 2 +- cmuratori/hero/code/code201.hmml | 2 +- cmuratori/hero/code/code202.hmml | 2 +- cmuratori/hero/code/code203.hmml | 2 +- cmuratori/hero/code/code204.hmml | 2 +- cmuratori/hero/code/code205.hmml | 2 +- cmuratori/hero/code/code206.hmml | 2 +- cmuratori/hero/code/code207.hmml | 2 +- cmuratori/hero/code/code208.hmml | 2 +- cmuratori/hero/code/code209.hmml | 2 +- cmuratori/hero/code/code210.hmml | 2 +- cmuratori/hero/code/code211.hmml | 2 +- cmuratori/hero/code/code212.hmml | 2 +- cmuratori/hero/code/code213.hmml | 2 +- cmuratori/hero/code/code214.hmml | 2 +- cmuratori/hero/code/code215.hmml | 2 +- cmuratori/hero/code/code216.hmml | 2 +- cmuratori/hero/code/code217.hmml | 2 +- cmuratori/hero/code/code218.hmml | 2 +- cmuratori/hero/code/code219.hmml | 6 +- cmuratori/hero/code/code220.hmml | 4 +- cmuratori/hero/code/code221.hmml | 2 +- cmuratori/hero/code/code222.hmml | 2 +- cmuratori/hero/code/code223.hmml | 2 +- cmuratori/hero/code/code224.hmml | 2 +- cmuratori/hero/code/code225.hmml | 2 +- cmuratori/hero/code/code226.hmml | 2 +- cmuratori/hero/code/code227.hmml | 2 +- cmuratori/hero/code/code228.hmml | 2 +- cmuratori/hero/code/code229.hmml | 2 +- cmuratori/hero/code/code230.hmml | 2 +- cmuratori/hero/code/code231.hmml | 2 +- cmuratori/hero/code/code232.hmml | 2 +- cmuratori/hero/code/code233.hmml | 2 +- cmuratori/hero/code/code234.hmml | 2 +- cmuratori/hero/code/code235.hmml | 2 +- cmuratori/hero/code/code236.hmml | 2 +- cmuratori/hero/code/code237.hmml | 2 +- cmuratori/hero/code/code238.hmml | 2 +- cmuratori/hero/code/code239.hmml | 2 +- cmuratori/hero/code/code240.hmml | 2 +- cmuratori/hero/code/code241.hmml | 2 +- cmuratori/hero/code/code242.hmml | 2 +- cmuratori/hero/code/code243.hmml | 2 +- cmuratori/hero/code/code244.hmml | 2 +- cmuratori/hero/code/code245.hmml | 2 +- cmuratori/hero/code/code246.hmml | 2 +- cmuratori/hero/code/code247.hmml | 2 +- cmuratori/hero/code/code248.hmml | 2 +- cmuratori/hero/code/code249.hmml | 2 +- cmuratori/hero/code/code250.hmml | 2 +- cmuratori/hero/code/code251.hmml | 2 +- cmuratori/hero/code/code252.hmml | 2 +- cmuratori/hero/code/code253.hmml | 2 +- cmuratori/hero/code/code254.hmml | 2 +- cmuratori/hero/code/code255.hmml | 2 +- cmuratori/hero/code/code256.hmml | 2 +- cmuratori/hero/code/code257.hmml | 2 +- cmuratori/hero/code/code258.hmml | 2 +- cmuratori/hero/code/code259.hmml | 2 +- cmuratori/hero/code/code260.hmml | 2 +- cmuratori/hero/code/code261.hmml | 2 +- cmuratori/hero/code/code262.hmml | 2 +- cmuratori/hero/code/code263.hmml | 2 +- cmuratori/hero/code/code264.hmml | 2 +- cmuratori/hero/code/code265.hmml | 2 +- cmuratori/hero/code/code266.hmml | 2 +- cmuratori/hero/code/code267.hmml | 2 +- cmuratori/hero/code/code268.hmml | 2 +- cmuratori/hero/code/code269.hmml | 2 +- cmuratori/hero/code/code270.hmml | 2 +- cmuratori/hero/code/code271.hmml | 2 +- cmuratori/hero/code/code272.hmml | 2 +- cmuratori/hero/code/code273.hmml | 2 +- cmuratori/hero/code/code274.hmml | 2 +- cmuratori/hero/code/code275.hmml | 2 +- cmuratori/hero/code/code276.hmml | 2 +- cmuratori/hero/code/code277.hmml | 2 +- cmuratori/hero/code/code278.hmml | 2 +- cmuratori/hero/code/code279.hmml | 2 +- cmuratori/hero/code/code280.hmml | 2 +- cmuratori/hero/code/code281.hmml | 2 +- cmuratori/hero/code/code282.hmml | 2 +- cmuratori/hero/code/code283.hmml | 2 +- cmuratori/hero/code/code284.hmml | 2 +- cmuratori/hero/code/code285.hmml | 2 +- cmuratori/hero/code/code286.hmml | 2 +- cmuratori/hero/code/code287.hmml | 2 +- cmuratori/hero/code/code288.hmml | 2 +- cmuratori/hero/code/code289.hmml | 2 +- cmuratori/hero/code/code290.hmml | 2 +- cmuratori/hero/code/code291.hmml | 2 +- cmuratori/hero/code/code292.hmml | 2 +- cmuratori/hero/code/code293.hmml | 2 +- cmuratori/hero/code/code294.hmml | 2 +- cmuratori/hero/code/code295.hmml | 2 +- cmuratori/hero/code/code296.hmml | 2 +- cmuratori/hero/code/code297.hmml | 2 +- cmuratori/hero/code/code298.hmml | 2 +- cmuratori/hero/code/code299.hmml | 2 +- cmuratori/hero/code/code300.hmml | 2 +- cmuratori/hero/code/code301.hmml | 2 +- cmuratori/hero/code/code302.hmml | 2 +- cmuratori/hero/code/code303.hmml | 2 +- cmuratori/hero/code/code304.hmml | 2 +- cmuratori/hero/code/code305.hmml | 2 +- cmuratori/hero/code/code306.hmml | 2 +- cmuratori/hero/code/code307.hmml | 2 +- cmuratori/hero/code/code308.hmml | 2 +- cmuratori/hero/code/code309.hmml | 2 +- cmuratori/hero/code/code310.hmml | 2 +- cmuratori/hero/code/code311.hmml | 2 +- cmuratori/hero/code/code312.hmml | 2 +- cmuratori/hero/code/code313.hmml | 2 +- cmuratori/hero/code/code314.hmml | 2 +- cmuratori/hero/code/code315.hmml | 2 +- cmuratori/hero/code/code316.hmml | 2 +- cmuratori/hero/code/code317.hmml | 2 +- cmuratori/hero/code/code318.hmml | 2 +- cmuratori/hero/code/code319.hmml | 2 +- cmuratori/hero/code/code320.hmml | 2 +- cmuratori/hero/code/code321.hmml | 2 +- cmuratori/hero/code/code322.hmml | 2 +- cmuratori/hero/code/code323.hmml | 2 +- cmuratori/hero/code/code324.hmml | 2 +- cmuratori/hero/code/code325.hmml | 2 +- cmuratori/hero/code/code326.hmml | 2 +- cmuratori/hero/code/code327.hmml | 2 +- cmuratori/hero/code/code328.hmml | 2 +- cmuratori/hero/code/code329.hmml | 2 +- cmuratori/hero/code/code330.hmml | 2 +- cmuratori/hero/code/code331.hmml | 2 +- cmuratori/hero/code/code332.hmml | 2 +- cmuratori/hero/code/code333.hmml | 2 +- cmuratori/hero/code/code334.hmml | 2 +- cmuratori/hero/code/code335.hmml | 2 +- cmuratori/hero/code/code336.hmml | 2 +- cmuratori/hero/code/code337.hmml | 2 +- cmuratori/hero/code/code338.hmml | 2 +- cmuratori/hero/code/code339.hmml | 2 +- cmuratori/hero/code/code340.hmml | 2 +- cmuratori/hero/code/code341.hmml | 2 +- cmuratori/hero/code/code342.hmml | 2 +- cmuratori/hero/code/code343.hmml | 2 +- cmuratori/hero/code/code344.hmml | 2 +- cmuratori/hero/code/code345.hmml | 2 +- cmuratori/hero/code/code346.hmml | 2 +- cmuratori/hero/code/code347.hmml | 2 +- cmuratori/hero/code/code348.hmml | 2 +- cmuratori/hero/code/code349.hmml | 2 +- cmuratori/hero/code/code350.hmml | 2 +- cmuratori/hero/code/code351.hmml | 2 +- cmuratori/hero/code/code352.hmml | 2 +- cmuratori/hero/code/code353.hmml | 2 +- cmuratori/hero/code/code354.hmml | 2 +- cmuratori/hero/code/code355.hmml | 2 +- cmuratori/hero/code/code356.hmml | 2 +- cmuratori/hero/code/code357.hmml | 2 +- cmuratori/hero/code/code358.hmml | 2 +- cmuratori/hero/code/code359.hmml | 2 +- cmuratori/hero/code/code360.hmml | 2 +- cmuratori/hero/code/code361.hmml | 2 +- cmuratori/hero/code/code362.hmml | 2 +- cmuratori/hero/code/code363.hmml | 2 +- cmuratori/hero/code/code364.hmml | 2 +- cmuratori/hero/code/code365.hmml | 2 +- cmuratori/hero/code/code366.hmml | 2 +- cmuratori/hero/code/code367.hmml | 2 +- cmuratori/hero/code/code368.hmml | 2 +- cmuratori/hero/code/code369.hmml | 2 +- cmuratori/hero/code/code370.hmml | 2 +- cmuratori/hero/code/code371.hmml | 2 +- cmuratori/hero/code/code372.hmml | 2 +- cmuratori/hero/code/code373.hmml | 2 +- cmuratori/hero/code/code374.hmml | 2 +- cmuratori/hero/code/code375.hmml | 2 +- cmuratori/hero/code/code376.hmml | 2 +- cmuratori/hero/code/code377.hmml | 2 +- cmuratori/hero/code/code378.hmml | 2 +- cmuratori/hero/code/code379.hmml | 2 +- cmuratori/hero/code/code380.hmml | 2 +- cmuratori/hero/code/code381.hmml | 2 +- cmuratori/hero/code/code382.hmml | 2 +- cmuratori/hero/code/code383.hmml | 2 +- cmuratori/hero/code/code384.hmml | 2 +- cmuratori/hero/code/code385.hmml | 2 +- cmuratori/hero/code/code386.hmml | 2 +- cmuratori/hero/code/code387.hmml | 2 +- cmuratori/hero/code/code388.hmml | 2 +- cmuratori/hero/code/code389.hmml | 2 +- cmuratori/hero/code/code390.hmml | 2 +- cmuratori/hero/code/code391.hmml | 2 +- cmuratori/hero/code/code392.hmml | 2 +- cmuratori/hero/code/code393.hmml | 2 +- cmuratori/hero/code/code394.hmml | 2 +- cmuratori/hero/code/code395.hmml | 2 +- cmuratori/hero/code/code396.hmml | 2 +- cmuratori/hero/code/code397.hmml | 2 +- cmuratori/hero/code/code398.hmml | 2 +- cmuratori/hero/code/code399.hmml | 2 +- cmuratori/hero/code/code400.hmml | 2 +- cmuratori/hero/code/code401.hmml | 2 +- cmuratori/hero/code/code402.hmml | 2 +- cmuratori/hero/code/code403.hmml | 2 +- cmuratori/hero/code/code404.hmml | 2 +- cmuratori/hero/code/code405.hmml | 2 +- cmuratori/hero/code/code406.hmml | 2 +- cmuratori/hero/code/code407.hmml | 2 +- cmuratori/hero/code/code408.hmml | 2 +- cmuratori/hero/code/code409.hmml | 2 +- cmuratori/hero/code/code410.hmml | 2 +- cmuratori/hero/code/code411.hmml | 2 +- cmuratori/hero/code/code412.hmml | 2 +- cmuratori/hero/code/code413.hmml | 2 +- cmuratori/hero/code/code414.hmml | 2 +- cmuratori/hero/code/code415.hmml | 2 +- cmuratori/hero/code/code416.hmml | 2 +- cmuratori/hero/code/code417.hmml | 2 +- cmuratori/hero/code/code418.hmml | 2 +- cmuratori/hero/code/code419.hmml | 2 +- cmuratori/hero/code/code420.hmml | 2 +- cmuratori/hero/code/code421.hmml | 2 +- cmuratori/hero/code/code422.hmml | 2 +- cmuratori/hero/code/code423.hmml | 2 +- cmuratori/hero/code/code424.hmml | 2 +- cmuratori/hero/code/code425.hmml | 2 +- cmuratori/hero/code/code426.hmml | 2 +- cmuratori/hero/code/code427.hmml | 2 +- cmuratori/hero/code/code428.hmml | 2 +- cmuratori/hero/code/code429.hmml | 2 +- cmuratori/hero/code/code430.hmml | 2 +- cmuratori/hero/code/code431.hmml | 2 +- cmuratori/hero/code/code432.hmml | 2 +- cmuratori/hero/code/code433.hmml | 2 +- cmuratori/hero/code/code434.hmml | 2 +- cmuratori/hero/code/code435.hmml | 2 +- cmuratori/hero/code/code436.hmml | 2 +- cmuratori/hero/code/code437.hmml | 2 +- cmuratori/hero/code/code438.hmml | 2 +- cmuratori/hero/code/code439.hmml | 2 +- cmuratori/hero/code/code440.hmml | 2 +- cmuratori/hero/code/code441.hmml | 2 +- cmuratori/hero/code/code442.hmml | 2 +- cmuratori/hero/code/code443.hmml | 2 +- cmuratori/hero/code/code444.hmml | 2 +- cmuratori/hero/code/code445.hmml | 2 +- cmuratori/hero/code/code446.hmml | 2 +- cmuratori/hero/code/code447.hmml | 2 +- cmuratori/hero/code/code448.hmml | 2 +- cmuratori/hero/code/code449.hmml | 2 +- cmuratori/hero/code/code450.hmml | 2 +- cmuratori/hero/code/code451.hmml | 2 +- cmuratori/hero/code/code452.hmml | 2 +- cmuratori/hero/code/code453.hmml | 2 +- cmuratori/hero/code/code454.hmml | 2 +- cmuratori/hero/code/code455.hmml | 2 +- cmuratori/hero/code/code456.hmml | 2 +- cmuratori/hero/code/code457.hmml | 2 +- cmuratori/hero/code/code458.hmml | 2 +- cmuratori/hero/code/code459.hmml | 2 +- cmuratori/hero/code/code460.hmml | 2 +- cmuratori/hero/code/code461.hmml | 2 +- cmuratori/hero/code/code462.hmml | 2 +- cmuratori/hero/code/code463.hmml | 2 +- cmuratori/hero/code/code464.hmml | 2 +- cmuratori/hero/code/code465.hmml | 2 +- cmuratori/hero/code/code466.hmml | 2 +- cmuratori/hero/code/code467.hmml | 2 +- cmuratori/hero/code/code468.hmml | 2 +- cmuratori/hero/code/code469.hmml | 2 +- cmuratori/hero/code/code470.hmml | 2 +- cmuratori/hero/code/code471.hmml | 2 +- cmuratori/hero/code/code472.hmml | 2 +- cmuratori/hero/code/code473.hmml | 2 +- cmuratori/hero/code/code474.hmml | 2 +- cmuratori/hero/code/code475.hmml | 2 +- cmuratori/hero/code/code476.hmml | 2 +- cmuratori/hero/code/code477.hmml | 2 +- cmuratori/hero/code/code478.hmml | 2 +- cmuratori/hero/code/code479.hmml | 2 +- cmuratori/hero/code/code480.hmml | 2 +- cmuratori/hero/code/code481.hmml | 2 +- cmuratori/hero/code/code482.hmml | 2 +- cmuratori/hero/code/code483.hmml | 2 +- cmuratori/hero/code/code484.hmml | 2 +- cmuratori/hero/code/code485.hmml | 2 +- cmuratori/hero/code/code486.hmml | 2 +- cmuratori/hero/code/code487.hmml | 2 +- cmuratori/hero/code/code488.hmml | 2 +- cmuratori/hero/code/code489.hmml | 2 +- cmuratori/hero/code/code490.hmml | 2 +- cmuratori/hero/code/code491.hmml | 2 +- cmuratori/hero/code/code492.hmml | 2 +- cmuratori/hero/code/code493.hmml | 2 +- cmuratori/hero/code/code494.hmml | 2 +- cmuratori/hero/code/code495.hmml | 2 +- cmuratori/hero/code/code496.hmml | 2 +- cmuratori/hero/code/code497.hmml | 2 +- cmuratori/hero/code/code498.hmml | 2 +- cmuratori/hero/code/code499.hmml | 2 +- cmuratori/hero/code/code500.hmml | 2 +- cmuratori/hero/code/code501.hmml | 2 +- cmuratori/hero/code/code502.hmml | 2 +- cmuratori/hero/code/code503.hmml | 2 +- cmuratori/hero/code/code504.hmml | 2 +- cmuratori/hero/code/code505.hmml | 2 +- cmuratori/hero/code/code506.hmml | 2 +- cmuratori/hero/code/code507.hmml | 2 +- cmuratori/hero/code/code508.hmml | 2 +- cmuratori/hero/code/code509.hmml | 2 +- cmuratori/hero/code/code510.hmml | 2 +- cmuratori/hero/code/code511.hmml | 2 +- cmuratori/hero/code/code512.hmml | 2 +- cmuratori/hero/code/code513.hmml | 2 +- cmuratori/hero/code/code514.hmml | 2 +- cmuratori/hero/code/code515.hmml | 2 +- cmuratori/hero/code/code516.hmml | 2 +- cmuratori/hero/code/code517.hmml | 2 +- cmuratori/hero/code/code518.hmml | 2 +- cmuratori/hero/code/code519.hmml | 2 +- cmuratori/hero/code/code520.hmml | 2 +- cmuratori/hero/code/code521.hmml | 2 +- cmuratori/hero/code/code522.hmml | 2 +- cmuratori/hero/code/code523.hmml | 2 +- cmuratori/hero/code/code524.hmml | 2 +- cmuratori/hero/code/code525.hmml | 2 +- cmuratori/hero/code/code526.hmml | 2 +- cmuratori/hero/code/code527.hmml | 2 +- cmuratori/hero/code/code528.hmml | 2 +- cmuratori/hero/code/code529.hmml | 2 +- cmuratori/hero/code/code530.hmml | 2 +- cmuratori/hero/code/code531.hmml | 2 +- cmuratori/hero/code/code532.hmml | 2 +- cmuratori/hero/code/code533.hmml | 2 +- cmuratori/hero/code/code534.hmml | 2 +- cmuratori/hero/code/code535.hmml | 2 +- cmuratori/hero/code/code536.hmml | 2 +- cmuratori/hero/code/code537.hmml | 2 +- cmuratori/hero/code/code538.hmml | 2 +- cmuratori/hero/code/code539.hmml | 2 +- cmuratori/hero/code/code540.hmml | 2 +- cmuratori/hero/code/code541.hmml | 2 +- cmuratori/hero/code/code542.hmml | 2 +- cmuratori/hero/code/code543.hmml | 2 +- cmuratori/hero/code/code544.hmml | 2 +- cmuratori/hero/code/code545.hmml | 2 +- cmuratori/hero/code/code546.hmml | 2 +- cmuratori/hero/code/code547.hmml | 2 +- cmuratori/hero/code/code548.hmml | 2 +- cmuratori/hero/code/code549.hmml | 2 +- cmuratori/hero/code/code550.hmml | 2 +- cmuratori/hero/code/code551.hmml | 2 +- cmuratori/hero/code/code552.hmml | 2 +- cmuratori/hero/code/code553.hmml | 2 +- cmuratori/hero/code/code554.hmml | 2 +- cmuratori/hero/code/code555.hmml | 2 +- cmuratori/hero/code/code556.hmml | 2 +- cmuratori/hero/code/code557.hmml | 2 +- cmuratori/hero/code/code558.hmml | 2 +- cmuratori/hero/code/code559.hmml | 2 +- cmuratori/hero/code/code560.hmml | 2 +- cmuratori/hero/code/code561.hmml | 2 +- cmuratori/hero/code/code562.hmml | 2 +- cmuratori/hero/code/code563.hmml | 2 +- cmuratori/hero/code/code564.hmml | 2 +- cmuratori/hero/code/code565.hmml | 2 +- cmuratori/hero/code/code566.hmml | 2 +- cmuratori/hero/code/code567.hmml | 2 +- cmuratori/hero/code/code568.hmml | 2 +- cmuratori/hero/code/code569.hmml | 2 +- cmuratori/hero/code/code570.hmml | 2 +- cmuratori/hero/code/code571.hmml | 2 +- cmuratori/hero/code/code572.hmml | 2 +- cmuratori/hero/code/code573.hmml | 2 +- cmuratori/hero/code/code574.hmml | 2 +- cmuratori/hero/code/code575.hmml | 2 +- cmuratori/hero/code/code576.hmml | 2 +- cmuratori/hero/code/code577.hmml | 2 +- cmuratori/hero/code/code578.hmml | 2 +- cmuratori/hero/code/code579.hmml | 2 +- cmuratori/hero/code/code580.hmml | 2 +- cmuratori/hero/code/code581.hmml | 2 +- cmuratori/hero/code/code582.hmml | 2 +- cmuratori/hero/code/code583.hmml | 2 +- cmuratori/hero/code/code584.hmml | 2 +- cmuratori/hero/code/code585.hmml | 2 +- cmuratori/hero/code/code586.hmml | 2 +- cmuratori/hero/code/code587.hmml | 2 +- cmuratori/hero/code/code588.hmml | 2 +- cmuratori/hero/code/code589.hmml | 2 +- cmuratori/hero/code/code590.hmml | 2 +- cmuratori/hero/code/code591.hmml | 2 +- cmuratori/hero/code/code592.hmml | 2 +- cmuratori/hero/code/code593.hmml | 2 +- cmuratori/hero/code/code594.hmml | 2 +- cmuratori/hero/code/code595.hmml | 2 +- cmuratori/hero/code/code596.hmml | 2 +- cmuratori/hero/code/code597.hmml | 2 +- cmuratori/hero/code/code598.hmml | 2 +- cmuratori/hero/code/code599.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c1.hmml | 4 +- cmuratori/hero/intro-to-c/intro-to-c1qa.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c2.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c2qa.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c3.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c3qa.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c4.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c4qa.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c5.hmml | 2 +- cmuratori/hero/intro-to-c/intro-to-c5qa.hmml | 4 +- ...emacs.hmml => 2014-12-16_basic_emacs.hmml} | 2 +- .../{30mlocp.hmml => 2018-05-12_30mlocp.hmml} | 2 +- miotatsu/riscy/cinera__riscy.css | 55 +++++++++++++++---- pervognsen/bitwise/cinera__bitwise.css | 33 +++++++---- 616 files changed, 711 insertions(+), 649 deletions(-) rename cmuratori/hero/misc/{basic_emacs.hmml => 2014-12-16_basic_emacs.hmml} (83%) rename cmuratori/hero/misc/{30mlocp.hmml => 2018-05-12_30mlocp.hmml} (96%) diff --git a/cmuratori/hero/cinera__hero.css b/cmuratori/hero/cinera__hero.css index fcd5a49..dd9fe10 100644 --- a/cmuratori/hero/cinera__hero.css +++ b/cmuratori/hero/cinera__hero.css @@ -12,11 +12,15 @@ * * .faded * background-color: #68311F; + * + * */ #cineraIndexControl.hero .cineraQueryContainer .inputContainer #query, +#cineraIndexControl.hero .cineraFilterProject, + #cineraResults .dayContainer.hero, -#cineraIndex.hero #cineraIndexEntries div, +#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div, .cineraMenus.hero, .cineraMenus.hero > .menu > div, @@ -39,14 +43,17 @@ } #cineraIndexControl.hero .cineraQueryContainer .inputContainer #query:focus, -#cineraResults .dayContainer:nth-child(2n).hero, #cineraIndexControl.hero #cineraIndexSort, -#cineraIndex.hero #cineraIndexEntries div:nth-child(2n) { + +.cineraIndexProject.hero .cineraProjectTitle, +#cineraResults .dayContainer:nth-child(2n).hero, +#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div:nth-child(2n) { background-color: #303030; } #cineraResults .markerList.hero > .marker, +#cineraIndexControl.hero .cineraIndexFilter .filter_container, .cineraMenus.hero, .cineraMenus.hero > .menu > div, .cineraMenus.hero > .menu > .quotes_container .ref, @@ -63,10 +70,13 @@ /* Default Text */ #cineraIndexControl.hero .cineraQueryContainer .inputContainer #query, +#cineraIndexControl.hero #cineraIndexSort, +#cineraIndexControl.hero .cineraFilterProject, + #cineraResults .dayContainer.hero > .dayName, #cineraResults .markerList.hero > .marker, -#cineraIndexControl.hero #cineraIndexSort, -#cineraIndex.hero #cineraIndexEntries div a, +.cineraIndexProject.hero .cineraProjectTitle, +#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div a, .cineraMenus.hero, .cineraMenus.hero > .menu > .quotes_container .ref, @@ -82,21 +92,22 @@ } /* Visited Indicator */ -#cineraIndex.hero #cineraIndexEntries div a::before { +#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div a::before { color: #161616; } -#cineraIndex.hero #cineraIndexEntries div:nth-child(2n) a::before { +#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div:nth-child(2n) a::before { color: #303030; } -#cineraIndex.hero #cineraIndexEntries div a:visited::before { +#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div a:visited::before { color: #33FF33; } /**/ /* NOTE(matt): Somehow use this to colour the "Default Medium" when .off */ .cineraMenus.hero > .menu > .filter_container .filter_content.off .cineraText { + color: #3A3936; } @@ -118,9 +129,12 @@ color: #FFF; } -#cineraResults .markerList.hero > .marker:hover, #cineraIndexControl.hero #cineraIndexSort:hover, -#cineraIndex.hero #cineraIndexEntries div:hover, +#cineraIndexControl.hero .cineraFilterProject.focused, +#cineraIndexControl.hero .cineraFilterProject.focused *, + +#cineraResults .markerList.hero > .marker:hover, +#cineraIndex .cineraIndexProject.hero .cineraIndexEntries div:hover, .cineraMenus.hero > .menu.visible, .cineraMenus.hero > .menu > .quotes_container .ref.focused, @@ -155,6 +169,8 @@ background-color: #68311F; } +#cineraIndexControl.hero .cineraFilterProject.off, + .cineraMenus.hero > .menu > .refs .ref .source, .cineraMenus.hero > .menu > .refs .ref .quote_byline, .cineraMenus.hero > .menu > .credits_container .credit .role { diff --git a/cmuratori/hero/code/code001.hmml b/cmuratori/hero/code/code001.hmml index 2daffae..e4eae2e 100644 --- a/cmuratori/hero/code/code001.hmml +++ b/cmuratori/hero/code/code001.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build" vod_platform=youtube id=Ee3EtYb8d1o annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw annotator=wheatdog] +[video output=day001 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build" vod_platform=youtube id=Ee3EtYb8d1o annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw annotator=wheatdog] [0:46][Course of the Handmade Hero series] [3:04][Start the project] [5:06][Command line in Windows] diff --git a/cmuratori/hero/code/code001qa.hmml b/cmuratori/hero/code/code001qa.hmml index 93267c0..060e6fa 100644 --- a/cmuratori/hero/code/code001qa.hmml +++ b/cmuratori/hero/code/code001qa.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build - Q&A" vod_platform=youtube id=uxbJo5DDpWY annotator=jacebennett annotator=Miblo] +[video output=day001qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Setting Up the Windows Build - Q&A" vod_platform=youtube id=uxbJo5DDpWY annotator=jacebennett annotator=Miblo] [0:35][Could you show how you added the Handmade Hero directory to the path?] [3:44][Do all Windows programs written in C/C++ use WinMain? Does The Witness have the same started code?] [4:48][What is the difference between Microsoft's compiler and gcc?] diff --git a/cmuratori/hero/code/code002.hmml b/cmuratori/hero/code/code002.hmml index f6f7c6d..a1a65e8 100644 --- a/cmuratori/hero/code/code002.hmml +++ b/cmuratori/hero/code/code002.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window" vod_platform=youtube id=4ROiWonnWGk annotator=jacebennett annotator=dspecht annotator=Miblo annotator=Mannilie annotator=theinternetftw] +[video output=day002 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window" vod_platform=youtube id=4ROiWonnWGk annotator=jacebennett annotator=dspecht annotator=Miblo annotator=Mannilie annotator=theinternetftw] [3:20][WNDCLASS Implementation start] [4:40][Struct explanation of why Windows Documentation is the way it is] [9:38][Initialization of WNDCLASS] diff --git a/cmuratori/hero/code/code002qa.hmml b/cmuratori/hero/code/code002qa.hmml index 765e961..9f6da0e 100644 --- a/cmuratori/hero/code/code002qa.hmml +++ b/cmuratori/hero/code/code002qa.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window - Q&A" vod_platform=youtube id=d003_D-9EnY annotator=jacebennett annotator=Miblo] +[video output=day002qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Opening a Win32 Window - Q&A" vod_platform=youtube id=d003_D-9EnY annotator=jacebennett annotator=Miblo] [1:32][Question about Atoms in Windows API] [2:17][Can you go fullscreen?] [2:40][Improving the way things are shown on stream] diff --git a/cmuratori/hero/code/code003.hmml b/cmuratori/hero/code/code003.hmml index 71a8a95..cbb0dcd 100644 --- a/cmuratori/hero/code/code003.hmml +++ b/cmuratori/hero/code/code003.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allocating a Back Buffer" vod_platform=youtube id=GAi_nTx1zG8 annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw] +[video output=day003 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allocating a Back Buffer" vod_platform=youtube id=GAi_nTx1zG8 annotator=jacebennett annotator=Miblo annotator=Mannilie annotator=theinternetftw] [0:50][Short overview about a backbuffer] [2:56][Windows message callback] [4:43][Closing the window (PostQuitMessage function)] diff --git a/cmuratori/hero/code/code004.hmml b/cmuratori/hero/code/code004.hmml index ac92835..ba2d31b 100644 --- a/cmuratori/hero/code/code004.hmml +++ b/cmuratori/hero/code/code004.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animating the Back Buffer" vod_platform=youtube id=hNKU8Jiza2g annotator=jacebennett annotator=Miblo] +[video output=day004 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animating the Back Buffer" vod_platform=youtube id=hNKU8Jiza2g annotator=jacebennett annotator=Miblo] [0:30][Correction about StretchDIBits()/BitBlt()] [5:20][Writing our custom BitmapMemory allocator. (Note about aligned/unaligned byte access)] [7:13][Basic math to determine the bytes needed for BitmapMemorySize. 'Width * Height * BytesPerPixel'] diff --git a/cmuratori/hero/code/code005.hmml b/cmuratori/hero/code/code005.hmml index c774a1c..ee62293 100644 --- a/cmuratori/hero/code/code005.hmml +++ b/cmuratori/hero/code/code005.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Windows Graphics Review" vod_platform=youtube id=w7ay7QXmo_o annotator=jacebennett annotator=Miblo] +[video output=day005 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Windows Graphics Review" vod_platform=youtube id=w7ay7QXmo_o annotator=jacebennett annotator=Miblo] [1:09][Brief overview of the week's work.] [2:13][Capture card considered unneccesary?] [3:07][Value of HREDRAW and VREDRAW] diff --git a/cmuratori/hero/code/code006.hmml b/cmuratori/hero/code/code006.hmml index 0302daf..5ecc81c 100644 --- a/cmuratori/hero/code/code006.hmml +++ b/cmuratori/hero/code/code006.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code006_template.html title="Gamepad and Keyboard Input" vod_platform=youtube id=J3y1x54vyIQ annotator=jacebennett annotator=Miblo annotator=garlandobloom] +[video output=day006 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code006_template.html title="Gamepad and Keyboard Input" vod_platform=youtube id=J3y1x54vyIQ annotator=jacebennett annotator=Miblo annotator=garlandobloom] [0:51][Getting input from a gamepad: XInput] [3:20][Using XInput in the codebase] [6:26][A look at the XInput API more in depth.] diff --git a/cmuratori/hero/code/code007.hmml b/cmuratori/hero/code/code007.hmml index d2a65d5..e0ec667 100644 --- a/cmuratori/hero/code/code007.hmml +++ b/cmuratori/hero/code/code007.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code007_template.html title="Initializing DirectSound" vod_platform=youtube id=qGC3xiliJW8 annotator=jacebennett annotator=Miblo annotator=theinternetftw] +[video output=day007 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code007_template.html title="Initializing DirectSound" vod_platform=youtube id=qGC3xiliJW8 annotator=jacebennett annotator=Miblo annotator=theinternetftw] [0:53][Fix: Windows API return values and stubs] [2:29][Fix: XInput on Windows 8] [3:48][Fix: Restore Alt-F4 functionality] diff --git a/cmuratori/hero/code/code008.hmml b/cmuratori/hero/code/code008.hmml index ab61377..b0709cc 100644 --- a/cmuratori/hero/code/code008.hmml +++ b/cmuratori/hero/code/code008.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code008_template.html title="Writing a Square Wave to DirectSound" vod_platform=youtube id=uiW1D1Vc7IQ annotator=jacebennett annotator=Miblo annotator=theinternetftw] +[video output=day008 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code008_template.html title="Writing a Square Wave to DirectSound" vod_platform=youtube id=uiW1D1Vc7IQ annotator=jacebennett annotator=Miblo annotator=theinternetftw] [1:04][Review of DirectSound init] [2:16][Tangent: methods and vtables] [8:52][Resume review of DirectSound init] diff --git a/cmuratori/hero/code/code009.hmml b/cmuratori/hero/code/code009.hmml index 940cb39..0f6b761 100644 --- a/cmuratori/hero/code/code009.hmml +++ b/cmuratori/hero/code/code009.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code009_template.html title="Variable-Pitch Sine Wave Output" vod_platform=youtube id=8y9nPk1c45c annotator=jacebennett annotator=Miblo annotator=schme annotator=theinternetftw] +[video output=day009 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code009_template.html title="Variable-Pitch Sine Wave Output" vod_platform=youtube id=8y9nPk1c45c annotator=jacebennett annotator=Miblo annotator=schme annotator=theinternetftw] [1:14][Review DirectSound init and square wave] [2:28][Story Time: The First Game Jam] [8:56][The moral of the story] diff --git a/cmuratori/hero/code/code010.hmml b/cmuratori/hero/code/code010.hmml index 1577c24..9ae9542 100644 --- a/cmuratori/hero/code/code010.hmml +++ b/cmuratori/hero/code/code010.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code010_template.html title="QueryPerformanceCounter and RDTSC" vod_platform=youtube id=tAcUIEoy2Yk annotator=jacebennett annotator=Miblo annotator=theinternetftw] +[video output=day010 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code010_template.html title="QueryPerformanceCounter and RDTSC" vod_platform=youtube id=tAcUIEoy2Yk annotator=jacebennett annotator=Miblo annotator=theinternetftw] [1:19][The Intel Architecture Reference Manual] [3:49][RDTSC- Read Time-Stamp Counter, measures clock cycles] [7:40][QueryPerformanceCounter(), measures wall clock time] diff --git a/cmuratori/hero/code/code011.hmml b/cmuratori/hero/code/code011.hmml index 5fe110b..1b061cd 100644 --- a/cmuratori/hero/code/code011.hmml +++ b/cmuratori/hero/code/code011.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Basics of Platform API Design" vod_platform=youtube id=_4vnV2Eng7M annotator=schme] +[video output=day011 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Basics of Platform API Design" vod_platform=youtube id=_4vnV2Eng7M annotator=schme] [3:35][About platform specific code] [7:56][What is left to be done on the platform layer] [11:23][Topic of the day revealed!] diff --git a/cmuratori/hero/code/code012.hmml b/cmuratori/hero/code/code012.hmml index 18a8614..35c8821 100644 --- a/cmuratori/hero/code/code012.hmml +++ b/cmuratori/hero/code/code012.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code012_template.html title="Platform-independent Sound Output" vod_platform=youtube id=5YhR2zAkQmo annotator=jacebennett annotator=Miblo annotator=theinternetftw] +[video output=day012 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code012_template.html title="Platform-independent Sound Output" vod_platform=youtube id=5YhR2zAkQmo annotator=jacebennett annotator=Miblo annotator=theinternetftw] [0:57][Review basics of platform API design] [3:54][What the API needs to support] [4:53][Starting with moving sound across the API boundary] diff --git a/cmuratori/hero/code/code013.hmml b/cmuratori/hero/code/code013.hmml index ab42f9c..b1d59d0 100644 --- a/cmuratori/hero/code/code013.hmml +++ b/cmuratori/hero/code/code013.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent User Input" vod_platform=youtube id=Lt9DfMzZ9sI annotator=jacebennett annotator=Miblo] +[video output=day013 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent User Input" vod_platform=youtube id=Lt9DfMzZ9sI annotator=jacebennett annotator=Miblo] [0:40][Overview of the day's goals] [2:35][Function Overloading (accidental and intentional)] [7:29][Extending GameUpdateAndRender() to take input] diff --git a/cmuratori/hero/code/code014.hmml b/cmuratori/hero/code/code014.hmml index 7f689d2..cfb38f6 100644 --- a/cmuratori/hero/code/code014.hmml +++ b/cmuratori/hero/code/code014.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Game Memory" vod_platform=youtube id=tcENxzeTjbI annotator=jacebennett annotator=Miblo] +[video output=day014 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Game Memory" vod_platform=youtube id=tcENxzeTjbI annotator=jacebennett annotator=Miblo] [0:58][Intro to memory management.] [4:07][We won't be allocating.] [5:17]['Allocation Festivals'] diff --git a/cmuratori/hero/code/code015.hmml b/cmuratori/hero/code/code015.hmml index f6a1e6b..32ef88a 100644 --- a/cmuratori/hero/code/code015.hmml +++ b/cmuratori/hero/code/code015.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Debug File I/O" vod_platform=youtube id=kdAte9pdLv8 annotator=garlandobloom annotator=jacebennett annotator=schme annotator=Miblo] +[video output=day015 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform-independent Debug File I/O" vod_platform=youtube id=kdAte9pdLv8 annotator=garlandobloom annotator=jacebennett annotator=schme annotator=Miblo] [01:26][Overview of the two classes of game file I/O] [05:30][Today's goals (building a minimal set of I/O functions)] [06:48][A brief lesson on the sad history of file I/O] diff --git a/cmuratori/hero/code/code016.hmml b/cmuratori/hero/code/code016.hmml index 2f71336..a27389c 100644 --- a/cmuratori/hero/code/code016.hmml +++ b/cmuratori/hero/code/code016.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="VisualStudio Compiler Switches" vod_platform=youtube id=zN7llTrMMBU annotator=dspecht annotator=schme annotator=garlandobloom] +[video output=day016 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="VisualStudio Compiler Switches" vod_platform=youtube id=zN7llTrMMBU annotator=dspecht annotator=schme annotator=garlandobloom] [2:32][Explanation of Warning and the Warning levels] [5:20][Fixing warnings, and disabling warnings we don't want] [14:10][Other command line switches that Casey normally uses] diff --git a/cmuratori/hero/code/code017.hmml b/cmuratori/hero/code/code017.hmml index f8484fc..6f309f6 100644 --- a/cmuratori/hero/code/code017.hmml +++ b/cmuratori/hero/code/code017.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Keyboard and Gamepad Input" vod_platform=youtube id=WDB718JId4M annotator=garlandobloom] +[video output=day017 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Keyboard and Gamepad Input" vod_platform=youtube id=WDB718JId4M annotator=garlandobloom] [2:19][Overview of the previous day's work] [5:11][An introduction to functional programming] [10:44][Methods for making our programs more functional] diff --git a/cmuratori/hero/code/code018.hmml b/cmuratori/hero/code/code018.hmml index 02e420a..970516c 100644 --- a/cmuratori/hero/code/code018.hmml +++ b/cmuratori/hero/code/code018.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enforcing a Video Frame Rate" vod_platform=youtube id=TPpn2fee77M annotator=AndrewJDR annotator=dspecht annotator=jacebennett annotator=schme] +[video output=day018 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enforcing a Video Frame Rate" vod_platform=youtube id=TPpn2fee77M annotator=AndrewJDR annotator=dspecht annotator=jacebennett annotator=schme] [1:40][Discussion: Why we need to have an enforced video frame rate] [5:27][Drawing and explaining the frame computation and displaying timeline] [10:35][Explaining Variable Frame Rate Monitors] diff --git a/cmuratori/hero/code/code019.hmml b/cmuratori/hero/code/code019.hmml index dbec06b..8111bd4 100644 --- a/cmuratori/hero/code/code019.hmml +++ b/cmuratori/hero/code/code019.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Audio Synchronization" vod_platform=youtube id=qFl62ka51Mc annotator=jacebennett annotator=garlandobloom annotator=Miblo] +[video output=day019 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Audio Synchronization" vod_platform=youtube id=qFl62ka51Mc annotator=jacebennett annotator=garlandobloom annotator=Miblo] [2:13][Intro] [3:31][Audio Sync Conversation Begins (Summary)] [4:19][#milkhit] diff --git a/cmuratori/hero/code/code020.hmml b/cmuratori/hero/code/code020.hmml index c54faaf..3afaf17 100644 --- a/cmuratori/hero/code/code020.hmml +++ b/cmuratori/hero/code/code020.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Audio Sync" vod_platform=youtube id=hELF8KRqSIs annotator=jacebennett annotator=Miblo annotator=garlandobloom] +[video output=day020 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Audio Sync" vod_platform=youtube id=hELF8KRqSIs annotator=jacebennett annotator=Miblo annotator=garlandobloom] [2:44][Fixing an off by one error] [5:12][Explanation of off by one errors] [7:13][Overview of the state of our audio code] diff --git a/cmuratori/hero/code/code021.hmml b/cmuratori/hero/code/code021.hmml index 007e428..413cfa2 100644 --- a/cmuratori/hero/code/code021.hmml +++ b/cmuratori/hero/code/code021.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code021_template.html title="Loading Game Code Dynamically" vod_platform=youtube id=WMSBRk5WG58 annotator=schme annotator=Kelimion] +[video output=day021 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code021_template.html title="Loading Game Code Dynamically" vod_platform=youtube id=WMSBRk5WG58 annotator=schme annotator=Kelimion] [1:29][Intro to the episode] [3:06][About implementing and using a scripting languages] [6:15][Benefits of loading game code dynamically] diff --git a/cmuratori/hero/code/code022.hmml b/cmuratori/hero/code/code022.hmml index 429a8b4..d3116fb 100644 --- a/cmuratori/hero/code/code022.hmml +++ b/cmuratori/hero/code/code022.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Instantaneous Live Code Editing" vod_platform=youtube id=oijEnriqqcs annotator=dspecht annotator=jacebennett annotator=Miblo annotator=theinternetftw] +[video output=day022 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Instantaneous Live Code Editing" vod_platform=youtube id=oijEnriqqcs annotator=dspecht annotator=jacebennett annotator=Miblo annotator=theinternetftw] [0:02][Recap and set the stage for the day][:speech] [2:22][Remove DllMain() and successfully recompile][:"hot reloading"] [3:28][Demo :"hot reloading", and determine to reduce the update lag and enable debugging of it][:run] diff --git a/cmuratori/hero/code/code023.hmml b/cmuratori/hero/code/code023.hmml index 16b2f71..90596c9 100644 --- a/cmuratori/hero/code/code023.hmml +++ b/cmuratori/hero/code/code023.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Looped Live Code Editing" vod_platform=youtube id=xrUSrVvB21c annotator=schme annotator=garlandobloom] +[video output=day023 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Looped Live Code Editing" vod_platform=youtube id=xrUSrVvB21c annotator=schme annotator=garlandobloom] [2:45][Review of the live code editing feature] [4:13][Building a demo to show gameplay tuning workflow] [9:00][Testing the demo] diff --git a/cmuratori/hero/code/code024.hmml b/cmuratori/hero/code/code024.hmml index 69c418d..e1af5ed 100644 --- a/cmuratori/hero/code/code024.hmml +++ b/cmuratori/hero/code/code024.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Win32 Platform Layer Cleanup" vod_platform=youtube id=nBBTPRO8AMI annotator=garlandobloom annotator=theinternetftw] +[video output=day024 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Win32 Platform Layer Cleanup" vod_platform=youtube id=nBBTPRO8AMI annotator=garlandobloom annotator=theinternetftw] [1:05][Goals for the day] [2:50][Fixing a dumb audio bug] [8:18][Failing to find a supposed SUCCEEDED related bug] diff --git a/cmuratori/hero/code/code025.hmml b/cmuratori/hero/code/code025.hmml index 9668a85..022b463 100644 --- a/cmuratori/hero/code/code025.hmml +++ b/cmuratori/hero/code/code025.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Win32 Prototyping Layer" vod_platform=youtube id=es-Bou2dIdY annotator=schme annotator=garlandobloom] +[video output=day025 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Win32 Prototyping Layer" vod_platform=youtube id=es-Bou2dIdY annotator=schme annotator=garlandobloom] [1:47][Plans for today] [4:20][Getting the actual monitor refresh rate with GetDeviceCaps()] [10:27][Testing monitor refresh rate getting] diff --git a/cmuratori/hero/code/code026.hmml b/cmuratori/hero/code/code026.hmml index 9029086..197c18f 100644 --- a/cmuratori/hero/code/code026.hmml +++ b/cmuratori/hero/code/code026.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Game Architecture" vod_platform=youtube id=rPJfadFSCyQ annotator=theinternetftw] +[video output=day026 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Game Architecture" vod_platform=youtube id=rPJfadFSCyQ annotator=theinternetftw] [0:00][First day of Programming the Actual Game] [2:56][We'll know how everything happens above the platform layer] [6:05][Software Architecture] diff --git a/cmuratori/hero/code/code027.hmml b/cmuratori/hero/code/code027.hmml index 984b251..8feecf4 100644 --- a/cmuratori/hero/code/code027.hmml +++ b/cmuratori/hero/code/code027.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration-based Architecture" vod_platform=youtube id=Mi98zVBb6Wk annotator=theinternetftw] +[video output=day027 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration-based Architecture" vod_platform=youtube id=Mi98zVBb6Wk annotator=theinternetftw] [0:00][Welcome] [2:22][Evolution of a Project] [6:43][How to drive towards an unknown destination] diff --git a/cmuratori/hero/code/code028.hmml b/cmuratori/hero/code/code028.hmml index e0bdc7c..9d0aaae 100644 --- a/cmuratori/hero/code/code028.hmml +++ b/cmuratori/hero/code/code028.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing a Tile Map" vod_platform=youtube id=QGmQ714rlAc annotator=powerc9000 annotator=dspecht annotator=schme annotator=theinternetftw] +[video output=day028 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing a Tile Map" vod_platform=youtube id=QGmQ714rlAc annotator=powerc9000 annotator=dspecht annotator=schme annotator=theinternetftw] [0:54][Overview of the day] [3:30][Floating point color discussion] [16:50][Actually doing the color in floating point] diff --git a/cmuratori/hero/code/code029.hmml b/cmuratori/hero/code/code029.hmml index aa1c28d..ee32bd3 100644 --- a/cmuratori/hero/code/code029.hmml +++ b/cmuratori/hero/code/code029.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Tile Map Collision Checking" vod_platform=youtube id=EwhVulgF16g annotator=schme annotator=theinternetftw] +[video output=day029 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Tile Map Collision Checking" vod_platform=youtube id=EwhVulgF16g annotator=schme annotator=theinternetftw] [2:30][Review of what's currently been done] [3:17][Clearing the screen to black and offsetting the drawable area] [6:49][Player collision with the tilemap] diff --git a/cmuratori/hero/code/code030.hmml b/cmuratori/hero/code/code030.hmml index 3512e62..1935b72 100644 --- a/cmuratori/hero/code/code030.hmml +++ b/cmuratori/hero/code/code030.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Between Tile Maps" vod_platform=youtube id=J7suWih0ITQ annotator=schme annotator=theinternetftw] +[video output=day030 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Between Tile Maps" vod_platform=youtube id=J7suWih0ITQ annotator=schme annotator=theinternetftw] [3:10][Recap] [6:36][About the process of writing code; Messy first, clean after] [7:58][Passing information about tilemap] diff --git a/cmuratori/hero/code/code031.hmml b/cmuratori/hero/code/code031.hmml index 4537927..380da8d 100644 --- a/cmuratori/hero/code/code031.hmml +++ b/cmuratori/hero/code/code031.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tilemap Coordinate Systems" vod_platform=youtube id=lDp4rqcigZs annotator=theinternetftw] +[video output=day031 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tilemap Coordinate Systems" vod_platform=youtube id=lDp4rqcigZs annotator=theinternetftw] [0:00][Welcome / Recap] [3:46][On Scrolling] [4:54][Scrolling for Free] diff --git a/cmuratori/hero/code/code032.hmml b/cmuratori/hero/code/code032.hmml index 6c7bad4..579a7e0 100644 --- a/cmuratori/hero/code/code032.hmml +++ b/cmuratori/hero/code/code032.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Position Representation" vod_platform=youtube id=vI39C4iR8P0 annotator=schme annotator=theinternetftw] +[video output=day032 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unified Position Representation" vod_platform=youtube id=vI39C4iR8P0 annotator=schme annotator=theinternetftw] [1:37][Recap on what we're set out to do] [6:15][About canonical position and using it for the player position] [13:07][GetCanonicalPosition() to RecanonicalPosition()] diff --git a/cmuratori/hero/code/code033.hmml b/cmuratori/hero/code/code033.hmml index d431ab1..c378146 100644 --- a/cmuratori/hero/code/code033.hmml +++ b/cmuratori/hero/code/code033.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Virtualized Tile Maps" vod_platform=youtube id=iHSAOSYOt9E annotator=jacebennett annotator=theinternetftw] +[video output=day033 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Virtualized Tile Maps" vod_platform=youtube id=iHSAOSYOt9E annotator=jacebennett annotator=theinternetftw] [2:03][Review of position representation] [2:35][Today's agenda] [3:55][world_position and changing y-axis] diff --git a/cmuratori/hero/code/code034.hmml b/cmuratori/hero/code/code034.hmml index e229934..0e51c67 100644 --- a/cmuratori/hero/code/code034.hmml +++ b/cmuratori/hero/code/code034.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tile Map Memory" vod_platform=youtube id=IJYTwhqfKLg annotator=abnercoimbre annotator=Miblo annotator=theinternetftw] +[video output=day034 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tile Map Memory" vod_platform=youtube id=IJYTwhqfKLg annotator=abnercoimbre annotator=Miblo annotator=theinternetftw] [0:00][Intro] [4:38][The more you know] [8:25][Time to program] diff --git a/cmuratori/hero/code/code035.hmml b/cmuratori/hero/code/code035.hmml index 6f4848d..5a87711 100644 --- a/cmuratori/hero/code/code035.hmml +++ b/cmuratori/hero/code/code035.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Sparse Tilemap Storage" vod_platform=youtube id=i5-oY8EHkzw annotator=abnercoimbre annotator=Miblo annotator=theinternetftw] +[video output=day035 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Sparse Tilemap Storage" vod_platform=youtube id=i5-oY8EHkzw annotator=abnercoimbre annotator=Miblo annotator=theinternetftw] [0:00][Intro] [2:10][Making some rooms] [3:30][Making some doors] diff --git a/cmuratori/hero/code/code036.hmml b/cmuratori/hero/code/code036.hmml index 871f9e0..fe10f1b 100644 --- a/cmuratori/hero/code/code036.hmml +++ b/cmuratori/hero/code/code036.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading BMPs" vod_platform=youtube id=USFTH9mcaKw annotator=schme annotator=abnercoimbre annotator=theinternetftw] +[video output=day036 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading BMPs" vod_platform=youtube id=USFTH9mcaKw annotator=schme annotator=abnercoimbre annotator=theinternetftw] [00:00][A recap of previous stream] [2:05][New test assets for Handmade Hero project] [4:46][Introduction to loading BMP files] diff --git a/cmuratori/hero/code/code037.hmml b/cmuratori/hero/code/code037.hmml index 9b674e0..14feb44 100644 --- a/cmuratori/hero/code/code037.hmml +++ b/cmuratori/hero/code/code037.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering" vod_platform=youtube id=ofMJUSchXwo annotator=schme annotator=Miblo annotator=theinternetftw] +[video output=day037 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering" vod_platform=youtube id=ofMJUSchXwo annotator=schme annotator=Miblo annotator=theinternetftw] [0:19][We're goin' in][quote 164] [2:10][Recap on where we are] [4:12][Debugging image file formats 101, creating structured art] diff --git a/cmuratori/hero/code/code038.hmml b/cmuratori/hero/code/code038.hmml index a56da6b..0929a9d 100644 --- a/cmuratori/hero/code/code038.hmml +++ b/cmuratori/hero/code/code038.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Linear Bitmap Blending" vod_platform=youtube id=ydiHNs1YQoI annotator=schme annotator=effect0r annotator=theinternetftw] +[video output=day038 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Linear Bitmap Blending" vod_platform=youtube id=ydiHNs1YQoI annotator=schme annotator=effect0r annotator=theinternetftw] [0:00:00][Prestream stuff] [0:09:18][Intro and welcome] [0:10:52][Where we left of from last time] diff --git a/cmuratori/hero/code/code039.hmml b/cmuratori/hero/code/code039.hmml index a79cb1f..9d92332 100644 --- a/cmuratori/hero/code/code039.hmml +++ b/cmuratori/hero/code/code039.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering Cleanup" vod_platform=youtube id=R8BiV_uYT6E annotator=effect0r annotator=theinternetftw] +[video output=day039 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Bitmap Rendering Cleanup" vod_platform=youtube id=R8BiV_uYT6E annotator=effect0r annotator=theinternetftw] [0:00:00][Intro and Welcome] [0:04:55][HeroBitmaps structure] [0:05:38][Loading all hero bitmaps] diff --git a/cmuratori/hero/code/code040.hmml b/cmuratori/hero/code/code040.hmml index f71548b..d6454b1 100644 --- a/cmuratori/hero/code/code040.hmml +++ b/cmuratori/hero/code/code040.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cursor Hiding and Fullscreen Support" vod_platform=youtube id=YBCOijN2fNA annotator=Miblo annotator=schme annotator=effect0r annotator=theinternetftw] +[video output=day040 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cursor Hiding and Fullscreen Support" vod_platform=youtube id=YBCOijN2fNA annotator=Miblo annotator=schme annotator=effect0r annotator=theinternetftw] [0:00:03][Intro and welcome] [0:02:10][What we're going to do today] [0:03:30][Cleaning up tSine] diff --git a/cmuratori/hero/code/code041.hmml b/cmuratori/hero/code/code041.hmml index f8be888..478d21b 100644 --- a/cmuratori/hero/code/code041.hmml +++ b/cmuratori/hero/code/code041.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Overview of the Types of Math Used in Games" vod_platform=youtube id=WN3_d_QcJZE annotator=abnercoimbre annotator=schme annotator=theinternetftw] +[video output=day041 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Overview of the Types of Math Used in Games" vod_platform=youtube id=WN3_d_QcJZE annotator=abnercoimbre annotator=schme annotator=theinternetftw] [00:00][Intro] [1:58][Discussing the reason for a math discussion.] [3:58][Overview of math in programming] diff --git a/cmuratori/hero/code/code042.hmml b/cmuratori/hero/code/code042.hmml index 3c34c45..55e23b3 100644 --- a/cmuratori/hero/code/code042.hmml +++ b/cmuratori/hero/code/code042.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic 2D Vectors" vod_platform=youtube id=eE-D_wSUd0g annotator=abnercoimbre annotator=schme annotator=theinternetftw] +[video output=day042 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic 2D Vectors" vod_platform=youtube id=eE-D_wSUd0g annotator=abnercoimbre annotator=schme annotator=theinternetftw] [00:00][Intro] [00:22][Character movement code.] [01:45][Recap] diff --git a/cmuratori/hero/code/code043.hmml b/cmuratori/hero/code/code043.hmml index d76d8d0..471529c 100644 --- a/cmuratori/hero/code/code043.hmml +++ b/cmuratori/hero/code/code043.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Equations of Motion" vod_platform=youtube id=LoTRzRFEk5I annotator=abnercoimbre annotator=schme annotator=theinternetftw] +[video output=day043 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Equations of Motion" vod_platform=youtube id=LoTRzRFEk5I annotator=abnercoimbre annotator=schme annotator=theinternetftw] [01:02][Intro to equations of motion.] [2:53][Recap of yesterday's stream.] [5:08][Motion in-depth: rigid body dynamics.] diff --git a/cmuratori/hero/code/code044.hmml b/cmuratori/hero/code/code044.hmml index 86cace2..e7322b8 100644 --- a/cmuratori/hero/code/code044.hmml +++ b/cmuratori/hero/code/code044.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reflecting Vectors" vod_platform=youtube id=2nyNOJoVC8M annotator=schme annotator=debiatan annotator=theinternetftw] +[video output=day044 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reflecting Vectors" vod_platform=youtube id=2nyNOJoVC8M annotator=schme annotator=debiatan annotator=theinternetftw] [00:33][Importance of vector math] [02:09][Recap of last episode] [03:36][On the homogeneity of scalar and vector math notation] diff --git a/cmuratori/hero/code/code045.hmml b/cmuratori/hero/code/code045.hmml index 9e55382..855f464 100644 --- a/cmuratori/hero/code/code045.hmml +++ b/cmuratori/hero/code/code045.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Geometric vs. Temporal Movement Search" vod_platform=youtube id=bERy-zhosqY annotator=csnover annotator=schme annotator=theinternetftw] +[video output=day045 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Geometric vs. Temporal Movement Search" vod_platform=youtube id=bERy-zhosqY annotator=csnover annotator=schme annotator=theinternetftw] [0:00][Intro] [1:28][Recap] [2:30][Sticking problem recap] diff --git a/cmuratori/hero/code/code046.hmml b/cmuratori/hero/code/code046.hmml index a2747fb..57f060e 100644 --- a/cmuratori/hero/code/code046.hmml +++ b/cmuratori/hero/code/code046.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multiplayer Support" vod_platform=youtube id=BU5xBpUMdPA annotator=schme annotator=Miblo annotator=effect0r annotator=theinternetftw] +[video output=day046 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multiplayer Support" vod_platform=youtube id=BU5xBpUMdPA annotator=schme annotator=Miblo annotator=effect0r annotator=theinternetftw] [0:00:00][Intro and welcome] [0:01:25][Where we were..] [0:01:50][Addressing a bug that was found by the forums] diff --git a/cmuratori/hero/code/code047.hmml b/cmuratori/hero/code/code047.hmml index d44f925..f306c8f 100644 --- a/cmuratori/hero/code/code047.hmml +++ b/cmuratori/hero/code/code047.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Vector Lengths" vod_platform=youtube id=5KzJ0TDeLxQ annotator=csnover annotator=schme annotator=theinternetftw] +[video output=day047 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Vector Lengths" vod_platform=youtube id=5KzJ0TDeLxQ annotator=csnover annotator=schme annotator=theinternetftw] [0:00][Intro] [1:33][Recap] [2:50][Diagonal move recap] diff --git a/cmuratori/hero/code/code048.hmml b/cmuratori/hero/code/code048.hmml index ad6df27..c76a7e8 100644 --- a/cmuratori/hero/code/code048.hmml +++ b/cmuratori/hero/code/code048.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Line Segment Intersection Collisions" vod_platform=youtube id=rWpZLvbT02o annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw] +[video output=day048 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Line Segment Intersection Collisions" vod_platform=youtube id=rWpZLvbT02o annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw] [0:00][Intro] [1:23][Recap] [2:55][Continuing yesterday's work on collision detection] diff --git a/cmuratori/hero/code/code049.hmml b/cmuratori/hero/code/code049.hmml index acdc968..2f94e5b 100644 --- a/cmuratori/hero/code/code049.hmml +++ b/cmuratori/hero/code/code049.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Canonical Coordinates" vod_platform=youtube id=CIe8J9ScmRo annotator=csnover annotator=schme annotator=theinternetftw] +[video output=day049 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Canonical Coordinates" vod_platform=youtube id=CIe8J9ScmRo annotator=csnover annotator=schme annotator=theinternetftw] [0:00][Intro] [1:20][Recap] [2:05][Wraparound problem] diff --git a/cmuratori/hero/code/code050.hmml b/cmuratori/hero/code/code050.hmml index 6bec54b..ef8c579 100644 --- a/cmuratori/hero/code/code050.hmml +++ b/cmuratori/hero/code/code050.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Minkowski-based Collision Detection" vod_platform=youtube id=_g8DLrNyVsQ annotator=csnover annotator=schme annotator=theinternetftw] +[video output=day050 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Minkowski-based Collision Detection" vod_platform=youtube id=_g8DLrNyVsQ annotator=csnover annotator=schme annotator=theinternetftw] [0:00][Intro] [0:33][Recap] [2:39][To do today: Gliding/skating and area-based collision detection] diff --git a/cmuratori/hero/code/code051.hmml b/cmuratori/hero/code/code051.hmml index 94eac8c..dddea6b 100644 --- a/cmuratori/hero/code/code051.hmml +++ b/cmuratori/hero/code/code051.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Entities By Update Frequency" vod_platform=youtube id=RQUP4ql86k0 annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw] +[video output=day051 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Entities By Update Frequency" vod_platform=youtube id=RQUP4ql86k0 annotator=csnover annotator=schme annotator=debiatan annotator=theinternetftw] [0:00][Intro] [2:00][Recap] [5:18][What we're doing and why] diff --git a/cmuratori/hero/code/code052.hmml b/cmuratori/hero/code/code052.hmml index 34b1dd6..a20c62c 100644 --- a/cmuratori/hero/code/code052.hmml +++ b/cmuratori/hero/code/code052.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Movement in Camera Space" vod_platform=youtube id=TfZUAFh-WJg annotator=csnover annotator=debiatan annotator=theinternetftw] +[video output=day052 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Movement in Camera Space" vod_platform=youtube id=TfZUAFh-WJg annotator=csnover annotator=debiatan annotator=theinternetftw] [0:00][Intro] [1:40][Recap] [3:12][Thinking about removing the tile map and making tiles entities] diff --git a/cmuratori/hero/code/code053.hmml b/cmuratori/hero/code/code053.hmml index 63c44d3..a2253c3 100644 --- a/cmuratori/hero/code/code053.hmml +++ b/cmuratori/hero/code/code053.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Environment Elements as Entities" vod_platform=youtube id=KAZrNrcgrRc annotator=csnover annotator=debiatan annotator=theinternetftw] +[video output=day053 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Environment Elements as Entities" vod_platform=youtube id=KAZrNrcgrRc annotator=csnover annotator=debiatan annotator=theinternetftw] [0:00][Intro] [1:22][Recap] [2:42][Fixing a crash reading off the end of a buffer] diff --git a/cmuratori/hero/code/code054.hmml b/cmuratori/hero/code/code054.hmml index 2136bde..57e8f68 100644 --- a/cmuratori/hero/code/code054.hmml +++ b/cmuratori/hero/code/code054.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the Dormant Entity Concept" vod_platform=youtube id=yqM04duWiiU annotator=csnover annotator=debiatan annotator=theinternetftw] +[video output=day054 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the Dormant Entity Concept" vod_platform=youtube id=yqM04duWiiU annotator=csnover annotator=debiatan annotator=theinternetftw] [0:00][Intro] [1:17][Recap] [3:15][Rationale for removing dormant entities] diff --git a/cmuratori/hero/code/code055.hmml b/cmuratori/hero/code/code055.hmml index d7eca00..d6a7701 100644 --- a/cmuratori/hero/code/code055.hmml +++ b/cmuratori/hero/code/code055.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hash-based World Storage" vod_platform=youtube id=WyXBawK1jpE annotator=csnover annotator=debiatan annotator=theinternetftw] +[video output=day055 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hash-based World Storage" vod_platform=youtube id=WyXBawK1jpE annotator=csnover annotator=debiatan annotator=theinternetftw] [0:00][Intro] [2:05][Fix typo in SetCamera] [3:00][Recap of world coordinate wrapping problem & sparse world storage design] diff --git a/cmuratori/hero/code/code056.hmml b/cmuratori/hero/code/code056.hmml index bffabd9..94407f4 100644 --- a/cmuratori/hero/code/code056.hmml +++ b/cmuratori/hero/code/code056.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switch from Tiles to Entities" vod_platform=youtube id=NMfx9eVrNmQ annotator=csnover annotator=schme annotator=debiatan] +[video output=day056 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switch from Tiles to Entities" vod_platform=youtube id=NMfx9eVrNmQ annotator=csnover annotator=schme annotator=debiatan] [0:00][Intro] [1:44][Recap] [5:18][Scaling low-frequency entity updates] diff --git a/cmuratori/hero/code/code057.hmml b/cmuratori/hero/code/code057.hmml index 0b3b71b..109575f 100644 --- a/cmuratori/hero/code/code057.hmml +++ b/cmuratori/hero/code/code057.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Spatially Partitioning Entities" vod_platform=youtube id=nAFuhA8xqTk annotator=schme annotator=Miblo] +[video output=day057 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Spatially Partitioning Entities" vod_platform=youtube id=nAFuhA8xqTk annotator=schme annotator=Miblo] [1:15][Recap] [3:11][handmade.cpp: Create more rooms] [4:22][Debugger: Inspect GameState while traversing the world] diff --git a/cmuratori/hero/code/code058.hmml b/cmuratori/hero/code/code058.hmml index d59ead0..9188b3d 100644 --- a/cmuratori/hero/code/code058.hmml +++ b/cmuratori/hero/code/code058.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using the Spatial Partition" vod_platform=youtube id=W_z9VN1m2Oo annotator=schme annotator=Miblo] +[video output=day058 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using the Spatial Partition" vod_platform=youtube id=W_z9VN1m2Oo annotator=schme annotator=Miblo] [0:28][Assets: handmade_hero_test_assets_002.zip is released] [2:01][Recap] [3:28][handmade.cpp: Pull in entities by chunk, rather than tile] diff --git a/cmuratori/hero/code/code059.hmml b/cmuratori/hero/code/code059.hmml index 58ca14d..c25c245 100644 --- a/cmuratori/hero/code/code059.hmml +++ b/cmuratori/hero/code/code059.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Basic Familiar Entity" vod_platform=youtube id=KBCNjjeXezM annotator=schme annotator=Miblo] +[video output=day059 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Basic Familiar Entity" vod_platform=youtube id=KBCNjjeXezM annotator=schme annotator=Miblo] [2:29][Recap and plan for the day ahead] [5:34][handmade.h: Add EntityType_Familiar and EntityType_Monster] [6:21][handmade.cpp: Introduce AddMonster and update AddLowEntity] diff --git a/cmuratori/hero/code/code060.hmml b/cmuratori/hero/code/code060.hmml index 8b873b0..b6c8696 100644 --- a/cmuratori/hero/code/code060.hmml +++ b/cmuratori/hero/code/code060.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Hitpoints" vod_platform=youtube id=0_xzS8zxuq4 annotator=Miblo annotator=schme annotator=wheatdog] +[video output=day060 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Hitpoints" vod_platform=youtube id=0_xzS8zxuq4 annotator=Miblo annotator=schme annotator=wheatdog] [1:55][Recap and plan for the day ahead] [3:46][Describe the "sumo mandarin" still being eaten] [4:46][Fix jump shadow] diff --git a/cmuratori/hero/code/code061.hmml b/cmuratori/hero/code/code061.hmml index 0ffcdc7..545d3e9 100644 --- a/cmuratori/hero/code/code061.hmml +++ b/cmuratori/hero/code/code061.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Simple Attack" vod_platform=youtube id=bHGLcGgwpWg annotator=Miblo annotator=schme annotator=wheatdog] +[video output=day061 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Simple Attack" vod_platform=youtube id=bHGLcGgwpWg annotator=Miblo annotator=schme annotator=wheatdog] [1:56][Recap and plan for the day ahead] [6:07][handmade.cpp: Pull out the code draws hitpoints] [8:04][handmade.cpp: InitHitPoints] diff --git a/cmuratori/hero/code/code062.hmml b/cmuratori/hero/code/code062.hmml index 584ed91..d5fb6c6 100644 --- a/cmuratori/hero/code/code062.hmml +++ b/cmuratori/hero/code/code062.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Moving Projectiles" vod_platform=youtube id=F7feQINaRnk annotator=Miblo annotator=schme annotator=wheatdog] +[video output=day062 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Moving Projectiles" vod_platform=youtube id=F7feQINaRnk annotator=Miblo annotator=schme annotator=wheatdog] [0:32][Announce that we will save blackboard.art into handmade/misc/] [2:41][Recap] [4:10][handmade.cpp: Make the sword actually be thrown] diff --git a/cmuratori/hero/code/code063.hmml b/cmuratori/hero/code/code063.hmml index 4c8ea9f..ac695d4 100644 --- a/cmuratori/hero/code/code063.hmml +++ b/cmuratori/hero/code/code063.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simulation Regions" vod_platform=youtube id=a7_vSEEgArQ annotator=schme annotator=jpike] +[video output=day063 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simulation Regions" vod_platform=youtube id=a7_vSEEgArQ annotator=schme annotator=jpike] [0:25][Recap on getting initial usage code down to avoid bad design] [2:03][Design constraints for high/low frequency entities] [4:46][Float precision problem for large worlds] diff --git a/cmuratori/hero/code/code064.hmml b/cmuratori/hero/code/code064.hmml index ad72179..9bf97e1 100644 --- a/cmuratori/hero/code/code064.hmml +++ b/cmuratori/hero/code/code064.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Mapping Entity Indexes to Pointers" vod_platform=youtube id=lHKso30LdU8 annotator=schme annotator=jpike] +[video output=day064 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Mapping Entity Indexes to Pointers" vod_platform=youtube id=lHKso30LdU8 annotator=schme annotator=jpike] [1:33][Recap of where we are with simulation regions] [1:58][Reorganizing the entity structs] [5:05][Updating code for sim_entity within low_entity] diff --git a/cmuratori/hero/code/code065.hmml b/cmuratori/hero/code/code065.hmml index 9ef8e7f..36c4f35 100644 --- a/cmuratori/hero/code/code065.hmml +++ b/cmuratori/hero/code/code065.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Simulation Region Change" vod_platform=youtube id=XfBTNH0nL4I annotator=schme annotator=jpike] +[video output=day065 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Simulation Region Change" vod_platform=youtube id=XfBTNH0nL4I annotator=schme annotator=jpike] [0:36][Recap on where we are with simulation region change] [3:55][Creating a separate file for entity behavior code] [6:20][Changing DrawHitpoints to operate on sim_entity instead of low_entity] diff --git a/cmuratori/hero/code/code066.hmml b/cmuratori/hero/code/code066.hmml index d850bd2..910ee87 100644 --- a/cmuratori/hero/code/code066.hmml +++ b/cmuratori/hero/code/code066.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Support for Non-spatial Entities" vod_platform=youtube id=vXPAE5UfcbA annotator=schme annotator=jpike] +[video output=day066 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Support for Non-spatial Entities" vod_platform=youtube id=vXPAE5UfcbA annotator=schme annotator=jpike] [2:06][Where we left off with simulation regions] [2:52][Overview of limitation of simulation region - entities currently must have position] [4:40][Adding sim_entity_flags] diff --git a/cmuratori/hero/code/code067.hmml b/cmuratori/hero/code/code067.hmml index 87221f1..e072687 100644 --- a/cmuratori/hero/code/code067.hmml +++ b/cmuratori/hero/code/code067.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Updates Conditional" vod_platform=youtube id=lnnb49-FYqU annotator=schme annotator=jpike] +[video output=day067 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Updates Conditional" vod_platform=youtube id=lnnb49-FYqU annotator=schme annotator=jpike] [1:30][Reviewing the 'apron' idea for update regions] [11:04][Adding Updatable bool to sim_entity] [12:38][Setting Updatable bool in AddEntity] diff --git a/cmuratori/hero/code/code068.hmml b/cmuratori/hero/code/code068.hmml index 84908f0..7357e1a 100644 --- a/cmuratori/hero/code/code068.hmml +++ b/cmuratori/hero/code/code068.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exact Enforcement of Maximum Movement Distances" vod_platform=youtube id=0ZjYHfYAjQg annotator=schme annotator=jpike] +[video output=day068 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exact Enforcement of Maximum Movement Distances" vod_platform=youtube id=0ZjYHfYAjQg annotator=schme annotator=jpike] [0:28][Recap of where we are with collisions and interactions] [1:07][Bug fix from forums - Typo in MoveEntity for testing entity flag] [3:44][Overview for today - max movement distances] diff --git a/cmuratori/hero/code/code069.hmml b/cmuratori/hero/code/code069.hmml index 739fa51..8fb6601 100644 --- a/cmuratori/hero/code/code069.hmml +++ b/cmuratori/hero/code/code069.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pairwise Collision Rules" vod_platform=youtube id=YrqQLA9SOEc annotator=schme annotator=jpike] +[video output=day069 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pairwise Collision Rules" vod_platform=youtube id=YrqQLA9SOEc annotator=schme annotator=jpike] [1:35][Recap of where we left off with collision responses] [4:44][Changing things so that stopping on collision is part of collision handling] [6:25][Overview of ignoring certain collisions] diff --git a/cmuratori/hero/code/code070.hmml b/cmuratori/hero/code/code070.hmml index b97e956..604d2e9 100644 --- a/cmuratori/hero/code/code070.hmml +++ b/cmuratori/hero/code/code070.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration To-do List" vod_platform=youtube id=afWxzIHB5Ss annotator=schme annotator=jpike] +[video output=day070 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploration To-do List" vod_platform=youtube id=afWxzIHB5Ss annotator=schme annotator=jpike] [0:29][Overview of the development process] [4:03][Recap of collision rule hash table] [5:53][Problem with removing collision rules from hash table] diff --git a/cmuratori/hero/code/code071.hmml b/cmuratori/hero/code/code071.hmml index b8f1d67..88df0f6 100644 --- a/cmuratori/hero/code/code071.hmml +++ b/cmuratori/hero/code/code071.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting to Full 3D Positioning" vod_platform=youtube id=FVPxhovGsuE annotator=schme annotator=Miblo annotator=wheatdog] +[video output=day071 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting to Full 3D Positioning" vod_platform=youtube id=FVPxhovGsuE annotator=schme annotator=Miblo annotator=wheatdog] [0:15][Recap] [1:07][Casey talk about "The coincidence of how people use their TODO notebook"] [2:52][Bug fix: Remove the code we left when we were playing around with familiars] diff --git a/cmuratori/hero/code/code072.hmml b/cmuratori/hero/code/code072.hmml index 9452b27..7119502 100644 --- a/cmuratori/hero/code/code072.hmml +++ b/cmuratori/hero/code/code072.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Proper 3D Inclusion Tests" vod_platform=youtube id=tcirDivLd8A annotator=csnover annotator=schme annotator=Miblo] +[video output=day072 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Proper 3D Inclusion Tests" vod_platform=youtube id=tcirDivLd8A annotator=csnover annotator=schme annotator=Miblo] [0:48][Coding from scratch, "just like mommy used to code"][quote 26] [0:57][Recap] [1:51][Fix IsInRectangle cut/paste bug] diff --git a/cmuratori/hero/code/code073.hmml b/cmuratori/hero/code/code073.hmml index 10aee40..985979e 100644 --- a/cmuratori/hero/code/code073.hmml +++ b/cmuratori/hero/code/code073.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Temporarily Overlapping Entities" vod_platform=youtube id=e0yjNipizK0 annotator=schme annotator=Miblo] +[video output=day073 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Temporarily Overlapping Entities" vod_platform=youtube id=e0yjNipizK0 annotator=schme annotator=Miblo] [0:57]["Little tiny baby zipfiles"][quote 30] [2:06][Recap and plan for the day] [4:09][handmade.cpp: Load rock02.bmp into the set] diff --git a/cmuratori/hero/code/code074.hmml b/cmuratori/hero/code/code074.hmml index b27913b..28fd74f 100644 --- a/cmuratori/hero/code/code074.hmml +++ b/cmuratori/hero/code/code074.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entities Up and Down Stairwells" vod_platform=youtube id=Hm_CTQwV13U annotator=Miblo annotator=schme] +[video output=day074 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entities Up and Down Stairwells" vod_platform=youtube id=Hm_CTQwV13U annotator=Miblo annotator=schme] [1:31][Blackboard: Processing entities in pairs] [4:23][Blackboard: Using that table to process stairwell overlapping] [6:57][Blackboard: Travelling inside the stairwell] diff --git a/cmuratori/hero/code/code075.hmml b/cmuratori/hero/code/code075.hmml index dd0ce2e..cdfe4f6 100644 --- a/cmuratori/hero/code/code075.hmml +++ b/cmuratori/hero/code/code075.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Conditional Movement Based on Step Heights" vod_platform=youtube id=bZxa4fdtI2Y annotator=Miblo annotator=schme] +[video output=day075 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Conditional Movement Based on Step Heights" vod_platform=youtube id=bZxa4fdtI2Y annotator=Miblo annotator=schme] [3:58][Blackboard: Handling stairwell traversal] [7:45][Blackboard: Collision Detection in Z] [8:21][Blackboard: Draw reasonably] diff --git a/cmuratori/hero/code/code076.hmml b/cmuratori/hero/code/code076.hmml index a19bede..ad90815 100644 --- a/cmuratori/hero/code/code076.hmml +++ b/cmuratori/hero/code/code076.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Heights and Collision Detection" vod_platform=youtube id=0mGWYcE6yG8 annotator=dspecht annotator=Miblo] +[video output=day076 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Heights and Collision Detection" vod_platform=youtube id=0mGWYcE6yG8 annotator=dspecht annotator=Miblo] [2:34][Start everything up, make sure it's all still working and plan for the day] [6:21][handmade_sim_region.cpp: Consider confining collision detection to the entities' Z neighbourhood] [9:41][Blackboard: Extending Minkowsi collision into the third dimension] diff --git a/cmuratori/hero/code/code077.hmml b/cmuratori/hero/code/code077.hmml index 2409189..3bd5c95 100644 --- a/cmuratori/hero/code/code077.hmml +++ b/cmuratori/hero/code/code077.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Ground Points" vod_platform=youtube id=9IGZGfVvc0s annotator=dspecht annotator=Miblo] +[video output=day077 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Ground Points" vod_platform=youtube id=9IGZGfVvc0s annotator=dspecht annotator=Miblo] [2:00][Recap the bug from yesterday] [4:02][Blackboard: The discrepancy between the Entities' base points and the Ground position] [5:30][Look at how these concepts are currently specified] diff --git a/cmuratori/hero/code/code078.hmml b/cmuratori/hero/code/code078.hmml index 1c8734f..d858a4d 100644 --- a/cmuratori/hero/code/code078.hmml +++ b/cmuratori/hero/code/code078.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple Collision Volumes Per Entity" vod_platform=youtube id=o1DO5sjUhi0 annotator=Miblo annotator=dspecht] +[video output=day078 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple Collision Volumes Per Entity" vod_platform=youtube id=o1DO5sjUhi0 annotator=Miblo annotator=dspecht] [1:37][Blackboard: Position != Collision "Mesh"] [9:13][handmade_sim_region.h: Introduce sim_entity_collision_volume] [10:54][Blackboard: Two ways of storing this collision volume data] diff --git a/cmuratori/hero/code/code079.hmml b/cmuratori/hero/code/code079.hmml index 79f5afa..962bea3 100644 --- a/cmuratori/hero/code/code079.hmml +++ b/cmuratori/hero/code/code079.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining the Ground" vod_platform=youtube id=HMW1fsXzW-o annotator=Miblo annotator=dspecht annotator=Kelimion] +[video output=day079 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining the Ground" vod_platform=youtube id=HMW1fsXzW-o annotator=Miblo annotator=dspecht annotator=Kelimion] [3:56][handmade.h: Check the TODO list] [4:51][Blackboard: The Ground] [5:45][Blackboard: Quake vs. Unreal] diff --git a/cmuratori/hero/code/code080.hmml b/cmuratori/hero/code/code080.hmml index cb190da..3e66380 100644 --- a/cmuratori/hero/code/code080.hmml +++ b/cmuratori/hero/code/code080.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Traversables in the Collision Loop" vod_platform=youtube id=QxxVwnE8V1c annotator=Miblo annotator=dspecht] +[video output=day080 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Traversables in the Collision Loop" vod_platform=youtube id=QxxVwnE8V1c annotator=Miblo annotator=dspecht] [4:29][Blackboard: Augmenting the collision loop to loop over two types of t value] [5:10][handmade_sim_region.cpp: Introduce tMax] [5:58][handmade_sim_region.cpp: Consider how best to modify this routine] diff --git a/cmuratori/hero/code/code081.hmml b/cmuratori/hero/code/code081.hmml index 822aa59..fa20888 100644 --- a/cmuratori/hero/code/code081.hmml +++ b/cmuratori/hero/code/code081.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating Ground with Overlapping Bitmaps" vod_platform=youtube id=EGOrMZwQVEk annotator=Miblo] +[video output=day081 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating Ground with Overlapping Bitmaps" vod_platform=youtube id=EGOrMZwQVEk annotator=Miblo] [0:19][A regrettable incident...] [6:07][Maybe we should try to add some sort of drawing to the ground] [7:13][Viewing the art assets in GIMP] diff --git a/cmuratori/hero/code/code082.hmml b/cmuratori/hero/code/code082.hmml index ced8481..87980d5 100644 --- a/cmuratori/hero/code/code082.hmml +++ b/cmuratori/hero/code/code082.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Caching Composited Bitmaps" vod_platform=youtube id=09bUpNbRzzc annotator=Miblo] +[video output=day082 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Caching Composited Bitmaps" vod_platform=youtube id=09bUpNbRzzc annotator=Miblo] [0:41][Let's take a look at where things were] [2:12][Toggle off the debug boundaries] [2:49][Two things to look at: 1) Speeding up the texture splats and 2) Multiple layers] diff --git a/cmuratori/hero/code/code083.hmml b/cmuratori/hero/code/code083.hmml index b7dcce8..64cd282 100644 --- a/cmuratori/hero/code/code083.hmml +++ b/cmuratori/hero/code/code083.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Premultiplied Alpha" vod_platform=youtube id=bidrZj1YosA annotator=Miblo] +[video output=day083 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Premultiplied Alpha" vod_platform=youtube id=bidrZj1YosA annotator=Miblo] [1:44][Recap yesterday's work] [4:20][Investigate peripheral problem] [6:01][Blackboard: Alpha channel in the intermediate buffer] diff --git a/cmuratori/hero/code/code084.hmml b/cmuratori/hero/code/code084.hmml index 2ec68ba..080051e 100644 --- a/cmuratori/hero/code/code084.hmml +++ b/cmuratori/hero/code/code084.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Scrolling Ground Buffer" vod_platform=youtube id=U5AAAaiMlYQ annotator=dspecht annotator=Miblo] +[video output=day084 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Scrolling Ground Buffer" vod_platform=youtube id=U5AAAaiMlYQ annotator=dspecht annotator=Miblo] [1:36][Damage Assessment] [2:37][We are trying to figure out how to finish off our world construction] [4:23][Think about how to handle the ground] diff --git a/cmuratori/hero/code/code085.hmml b/cmuratori/hero/code/code085.hmml index b98482f..1589ad5 100644 --- a/cmuratori/hero/code/code085.hmml +++ b/cmuratori/hero/code/code085.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transient Ground Buffers" vod_platform=youtube id=QhjuxnQyBwk annotator=Miblo annotator=dspecht] +[video output=day085 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transient Ground Buffers" vod_platform=youtube id=QhjuxnQyBwk annotator=Miblo annotator=dspecht] [1:18][Recap of yesterday's repeating ground texture work] [2:18][Blackboard: A smarter way to do things] [5:19][Blackboard: Why don't we just make an array of tiles...?] diff --git a/cmuratori/hero/code/code086.hmml b/cmuratori/hero/code/code086.hmml index a332c1c..075f6ce 100644 --- a/cmuratori/hero/code/code086.hmml +++ b/cmuratori/hero/code/code086.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Ground Buffers to World Chunks" vod_platform=youtube id=TxowSnU2_cQ annotator=dspecht annotator=Miblo] +[video output=day086 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Ground Buffers to World Chunks" vod_platform=youtube id=TxowSnU2_cQ annotator=dspecht annotator=Miblo] [3:50][Recap] [4:14][The Proposal: First, just produce tiles that cover things... but they won't be seamless] [5:58][Address specifying which ground_buffer we need] diff --git a/cmuratori/hero/code/code087.hmml b/cmuratori/hero/code/code087.hmml index 1d0e2e7..878c0d0 100644 --- a/cmuratori/hero/code/code087.hmml +++ b/cmuratori/hero/code/code087.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Seamless Ground Textures" vod_platform=youtube id=YAaqiKuSmsk annotator=Miblo annotator=dspecht annotator=ZedZull] +[video output=day087 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Seamless Ground Textures" vod_platform=youtube id=YAaqiKuSmsk annotator=Miblo annotator=dspecht annotator=ZedZull] [1:48][Take a look at the state of things, but actually address a typo] [2:46][Weird stuff can happen when you're using memory directly] [7:31][Get back to what we were doing, i.e. making seamless ground tiles] diff --git a/cmuratori/hero/code/code088.hmml b/cmuratori/hero/code/code088.hmml index 328b47d..abe96c1 100644 --- a/cmuratori/hero/code/code088.hmml +++ b/cmuratori/hero/code/code088.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Push Buffer Rendering" vod_platform=youtube id=zbufcZ_JBbU annotator=Miblo annotator=dspecht annotator=ZedZull] +[video output=day088 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Push Buffer Rendering" vod_platform=youtube id=zbufcZ_JBbU annotator=Miblo annotator=dspecht annotator=ZedZull] [0:37][Investigate possible bug in the collision detector] [3:02][Pass TestP to SpeculativeCollide and also base MoverGroundPoint off TestP] [3:27][Make a version of GetEntityGroundPoint that takes ForEntityP] diff --git a/cmuratori/hero/code/code089.hmml b/cmuratori/hero/code/code089.hmml index 9aa9777..a230c33 100644 --- a/cmuratori/hero/code/code089.hmml +++ b/cmuratori/hero/code/code089.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Renderer Push Buffer Entry Types" vod_platform=youtube id=lllby5vrEes annotator=dspecht annotator=ZedZull annotator=Miblo] +[video output=day089 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Renderer Push Buffer Entry Types" vod_platform=youtube id=lllby5vrEes annotator=dspecht annotator=ZedZull annotator=Miblo] [1:34][Take a look at what happened on Friday] [3:56][Blackboard: Rendering] [5:25][Blackboard: Reasons for using a PushBuffer] diff --git a/cmuratori/hero/code/code090.hmml b/cmuratori/hero/code/code090.hmml index 0c7e793..84ec4a5 100644 --- a/cmuratori/hero/code/code090.hmml +++ b/cmuratori/hero/code/code090.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part I" vod_platform=youtube id=lcmjmOfWPNU annotator=Miblo annotator=dspecht annotator=ZedZull] +[video output=day090 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part I" vod_platform=youtube id=lcmjmOfWPNU annotator=Miblo annotator=dspecht annotator=ZedZull] [1:45][Take a look at where we're at] [2:05][Make lowercase the accessors for the vectors] [6:20][Casey doesn't have enough Emacs-fu to bust that out][quote 45] diff --git a/cmuratori/hero/code/code091.hmml b/cmuratori/hero/code/code091.hmml index 916f61f..67cad70 100644 --- a/cmuratori/hero/code/code091.hmml +++ b/cmuratori/hero/code/code091.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part II" vod_platform=youtube id=2yKKcjBIaL0 annotator=Miblo annotator=dspecht annotator=ZedZull] +[video output=day091 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part II" vod_platform=youtube id=2yKKcjBIaL0 annotator=Miblo annotator=dspecht annotator=ZedZull] [0:54][Blackboard: Clarify linear independence] [2:18][Blackboard: Bases] [6:16][Blackboard: What does it mean to say we have an origin?] diff --git a/cmuratori/hero/code/code092.hmml b/cmuratori/hero/code/code092.hmml index 3abc988..21a18f4 100644 --- a/cmuratori/hero/code/code092.hmml +++ b/cmuratori/hero/code/code092.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Filling Rotated and Scaled Rectangles" vod_platform=youtube id=kVU_QIxm3AA annotator=Miblo annotator=dspecht annotator=ZedZull] +[video output=day092 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Filling Rotated and Scaled Rectangles" vod_platform=youtube id=kVU_QIxm3AA annotator=Miblo annotator=dspecht annotator=ZedZull] [0:23][Recap of people egging Casey on to do some weird sine-cosine-theta stuff][quote 50] [1:36][Blackboard: Introduce effects] [4:39][Blackboard: How do we do this rotation and scaling?] diff --git a/cmuratori/hero/code/code093.hmml b/cmuratori/hero/code/code093.hmml index c06e351..4b18a37 100644 --- a/cmuratori/hero/code/code093.hmml +++ b/cmuratori/hero/code/code093.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Textured Quadrilaterals" vod_platform=youtube id=k5wzQeWRokA annotator=Miblo annotator=dspecht] +[video output=day093 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Textured Quadrilaterals" vod_platform=youtube id=k5wzQeWRokA annotator=Miblo annotator=dspecht] [0:44][Recap and push forwards] [2:46][Expand the notion of CoordinateSystem to allow passing a Texture] [4:36][Review how our Edge equations work] diff --git a/cmuratori/hero/code/code094.hmml b/cmuratori/hero/code/code094.hmml index 43c0595..4339474 100644 --- a/cmuratori/hero/code/code094.hmml +++ b/cmuratori/hero/code/code094.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting sRGB to Light-linear Space" vod_platform=youtube id=GKVMOmEGVoQ annotator=dspecht annotator=Miblo] +[video output=day094 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting sRGB to Light-linear Space" vod_platform=youtube id=GKVMOmEGVoQ annotator=dspecht annotator=Miblo] [1:07][Recap last week's work on the renderer] [1:38][Won Chun's request: Correct gamma correction] [4:08][Chart: Gamma curve of Casey's monitor] diff --git a/cmuratori/hero/code/code095.hmml b/cmuratori/hero/code/code095.hmml index 6180b22..9442362 100644 --- a/cmuratori/hero/code/code095.hmml +++ b/cmuratori/hero/code/code095.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Gamma-correct Premultiplied Alpha" vod_platform=youtube id=JTIzGsGqQaA annotator=dspecht annotator=Miblo] +[video output=day095 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Gamma-correct Premultiplied Alpha" vod_platform=youtube id=JTIzGsGqQaA annotator=dspecht annotator=Miblo] [1:20][Recap yesterday's work] [2:40][When do you premultiply the alpha?] [4:58][This bilinear blend might want to be in premultiplied alpha] diff --git a/cmuratori/hero/code/code096.hmml b/cmuratori/hero/code/code096.hmml index cfbd304..7e4d3e6 100644 --- a/cmuratori/hero/code/code096.hmml +++ b/cmuratori/hero/code/code096.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Lighting" vod_platform=youtube id=QtepVbq6_pw annotator=Miblo annotator=dspecht] +[video output=day096 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Lighting" vod_platform=youtube id=QtepVbq6_pw annotator=Miblo annotator=dspecht] [1:59][Consider addressing the problem of speed and optimisation in order to ease debugging] [4:02][Two possible directions: Renderer Features...] [5:11][...or Lighting Control] diff --git a/cmuratori/hero/code/code097.hmml b/cmuratori/hero/code/code097.hmml index cded845..ffe65c8 100644 --- a/cmuratori/hero/code/code097.hmml +++ b/cmuratori/hero/code/code097.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Normal Maps to the Pipeline" vod_platform=youtube id=oww19zUryVg annotator=dspecht annotator=Miblo] +[video output=day097 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Normal Maps to the Pipeline" vod_platform=youtube id=oww19zUryVg annotator=dspecht annotator=Miblo] [2:17][Recap yesterday and plan for today] [2:55][Blackboard: Normal maps] [5:28][Blackboard: The importance of Normal] diff --git a/cmuratori/hero/code/code098.hmml b/cmuratori/hero/code/code098.hmml index 2f10616..087a52a 100644 --- a/cmuratori/hero/code/code098.hmml +++ b/cmuratori/hero/code/code098.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Normal Map Code Cleanup" vod_platform=youtube id=xWQfjqAHvxs annotator=dspecht annotator=Miblo] +[video output=day098 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Normal Map Code Cleanup" vod_platform=youtube id=xWQfjqAHvxs annotator=dspecht annotator=Miblo] [1:43][Off we go with a bit of a recap] [3:51][Talk about MakeSphereNormalMap and GPU vs CPU renderer] [4:54][Make TreeNormal for MakeSphereNormalMap to use] diff --git a/cmuratori/hero/code/code099.hmml b/cmuratori/hero/code/code099.hmml index b7b7d5b..4340f14 100644 --- a/cmuratori/hero/code/code099.hmml +++ b/cmuratori/hero/code/code099.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Test Enviroment Maps" vod_platform=youtube id=07UpVTmIKdU annotator=Miblo annotator=dspecht] +[video output=day099 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Test Enviroment Maps" vod_platform=youtube id=07UpVTmIKdU annotator=Miblo annotator=dspecht] [2:27][Blackboard: Make some light fields] [7:47][Create test environment_maps] [9:58][Initialise environment_maps] diff --git a/cmuratori/hero/code/code100.hmml b/cmuratori/hero/code/code100.hmml index 3be9c5d..96cee50 100644 --- a/cmuratori/hero/code/code100.hmml +++ b/cmuratori/hero/code/code100.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reflection Vectors" vod_platform=youtube id=PHz3ulc_mFk annotator=Miblo annotator=dspecht] +[video output=day100 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reflection Vectors" vod_platform=youtube id=PHz3ulc_mFk annotator=Miblo annotator=dspecht] [1:06][Recap where we left off yesterday] [2:20][Blackboard: Surface reflectance] [5:12][Blackboard: Straight reflection model and Collision detection] diff --git a/cmuratori/hero/code/code101.hmml b/cmuratori/hero/code/code101.hmml index 70ff67a..107b7ba 100644 --- a/cmuratori/hero/code/code101.hmml +++ b/cmuratori/hero/code/code101.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Inverse and the Transpose" vod_platform=youtube id=PPDAqEJvUUQ annotator=dspecht annotator=Miblo] +[video output=day101 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Inverse and the Transpose" vod_platform=youtube id=PPDAqEJvUUQ annotator=dspecht annotator=Miblo] [0:46][Recap our current situation] [1:45][Start thinking about how we'll transform Normals] [3:51][Blackboard: Rotating Normals (is pretty straightforward)] diff --git a/cmuratori/hero/code/code102.hmml b/cmuratori/hero/code/code102.hmml index fb8d8b8..b567e37 100644 --- a/cmuratori/hero/code/code102.hmml +++ b/cmuratori/hero/code/code102.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transforming Normals Properly" vod_platform=youtube id=73u0sR4DU9E annotator=Miblo annotator=dspecht] +[video output=day102 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transforming Normals Properly" vod_platform=youtube id=73u0sR4DU9E annotator=Miblo annotator=dspecht] [0:31][Yesterday we had a little bit of a problem] [1:25][Blackboard: Imagining the Normals for a house] [3:51][Blackboard: Recap how to get the perpendicular of a vector] diff --git a/cmuratori/hero/code/code103.hmml b/cmuratori/hero/code/code103.hmml index de7774b..88b42f5 100644 --- a/cmuratori/hero/code/code103.hmml +++ b/cmuratori/hero/code/code103.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Card-like Normal Map Reflections" vod_platform=youtube id=-LWk-TVfGTk annotator=dspecht annotator=Miblo] +[video output=day103 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Card-like Normal Map Reflections" vod_platform=youtube id=-LWk-TVfGTk annotator=dspecht annotator=Miblo] [1:23][Recap the bug] [3:09][Blackboard: Sprite cards and casting directions] [10:04][Take a look at the offending notion in handmade_render_group.cpp] diff --git a/cmuratori/hero/code/code104.hmml b/cmuratori/hero/code/code104.hmml index 0df9c24..6c5fd7c 100644 --- a/cmuratori/hero/code/code104.hmml +++ b/cmuratori/hero/code/code104.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Y-is-up Render Targets" vod_platform=youtube id=CfjMu8DwOnY annotator=Miblo annotator=dspecht] +[video output=day104 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Y-is-up Render Targets" vod_platform=youtube id=CfjMu8DwOnY annotator=Miblo annotator=dspecht] [2:22][Z is kind of up in the air][quote 71] [4:06][Recap where we left off last week] [6:53][Take a look at handmade_render_group.h] diff --git a/cmuratori/hero/code/code105.hmml b/cmuratori/hero/code/code105.hmml index f4ff244..c628a2a 100644 --- a/cmuratori/hero/code/code105.hmml +++ b/cmuratori/hero/code/code105.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the Renderer API" vod_platform=youtube id=Jklm_p_qrKU annotator=Miblo annotator=dspecht] +[video output=day105 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the Renderer API" vod_platform=youtube id=Jklm_p_qrKU annotator=Miblo annotator=dspecht] [0:57][Go ahead and see where we're at] [3:55][Come back here to our code] [6:12][Pull functions out into handmade_render_group.h and look at them] diff --git a/cmuratori/hero/code/code106.hmml b/cmuratori/hero/code/code106.hmml index b800e6d..3002ecf 100644 --- a/cmuratori/hero/code/code106.hmml +++ b/cmuratori/hero/code/code106.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="World Scaling" vod_platform=youtube id=UCTcu8vJ92c annotator=dspecht annotator=Miblo] +[video output=day106 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="World Scaling" vod_platform=youtube id=UCTcu8vJ92c annotator=dspecht annotator=Miblo] [2:43][Recap our current situation] [5:00][Take a look in handmade_render_group.cpp] [5:58][Render bitmaps using the DrawRectangleSlowly function] diff --git a/cmuratori/hero/code/code107.hmml b/cmuratori/hero/code/code107.hmml index 5bedb79..bb79b4a 100644 --- a/cmuratori/hero/code/code107.hmml +++ b/cmuratori/hero/code/code107.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fading Z Layers" vod_platform=youtube id=CmXCiK8dK9c annotator=Miblo annotator=dspecht] +[video output=day107 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fading Z Layers" vod_platform=youtube id=CmXCiK8dK9c annotator=Miblo annotator=dspecht] [3:25][Recap where we left things off] [4:40][Explain the necessity for Z-slices] [7:33][Take a look at how our SimRegion stuff handles unpacking entities] diff --git a/cmuratori/hero/code/code108.hmml b/cmuratori/hero/code/code108.hmml index 61bf8cd..8ea9f9a 100644 --- a/cmuratori/hero/code/code108.hmml +++ b/cmuratori/hero/code/code108.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Perspective Projection" vod_platform=youtube id=xgnEOFS8wTw annotator=Miblo annotator=dspecht] +[video output=day108 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Perspective Projection" vod_platform=youtube id=xgnEOFS8wTw annotator=Miblo annotator=dspecht] [2:23][Take a look at where we're at] [5:16][Blackboard: Perspective projection] [9:48][Blackboard: Capturing light in optics (optional)] diff --git a/cmuratori/hero/code/code109.hmml b/cmuratori/hero/code/code109.hmml index de74fef..67c6f77 100644 --- a/cmuratori/hero/code/code109.hmml +++ b/cmuratori/hero/code/code109.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Resolution-Independent Rendering" vod_platform=youtube id=e3d7kEtX6iw annotator=Miblo annotator=dspecht] +[video output=day109 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Resolution-Independent Rendering" vod_platform=youtube id=e3d7kEtX6iw annotator=Miblo annotator=dspecht] [1:36][Recap where we're at] [3:13][Take a closer look at that perspective projection] [5:42][Blackboard: The components of the perspective equation] diff --git a/cmuratori/hero/code/code110.hmml b/cmuratori/hero/code/code110.hmml index e575051..2be8d9e 100644 --- a/cmuratori/hero/code/code110.hmml +++ b/cmuratori/hero/code/code110.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unprojecting Screen Boundaries" vod_platform=youtube id=s-eL7riOnwc annotator=dspecht annotator=Miblo] +[video output=day110 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unprojecting Screen Boundaries" vod_platform=youtube id=s-eL7riOnwc annotator=dspecht annotator=Miblo] [2:33][Take a look at where we left off and where PixelsToMeters still happens] [4:17][Make the renderer responsible for telling us what the screen dimensions are] [9:34][Blackboard: Field of view in Y] diff --git a/cmuratori/hero/code/code111.hmml b/cmuratori/hero/code/code111.hmml index 04cb197..5b5df07 100644 --- a/cmuratori/hero/code/code111.hmml +++ b/cmuratori/hero/code/code111.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Resolution-Independent Ground Chunks" vod_platform=youtube id=qDE7_6K2pyY annotator=Miblo annotator=dspecht] +[video output=day111 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Resolution-Independent Ground Chunks" vod_platform=youtube id=qDE7_6K2pyY annotator=Miblo annotator=dspecht] [0:54][Make sure Ignored are unique names for Miblo] [2:17][Pull the debug camera back a little further] [4:09][Up our tree count] diff --git a/cmuratori/hero/code/code112.hmml b/cmuratori/hero/code/code112.hmml index af1c7c8..6b29804 100644 --- a/cmuratori/hero/code/code112.hmml +++ b/cmuratori/hero/code/code112.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="A Mental Model of CPU Performance" vod_platform=youtube id=qin-Eps3U_E annotator=dspecht annotator=Miblo] +[video output=day112 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="A Mental Model of CPU Performance" vod_platform=youtube id=qin-Eps3U_E annotator=dspecht annotator=Miblo] [2:17][Blackboard: Optimization] [3:58][Blackboard: CPU + GPU instructions] [5:28][Blackboard: Math operations done wide (SIMD)] diff --git a/cmuratori/hero/code/code113.hmml b/cmuratori/hero/code/code113.hmml index 855b61a..dc1554f 100644 --- a/cmuratori/hero/code/code113.hmml +++ b/cmuratori/hero/code/code113.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simple Performance Counters" vod_platform=youtube id=QdTqYhv8tL0 annotator=dspecht annotator=Miblo] +[video output=day113 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simple Performance Counters" vod_platform=youtube id=QdTqYhv8tL0 annotator=dspecht annotator=Miblo] [2:04][Blackboard: Basic process of optimization] [6:02][Gather statistics] [8:45][Revisit __rdtsc] diff --git a/cmuratori/hero/code/code114.hmml b/cmuratori/hero/code/code114.hmml index 8585dbb..b3b3647 100644 --- a/cmuratori/hero/code/code114.hmml +++ b/cmuratori/hero/code/code114.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing a Function for Optimization" vod_platform=youtube id=_vkI9BedvKA annotator=dspecht annotator=Miblo] +[video output=day114 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing a Function for Optimization" vod_platform=youtube id=_vkI9BedvKA annotator=dspecht annotator=Miblo] [1:31][Open things up and recap] [2:48][DrawRectangleSlowly: Increase efficiency] [3:33][Create DrawRectangleHopefullyQuickly] diff --git a/cmuratori/hero/code/code115.hmml b/cmuratori/hero/code/code115.hmml index 7596429..d943d9e 100644 --- a/cmuratori/hero/code/code115.hmml +++ b/cmuratori/hero/code/code115.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SIMD Basics" vod_platform=youtube id=YnnTb0AQgYM annotator=Miblo annotator=dspecht] +[video output=day115 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SIMD Basics" vod_platform=youtube id=YnnTb0AQgYM annotator=Miblo annotator=dspecht] [0:59][Open us up and see where we're at in terms of performance] [1:52][Blackboard: SIMD on x64] [6:34][Blackboard: How do we use SIMD?] diff --git a/cmuratori/hero/code/code116.hmml b/cmuratori/hero/code/code116.hmml index 873fbad..e6fba52 100644 --- a/cmuratori/hero/code/code116.hmml +++ b/cmuratori/hero/code/code116.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting Math Operations to SIMD" vod_platform=youtube id=1CVmlnhgT3g annotator=Miblo annotator=dspecht] +[video output=day116 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting Math Operations to SIMD" vod_platform=youtube id=1CVmlnhgT3g annotator=Miblo annotator=dspecht] [1:23][Recap yesterday's work] [2:46][build.bat: Switch to -O2] [4:22][Think about doing the TestPixel TIMED_BLOCK over a wider range] diff --git a/cmuratori/hero/code/code117.hmml b/cmuratori/hero/code/code117.hmml index 81afa86..1b4f423 100644 --- a/cmuratori/hero/code/code117.hmml +++ b/cmuratori/hero/code/code117.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Packing Pixels for the Framebuffer" vod_platform=youtube id=90eSF6jLzvQ annotator=dspecht annotator=Miblo] +[video output=day117 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Packing Pixels for the Framebuffer" vod_platform=youtube id=90eSF6jLzvQ annotator=dspecht annotator=Miblo] [2:05][Load up the code and consider optimisation] [4:09][handmade_render_group.cpp: Comment out if(ShouldFill\[I\])] [5:34][Blackboard: Interleaving four SIMD values] diff --git a/cmuratori/hero/code/code118.hmml b/cmuratori/hero/code/code118.hmml index 3aa91e5..4e29b34 100644 --- a/cmuratori/hero/code/code118.hmml +++ b/cmuratori/hero/code/code118.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code118_template.html title="Wide Unpacking and Masking" vod_platform=youtube id=-_X0UYCGaVA annotator=ChronalDragon annotator=dspecht annotator=ZedZull annotator=Miblo] +[video output=day118 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code118_template.html title="Wide Unpacking and Masking" vod_platform=youtube id=-_X0UYCGaVA annotator=ChronalDragon annotator=dspecht annotator=ZedZull annotator=Miblo] [0:00:25][Overview of optimization work] [0:01:30][Recap where we were yesterday] [0:01:50][Current issue: Black bars] diff --git a/cmuratori/hero/code/code119.hmml b/cmuratori/hero/code/code119.hmml index c8e6c27..3f43df2 100644 --- a/cmuratori/hero/code/code119.hmml +++ b/cmuratori/hero/code/code119.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Counting Intrinsics" vod_platform=youtube id=NPDL1OENYio annotator=AndrewJDR annotator=ZedZull] +[video output=day119 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Counting Intrinsics" vod_platform=youtube id=NPDL1OENYio annotator=AndrewJDR annotator=ZedZull] [0:10][Lesson: Das keyboards are horrible] [1:36][Recap of last episode and today's agenda] [2:33][Prep work for getting pre-optimization vs post-optimization cycle counts] diff --git a/cmuratori/hero/code/code120.hmml b/cmuratori/hero/code/code120.hmml index 1120a87..25462a9 100644 --- a/cmuratori/hero/code/code120.hmml +++ b/cmuratori/hero/code/code120.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Measuring Port Usage with IACA" vod_platform=youtube id=-c-0s6KiPSw annotator=Miblo annotator=AndrewJDR annotator=ZedZull] +[video output=day120 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Measuring Port Usage with IACA" vod_platform=youtube id=-c-0s6KiPSw annotator=Miblo annotator=AndrewJDR annotator=ZedZull] [0:31][Review of last session: cycle counting code] [1:20][Fabian: Instruction counts including throughput numbers is not accurate, does not properly take into account CPU's ability to overlap different ops] [4:00][Accurate way is to write tool to simulate the CPU, as Casey did for the XB360] diff --git a/cmuratori/hero/code/code121.hmml b/cmuratori/hero/code/code121.hmml index 14e92bc..b44b940 100644 --- a/cmuratori/hero/code/code121.hmml +++ b/cmuratori/hero/code/code121.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering in Tiles (Marathon)" vod_platform=youtube id=kZlPYka1T0g annotator=Miblo annotator=Kelimion] +[video output=day121 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering in Tiles (Marathon)" vod_platform=youtube id=kZlPYka1T0g annotator=Miblo annotator=Kelimion] [1:36][Reintroducing the Intel Architecture Code Analyzer] [10:46][A long time ago, in RAD's source tree] [13:00][blowtard, an analytical tool for the Xbox 360's PowerPC Tri-Core Xenon written by Casey] diff --git a/cmuratori/hero/code/code122.hmml b/cmuratori/hero/code/code122.hmml index 0a7feba..30f24bc 100644 --- a/cmuratori/hero/code/code122.hmml +++ b/cmuratori/hero/code/code122.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Multithreading" vod_platform=youtube id=qkugPXGeX58 annotator=Miblo] +[video output=day122 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Multithreading" vod_platform=youtube id=qkugPXGeX58 annotator=Miblo] [2:50][Blackboard: Multithreading] [3:35][Blackboard: CPU state] [5:08][Blackboard: How the OS conceptualises this] diff --git a/cmuratori/hero/code/code123.hmml b/cmuratori/hero/code/code123.hmml index cf3f387..29e6e0a 100644 --- a/cmuratori/hero/code/code123.hmml +++ b/cmuratori/hero/code/code123.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Interlocked Operations" vod_platform=youtube id=_olNhuuRYxo annotator=dspecht annotator=Miblo] +[video output=day123 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Interlocked Operations" vod_platform=youtube id=_olNhuuRYxo annotator=dspecht annotator=Miblo] [2:33][Blackboard: Thread Synchronization / Communication] [3:31][Blackboard: Processes] [4:08][Blackboard: Threads] diff --git a/cmuratori/hero/code/code124.hmml b/cmuratori/hero/code/code124.hmml index b004b62..21cde81 100644 --- a/cmuratori/hero/code/code124.hmml +++ b/cmuratori/hero/code/code124.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code124_template.html title="Memory Barriers and Semaphores" vod_platform=youtube id=W_szrzjYuvs annotator=dspecht annotator=ChronalDragon annotator=ZedZull annotator=Miblo] +[video output=day124 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code124_template.html title="Memory Barriers and Semaphores" vod_platform=youtube id=W_szrzjYuvs annotator=dspecht annotator=ChronalDragon annotator=ZedZull annotator=Miblo] [0:00:35][Recap/Review] [0:02:45][Yesterday's TODOs] [0:04:00][TODO 1: Ordering of writes] diff --git a/cmuratori/hero/code/code125.hmml b/cmuratori/hero/code/code125.hmml index 3463ca3..2220b1c 100644 --- a/cmuratori/hero/code/code125.hmml +++ b/cmuratori/hero/code/code125.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Abstracting the Work Queue" vod_platform=youtube id=ZAZV_PGlQ0s annotator=Miblo annotator=dspecht] +[video output=day125 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Abstracting the Work Queue" vod_platform=youtube id=ZAZV_PGlQ0s annotator=Miblo annotator=dspecht] [0:07][We are absolute control freaks here, people][quote 99] [1:25][Recap and set the stage for today] [3:46][win32_handmade.cpp: Introduce DoWorkerWork] diff --git a/cmuratori/hero/code/code126.hmml b/cmuratori/hero/code/code126.hmml index 1952cb6..3491e5d 100644 --- a/cmuratori/hero/code/code126.hmml +++ b/cmuratori/hero/code/code126.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Circular FIFO Work Queue" vod_platform=youtube id=0jfDwujUY4Y annotator=dspecht annotator=Miblo annotator=ChronalDragon annotator=ZedZull annotator=debiatan] +[video output=day126 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Circular FIFO Work Queue" vod_platform=youtube id=0jfDwujUY4Y annotator=dspecht annotator=Miblo annotator=ChronalDragon annotator=ZedZull annotator=debiatan] [0:00:25][Owl of Shame: Single producer/Multiple consumer issue] [0:03:33][InterlockedCompareExchange] [0:04:20][Fixing our shame] diff --git a/cmuratori/hero/code/code127.hmml b/cmuratori/hero/code/code127.hmml index c045a08..9c91088 100644 --- a/cmuratori/hero/code/code127.hmml +++ b/cmuratori/hero/code/code127.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Rendering Memory" vod_platform=youtube id=blcNbU70I9o annotator=dspecht annotator=Miblo] +[video output=day127 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Rendering Memory" vod_platform=youtube id=blcNbU70I9o annotator=dspecht annotator=Miblo] [1:23][Set the stage for this week] [2:51][Demo the problem with the tile size] [4:04][Confirm that _mm_sfence is unnecessary] diff --git a/cmuratori/hero/code/code128.hmml b/cmuratori/hero/code/code128.hmml index 0f09af1..9b68c8a 100644 --- a/cmuratori/hero/code/code128.hmml +++ b/cmuratori/hero/code/code128.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Push-time Transforms" vod_platform=youtube id=8L21Tyh53BQ annotator=ChronalDragon annotator=dspecht annotator=ZedZull] +[video output=day128 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Push-time Transforms" vod_platform=youtube id=8L21Tyh53BQ annotator=ChronalDragon annotator=dspecht annotator=ZedZull] [0:01:13][Opening things up] [0:02:38][Blackboard: Aligning to cache lines] [10:01][Renderer TODOs] diff --git a/cmuratori/hero/code/code129.hmml b/cmuratori/hero/code/code129.hmml index 018cc8d..ba611f1 100644 --- a/cmuratori/hero/code/code129.hmml +++ b/cmuratori/hero/code/code129.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Orthographic Projection" vod_platform=youtube id=8DX-DPsXvy4 annotator=Miblo] +[video output=day129 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Orthographic Projection" vod_platform=youtube id=8DX-DPsXvy4 annotator=Miblo] [1:03][Recap and set the stage for today] [1:52][handmade.cpp: Turn off the debug lines] [3:12][Blackboard: Why ground tiles are no longer seamless now that we're doing perspective transforms][quote 107] diff --git a/cmuratori/hero/code/code130.hmml b/cmuratori/hero/code/code130.hmml index 715a0cf..ae24f72 100644 --- a/cmuratori/hero/code/code130.hmml +++ b/cmuratori/hero/code/code130.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Seamless Bilinear Tiling" vod_platform=youtube id=odlnqAsclFo annotator=Miblo annotator=ChronalDragon] +[video output=day130 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Seamless Bilinear Tiling" vod_platform=youtube id=odlnqAsclFo annotator=Miblo annotator=ChronalDragon] [0:00:20][Recap] [0:01:48][Where we left off] [0:03:40][Isolating the bug] diff --git a/cmuratori/hero/code/code131.hmml b/cmuratori/hero/code/code131.hmml index a5920fa..b3a9946 100644 --- a/cmuratori/hero/code/code131.hmml +++ b/cmuratori/hero/code/code131.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asynchronous Ground Chunk Composition" vod_platform=youtube id=6blXhvPIz5g annotator=Miblo] +[video output=day131 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asynchronous Ground Chunk Composition" vod_platform=youtube id=6blXhvPIz5g annotator=Miblo] [2:40][Run the game and identify our slight problem] [4:22][Why we couldn't generate the ground chunks on a separate thread] [6:47][handmade.h: Allow PushSize_ to take an Alignment] diff --git a/cmuratori/hero/code/code132.hmml b/cmuratori/hero/code/code132.hmml index 34c9c4e..b87bc2d 100644 --- a/cmuratori/hero/code/code132.hmml +++ b/cmuratori/hero/code/code132.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Streaming" vod_platform=youtube id=qyHM36RQxAI annotator=Miblo annotator=ChronalDragon] +[video output=day132 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Streaming" vod_platform=youtube id=qyHM36RQxAI annotator=Miblo annotator=ChronalDragon] [1:26][Recap] [1:55][Hidden stall: Asset loading] [4:35][Considerations for asset loading] diff --git a/cmuratori/hero/code/code133.hmml b/cmuratori/hero/code/code133.hmml index a2ad374..43ce2a4 100644 --- a/cmuratori/hero/code/code133.hmml +++ b/cmuratori/hero/code/code133.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preliminary Asset Structuring" vod_platform=youtube id=u0LjxqHmvkk annotator=Miblo] +[video output=day133 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preliminary Asset Structuring" vod_platform=youtube id=u0LjxqHmvkk annotator=Miblo] [2:37][Recap and set the stage] [5:19][Blackboard: "One in, One out"] [7:46][Blackboard: Only load once!] diff --git a/cmuratori/hero/code/code134.hmml b/cmuratori/hero/code/code134.hmml index 111998f..4321930 100644 --- a/cmuratori/hero/code/code134.hmml +++ b/cmuratori/hero/code/code134.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Mapping Assets to Bitmaps" vod_platform=youtube id=AdscwVnyaQw annotator=Miblo annotator=ChronalDragon] +[video output=day134 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Mapping Assets to Bitmaps" vod_platform=youtube id=AdscwVnyaQw annotator=Miblo annotator=ChronalDragon] [0:30][Recap] [1:50][Review of PickBest] [5:54][Looking at how tags might be set up] diff --git a/cmuratori/hero/code/code135.hmml b/cmuratori/hero/code/code135.hmml index 51b82f1..8af9625 100644 --- a/cmuratori/hero/code/code135.hmml +++ b/cmuratori/hero/code/code135.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Typed Asset Arrays" vod_platform=youtube id=meU5RI3J1wc annotator=Miblo] +[video output=day135 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Typed Asset Arrays" vod_platform=youtube id=meU5RI3J1wc annotator=Miblo] [2:20][Recap the creation of handmade_asset.cpp] [4:35][handmade_asset.cpp: Make the arrayed assets go through the asset system] [5:31][Provide a stable way to define AlignX and TopDownAlignY with the bitmaps] diff --git a/cmuratori/hero/code/code136.hmml b/cmuratori/hero/code/code136.hmml index 5841cda..b569c4e 100644 --- a/cmuratori/hero/code/code136.hmml +++ b/cmuratori/hero/code/code136.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tag-based Asset Retrieval" vod_platform=youtube id=7g79J2aMTUM annotator=Miblo annotator=ChronalDragon] +[video output=day136 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tag-based Asset Retrieval" vod_platform=youtube id=7g79J2aMTUM annotator=Miblo annotator=ChronalDragon] [0:40][Recap] [1:22][Casey has an itch][quote 119] [1:43][Goals for the asset system] diff --git a/cmuratori/hero/code/code137.hmml b/cmuratori/hero/code/code137.hmml index 9a5ce9d..c0f1329 100644 --- a/cmuratori/hero/code/code137.hmml +++ b/cmuratori/hero/code/code137.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Matching Periodic Tags" vod_platform=youtube id=gVOuBzVC20g annotator=Miblo annotator=debiatan] +[video output=day137 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Matching Periodic Tags" vod_platform=youtube id=gVOuBzVC20g annotator=Miblo annotator=debiatan] [1:48][Demo a bug in the asset system] [3:05][Blackboard: Periodic Tag Matching] [7:21][Blackboard: "Neighbourhood operator"] diff --git a/cmuratori/hero/code/code138.hmml b/cmuratori/hero/code/code138.hmml index 79c536b..047f94b 100644 --- a/cmuratori/hero/code/code138.hmml +++ b/cmuratori/hero/code/code138.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading WAV Files" vod_platform=youtube id=RSxUBaoomy0 annotator=Miblo annotator=debiatan] +[video output=day138 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading WAV Files" vod_platform=youtube id=RSxUBaoomy0 annotator=Miblo annotator=debiatan] [1:06][Assets: handmade_hero_test_assets_003.zip is released] [2:57][handmade_asset.cpp: Correct a mistype in WAVE_fmt] [4:27][handmade.cpp: Do a DEBUGLoadWAV call in GameUpdateAndRender] diff --git a/cmuratori/hero/code/code139.hmml b/cmuratori/hero/code/code139.hmml index 20a4a35..566dce0 100644 --- a/cmuratori/hero/code/code139.hmml +++ b/cmuratori/hero/code/code139.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Sound Mixing" vod_platform=youtube id=8KvWx4hzdUs annotator=Miblo annotator=debiatan] +[video output=day139 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Sound Mixing" vod_platform=youtube id=8KvWx4hzdUs annotator=Miblo annotator=debiatan] [0:19][Deciding to do an audio mixer] [4:18][Blackboard: Sound and Music] [5:00]["The world is filled with molecules"][quote 121] diff --git a/cmuratori/hero/code/code140.hmml b/cmuratori/hero/code/code140.hmml index 8b68d7c..feed85c 100644 --- a/cmuratori/hero/code/code140.hmml +++ b/cmuratori/hero/code/code140.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implemented a Sound Mixer" vod_platform=youtube id=UuqcgQxpfO8 annotator=Miblo] +[video output=day140 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implemented a Sound Mixer" vod_platform=youtube id=UuqcgQxpfO8 annotator=Miblo] [1:26][Recap and set the stage for the day] [4:24][handmade.h: Introduce playing_sound and add a pointer to it in game_state] [7:55][handmade.cpp: Setup the PlayingSound loop] diff --git a/cmuratori/hero/code/code141.hmml b/cmuratori/hero/code/code141.hmml index 407a4d7..8bddc7d 100644 --- a/cmuratori/hero/code/code141.hmml +++ b/cmuratori/hero/code/code141.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Streaming Large Audio in Chunks" vod_platform=youtube id=Yvv9nVqGC5w annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day141 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Streaming Large Audio in Chunks" vod_platform=youtube id=Yvv9nVqGC5w annotator=ZedZull annotator=Miblo annotator=debiatan] [0:00][Welcome and thinly veiled threats] [1:36][Recap of last episode and today's agenda] [4:46][Brainstorming possible ways of loading large audio in chunks] diff --git a/cmuratori/hero/code/code142.hmml b/cmuratori/hero/code/code142.hmml index a0f6fe1..44ec8e6 100644 --- a/cmuratori/hero/code/code142.hmml +++ b/cmuratori/hero/code/code142.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Per-sample Volume Interpolation" vod_platform=youtube id=XxReVrByBYw annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day142 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Per-sample Volume Interpolation" vod_platform=youtube id=XxReVrByBYw annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:46][Plan for today] [00:02:07][Dynamic asset streaming and audio mixing didn't take that much code] [00:03:37][Public service announcement: Sometimes, writing your own code is faster than reusing other people's code] diff --git a/cmuratori/hero/code/code143.hmml b/cmuratori/hero/code/code143.hmml index 5dc2a02..6ea5269 100644 --- a/cmuratori/hero/code/code143.hmml +++ b/cmuratori/hero/code/code143.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pitch Shifting in the Mixer" vod_platform=youtube id=OOR8A_7JwIY annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day143 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pitch Shifting in the Mixer" vod_platform=youtube id=OOR8A_7JwIY annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:26][Recap and plan for today] [00:01:14][Discussion on using volume changes and pitch-shifting to generate a rich soundscape with few sound assets] [00:06:59][How to pitch-shift a sound] diff --git a/cmuratori/hero/code/code144.hmml b/cmuratori/hero/code/code144.hmml index f85665f..00d6c98 100644 --- a/cmuratori/hero/code/code144.hmml +++ b/cmuratori/hero/code/code144.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SSE Mixer Pre and Post Loops" vod_platform=youtube id=l3zbzEYRLJc annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day144 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SSE Mixer Pre and Post Loops" vod_platform=youtube id=l3zbzEYRLJc annotator=ZedZull annotator=Miblo annotator=debiatan] [00:02:11][Plan for today: SIMDizing the mixer] [00:03:41][Aligning the temporary buffer] [00:05:00][Making sure the temporary sound buffers are big enough to fit all samples] diff --git a/cmuratori/hero/code/code145.hmml b/cmuratori/hero/code/code145.hmml index 77985f7..15d65b2 100644 --- a/cmuratori/hero/code/code145.hmml +++ b/cmuratori/hero/code/code145.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SSE Mixer Main Loop" vod_platform=youtube id=W3rrlUEaW1E annotator=Miblo annotator=ZedZull annotator=debiatan] +[video output=day145 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SSE Mixer Main Loop" vod_platform=youtube id=W3rrlUEaW1E annotator=Miblo annotator=ZedZull annotator=debiatan] [00:01:09][Plan for the day] [00:03:02][Working 8-wide instead of 4-wide] [00:08:03][Making sure the sound buffer always asks for multiples of 8 samples] diff --git a/cmuratori/hero/code/code146.hmml b/cmuratori/hero/code/code146.hmml index 4a400eb..6306729 100644 --- a/cmuratori/hero/code/code146.hmml +++ b/cmuratori/hero/code/code146.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Accumulation vs. Explicit Calculation" vod_platform=youtube id=YlKPcSwXh54 annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day146 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Accumulation vs. Explicit Calculation" vod_platform=youtube id=YlKPcSwXh54 annotator=ZedZull annotator=Miblo annotator=debiatan] [00:02:40][Pitch-bending makes aligned reads impossible, so we can support looping sounds, after all] [00:07:15][Working on chunks of 4 samples instead of 8] [00:18:31][Simplifying OutputPlayingSounds] diff --git a/cmuratori/hero/code/code147.hmml b/cmuratori/hero/code/code147.hmml index f820a8b..bfa14bf 100644 --- a/cmuratori/hero/code/code147.hmml +++ b/cmuratori/hero/code/code147.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining the Asset File" vod_platform=youtube id=n0RRz3NlHuo annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day147 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining the Asset File" vod_platform=youtube id=n0RRz3NlHuo annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:54][Recap of previous episode] [00:01:38][On managing programming time efficiently] [00:03:19][The mixer interface with the game is not final, but we already know what it needs from the asset system] diff --git a/cmuratori/hero/code/code148.hmml b/cmuratori/hero/code/code148.hmml index edab687..029b4f0 100644 --- a/cmuratori/hero/code/code148.hmml +++ b/cmuratori/hero/code/code148.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing the Asset File Header" vod_platform=youtube id=UNXHK8O-B_g annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day148 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing the Asset File Header" vod_platform=youtube id=UNXHK8O-B_g annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:38][Recap and plan for the day] [00:02:27][Bug determining when sounds finish playing] [00:10:28][Rearchitecting the mixing loop to avoid this sort of bug. Removing a secondary variable to avoid having to keep it in sync] diff --git a/cmuratori/hero/code/code149.hmml b/cmuratori/hero/code/code149.hmml index 94dfadc..2bee23e 100644 --- a/cmuratori/hero/code/code149.hmml +++ b/cmuratori/hero/code/code149.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing Assets to the Asset File" vod_platform=youtube id=CNTlpoYdKF8 annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day149 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing Assets to the Asset File" vod_platform=youtube id=CNTlpoYdKF8 annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:12][Recap and plan for the day] [00:03:00][A file is a permanently stored version of memory] [00:04:20][Two ways of storing the asset array and the assets:] diff --git a/cmuratori/hero/code/code150.hmml b/cmuratori/hero/code/code150.hmml index 84c1bf9..65dbfbb 100644 --- a/cmuratori/hero/code/code150.hmml +++ b/cmuratori/hero/code/code150.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading Assets from the Asset File" vod_platform=youtube id=h2GoVMArDro annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day150 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading Assets from the Asset File" vod_platform=youtube id=h2GoVMArDro annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:27][Recap and plan for the day] [00:02:11][Loading the asset array] [00:06:20][(intermission) Simplifying asset-related structs] diff --git a/cmuratori/hero/code/code151.hmml b/cmuratori/hero/code/code151.hmml index 7d326fa..6dba28b 100644 --- a/cmuratori/hero/code/code151.hmml +++ b/cmuratori/hero/code/code151.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="New Platform File API" vod_platform=youtube id=NFptGMDCO0k annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day151 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="New Platform File API" vod_platform=youtube id=NFptGMDCO0k annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:47][Recap and plan for the day] [00:04:04][Review of day 150's code] [00:09:16][Loading the asset arrays] diff --git a/cmuratori/hero/code/code152.hmml b/cmuratori/hero/code/code152.hmml index 25e48f5..fb2709d 100644 --- a/cmuratori/hero/code/code152.hmml +++ b/cmuratori/hero/code/code152.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="New Win32 File API Implementation" vod_platform=youtube id=hRYrqGBmfOA annotator=ZedZull annotator=debiatan] +[video output=day152 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="New Win32 File API Implementation" vod_platform=youtube id=hRYrqGBmfOA annotator=ZedZull annotator=debiatan] [00:00:27][Recap] [00:01:10][Plan for today] [00:02:23][Asset metadata is already loaded, so LoadBitmap and LoadSound reduce to just fetching the data] diff --git a/cmuratori/hero/code/code153.hmml b/cmuratori/hero/code/code153.hmml index 7c9ddd1..aab06ea 100644 --- a/cmuratori/hero/code/code153.hmml +++ b/cmuratori/hero/code/code153.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Merging Multiple Asset Files" vod_platform=youtube id=9sb8mv6q7WE annotator=ZedZull annotator=debiatan] +[video output=day153 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Merging Multiple Asset Files" vod_platform=youtube id=9sb8mv6q7WE annotator=ZedZull annotator=debiatan] [00:00:25][Recap] [00:01:47][Plan for today] [00:03:22][Guessing the origin of last stream's bug] diff --git a/cmuratori/hero/code/code154.hmml b/cmuratori/hero/code/code154.hmml index 769e3a7..a36837d 100644 --- a/cmuratori/hero/code/code154.hmml +++ b/cmuratori/hero/code/code154.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finding Assets Files with Win32" vod_platform=youtube id=vrZkMo77BI8 annotator=ZedZull annotator=debiatan] +[video output=day154 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finding Assets Files with Win32" vod_platform=youtube id=vrZkMo77BI8 annotator=ZedZull annotator=debiatan] [00:00:23][Recap and plan for today] [00:02:39][Review of related code] [00:04:03][Getting rid of hardcoded file names] diff --git a/cmuratori/hero/code/code155.hmml b/cmuratori/hero/code/code155.hmml index 1a3805b..7d84de4 100644 --- a/cmuratori/hero/code/code155.hmml +++ b/cmuratori/hero/code/code155.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Particle Systems" vod_platform=youtube id=G6OGKP3MaUI annotator=ZedZull annotator=debiatan] +[video output=day155 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Particle Systems" vod_platform=youtube id=G6OGKP3MaUI annotator=ZedZull annotator=debiatan] [00:00:24][Recap] [00:00:49][Three possible subjects for today's stream] [00:04:43][Let's do particle systems!] diff --git a/cmuratori/hero/code/code156.hmml b/cmuratori/hero/code/code156.hmml index 8320355..4fcac33 100644 --- a/cmuratori/hero/code/code156.hmml +++ b/cmuratori/hero/code/code156.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Lagrangian vs. Eulerian Simulation" vod_platform=youtube id=HH_iaJairW8 annotator=ZedZull annotator=debiatan] +[video output=day156 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Lagrangian vs. Eulerian Simulation" vod_platform=youtube id=HH_iaJairW8 annotator=ZedZull annotator=debiatan] [00:00:14][Recap] [00:01:22][Plan for today] [00:02:48][Adding acceleration and taking it into account to compute new positions] diff --git a/cmuratori/hero/code/code157.hmml b/cmuratori/hero/code/code157.hmml index fb35b35..aabbdaa 100644 --- a/cmuratori/hero/code/code157.hmml +++ b/cmuratori/hero/code/code157.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to General Purpose Allocation" vod_platform=youtube id=MvDUe2evkHg annotator=ZedZull annotator=debiatan] +[video output=day157 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to General Purpose Allocation" vod_platform=youtube id=MvDUe2evkHg annotator=ZedZull annotator=debiatan] [00:00:18][Plan for today] [00:01:28][Our asset memory management problem can't be solved by a garbage collector] [00:02:36][Asset memory management (blackboard)] diff --git a/cmuratori/hero/code/code158.hmml b/cmuratori/hero/code/code158.hmml index 3558c42..c0fd74f 100644 --- a/cmuratori/hero/code/code158.hmml +++ b/cmuratori/hero/code/code158.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Asset Usage" vod_platform=youtube id=D5JG3XGPf8Y annotator=debiatan annotator=ZedZull] +[video output=day158 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Asset Usage" vod_platform=youtube id=D5JG3XGPf8Y annotator=debiatan annotator=ZedZull] [00:00:18][Recap and plan for today] [00:01:12][Using the OS's virtual memory system to solve our memory management problem] [00:04:27][Tracking memory load] diff --git a/cmuratori/hero/code/code159.hmml b/cmuratori/hero/code/code159.hmml index 9470d8a..c98de37 100644 --- a/cmuratori/hero/code/code159.hmml +++ b/cmuratori/hero/code/code159.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the Loaded Asset Infrastructure" vod_platform=youtube id=ZrAoRHSTzMY annotator=debiatan annotator=ZedZull] +[video output=day159 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the Loaded Asset Infrastructure" vod_platform=youtube id=ZrAoRHSTzMY annotator=debiatan annotator=ZedZull] [00:00:22][Recap and plan for today] [00:02:02][Preventing eviction of locked assets (those used in background tasks)] [00:04:06][We never lock any asset; let's lock some] diff --git a/cmuratori/hero/code/code160.hmml b/cmuratori/hero/code/code160.hmml index 7696fc8..abcd5e3 100644 --- a/cmuratori/hero/code/code160.hmml +++ b/cmuratori/hero/code/code160.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic General Purpose Allocation" vod_platform=youtube id=MyGsWY6dezE annotator=debiatan annotator=ZedZull] +[video output=day160 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic General Purpose Allocation" vod_platform=youtube id=MyGsWY6dezE annotator=debiatan annotator=ZedZull] [00:00:13][Recap and plan for the day] [00:01:54][Plan for today: Writing our own general-purpose memory allocator] [00:04:12][Ode to stack memory allocation] diff --git a/cmuratori/hero/code/code161.hmml b/cmuratori/hero/code/code161.hmml index df0d84a..13b87ce 100644 --- a/cmuratori/hero/code/code161.hmml +++ b/cmuratori/hero/code/code161.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the General Purpose Allocator" vod_platform=youtube id=1LyHQVYlClw annotator=ZedZull annotator=Miblo annotator=debiatan] +[video output=day161 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the General Purpose Allocator" vod_platform=youtube id=1LyHQVYlClw annotator=ZedZull annotator=Miblo annotator=debiatan] [00:00:21][Recap and plan for today] [00:01:46][We will need to debug the changes from the past episode] [00:03:41][Simplifying some of yesterday's code] diff --git a/cmuratori/hero/code/code162.hmml b/cmuratori/hero/code/code162.hmml index a777e9e..112b01b 100644 --- a/cmuratori/hero/code/code162.hmml +++ b/cmuratori/hero/code/code162.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Fonts" vod_platform=youtube id=ZK7PezR1KgU annotator=Miblo annotator=debiatan] +[video output=day162 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Fonts" vod_platform=youtube id=ZK7PezR1KgU annotator=Miblo annotator=debiatan] [1:02][Recap and overview of upcoming debug work] [2:23][Plan for today] [4:06][Test-driven vs visualization-driven game development] diff --git a/cmuratori/hero/code/code163.hmml b/cmuratori/hero/code/code163.hmml index d06c00f..cbb973f 100644 --- a/cmuratori/hero/code/code163.hmml +++ b/cmuratori/hero/code/code163.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Processing with STB TrueType" vod_platform=youtube id=lOLRQ01QY48 annotator=debiatan annotator=Miblo] +[video output=day163 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Processing with STB TrueType" vod_platform=youtube id=lOLRQ01QY48 annotator=debiatan annotator=Miblo] [0:02][We can use libraries inside the asset processor] [0:50][Two ways of generating the font bitmaps: Resorting to windows or using a library] [1:32][Deciding to resort to an stb library] diff --git a/cmuratori/hero/code/code164.hmml b/cmuratori/hero/code/code164.hmml index 6311951..3c9abae 100644 --- a/cmuratori/hero/code/code164.hmml +++ b/cmuratori/hero/code/code164.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Processing with Windows Fonts" vod_platform=youtube id=KF0jRm89bRM annotator=Miblo annotator=debiatan] +[video output=day164 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Processing with Windows Fonts" vod_platform=youtube id=KF0jRm89bRM annotator=Miblo annotator=debiatan] [0:02][Recap and plan for today] [1:43][Reasons for and against using libraries in the asset processor] [4:19][Windows calls to draw fonts] diff --git a/cmuratori/hero/code/code165.hmml b/cmuratori/hero/code/code165.hmml index 4f7e319..2dd27ff 100644 --- a/cmuratori/hero/code/code165.hmml +++ b/cmuratori/hero/code/code165.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing an Asset System Thread Bug" vod_platform=youtube id=9_jVu7RfP88 annotator=Miblo annotator=debiatan] +[video output=day165 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing an Asset System Thread Bug" vod_platform=youtube id=9_jVu7RfP88 annotator=Miblo annotator=debiatan] [0:50][Two possible plans for today:] [1:01][a) Construction of sentences and paragraphs] [2:09][b) Fixing a bug. Let's fix the bug] diff --git a/cmuratori/hero/code/code166.hmml b/cmuratori/hero/code/code166.hmml index d5dcf66..ee66958 100644 --- a/cmuratori/hero/code/code166.hmml +++ b/cmuratori/hero/code/code166.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Locks to the Asset Operations" vod_platform=youtube id=jIWa0AZz2Sk annotator=Miblo annotator=debiatan] +[video output=day166 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Locks to the Asset Operations" vod_platform=youtube id=jIWa0AZz2Sk annotator=Miblo annotator=debiatan] [0:38][Recap and plan for the day] [1:23][We'll finish the generationID work we started on the previous episode] [2:00][We need to access the linked list through locks] diff --git a/cmuratori/hero/code/code167.hmml b/cmuratori/hero/code/code167.hmml index d52ed76..5b74216 100644 --- a/cmuratori/hero/code/code167.hmml +++ b/cmuratori/hero/code/code167.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Win32 Font Glyph Extraction" vod_platform=youtube id=Hc33CNhmAg8 annotator=Miblo annotator=debiatan] +[video output=day167 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Win32 Font Glyph Extraction" vod_platform=youtube id=Hc33CNhmAg8 annotator=Miblo annotator=debiatan] [0:15][Recap and plan for today] [1:16][First, let's solve two small problems with the code introduced during the previous episode's Q&A] [2:31][Back to fonts] diff --git a/cmuratori/hero/code/code168.hmml b/cmuratori/hero/code/code168.hmml index b8d045d..77631b6 100644 --- a/cmuratori/hero/code/code168.hmml +++ b/cmuratori/hero/code/code168.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering Lines of Text" vod_platform=youtube id=jG9qVQ450GA annotator=Miblo annotator=debiatan] +[video output=day168 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering Lines of Text" vod_platform=youtube id=jG9qVQ450GA annotator=Miblo annotator=debiatan] [0:12][Recap and plan for the day] [2:42][What font information should be included in the asset file? Let's write the usage code first] [4:35][Always write the code you know how to write first] diff --git a/cmuratori/hero/code/code169.hmml b/cmuratori/hero/code/code169.hmml index 935fa98..ff7331d 100644 --- a/cmuratori/hero/code/code169.hmml +++ b/cmuratori/hero/code/code169.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Text to a Baseline" vod_platform=youtube id=fVyzTKCfchw annotator=Miblo annotator=debiatan] +[video output=day169 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Text to a Baseline" vod_platform=youtube id=fVyzTKCfchw annotator=Miblo annotator=debiatan] [0:08][Recap and plan for today] [2:14][Scaling fonts with respect to the size of the original glyph asset] [5:42][Getting the bitmap dimensions from the hha_asset structure] diff --git a/cmuratori/hero/code/code170.hmml b/cmuratori/hero/code/code170.hmml index 95411f6..0e51cee 100644 --- a/cmuratori/hero/code/code170.hmml +++ b/cmuratori/hero/code/code170.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining Font Metadata" vod_platform=youtube id=eIi2OYFWfdQ annotator=Miblo annotator=debiatan] +[video output=day170 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Defining Font Metadata" vod_platform=youtube id=eIi2OYFWfdQ annotator=Miblo annotator=debiatan] [00:11][Recap and plan for the day] [01:24][We still need proper kerning and line spacing] [03:05][Review of the current status of our font rendering system] diff --git a/cmuratori/hero/code/code171.hmml b/cmuratori/hero/code/code171.hmml index cf3f26f..01c439e 100644 --- a/cmuratori/hero/code/code171.hmml +++ b/cmuratori/hero/code/code171.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Font Metadata to the Asset Builder" vod_platform=youtube id=tJMvJaM-BtY annotator=Miblo annotator=debiatan] +[video output=day171 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Font Metadata to the Asset Builder" vod_platform=youtube id=tJMvJaM-BtY annotator=Miblo annotator=debiatan] [0:25][Recap and plan for today] [4:54][We want the ability to load multiple fonts] [6:20][TODO(casey): Are there larger numbers than 4096...?][quote 180] diff --git a/cmuratori/hero/code/code172.hmml b/cmuratori/hero/code/code172.hmml index dbb9837..7b8bf8c 100644 --- a/cmuratori/hero/code/code172.hmml +++ b/cmuratori/hero/code/code172.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Extracting Kerning Tables from Windows" vod_platform=youtube id=xUQRWBpYcsk annotator=Miblo annotator=debiatan] +[video output=day172 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Extracting Kerning Tables from Windows" vod_platform=youtube id=xUQRWBpYcsk annotator=Miblo annotator=debiatan] [0:48][Recap and plan for today] [2:43][There's a bug that prevents the fonts from loading] [3:37][Writing fonts in a separate asset file] diff --git a/cmuratori/hero/code/code173.hmml b/cmuratori/hero/code/code173.hmml index 25988a4..b8b4712 100644 --- a/cmuratori/hero/code/code173.hmml +++ b/cmuratori/hero/code/code173.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Precise Font Alignment" vod_platform=youtube id=xSDhhfcwt4E annotator=Miblo annotator=debiatan] +[video output=day173 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Precise Font Alignment" vod_platform=youtube id=xSDhhfcwt4E annotator=Miblo annotator=debiatan] [0:14][Recap and plan for today] [1:46][Review of last episode] [2:15][The first line should start one line down from the top of the screen] diff --git a/cmuratori/hero/code/code174.hmml b/cmuratori/hero/code/code174.hmml index 560624e..36c771d 100644 --- a/cmuratori/hero/code/code174.hmml +++ b/cmuratori/hero/code/code174.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Sparse Unicode Support" vod_platform=youtube id=pkaKQzq-hrM annotator=Miblo annotator=debiatan] +[video output=day174 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Sparse Unicode Support" vod_platform=youtube id=pkaKQzq-hrM annotator=Miblo annotator=debiatan] [0:15][Recap and plan for the day] [1:48][Spaces are not displayed] [2:50][Adding the kerning value for space to the kerning table] diff --git a/cmuratori/hero/code/code175.hmml b/cmuratori/hero/code/code175.hmml index 7a96b9d..65c20f1 100644 --- a/cmuratori/hero/code/code175.hmml +++ b/cmuratori/hero/code/code175.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Sparse Unicode Support" vod_platform=youtube id=kXQMyg4Prfo annotator=Miblo annotator=debiatan] +[video output=day175 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Sparse Unicode Support" vod_platform=youtube id=kXQMyg4Prfo annotator=Miblo annotator=debiatan] [0:23][Recap and plan for today] [1:10][Reviewing the the current status of the test asset builder] [4:55][On type-safe memory allocations] diff --git a/cmuratori/hero/code/code176.hmml b/cmuratori/hero/code/code176.hmml index 3e366c3..21e95f1 100644 --- a/cmuratori/hero/code/code176.hmml +++ b/cmuratori/hero/code/code176.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Debug Infrastructure" vod_platform=youtube id=vhSIwxAWDIY annotator=Miblo annotator=debiatan] +[video output=day176 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Debug Infrastructure" vod_platform=youtube id=vhSIwxAWDIY annotator=Miblo annotator=debiatan] [1:07][Plan for today] [2:34][Test-driven development doesn't help solving the harder problems of game programming] [4:59][Purpose of debug services] diff --git a/cmuratori/hero/code/code177.hmml b/cmuratori/hero/code/code177.hmml index 4ab6363..c286910 100644 --- a/cmuratori/hero/code/code177.hmml +++ b/cmuratori/hero/code/code177.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Automatic Performance Counters" vod_platform=youtube id=uHSLHvWFkto annotator=Miblo annotator=debiatan] +[video output=day177 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Automatic Performance Counters" vod_platform=youtube id=uHSLHvWFkto annotator=Miblo annotator=debiatan] [00:11][Plan for today] [01:40][Recap of work done in the previous episode] [03:41][TIMED_BLOCK should be easier to use] diff --git a/cmuratori/hero/code/code178.hmml b/cmuratori/hero/code/code178.hmml index b8583ce..c01a0a7 100644 --- a/cmuratori/hero/code/code178.hmml +++ b/cmuratori/hero/code/code178.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Thread-safe Performance Counters" vod_platform=youtube id=oDZ-sh0cKoY annotator=Miblo annotator=debiatan] +[video output=day178 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Thread-safe Performance Counters" vod_platform=youtube id=oDZ-sh0cKoY annotator=Miblo annotator=debiatan] [0:16][Recap and plan for today] [2:27][Packing a tiny monospaced font into the asset file] [4:05][Supporting font selection] diff --git a/cmuratori/hero/code/code179.hmml b/cmuratori/hero/code/code179.hmml index ac33bf3..3a24fce 100644 --- a/cmuratori/hero/code/code179.hmml +++ b/cmuratori/hero/code/code179.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Debug Information Over Time" vod_platform=youtube id=k_1FzhI3kv4 annotator=Miblo annotator=debiatan] +[video output=day179 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Debug Information Over Time" vod_platform=youtube id=k_1FzhI3kv4 annotator=Miblo annotator=debiatan] [0:43][Rant: Dedicate this episode to an awful company][quote 213] [5:41][Boot this up on maybe the last version of Windows which works in terms of rendering fonts][quote 214] [6:30][Apologise to those following along at home on Windows 8][quote 215] diff --git a/cmuratori/hero/code/code180.hmml b/cmuratori/hero/code/code180.hmml index ea4bf83..3f18f43 100644 --- a/cmuratori/hero/code/code180.hmml +++ b/cmuratori/hero/code/code180.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Debug Graphs" vod_platform=youtube id=U2RnqT6xSFk annotator=Miblo annotator=debiatan] +[video output=day180 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Debug Graphs" vod_platform=youtube id=U2RnqT6xSFk annotator=Miblo annotator=debiatan] [0:11][We will replace the C standard library functions at some point] [2:45][Recap] [4:06][Let's display the debug information in a more useful way] diff --git a/cmuratori/hero/code/code181.hmml b/cmuratori/hero/code/code181.hmml index fea9d19..a5238f4 100644 --- a/cmuratori/hero/code/code181.hmml +++ b/cmuratori/hero/code/code181.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Log-based Performance Counters" vod_platform=youtube id=s_qSvBp6nFw annotator=Miblo annotator=debiatan] +[video output=day181 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Log-based Performance Counters" vod_platform=youtube id=s_qSvBp6nFw annotator=Miblo annotator=debiatan] [00:11][Recap and plan for today] [02:10][Our performance counters are inexpensive, convenient and thread-safe] [03:39][They report the amount of time an operation takes, but not _when_ it happens] diff --git a/cmuratori/hero/code/code182.hmml b/cmuratori/hero/code/code182.hmml index c6c2b6f..51ac12e 100644 --- a/cmuratori/hero/code/code182.hmml +++ b/cmuratori/hero/code/code182.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fast Thread ID Retrieval" vod_platform=youtube id=fNufyLQacDw annotator=Miblo annotator=debiatan] +[video output=day182 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fast Thread ID Retrieval" vod_platform=youtube id=fNufyLQacDw annotator=Miblo annotator=debiatan] [0:36][Recap and plan for today] [2:52][On the benefits of having a nice inline profiling system][quote 223] [5:10][The profiling system is only slow in the collation phase, and that is acceptable] diff --git a/cmuratori/hero/code/code183.hmml b/cmuratori/hero/code/code183.hmml index 83d5120..42b41f0 100644 --- a/cmuratori/hero/code/code183.hmml +++ b/cmuratori/hero/code/code183.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform Layer Debug Events" vod_platform=youtube id=tdrTk9Ba3VM annotator=Miblo annotator=debiatan] +[video output=day183 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Platform Layer Debug Events" vod_platform=youtube id=tdrTk9Ba3VM annotator=Miblo annotator=debiatan] [00:08][Recap and plan for today] [01:56][Removing the obsolete debug_frame_end_info] [02:15][In place of that, we could have an array of counters for the platform layer translation unit] diff --git a/cmuratori/hero/code/code184.hmml b/cmuratori/hero/code/code184.hmml index c0bdfe4..ba38766 100644 --- a/cmuratori/hero/code/code184.hmml +++ b/cmuratori/hero/code/code184.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Collating Debug Events" vod_platform=youtube id=YP9oNMb_VIg annotator=Miblo annotator=debiatan annotator=Kelimion] +[video output=day184 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Collating Debug Events" vod_platform=youtube id=YP9oNMb_VIg annotator=Miblo annotator=debiatan annotator=Kelimion] [0:19]["We have all the code"][quote 228] [0:25][Recap and plan for today] [3:05][(Blackboard) Problems related to performance counter visualization] diff --git a/cmuratori/hero/code/code185.hmml b/cmuratori/hero/code/code185.hmml index cef2f41..e769ab2 100644 --- a/cmuratori/hero/code/code185.hmml +++ b/cmuratori/hero/code/code185.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Basic Debug Collation" vod_platform=youtube id=kkoiLQO5JGo annotator=Miblo annotator=debiatan] +[video output=day185 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Basic Debug Collation" vod_platform=youtube id=kkoiLQO5JGo annotator=Miblo annotator=debiatan] [0:08][Recap and plan for today] [1:22][We left the code in a non-working state] [2:37][Review of code from the previous day] diff --git a/cmuratori/hero/code/code186.hmml b/cmuratori/hero/code/code186.hmml index cc2225f..1ea5456 100644 --- a/cmuratori/hero/code/code186.hmml +++ b/cmuratori/hero/code/code186.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting to Debug Event Recording" vod_platform=youtube id=BbfFZLUre3s annotator=debiatan annotator=Miblo] +[video output=day186 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting to Debug Event Recording" vod_platform=youtube id=BbfFZLUre3s annotator=debiatan annotator=Miblo] [0:08][Recap and plan for today] [1:19][We'll be debugging our event record visualization] [2:25][Quick review of the code relevant to the task] diff --git a/cmuratori/hero/code/code187.hmml b/cmuratori/hero/code/code187.hmml index aa12443..d49c96a 100644 --- a/cmuratori/hero/code/code187.hmml +++ b/cmuratori/hero/code/code187.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing an Event Recording Bug" vod_platform=youtube id=VsWgUTH45F8 annotator=debiatan annotator=Miblo] +[video output=day187 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing an Event Recording Bug" vod_platform=youtube id=VsWgUTH45F8 annotator=debiatan annotator=Miblo] [0:08][On the headwind of live streaming] [0:53][It would seem that the viewers of Handmade Hero solved the bug from the last stream] [3:01][Description of the effects of the bug] diff --git a/cmuratori/hero/code/code188.hmml b/cmuratori/hero/code/code188.hmml index 48ba648..2b845d0 100644 --- a/cmuratori/hero/code/code188.hmml +++ b/cmuratori/hero/code/code188.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Hover to the Debug Graphs" vod_platform=youtube id=1llPa4I7gYk annotator=Miblo annotator=debiatan] +[video output=day188 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Hover to the Debug Graphs" vod_platform=youtube id=1llPa4I7gYk annotator=Miblo annotator=debiatan] [0:15][Recap and plan for today] [1:22][The game runs slow because every frame we're collating all events for the past 64 debug frames] [2:10][Decreasing the amount of debug frames we process from 64 to 8] diff --git a/cmuratori/hero/code/code189.hmml b/cmuratori/hero/code/code189.hmml index 019b3b7..dff2aa9 100644 --- a/cmuratori/hero/code/code189.hmml +++ b/cmuratori/hero/code/code189.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Incremental Debug Frame Processing" vod_platform=youtube id=87V4GNfqTpY annotator=Miblo annotator=debiatan] +[video output=day189 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Incremental Debug Frame Processing" vod_platform=youtube id=87V4GNfqTpY annotator=Miblo annotator=debiatan] [0:10][Recap and plan for today] [1:53][Current features of the debug display] [2:49][We want to be able to expand the top-level debug bars] diff --git a/cmuratori/hero/code/code190.hmml b/cmuratori/hero/code/code190.hmml index 10f6673..ac5dcab 100644 --- a/cmuratori/hero/code/code190.hmml +++ b/cmuratori/hero/code/code190.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug Globals" vod_platform=youtube id=7jmDV_Hk42U annotator=Miblo annotator=debiatan] +[video output=day190 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug Globals" vod_platform=youtube id=7jmDV_Hk42U annotator=Miblo annotator=debiatan] [0:14][The only reason we are writing a user interface is to support our debug system] [1:08][Since we are the only users of the UI, we don't care if it's not intuitive, as long as it provides efficient interaction at a low implementation cost] [3:08][Recap] diff --git a/cmuratori/hero/code/code191.hmml b/cmuratori/hero/code/code191.hmml index 36a39ba..fb81c0f 100644 --- a/cmuratori/hero/code/code191.hmml +++ b/cmuratori/hero/code/code191.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing a Radial Menu" vod_platform=youtube id=ftZIujU3Udw annotator=Miblo annotator=debiatan] +[video output=day191 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing a Radial Menu" vod_platform=youtube id=ftZIujU3Udw annotator=Miblo annotator=debiatan] [0:07][Recap and plan for today] [1:31][Try something epically ridiculous][quote 251] [3:02][We want to be able to turn on and off parts of the debug interface] diff --git a/cmuratori/hero/code/code192.hmml b/cmuratori/hero/code/code192.hmml index 9e834c5..2549879 100644 --- a/cmuratori/hero/code/code192.hmml +++ b/cmuratori/hero/code/code192.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Self-Recompilation" vod_platform=youtube id=RQuVq1v2PkE annotator=Miblo annotator=debiatan] +[video output=day192 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Self-Recompilation" vod_platform=youtube id=RQuVq1v2PkE annotator=Miblo annotator=debiatan] [0:07][Recap] [0:53][Plan for today] [2:32][Features and limitations of our current radial menu] diff --git a/cmuratori/hero/code/code193.hmml b/cmuratori/hero/code/code193.hmml index 90b23b7..c4fb8d0 100644 --- a/cmuratori/hero/code/code193.hmml +++ b/cmuratori/hero/code/code193.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Run-time Setting of Compile-time Variables" vod_platform=youtube id=9ND-2a_hP0g annotator=Miblo annotator=debiatan] +[video output=day193 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Run-time Setting of Compile-time Variables" vod_platform=youtube id=9ND-2a_hP0g annotator=Miblo annotator=debiatan] [0:08][Recap] [0:41][Plan for today] [1:43][Review of last episode] diff --git a/cmuratori/hero/code/code194.hmml b/cmuratori/hero/code/code194.hmml index 223eea0..02a8f24 100644 --- a/cmuratori/hero/code/code194.hmml +++ b/cmuratori/hero/code/code194.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Organizing Debug Variables into a Hierarchy" vod_platform=youtube id=00bRntapIAk annotator=Miblo annotator=Kelimion] +[video output=day194 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Organizing Debug Variables into a Hierarchy" vod_platform=youtube id=00bRntapIAk annotator=Miblo annotator=Kelimion] [0:09][Announcement: HandmadeCon 2015] [13:40][Set the stage for the day] [15:24][Recap where we left off] diff --git a/cmuratori/hero/code/code195.hmml b/cmuratori/hero/code/code195.hmml index 7debc60..71a516e 100644 --- a/cmuratori/hero/code/code195.hmml +++ b/cmuratori/hero/code/code195.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing an Interactive Tree View" vod_platform=youtube id=WwDytuTI5C8 annotator=Miblo] +[video output=day195 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing an Interactive Tree View" vod_platform=youtube id=WwDytuTI5C8 annotator=Miblo] [1:08][Recap and set the stage for the day] [1:42][handmade_debug.cpp: Consider cutting and pasting WriteHandmadeConfig] [3:28][handmade_debug.cpp: Cut and paste it into DrawDebugMainMenu] diff --git a/cmuratori/hero/code/code196.hmml b/cmuratori/hero/code/code196.hmml index 70c71da..0369b0a 100644 --- a/cmuratori/hero/code/code196.hmml +++ b/cmuratori/hero/code/code196.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to UI Interactions" vod_platform=youtube id=FvWcZ9Tti2k annotator=Miblo] +[video output=day196 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to UI Interactions" vod_platform=youtube id=FvWcZ9Tti2k annotator=Miblo] [3:07][Recap and set the stage for the day] [4:41][Blackboard: UI Input Processing] [9:27][handmade_debug.cpp: Explain how the code is structured for IMGUI] diff --git a/cmuratori/hero/code/code197.hmml b/cmuratori/hero/code/code197.hmml index 4846aa5..e6ff62b 100644 --- a/cmuratori/hero/code/code197.hmml +++ b/cmuratori/hero/code/code197.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integrating Multiple Debug Views" vod_platform=youtube id=ovXGlv7Y9wo annotator=Miblo annotator=debiatan] +[video output=day197 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integrating Multiple Debug Views" vod_platform=youtube id=ovXGlv7Y9wo annotator=Miblo annotator=debiatan] [0:09][No plan for today. We will pull together the debug UI code but we still don't know how] [1:45][Current state of the debug UI] [2:21][We want to bring the debug system to closure, to modify it so that it's convenient to use in the future] diff --git a/cmuratori/hero/code/code198.hmml b/cmuratori/hero/code/code198.hmml index de109de..c00d77d 100644 --- a/cmuratori/hero/code/code198.hmml +++ b/cmuratori/hero/code/code198.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Run-time Editing of Debug Hierarchies" vod_platform=youtube id=wyN_xzqz5dk annotator=Miblo] +[video output=day198 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Run-time Editing of Debug Hierarchies" vod_platform=youtube id=wyN_xzqz5dk annotator=Miblo] [2:18][Recap and set the stage for the day] [4:31][handmade_debug.h: Introduce debug_variable_reference] [8:04][handmade_debug_variables.h: Introduce DEBUGAddUnreferencedVariable] diff --git a/cmuratori/hero/code/code199.hmml b/cmuratori/hero/code/code199.hmml index 8e66cf8..d452d25 100644 --- a/cmuratori/hero/code/code199.hmml +++ b/cmuratori/hero/code/code199.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reusing Debug Interactions" vod_platform=youtube id=Pn8JLm3hQfs annotator=Miblo] +[video output=day199 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reusing Debug Interactions" vod_platform=youtube id=Pn8JLm3hQfs annotator=Miblo] [1:49][Recap and find that we must have broken something] [2:41][Debugger: Step through DEBUGInteract] [4:06][handmade_debug.cpp: Identify the problem and set DebugState->InteractingWith in a different place] diff --git a/cmuratori/hero/code/code200.hmml b/cmuratori/hero/code/code200.hmml index 7d5ffee..5f6d46b 100644 --- a/cmuratori/hero/code/code200.hmml +++ b/cmuratori/hero/code/code200.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debug Element Layout" vod_platform=youtube id=L81ZcBDnQx4 annotator=Miblo] +[video output=day200 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debug Element Layout" vod_platform=youtube id=L81ZcBDnQx4 annotator=Miblo] [1:50][Recap and set the stage for the day] [5:17][handmade.debug.cpp: Look at how we're currently drawing things] [7:17][handmade_debug.cpp: Introduce layout struct to contain local variables] diff --git a/cmuratori/hero/code/code201.hmml b/cmuratori/hero/code/code201.hmml index 555d650..18d6923 100644 --- a/cmuratori/hero/code/code201.hmml +++ b/cmuratori/hero/code/code201.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Isolating the Debug Code" vod_platform=youtube id=Nb9ObiFvw3I annotator=Miblo] +[video output=day201 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Isolating the Debug Code" vod_platform=youtube id=Nb9ObiFvw3I annotator=Miblo] [1:47][Recap and hit a first-chance exception] [2:38][Investigate this exception] [6:02][win32_handmade.cpp: Move DebugCollation above FramerateWait and pass NewInput and &Buffer to DEBUGFrameEnd] diff --git a/cmuratori/hero/code/code202.hmml b/cmuratori/hero/code/code202.hmml index d7d1076..65fd190 100644 --- a/cmuratori/hero/code/code202.hmml +++ b/cmuratori/hero/code/code202.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiply Appearing Debug Values" vod_platform=youtube id=JTwMFtyuL6M annotator=Miblo] +[video output=day202 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiply Appearing Debug Values" vod_platform=youtube id=JTwMFtyuL6M annotator=Miblo] [0:28][Debugger: Enabling "Go To Definition / Declaration" feature] [3:10][Internet: Building Browse Information Files: Overview[ref site="MSDN" diff --git a/cmuratori/hero/code/code203.hmml b/cmuratori/hero/code/code203.hmml index 5583fe6..95906f6 100644 --- a/cmuratori/hero/code/code203.hmml +++ b/cmuratori/hero/code/code203.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debug UI State Caching" vod_platform=youtube id=6gBJ9f5tUV4 annotator=Miblo] +[video output=day203 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debug UI State Caching" vod_platform=youtube id=6gBJ9f5tUV4 annotator=Miblo] [0:59][Recap our current situation] [2:19][Blackboard: Breadth-first vs depth-first tree traversal] [8:46][Debugger: Step into DEBUGDrawMainMenu and hunt for the hierarchy] diff --git a/cmuratori/hero/code/code204.hmml b/cmuratori/hero/code/code204.hmml index 115dc13..15f7f6e 100644 --- a/cmuratori/hero/code/code204.hmml +++ b/cmuratori/hero/code/code204.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unprojecting the Mouse Cursor" vod_platform=youtube id=FkDJL8zmVFY annotator=Miblo] +[video output=day204 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unprojecting the Mouse Cursor" vod_platform=youtube id=FkDJL8zmVFY annotator=Miblo] [0:08][Announcement: Miblo's Patreon] [3:04][Recap and set the stage for the day] [4:16][Run the game and see where we're at] diff --git a/cmuratori/hero/code/code205.hmml b/cmuratori/hero/code/code205.hmml index ef9fef4..7cda424 100644 --- a/cmuratori/hero/code/code205.hmml +++ b/cmuratori/hero/code/code205.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Picking Entities with the Mouse" vod_platform=youtube id=3RPdhDditMY annotator=Miblo] +[video output=day205 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Picking Entities with the Mouse" vod_platform=youtube id=3RPdhDditMY annotator=Miblo] [1:31][Recap and set the stage for the day] [3:18][handmade.cpp: Outline all of the entities] [4:45][Consider making the renderer work more logically] diff --git a/cmuratori/hero/code/code206.hmml b/cmuratori/hero/code/code206.hmml index 8f72ba6..dc562cf 100644 --- a/cmuratori/hero/code/code206.hmml +++ b/cmuratori/hero/code/code206.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Introspection" vod_platform=youtube id=1IwYEJsvdcs annotator=Miblo annotator=Kelimion] +[video output=day206 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Introspection" vod_platform=youtube id=1IwYEJsvdcs annotator=Miblo annotator=Kelimion] [0:32][Recap and set the stage for the day] [3:45][simple_preprocessor.cpp: Introspection] [6:25][simple_preprocessor.cpp: Name this function ReadEntireFileIntoMemoryAndNullTerminate] diff --git a/cmuratori/hero/code/code207.hmml b/cmuratori/hero/code/code207.hmml index 58ba761..558e1a0 100644 --- a/cmuratori/hero/code/code207.hmml +++ b/cmuratori/hero/code/code207.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using Introspection Data" vod_platform=youtube id=3_7IMU6l6Pc annotator=Miblo] +[video output=day207 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using Introspection Data" vod_platform=youtube id=3_7IMU6l6Pc annotator=Miblo] [1:46][Recap and set the stage for the day] [4:06][simple_preprocessor.cpp: On understanding the contents of structs] [7:31][simple_preprocessor.cpp: Make ParseMember take StructTypeToken] diff --git a/cmuratori/hero/code/code208.hmml b/cmuratori/hero/code/code208.hmml index ae2c8d0..1c3b95d 100644 --- a/cmuratori/hero/code/code208.hmml +++ b/cmuratori/hero/code/code208.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Data Blocks to the Debug Log" vod_platform=youtube id=SWXxlrjDKW0 annotator=Miblo] +[video output=day208 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Data Blocks to the Debug Log" vod_platform=youtube id=SWXxlrjDKW0 annotator=Miblo] [1:37][Run the game and recap our situation] [2:05][handmade_debug.cpp: Get rid of the TestEntity stuff] [2:55][handmade.cpp: Consider how we'd like to leverage metaprogramming] diff --git a/cmuratori/hero/code/code209.hmml b/cmuratori/hero/code/code209.hmml index f5f3534..e9e810d 100644 --- a/cmuratori/hero/code/code209.hmml +++ b/cmuratori/hero/code/code209.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying Buffered Debug Data" vod_platform=youtube id=2bQ6mL3yNh0 annotator=Miblo] +[video output=day209 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying Buffered Debug Data" vod_platform=youtube id=2bQ6mL3yNh0 annotator=Miblo] [0:53][Adjust the chair][quote 279] [1:46][Recap where we left off] [3:37][handmade_debug.cpp: Implement the various DebugEvents] diff --git a/cmuratori/hero/code/code210.hmml b/cmuratori/hero/code/code210.hmml index f40623a..94de4a1 100644 --- a/cmuratori/hero/code/code210.hmml +++ b/cmuratori/hero/code/code210.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Consolidating Debug Data Storage" vod_platform=youtube id=r2l0atxoA4M annotator=Miblo] +[video output=day210 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Consolidating Debug Data Storage" vod_platform=youtube id=r2l0atxoA4M annotator=Miblo] [2:50][Recap and set the stage for the day] [4:36][handmade_platform.h and handmade_debug.h: Point out the repeated code that could be compressed out] [9:00][handmade_debug.h: Make debug_variable contain debug_event Event] diff --git a/cmuratori/hero/code/code211.hmml b/cmuratori/hero/code/code211.hmml index 7f5868a..a8950d8 100644 --- a/cmuratori/hero/code/code211.hmml +++ b/cmuratori/hero/code/code211.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing Records and Translation Units from the Debug Code" vod_platform=youtube id=hwLSZuxK6aU annotator=Miblo] +[video output=day211 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing Records and Translation Units from the Debug Code" vod_platform=youtube id=hwLSZuxK6aU annotator=Miblo] [1:05][Recap where we left last time and set the stage for the day] [2:54][handmade_debug_interface.h: Throw all of the debug annotation code into this new header file] [4:01][handmade_debug.h: Remove debug_variable entirely and give its functionality to debug_event] diff --git a/cmuratori/hero/code/code212.hmml b/cmuratori/hero/code/code212.hmml index bfee609..c5f4b83 100644 --- a/cmuratori/hero/code/code212.hmml +++ b/cmuratori/hero/code/code212.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integrating Debug UI into Game Code" vod_platform=youtube id=fbsZW4BzW6k annotator=Miblo] +[video output=day212 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integrating Debug UI into Game Code" vod_platform=youtube id=fbsZW4BzW6k annotator=Miblo] [1:10]["We will be in sync..."][quote 286] [1:34][Recap and set the stage for the day] [3:16][Run the game and show that the picking system is kind of random and janky] diff --git a/cmuratori/hero/code/code213.hmml b/cmuratori/hero/code/code213.hmml index 0696169..dc492a5 100644 --- a/cmuratori/hero/code/code213.hmml +++ b/cmuratori/hero/code/code213.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Turning Debug Switches into Events" vod_platform=youtube id=nc6WawdkDnI annotator=Miblo] +[video output=day213 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Turning Debug Switches into Events" vod_platform=youtube id=nc6WawdkDnI annotator=Miblo] [1:31][Recap and set the stage for the day] [2:58][Select a bunch of entities and see our frame rate getting tanked] [3:55][handmade_platform.h and win32_handmade.cpp: Implement modifier keys] diff --git a/cmuratori/hero/code/code214.hmml b/cmuratori/hero/code/code214.hmml index a85b8e1..78ea525 100644 --- a/cmuratori/hero/code/code214.hmml +++ b/cmuratori/hero/code/code214.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Collating Permanent Debug Values" vod_platform=youtube id=4aeT9T-i3Qs annotator=Miblo] +[video output=day214 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Collating Permanent Debug Values" vod_platform=youtube id=4aeT9T-i3Qs annotator=Miblo] [1:25][Recap and set the stage for the day] [2:05][handmade_debug_interface.h: Turn on DEBUG_IF and resume implementing it] [4:13][handmade_debug.cpp: Introduce DEBUGInitializeValue] diff --git a/cmuratori/hero/code/code215.hmml b/cmuratori/hero/code/code215.hmml index f0c9d7f..6b1acf2 100644 --- a/cmuratori/hero/code/code215.hmml +++ b/cmuratori/hero/code/code215.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug Event Collation" vod_platform=youtube id=VAKkuva8St4 annotator=Miblo] +[video output=day215 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug Event Collation" vod_platform=youtube id=VAKkuva8St4 annotator=Miblo] [1:00][Recap and set the stage for the day] [5:09][Blackboard: The inconsistency between an event buffer and a frame] [9:45][handmade_debug_interface.h: Start to make Events be a temporary buffer by reducing the MAX_DEBUG_EVENT_ARRAY_COUNT] diff --git a/cmuratori/hero/code/code216.hmml b/cmuratori/hero/code/code216.hmml index 680019c..03a0976 100644 --- a/cmuratori/hero/code/code216.hmml +++ b/cmuratori/hero/code/code216.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="On-demand Deallocation" vod_platform=youtube id=lPnPNaC-KJg annotator=Miblo] +[video output=day216 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="On-demand Deallocation" vod_platform=youtube id=lPnPNaC-KJg annotator=Miblo] [0:34][On easing the burden of returning to code after a break] [2:43][Recap and set the stage for the day] [3:05][build.bat: Turn the debug system back on and assess our situation] diff --git a/cmuratori/hero/code/code217.hmml b/cmuratori/hero/code/code217.hmml index 3177d6e..e92d49e 100644 --- a/cmuratori/hero/code/code217.hmml +++ b/cmuratori/hero/code/code217.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Per-element Debug Event Storage" vod_platform=youtube id=m2Y7UmUU_xo annotator=Miblo] +[video output=day217 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Per-element Debug Event Storage" vod_platform=youtube id=m2Y7UmUU_xo annotator=Miblo] [2:34][Run the game and hit our assertion in FreeVariableGroup] [3:49][handmade_debug.h: Consider cleaning this stuff up as we do it] [5:22][handmade_debug.h: Move RootGroup from debug_frame to debug_state] diff --git a/cmuratori/hero/code/code218.hmml b/cmuratori/hero/code/code218.hmml index dd8a68f..a468053 100644 --- a/cmuratori/hero/code/code218.hmml +++ b/cmuratori/hero/code/code218.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hashing Debug Elements" vod_platform=youtube id=66DXTnHDesc annotator=Miblo] +[video output=day218 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hashing Debug Elements" vod_platform=youtube id=66DXTnHDesc annotator=Miblo] [1:20][All You Can Eat][quote 302] [1:50]["We don't know which kind of a lunch buffet our debug system will be yet..."][quote 303] [2:58][Build and run and note how fast the guy zips around, before turning the debug system back on] diff --git a/cmuratori/hero/code/code219.hmml b/cmuratori/hero/code/code219.hmml index 05a406f..8ceb20e 100644 --- a/cmuratori/hero/code/code219.hmml +++ b/cmuratori/hero/code/code219.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Automatically Constructed Debug Hierarchies" vod_platform=youtube id=FQzGVuWDHcg annotator=insofaras] +[video output=day219 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Automatically Constructed Debug Hierarchies" vod_platform=youtube id=FQzGVuWDHcg annotator=insofaras] [0:02][Intro] [0:31][Background on the number 219] [1:10]["You should fertilize that directory with human tears, and then you should see what grows from it. It will probably be black roses that crumble and blow away with the wind."][quote 322] @@ -49,7 +49,7 @@ [1:04:11][@d7samurai][was this the 'depression oriented programming' approach i keep hearing about?] [1:04:32][@m1el][you pass string length together with pointer to string data in several places. Do you think it would be better to create a string struct that holds length and a data point?] [1:05:13][@vidster88][You've talked a lot about languages lately, have you taken a look at Swift at all? Thoughts?] -[1:05:31][@elxenoaizd][How do you come up with that literacy stuff? That was Awesome! :D] +[1:05:31][@elxenoaizd][How do you come up with that literacy stuff? That was Awesome!] [1:05:53][@programgamer][I DONT GET ANYTHING \:(] [1:06:12][@yoonfan][do you think that the bug in DebugInteractionsAreEqual would have been caught by a compiler-generated comparison operator as in C++?] [1:07:08][@groggeh][will handmadehero2 be written in JAI ?] @@ -65,7 +65,7 @@ [1:12:22]["We just have to have faith that The Variable is looking down on us from The Great Memory, and that if we all just work hard and try to be good people that eventually The Variable will let us into The Great Memory and we'll live in peace and happiness with all of our other discretized values."][quote 326] [1:12:57][@actbinary][would you prefer to ui in c code or use something like html or something else?] [1:13:08][@ingenero][If you could be given complete control over Microsoft or Apple, which one would you choose and what would be your number one priority?] -[1:13:48][@brethudson][Mind giving a shout-out about your appearance on the indie(Radio); podcast tomorrow? :P] +[1:13:48][@brethudson][Mind giving a shout-out about your appearance on the indie(Radio); podcast tomorrow?] [1:15:59][@mitch77x][Casey, the question was not entirely meant funny: Can you imagine to still code games and stuff when you are like 60?] [1:16:55][@elxenoaizd][sometimes I compare myself with other great programmers and get depressed cause I'm far away from their level - I know I shouldn't be comparing cause they grew up in different environments etc and I know for sure I can reach their level if I apply myself and learn quick, but sometimes it just gets to me and I feel bad about it... have you ever felt that way? any tips how to overcome it?] [1:23:10][@gasto5][Do you think Japanese not adopting the OOP paradigm is because they are smarter or simply because of not even being interested in changing to new languages?] diff --git a/cmuratori/hero/code/code220.hmml b/cmuratori/hero/code/code220.hmml index 9eddb56..d7636b9 100644 --- a/cmuratori/hero/code/code220.hmml +++ b/cmuratori/hero/code/code220.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying Data Blocks in the Hierarchy" vod_platform=youtube id=k1h-0MEtcGg annotator=insofaras] +[video output=day220 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying Data Blocks in the Hierarchy" vod_platform=youtube id=k1h-0MEtcGg annotator=insofaras] [0:05][Intro] [1:05][Recap of the debug system] [2:22][Ideas for today's work] @@ -62,7 +62,7 @@ [1:18:31][@TheSizik][You missed Region->ColorIndex = (u16)OpeningEvent->BlockName;] [1:19:09][@insofaras][How many lines are we at now?] [1:20:01][@ChronalDragon][Sure. What's a quick way to _produce_ temporary sound effects to, for example, figure out where/when they should be played?] -[1:21:16][@TheSizik][Not stripping unused code is how GTA Hot Coffee happened :P] +[1:21:16][@TheSizik][Not stripping unused code is how GTA Hot Coffee happened] [1:23:49][@elxenoaizd][If a programming job wasn't available to you, what type of work would you be interested in doing other than programming for a living?] [1:24:10][@actbinary][What do you think of dlc then? ;)] [1:26:41][@BrutalABK][Do you play MMOs, if so, how do you feel about the way they do their leveling?] diff --git a/cmuratori/hero/code/code221.hmml b/cmuratori/hero/code/code221.hmml index caae1ba..9a58322 100644 --- a/cmuratori/hero/code/code221.hmml +++ b/cmuratori/hero/code/code221.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Multi-layer Cutscenes" vod_platform=youtube id=JOoqeKB9lx4 annotator=Miblo] +[video output=day221 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Multi-layer Cutscenes" vod_platform=youtube id=JOoqeKB9lx4 annotator=Miblo] [0:48][Assets: intro_art.hha is released] [3:03][Introduce this art pack] [4:13][handmade_file_formats.h: Add our new asset types and tags to asset_type_id and asset_tag_id] diff --git a/cmuratori/hero/code/code222.hmml b/cmuratori/hero/code/code222.hmml index 32348ce..b509ccd 100644 --- a/cmuratori/hero/code/code222.hmml +++ b/cmuratori/hero/code/code222.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Laying Out Cutscenes" vod_platform=youtube id=UHQSoeR6c_Y annotator=Miblo] +[video output=day222 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Laying Out Cutscenes" vod_platform=youtube id=UHQSoeR6c_Y annotator=Miblo] [0:32][Recap yesterday's work on the cutscene] [1:28][handmade_cutscene.cpp: Introduce struct layered_scene to hold all of the cutscene data] [3:15][handmade_cutscene.cpp: Introduce RenderLayeredScene] diff --git a/cmuratori/hero/code/code223.hmml b/cmuratori/hero/code/code223.hmml index 7374ede..7a30fb7 100644 --- a/cmuratori/hero/code/code223.hmml +++ b/cmuratori/hero/code/code223.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Playing Multiple Cutscenes" vod_platform=youtube id=btGVLs4NSOM annotator=Miblo] +[video output=day223 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Playing Multiple Cutscenes" vod_platform=youtube id=btGVLs4NSOM annotator=Miblo] [0:32][Recap] [1:11][handmade_cutscene.cpp: Compose Shot 10] [5:49]["...he has a lot of hats"][quote 339] diff --git a/cmuratori/hero/code/code224.hmml b/cmuratori/hero/code/code224.hmml index 309a76c..a5103f2 100644 --- a/cmuratori/hero/code/code224.hmml +++ b/cmuratori/hero/code/code224.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Prefetching Cutscene Layers" vod_platform=youtube id=C4Il0g8vtg0 annotator=Miblo] +[video output=day224 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Prefetching Cutscene Layers" vod_platform=youtube id=C4Il0g8vtg0 annotator=Miblo] [1:24][Recap, run the game and point out an objectionable artifact] [3:14][Debugger: Step into RenderCutScene and note the unset State of the Asset] [6:12][handmade.cpp: Play the cutscene back at an artificially fast rate] diff --git a/cmuratori/hero/code/code225.hmml b/cmuratori/hero/code/code225.hmml index 188cb73..56e18df 100644 --- a/cmuratori/hero/code/code225.hmml +++ b/cmuratori/hero/code/code225.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fading In and Out from the Windows Desktop" vod_platform=youtube id=hsKMH89VmR8 annotator=Miblo] +[video output=day225 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fading In and Out from the Windows Desktop" vod_platform=youtube id=hsKMH89VmR8 annotator=Miblo] [1:15][Recap our current situation] [1:45][Internet: SetLayeredWindowAttributes[ref site=MSDN diff --git a/cmuratori/hero/code/code226.hmml b/cmuratori/hero/code/code226.hmml index cd8367e..d04a0f6 100644 --- a/cmuratori/hero/code/code226.hmml +++ b/cmuratori/hero/code/code226.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Multiple Metagame Modes" vod_platform=youtube id=2X6A70ONyO0 annotator=insofaras] +[video output=day226 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Multiple Metagame Modes" vod_platform=youtube id=2X6A70ONyO0 annotator=insofaras] [0:03][Intro, plans] [1:19][Description of the 'meta-game' elements that Handmade Hero needs] [4:54][Setting up, compiling and running the current state of the game] diff --git a/cmuratori/hero/code/code227.hmml b/cmuratori/hero/code/code227.hmml index 138d685..53738c6 100644 --- a/cmuratori/hero/code/code227.hmml +++ b/cmuratori/hero/code/code227.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching Between Metagame Modes" vod_platform=youtube id=a1j15jWJLoc annotator=insofaras] +[video output=day227 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching Between Metagame Modes" vod_platform=youtube id=a1j15jWJLoc annotator=insofaras] [0:07][Intro] [1:42][Plans for today] [2:40][Looking back at what was achieved yesterday] diff --git a/cmuratori/hero/code/code228.hmml b/cmuratori/hero/code/code228.hmml index 7c76bfe..5b7ee62 100644 --- a/cmuratori/hero/code/code228.hmml +++ b/cmuratori/hero/code/code228.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Waiting for Dependent Tasks on Metagame Mode Changes" vod_platform=youtube id=4sdqC9V4P_g annotator=Miblo] +[video output=day228 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Waiting for Dependent Tasks on Metagame Mode Changes" vod_platform=youtube id=4sdqC9V4P_g annotator=Miblo] [0:13][Gift Received in the Mail: Owl of Shame Baby] [2:06][Recap and set the stage for the day] [5:14][Describe a threading bug in tasks which access the game's mode state and which persist] diff --git a/cmuratori/hero/code/code229.hmml b/cmuratori/hero/code/code229.hmml index ed7ce09..a43fdcc 100644 --- a/cmuratori/hero/code/code229.hmml +++ b/cmuratori/hero/code/code229.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sorting Render Elements" vod_platform=youtube id=b6qZaqL7fxM annotator=Miblo] +[video output=day229 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sorting Render Elements" vod_platform=youtube id=b6qZaqL7fxM annotator=Miblo] [0:25][Recap and set the stage for the day] [1:28][Run the game and hit an assertion] [2:33][handmade_world_mode.cpp: Turn off FillGroundChunk] diff --git a/cmuratori/hero/code/code230.hmml b/cmuratori/hero/code/code230.hmml index e571a18..336ecce 100644 --- a/cmuratori/hero/code/code230.hmml +++ b/cmuratori/hero/code/code230.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Refining Renderer Sort Keys" vod_platform=youtube id=9-jltZmDMHI annotator=Miblo annotator=debiatan] +[video output=day230 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Refining Renderer Sort Keys" vod_platform=youtube id=9-jltZmDMHI annotator=Miblo annotator=debiatan] [0:07][Recap and set the stage for the day] [1:25][Blackboard: Sort Key for Rendering] [6:06][Blackboard: Treating Z purely semantically] diff --git a/cmuratori/hero/code/code231.hmml b/cmuratori/hero/code/code231.hmml index 7d5b50b..b0a990a 100644 --- a/cmuratori/hero/code/code231.hmml +++ b/cmuratori/hero/code/code231.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Order Notation" vod_platform=youtube id=jo9rfWct1OI annotator=Miblo] +[video output=day231 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Order Notation" vod_platform=youtube id=jo9rfWct1OI annotator=Miblo] [1:03][Set the stage for the day] [2:57][Blackboard: Order Notation] [4:13][Blackboard: "unit"] diff --git a/cmuratori/hero/code/code232.hmml b/cmuratori/hero/code/code232.hmml index 542df9c..507a059 100644 --- a/cmuratori/hero/code/code232.hmml +++ b/cmuratori/hero/code/code232.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Examples of Sorting Algorithms" vod_platform=youtube id=cq_PVCgyS5k annotator=Miblo] +[video output=day232 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Examples of Sorting Algorithms" vod_platform=youtube id=cq_PVCgyS5k annotator=Miblo] [0:08][Share a link from yesterday's chat[ref site="YouTube" page="Computational Complexity" diff --git a/cmuratori/hero/code/code233.hmml b/cmuratori/hero/code/code233.hmml index 316e22c..b1aaacc 100644 --- a/cmuratori/hero/code/code233.hmml +++ b/cmuratori/hero/code/code233.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Can We Merge Sort In Place?" vod_platform=youtube id=A59NnNt9hRo annotator=Miblo] +[video output=day233 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Can We Merge Sort In Place?" vod_platform=youtube id=A59NnNt9hRo annotator=Miblo] [1:12][handmade_render_group.cpp: Note that the current SortEntries function is O(n^2), and introduce an early-out condition] [3:08][Introducing this condition changes the "expected running time" from O(n^2) to something less] [3:57][handmade_render_group.cpp: Introduce MergeSort] diff --git a/cmuratori/hero/code/code234.hmml b/cmuratori/hero/code/code234.hmml index 073d846..809defb 100644 --- a/cmuratori/hero/code/code234.hmml +++ b/cmuratori/hero/code/code234.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Radix Sort" vod_platform=youtube id=jhGDPoSLJMo annotator=Miblo] +[video output=day234 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Radix Sort" vod_platform=youtube id=jhGDPoSLJMo annotator=Miblo] [0:47][Recap and set the stage for the day] [1:22][handmade_render_group.cpp: Pull out the BubbleSort functionality into its own function] [2:40][Struggle with the headphone cable] diff --git a/cmuratori/hero/code/code235.hmml b/cmuratori/hero/code/code235.hmml index fd1a108..a7b930a 100644 --- a/cmuratori/hero/code/code235.hmml +++ b/cmuratori/hero/code/code235.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Initializing OpenGL on Windows" vod_platform=youtube id=5Klc9RZPG7M annotator=Miblo] +[video output=day235 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Initializing OpenGL on Windows" vod_platform=youtube id=5Klc9RZPG7M annotator=Miblo] [0:53][handmade.h: Consult the TODO list] [4:02][win32_handmade.cpp: Promote hardware acceleration to the top of the TODO list and embark on it] [5:55][Run the game and note the weird fade thing] diff --git a/cmuratori/hero/code/code236.hmml b/cmuratori/hero/code/code236.hmml index e50730c..5d59b3d 100644 --- a/cmuratori/hero/code/code236.hmml +++ b/cmuratori/hero/code/code236.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="GPU Conceptual Overview" vod_platform=youtube id=vbnozKJM0Oo annotator=Miblo] +[video output=day236 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="GPU Conceptual Overview" vod_platform=youtube id=vbnozKJM0Oo annotator=Miblo] [0:07][Recap and glimpse into the future of streaming via a video capture card] [2:06][Run the game and note that Casey can see the game and we can't] [3:00][Recap where we're at] diff --git a/cmuratori/hero/code/code237.hmml b/cmuratori/hero/code/code237.hmml index d7f9c2c..76354ab 100644 --- a/cmuratori/hero/code/code237.hmml +++ b/cmuratori/hero/code/code237.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying an Image with OpenGL" vod_platform=youtube id=YIOpZ9M5pc4 annotator=Miblo] +[video output=day237 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying an Image with OpenGL" vod_platform=youtube id=YIOpZ9M5pc4 annotator=Miblo] [1:13][win32_handmade.cpp: Disable PFD_DOUBLEBUFFER] [2:04][Give it a shot and see our pink window] [2:33][Recap our current situation] diff --git a/cmuratori/hero/code/code238.hmml b/cmuratori/hero/code/code238.hmml index 4841605..9e4cbea 100644 --- a/cmuratori/hero/code/code238.hmml +++ b/cmuratori/hero/code/code238.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making OpenGL Use Our Screen Coordinates" vod_platform=youtube id=kBuaCqaCYwE annotator=Miblo] +[video output=day238 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making OpenGL Use Our Screen Coordinates" vod_platform=youtube id=kBuaCqaCYwE annotator=Miblo] [0:09][Recap and set the stage for the day] [2:14][Recall how our graphics architecture works at the moment] [6:44][Run the game and refresh our memory about where we left off] diff --git a/cmuratori/hero/code/code239.hmml b/cmuratori/hero/code/code239.hmml index 54517b4..6f19444 100644 --- a/cmuratori/hero/code/code239.hmml +++ b/cmuratori/hero/code/code239.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering the Game Through OpenGL" vod_platform=youtube id=jH7i0YXN9FU annotator=Miblo] +[video output=day239 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering the Game Through OpenGL" vod_platform=youtube id=jH7i0YXN9FU annotator=Miblo] [0:08][Recap and set the stage for the day] [1:26][handmade_opengl.cpp: Look at the new hardware rendering code and consider how to enable the renderer to work through software as well as hardware] [5:41][handmade_render_group.cpp: Introduce RenderToOutput to pick whether to render with OpenGLRenderGroupToOutput or TiledRenderGroupToOutput] diff --git a/cmuratori/hero/code/code240.hmml b/cmuratori/hero/code/code240.hmml index 9e7331e..4199c31 100644 --- a/cmuratori/hero/code/code240.hmml +++ b/cmuratori/hero/code/code240.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving the Renderer into a Third Tier" vod_platform=youtube id=s1S76SBWxcg annotator=Miblo] +[video output=day240 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving the Renderer into a Third Tier" vod_platform=youtube id=s1S76SBWxcg annotator=Miblo] [0:29][Recap and set the stage for the day] [2:29][handmade_platform.h: Replace game_offscreen_buffer with game_render_commands] [12:36][handmade_platform.h: Introduce InitializeRenderCommands] diff --git a/cmuratori/hero/code/code241.hmml b/cmuratori/hero/code/code241.hmml index 67048bc..d9af5b0 100644 --- a/cmuratori/hero/code/code241.hmml +++ b/cmuratori/hero/code/code241.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL VSync and sRGB Extensions" vod_platform=youtube id=1OMTFa09lHM annotator=Miblo] +[video output=day241 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL VSync and sRGB Extensions" vod_platform=youtube id=1OMTFa09lHM annotator=Miblo] [0:08][Reminder: The source code is not in the public domain yet] [0:57][On the possibility of vomiting][quote 363] [1:39][Recap and set the stage for the day] diff --git a/cmuratori/hero/code/code242.hmml b/cmuratori/hero/code/code242.hmml index d665db5..f4d3883 100644 --- a/cmuratori/hero/code/code242.hmml +++ b/cmuratori/hero/code/code242.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL Context Escalation" vod_platform=youtube id=99kIYIEzbpc annotator=Miblo] +[video output=day242 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL Context Escalation" vod_platform=youtube id=99kIYIEzbpc annotator=Miblo] [0:08][Recap and set the stage for the day] [3:41][Run the game and point out that we experience a pause while textures get loaded in] [7:19][win32_handmade.cpp: Clean up and consult the TODO list] diff --git a/cmuratori/hero/code/code243.hmml b/cmuratori/hero/code/code243.hmml index 54e7868..f8a9d0b 100644 --- a/cmuratori/hero/code/code243.hmml +++ b/cmuratori/hero/code/code243.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asynchronous Texture Downloads" vod_platform=youtube id=onEloWtN91Y annotator=Miblo] +[video output=day243 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asynchronous Texture Downloads" vod_platform=youtube id=onEloWtN91Y annotator=Miblo] [0:03][Welcome back] [1:18][Promote 4coder and discuss modal editing] [10:42][Recap and set the stage for the day] diff --git a/cmuratori/hero/code/code244.hmml b/cmuratori/hero/code/code244.hmml index a043dae..e5cded4 100644 --- a/cmuratori/hero/code/code244.hmml +++ b/cmuratori/hero/code/code244.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Asynchronous Texture Downloads" vod_platform=youtube id=SWtV8B3rssw annotator=Miblo] +[video output=day244 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Asynchronous Texture Downloads" vod_platform=youtube id=SWtV8B3rssw annotator=Miblo] [0:55][Build and run the game and note that our textures don't get downloaded] [1:32][Set the stage for the day with some thoughts on writing software from scratch and the occasional need to use systems which are black boxes] [5:15][Debugger: Take a stroll through our new OpenGL code] diff --git a/cmuratori/hero/code/code245.hmml b/cmuratori/hero/code/code245.hmml index 9b5d02d..01a2cf1 100644 --- a/cmuratori/hero/code/code245.hmml +++ b/cmuratori/hero/code/code245.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using wglChoosePixelFormatARB" vod_platform=youtube id=SvlirEF-R-4 annotator=Miblo] +[video output=day245 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using wglChoosePixelFormatARB" vod_platform=youtube id=SvlirEF-R-4 annotator=Miblo] [0:47][Blackboard: PBO's (Pixel Buffer Objects)] [2:51][Blackboard: Virtual Addresses, Physical Addresses and the TLB] [4:59][Blackboard: The GPU does not have access to the TLB] diff --git a/cmuratori/hero/code/code246.hmml b/cmuratori/hero/code/code246.hmml index 2758bca..3a8564c 100644 --- a/cmuratori/hero/code/code246.hmml +++ b/cmuratori/hero/code/code246.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Worker Context Creation to the Main Thread" vod_platform=youtube id=ml5E9-tzEns annotator=Miblo] +[video output=day246 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Worker Context Creation to the Main Thread" vod_platform=youtube id=ml5E9-tzEns annotator=Miblo] [0:45][Recap and set the stage for the day] [4:37][win32_handmade.h: Move platform_work_queue in from win32_handmade.cpp] [6:28][win32_handmade.cpp: Initialise a Thread and Queue in ThreadProc and change to testing to see that we have an OpenGLRC] diff --git a/cmuratori/hero/code/code247.hmml b/cmuratori/hero/code/code247.hmml index 2ced127..e7f6459 100644 --- a/cmuratori/hero/code/code247.hmml +++ b/cmuratori/hero/code/code247.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simplifying Debug Values" vod_platform=youtube id=JqcphfRybd4 annotator=ffsjs] +[video output=day247 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simplifying Debug Values" vod_platform=youtube id=JqcphfRybd4 annotator=ffsjs] [0:09][Welcome. Details about the texture transfer saga.] [1:26][nvidia didn't respond yet about _how_ to properly transfer textures overlapped.] [1:54][Overlapping CPU work and GPU work are not the same thing. There are 2 required copies that have to happen in order for the textures to get to the GPU: one off of the disk into memory that GPU can _see_, and then from the memory that the GPU can see into the actual memory resident on the GPU.] diff --git a/cmuratori/hero/code/code248.hmml b/cmuratori/hero/code/code248.hmml index 5611024..6b14874 100644 --- a/cmuratori/hero/code/code248.hmml +++ b/cmuratori/hero/code/code248.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Data Block Display" vod_platform=youtube id=Thr10pFx984 annotator=Miblo annotator=ffsjs] +[video output=day248 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Data Block Display" vod_platform=youtube id=Thr10pFx984 annotator=Miblo annotator=ffsjs] [1:02][Launch the code, build the game, recap and set the stage for the day] [2:39][handmade_debug_interface.h: Reacquaint ourselves with the debug system] [6:21]["We set ourselves up for success"][quote 403] diff --git a/cmuratori/hero/code/code249.hmml b/cmuratori/hero/code/code249.hmml index c03650d..7a25734 100644 --- a/cmuratori/hero/code/code249.hmml +++ b/cmuratori/hero/code/code249.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug Macros" vod_platform=youtube id=NVnlQ7KMGa8 annotator=ffsjs annotator=Miblo] +[video output=day249 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug Macros" vod_platform=youtube id=NVnlQ7KMGa8 annotator=ffsjs annotator=Miblo] [0:08][Welcome, let's jump directly into the revamping of the debug code] [0:44][Recap: The debug system is relatively usable, but all names are always forced through the hierarchy system, so it creates dummy nodes for things] [1:19][We also want to make the profiler functional again] diff --git a/cmuratori/hero/code/code250.hmml b/cmuratori/hero/code/code250.hmml index 1ca7aa9..2110998 100644 --- a/cmuratori/hero/code/code250.hmml +++ b/cmuratori/hero/code/code250.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug GUIDs" vod_platform=youtube id=ceMQT1DZkpo annotator=ffsjs] +[video output=day250 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Debug GUIDs" vod_platform=youtube id=ceMQT1DZkpo annotator=ffsjs] [0:12][Setting the stage and getting right back into cleaning up the debug layer] [2:21][Fixing compile errors after reactivating the -DHANDMADE_INTERNAL switch] [3:10][handmade_world_mode.cpp: Removing EntityDebugID from the DEBUG_DATA_BLOCK() call and considering adding it in a DEBUG_VALUE() call, if needed] diff --git a/cmuratori/hero/code/code251.hmml b/cmuratori/hero/code/code251.hmml index b5b1137..48c8b41 100644 --- a/cmuratori/hero/code/code251.hmml +++ b/cmuratori/hero/code/code251.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Debug Hierarchy" vod_platform=youtube id=LTTaqnFBtwk annotator=Miblo] +[video output=day251 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Debug Hierarchy" vod_platform=youtube id=LTTaqnFBtwk annotator=Miblo] [0:45][Run the game and see where we're at in terms of the debug hierarchy] [2:45][handmade_debug.cpp: Look through how the hierarchy is currently being built] [6:52][handmade.cpp: Note that the DEBUG_VALUE should have appeared in the debug view] diff --git a/cmuratori/hero/code/code252.hmml b/cmuratori/hero/code/code252.hmml index 6a03f7e..679579c 100644 --- a/cmuratori/hero/code/code252.hmml +++ b/cmuratori/hero/code/code252.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allowing Debug Value Edits" vod_platform=youtube id=OsJJizXWN_A annotator=Miblo] +[video output=day252 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allowing Debug Value Edits" vod_platform=youtube id=OsJJizXWN_A annotator=Miblo] [1:32][Recap and set the stage for the day] [3:07][Consider how to proceed in making the debug values editable] [4:23][handmade_debug_interface.h: Introduce DEBUGEditEvent in DEBUG_VALUE which allows setting the Event to a new value] diff --git a/cmuratori/hero/code/code253.hmml b/cmuratori/hero/code/code253.hmml index f1d2ae4..6600804 100644 --- a/cmuratori/hero/code/code253.hmml +++ b/cmuratori/hero/code/code253.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reenabling More Debug UI" vod_platform=youtube id=aK-E-D-jvds annotator=Miblo] +[video output=day253 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reenabling More Debug UI" vod_platform=youtube id=aK-E-D-jvds annotator=Miblo] [1:14][Run the game, try out the debug system and set the stage for the day] [3:27][build.bat: Switch to -Od] [4:09][handmade_debug.cpp: Change StartAtLastSlash to ShowEntireGUID] diff --git a/cmuratori/hero/code/code254.hmml b/cmuratori/hero/code/code254.hmml index 863c1e9..8086603 100644 --- a/cmuratori/hero/code/code254.hmml +++ b/cmuratori/hero/code/code254.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reenabling Profiling" vod_platform=youtube id=b48NmnVEvu8 annotator=Miblo] +[video output=day254 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reenabling Profiling" vod_platform=youtube id=b48NmnVEvu8 annotator=Miblo] [1:31][Run the game and propose getting the profiling system back in some semblance of working order] [7:31][handmade_debug.cpp: Reacquaint ourselves with CollateDebugRecords] [12:15][Savour the moment][quote 421] diff --git a/cmuratori/hero/code/code255.hmml b/cmuratori/hero/code/code255.hmml index 4a8c246..5fe07a9 100644 --- a/cmuratori/hero/code/code255.hmml +++ b/cmuratori/hero/code/code255.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Building a Profile Tree" vod_platform=youtube id=6Ym-Nq1g7-s annotator=Miblo] +[video output=day255 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Building a Profile Tree" vod_platform=youtube id=6Ym-Nq1g7-s annotator=Miblo] [0:11][Set the stage for the day] [0:32][Problem #1: No fast way to get out the profiling information for the previous frame] [1:06][Problem #2: In order to print out the profile view we need some concept of the nesting of calls inside one another] diff --git a/cmuratori/hero/code/code256.hmml b/cmuratori/hero/code/code256.hmml index 3c9a547..b44632e 100644 --- a/cmuratori/hero/code/code256.hmml +++ b/cmuratori/hero/code/code256.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="XBox Controller Stalls and Fixing GL Blit Gamma" vod_platform=youtube id=FRzg9eYHnTw annotator=Miblo] +[video output=day256 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="XBox Controller Stalls and Fixing GL Blit Gamma" vod_platform=youtube id=FRzg9eYHnTw annotator=Miblo] [0:08][Hype 4coder 4.0.2 super] [2:36][Recap and set the stage for the day] [3:09][Run the game and view the current state of the profiler] diff --git a/cmuratori/hero/code/code257.hmml b/cmuratori/hero/code/code257.hmml index 40a436e..7a1511c 100644 --- a/cmuratori/hero/code/code257.hmml +++ b/cmuratori/hero/code/code257.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Some Win32 Issues" vod_platform=youtube id=HOZQmCXJjmE annotator=Miblo] +[video output=day257 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Some Win32 Issues" vod_platform=youtube id=HOZQmCXJjmE annotator=Miblo] [0:22][Set the stage for the day] [1:59][build.bat: Introduce and check for HANDMADE_STREAMING environment variable] [6:55]["Where are you, Mr. Environment Variables?"][quote 432] diff --git a/cmuratori/hero/code/code258.hmml b/cmuratori/hero/code/code258.hmml index 596e3c9..bbe86aa 100644 --- a/cmuratori/hero/code/code258.hmml +++ b/cmuratori/hero/code/code258.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing Profiling Across Code Reloads" vod_platform=youtube id=UxV5GFeCEAc annotator=Miblo] +[video output=day258 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing Profiling Across Code Reloads" vod_platform=youtube id=UxV5GFeCEAc annotator=Miblo] [0:39][handmade.prj: Move the .prj files from the code to the root directory] [1:11][Recap and set the stage for the day] [2:38][Run the game, do a hot-reload and note that the profile is busted] diff --git a/cmuratori/hero/code/code259.hmml b/cmuratori/hero/code/code259.hmml index bb13e5e..b46b971 100644 --- a/cmuratori/hero/code/code259.hmml +++ b/cmuratori/hero/code/code259.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL and Software Renderer Cleanup" vod_platform=youtube id=wUbe27tz8Gg annotator=Miblo] +[video output=day259 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL and Software Renderer Cleanup" vod_platform=youtube id=wUbe27tz8Gg annotator=Miblo] [0:08][Recap and set the stage for the day] [1:30][Run the game and demonstrate how we'd like to develop the profiler] [6:10][handmade_debug.cpp: Look through the profiler code] diff --git a/cmuratori/hero/code/code260.hmml b/cmuratori/hero/code/code260.hmml index 701b91c..9a0edcb 100644 --- a/cmuratori/hero/code/code260.hmml +++ b/cmuratori/hero/code/code260.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Drill-down in the Profiler" vod_platform=youtube id=wklr6ogongg annotator=Miblo] +[video output=day260 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Drill-down in the Profiler" vod_platform=youtube id=wklr6ogongg annotator=Miblo] [0:58][Run the game and consider how to develop the profiler] [5:10][handmade_debug.cpp: Make DrawProfileIn do PushRectOutline instead of PushRect] [5:56][handmade_render_group.cpp: Introduce a PushRectOutline that takes the same arguments as PushRect] diff --git a/cmuratori/hero/code/code261.hmml b/cmuratori/hero/code/code261.hmml index dbf77ae..e03e3c5 100644 --- a/cmuratori/hero/code/code261.hmml +++ b/cmuratori/hero/code/code261.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing to Static Frame Arrays" vod_platform=youtube id=esRhxNS0Ee8 annotator=Miblo] +[video output=day261 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing to Static Frame Arrays" vod_platform=youtube id=esRhxNS0Ee8 annotator=Miblo] [1:48][handmade_debug.cpp: Initialise the ProfileGraph dimensions to something relatively large] [4:01][Run the game, see the profile at a more useable default size and set the stage for the day] [5:42][handmade_debug.cpp: Introduce DrawFrameBars which draws stacked bars for multiple frames] diff --git a/cmuratori/hero/code/code262.hmml b/cmuratori/hero/code/code262.hmml index 4749d31..9cb8f72 100644 --- a/cmuratori/hero/code/code262.hmml +++ b/cmuratori/hero/code/code262.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing Multi-frame Profile Graphs" vod_platform=youtube id=I9W5TVj4BT0 annotator=Miblo] +[video output=day262 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing Multi-frame Profile Graphs" vod_platform=youtube id=I9W5TVj4BT0 annotator=Miblo] [1:04][Recap and set the stage for the day] [3:29][Apologise to folks not on the 4coder bandwagon yet][quote 455] [3:37][handmade_debug.cpp: Consider how to unify Element creation] diff --git a/cmuratori/hero/code/code263.hmml b/cmuratori/hero/code/code263.hmml index 94d9324..d23ae9b 100644 --- a/cmuratori/hero/code/code263.hmml +++ b/cmuratori/hero/code/code263.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Debug Frame Slider" vod_platform=youtube id=NgWclbqkXJg annotator=Miblo] +[video output=day263 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Debug Frame Slider" vod_platform=youtube id=NgWclbqkXJg annotator=Miblo] [0:49][Run the game and set the stage for the day] [1:56]["You feel me, dawg?"][quote 461] [2:47][handmade_debug.cpp: Introduce case DebugType_LastFrameInfo and _DebugMemoryInfo and tie them into the system] diff --git a/cmuratori/hero/code/code264.hmml b/cmuratori/hero/code/code264.hmml index 67b0837..378d8e4 100644 --- a/cmuratori/hero/code/code264.hmml +++ b/cmuratori/hero/code/code264.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Buttons to the Profiler" vod_platform=youtube id=y7-phAHpweU annotator=Miblo] +[video output=day264 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Buttons to the Profiler" vod_platform=youtube id=y7-phAHpweU annotator=Miblo] [0:39][Recap and set the stage for the day] [2:23][handmade_debug.cpp: Switch to using the full memory arena] [4:09][handmade_debug.cpp: Rework DEBUGDrawElement with the ability to switch an Element's type] diff --git a/cmuratori/hero/code/code265.hmml b/cmuratori/hero/code/code265.hmml index 5d5d686..f26bc16 100644 --- a/cmuratori/hero/code/code265.hmml +++ b/cmuratori/hero/code/code265.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the UI Layout Code" vod_platform=youtube id=BHEJh9Yvsxc annotator=Miblo] +[video output=day265 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the UI Layout Code" vod_platform=youtube id=BHEJh9Yvsxc annotator=Miblo] [0:01][Welcome to this special day][quote 465] [1:38][Recap and set the stage for the day] [4:54][handmade_debug.cpp: Implement a pause interaction with the FrameSlider] diff --git a/cmuratori/hero/code/code266.hmml b/cmuratori/hero/code/code266.hmml index fbcbb7c..70dc1f2 100644 --- a/cmuratori/hero/code/code266.hmml +++ b/cmuratori/hero/code/code266.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Top Clocks Profile View" vod_platform=youtube id=qYGNxUu6tjI annotator=Miblo] +[video output=day266 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Top Clocks Profile View" vod_platform=youtube id=qYGNxUu6tjI annotator=Miblo] [1:35][A few words on using third-party debugging tools or reusing ones own across projects] [3:14][Launch the game and set the stage for the day] [7:08][handmade_debug.cpp: Provide the ability to print debug elements in descending order of cycle counts] diff --git a/cmuratori/hero/code/code267.hmml b/cmuratori/hero/code/code267.hmml index 88b5234..826df00 100644 --- a/cmuratori/hero/code/code267.hmml +++ b/cmuratori/hero/code/code267.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Per-Element Clipping Rectangles" vod_platform=youtube id=WX6r6S5Fm0I annotator=Miblo] +[video output=day267 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Per-Element Clipping Rectangles" vod_platform=youtube id=WX6r6S5Fm0I annotator=Miblo] [1:00][Recap and set the stage for the day] [5:07][Pig Hat Time] [5:14][handmade_debug.h: Add Duration and DurationOfChildren to debug_profile_node in order to separate out the clocks] diff --git a/cmuratori/hero/code/code268.hmml b/cmuratori/hero/code/code268.hmml index cc0d438..815391c 100644 --- a/cmuratori/hero/code/code268.hmml +++ b/cmuratori/hero/code/code268.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Consolidating Debug Links and Groups" vod_platform=youtube id=r5Lld9FderU annotator=Miblo] +[video output=day268 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Consolidating Debug Links and Groups" vod_platform=youtube id=r5Lld9FderU annotator=Miblo] [1:50][Recap and set the stage for the day] [6:59][handmade_debug.cpp: Delete a load of superfluous code] [8:50][4coder: Rare crash] diff --git a/cmuratori/hero/code/code269.hmml b/cmuratori/hero/code/code269.hmml index d16e2a7..e3bacde 100644 --- a/cmuratori/hero/code/code269.hmml +++ b/cmuratori/hero/code/code269.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Menu Drawing" vod_platform=youtube id=tITcs17P-lU annotator=Miblo] +[video output=day269 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Menu Drawing" vod_platform=youtube id=tITcs17P-lU annotator=Miblo] [1:06][Recap and set the stage for the day] [3:22][handmade_debug.cpp: Just pass the Group to the DrawTreeLink call in DrawTrees] [4:25][View the Root menu in the profiler] diff --git a/cmuratori/hero/code/code270.hmml b/cmuratori/hero/code/code270.hmml index 35545f6..7374ab5 100644 --- a/cmuratori/hero/code/code270.hmml +++ b/cmuratori/hero/code/code270.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Traversable Points" vod_platform=youtube id=xNijkdjXhjg annotator=Miblo] +[video output=day270 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Traversable Points" vod_platform=youtube id=xNijkdjXhjg annotator=Miblo] [0:40][Recap and set the stage for the day] [2:35][Design: Room-based camera movement] [5:19][handmade_world_mode.cpp, handmade_asset.cpp and handmade.cpp: Delete the ground chunks] diff --git a/cmuratori/hero/code/code271.hmml b/cmuratori/hero/code/code271.hmml index fcdee10..ebd8d61 100644 --- a/cmuratori/hero/code/code271.hmml +++ b/cmuratori/hero/code/code271.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hybrid Tile-based Movement" vod_platform=youtube id=S5VtscjLjnk annotator=Miblo] +[video output=day271 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hybrid Tile-based Movement" vod_platform=youtube id=S5VtscjLjnk annotator=Miblo] [0:20][Recap and set the stage for the day] [3:52][handmade_sim_region.h and handmade_world_mode.cpp: Disassociate the hero's head and body] [17:37][Run the game and move the head] diff --git a/cmuratori/hero/code/code272.hmml b/cmuratori/hero/code/code272.hmml index 866f0f9..5ea98ef 100644 --- a/cmuratori/hero/code/code272.hmml +++ b/cmuratori/hero/code/code272.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Explicit Movement Transitions" vod_platform=youtube id=4fJTdIkFwIE annotator=Miblo] +[video output=day272 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Explicit Movement Transitions" vod_platform=youtube id=4fJTdIkFwIE annotator=Miblo] [0:19][Announcement: Handmade Network has launched[ref site="Handmade Network" url="https://handmade.network/"]] diff --git a/cmuratori/hero/code/code273.hmml b/cmuratori/hero/code/code273.hmml index 1927a69..800ecaa 100644 --- a/cmuratori/hero/code/code273.hmml +++ b/cmuratori/hero/code/code273.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animation Overview" vod_platform=youtube id=ytZbsYjtD_w annotator=Miblo] +[video output=day273 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animation Overview" vod_platform=youtube id=ytZbsYjtD_w annotator=Miblo] [1:00][Recap and set the stage for the day] [2:23][Blackboard: Animation] [4:42][Blackboard: Exposure Time and Intervals of Time] diff --git a/cmuratori/hero/code/code274.hmml b/cmuratori/hero/code/code274.hmml index 0909a73..98612b4 100644 --- a/cmuratori/hero/code/code274.hmml +++ b/cmuratori/hero/code/code274.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Dynamic Animation with Springs" vod_platform=youtube id=0MWGM4pte-I annotator=Miblo] +[video output=day274 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Dynamic Animation with Springs" vod_platform=youtube id=0MWGM4pte-I annotator=Miblo] [0:42][Recap and set the stage for the day] [1:52][handmade.cpp and handmade_config.h: Introduce and make Global_Timestep_Percentage editable with the debug system] [4:00][Run the game reduce that Global_Timestep_Percentage] diff --git a/cmuratori/hero/code/code275.hmml b/cmuratori/hero/code/code275.hmml index 52b80e8..f40ca0a 100644 --- a/cmuratori/hero/code/code275.hmml +++ b/cmuratori/hero/code/code275.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Passing Rotation and Shear to the Renderer" vod_platform=youtube id=kizKx0bdr3Q annotator=Miblo] +[video output=day275 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Passing Rotation and Shear to the Renderer" vod_platform=youtube id=kizKx0bdr3Q annotator=Miblo] [1:32][Recap and set the stage for the day] [2:41][A few words on responsiveness vs aesthetics] [6:01][handmade_world_mode.cpp: Introduce GetClosestTraversable to enable the HeroHead as well as the HeroBody to search for and snap to the closest point] diff --git a/cmuratori/hero/code/code276.hmml b/cmuratori/hero/code/code276.hmml index c88a3c7..95ac6ef 100644 --- a/cmuratori/hero/code/code276.hmml +++ b/cmuratori/hero/code/code276.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tuning the Body Animation" vod_platform=youtube id=xdtQ9fFru0g annotator=Miblo] +[video output=day276 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tuning the Body Animation" vod_platform=youtube id=xdtQ9fFru0g annotator=Miblo] [1:17][Run the game, demo our problem with the stretching not looking great and consider moving to a more top-down perspective] [3:12][Blackboard: How top-down art may solve the detachment problem] [5:15][Run the game and demo the lack of collision on the side walls] diff --git a/cmuratori/hero/code/code277.hmml b/cmuratori/hero/code/code277.hmml index f4ae24d..732783e 100644 --- a/cmuratori/hero/code/code277.hmml +++ b/cmuratori/hero/code/code277.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Sparse Entity System" vod_platform=youtube id=wqpxe-s9xyw annotator=Miblo] +[video output=day277 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Sparse Entity System" vod_platform=youtube id=wqpxe-s9xyw annotator=Miblo] [0:14][Introduce Milton[ref site="Handmade Network" page="Milton" diff --git a/cmuratori/hero/code/code278.hmml b/cmuratori/hero/code/code278.hmml index c79f2ac..fd0e843 100644 --- a/cmuratori/hero/code/code278.hmml +++ b/cmuratori/hero/code/code278.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entity Storage into World Chunks" vod_platform=youtube id=JqflfK5i8qk annotator=Miblo] +[video output=day278 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entity Storage into World Chunks" vod_platform=youtube id=JqflfK5i8qk annotator=Miblo] [1:29][Recap and set the stage for the day] [5:14][Blackboard: How the simulation region streams in entities as you traverse the world] [9:32][Blackboard: Entities referencing each other] diff --git a/cmuratori/hero/code/code279.hmml b/cmuratori/hero/code/code279.hmml index b95d65c..cdc371b 100644 --- a/cmuratori/hero/code/code279.hmml +++ b/cmuratori/hero/code/code279.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing World Chunk Entity Storage" vod_platform=youtube id=yJjVBh7r9-s annotator=Miblo] +[video output=day279 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing World Chunk Entity Storage" vod_platform=youtube id=yJjVBh7r9-s annotator=Miblo] [0:52][Blackboard: Why make an entity system using a SOA (Struct of Arrays) rather than an AOS (Array of Structs)] [4:53][Recap and set the stage for the day] [9:50][Explain the problem with pulling the world_entity_blocks out of the ChunkHash] diff --git a/cmuratori/hero/code/code280.hmml b/cmuratori/hero/code/code280.hmml index 142693a..92fddc6 100644 --- a/cmuratori/hero/code/code280.hmml +++ b/cmuratori/hero/code/code280.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaned Up Streaming Entity Simulation" vod_platform=youtube id=jdknM4bPUcc annotator=Miblo] +[video output=day280 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaned Up Streaming Entity Simulation" vod_platform=youtube id=jdknM4bPUcc annotator=Miblo] [0:50][Recap and set the stage for the day] [1:11][handmade_world.cpp: Get the sizeof *Source in PackEntityIntoChunk] [2:15][handmade_sim_region.h: Rename StorageIndex to ID in entity] diff --git a/cmuratori/hero/code/code281.hmml b/cmuratori/hero/code/code281.hmml index 93cbd2b..a9a9563 100644 --- a/cmuratori/hero/code/code281.hmml +++ b/cmuratori/hero/code/code281.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animating the Camera Between Rooms" vod_platform=youtube id=TFBo2ziKOW0 annotator=Miblo] +[video output=day281 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Animating the Camera Between Rooms" vod_platform=youtube id=TFBo2ziKOW0 annotator=Miblo] [1:28][Recap and set the stage for the day] [3:24][handmade_sim_region.cpp: Investigate the glitch in the room-based camera movement] [6:23][Blackboard: How the camera was being moved] diff --git a/cmuratori/hero/code/code282.hmml b/cmuratori/hero/code/code282.hmml index cc214ee..654f897 100644 --- a/cmuratori/hero/code/code282.hmml +++ b/cmuratori/hero/code/code282.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Z Movement and Camera Motion" vod_platform=youtube id=8f9ggBzjUBE annotator=Miblo] +[video output=day282 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Z Movement and Camera Motion" vod_platform=youtube id=8f9ggBzjUBE annotator=Miblo] [2:40][Run the game and show where we're at] [5:49][handmade_world_mode.cpp: Randomise the heights of the traversable points] [9:45][Run the game and traverse the room] diff --git a/cmuratori/hero/code/code283.hmml b/cmuratori/hero/code/code283.hmml index 29a6a74..29ae422 100644 --- a/cmuratori/hero/code/code283.hmml +++ b/cmuratori/hero/code/code283.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Standing-on a More Rigorous Concept" vod_platform=youtube id=tZSwGCgo-uE annotator=Miblo] +[video output=day283 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making Standing-on a More Rigorous Concept" vod_platform=youtube id=tZSwGCgo-uE annotator=Miblo] [4:06][@thesizik][Do you have any favorite insects?] [4:31][@Miblo][Good evening, Casey! Had a bit of an "uh-oh" moment today while annotating as you went to the episode guide to double-check what Day it was, but the expected previous day was not there...] [6:18][@andrewjdr][If there are multiple GL contexts in use at the same time, and both have workloads simultaneously, how does the GPU / GPU driver decide to schedule those workloads? I noticed that windows seems to prioritize the active window's OpenGL context if you happen to have multiple OpenGL apps open at the same time (i.e. the active window will perform much better), so that's kind of interesting...] diff --git a/cmuratori/hero/code/code284.hmml b/cmuratori/hero/code/code284.hmml index f35735d..181dc91 100644 --- a/cmuratori/hero/code/code284.hmml +++ b/cmuratori/hero/code/code284.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reorganizing the Head and Body Code" vod_platform=youtube id=sEHDoJnZSKY annotator=Miblo] +[video output=day284 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reorganizing the Head and Body Code" vod_platform=youtube id=sEHDoJnZSKY annotator=Miblo] [1:40][Run the game and recap our current situation] [2:56][Stand on the FloatyThingForNow and note a bug] [3:44][handmade_world_mode.cpp: Set Found = false for the HeroBody] diff --git a/cmuratori/hero/code/code285.hmml b/cmuratori/hero/code/code285.hmml index d7e9f14..c16961b 100644 --- a/cmuratori/hero/code/code285.hmml +++ b/cmuratori/hero/code/code285.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transactional Occupation of Traversables" vod_platform=youtube id=HXLr8tSGIX0 annotator=Miblo] +[video output=day285 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Transactional Occupation of Traversables" vod_platform=youtube id=HXLr8tSGIX0 annotator=Miblo] [1:35][4coder: New version 4.0.5, with indentation and scrollbars] [3:25][Recap and set the stage for the day] [4:36][handmade_world_mode.cpp: Disable the slope] diff --git a/cmuratori/hero/code/code286.hmml b/cmuratori/hero/code/code286.hmml index 10ffeb4..da61af7 100644 --- a/cmuratori/hero/code/code286.hmml +++ b/cmuratori/hero/code/code286.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting to Decouple Entity Behavior" vod_platform=youtube id=rGwAhNAYCKg annotator=Miblo] +[video output=day286 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting to Decouple Entity Behavior" vod_platform=youtube id=rGwAhNAYCKg annotator=Miblo] [1:05][Recap and set the stage for the day] [6:28][handmade_entity.h: Consider how to eliminate Type from the entity struct] [11:30][handmade_entity.h: Move things off the Type variable that need not be there] diff --git a/cmuratori/hero/code/code287.hmml b/cmuratori/hero/code/code287.hmml index 4d1aaef..f30b82d 100644 --- a/cmuratori/hero/code/code287.hmml +++ b/cmuratori/hero/code/code287.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Brains" vod_platform=youtube id=gwtSqvoxU14 annotator=Miblo] +[video output=day287 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Brains" vod_platform=youtube id=gwtSqvoxU14 annotator=Miblo] [0:56][Blackboard: Dynamically controlling snake-like multi-segment entities] [6:55][Blackboard: Controller templates] [14:42][4coder: Reproduce the pane creation bug] diff --git a/cmuratori/hero/code/code288.hmml b/cmuratori/hero/code/code288.hmml index 36af37a..4fa2fe0 100644 --- a/cmuratori/hero/code/code288.hmml +++ b/cmuratori/hero/code/code288.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Brains" vod_platform=youtube id=aY2Lujojmg0 annotator=Miblo] +[video output=day288 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Brains" vod_platform=youtube id=aY2Lujojmg0 annotator=Miblo] [1:00][Recap and set the stage for the day] [2:41][handmade_sim_region.cpp: Introduce GetOrAddBrain] [7:15][handmade_sim_region.cpp: Introduce a GetHashFromID for brain_id] diff --git a/cmuratori/hero/code/code289.hmml b/cmuratori/hero/code/code289.hmml index c971d0a..abe4d9c 100644 --- a/cmuratori/hero/code/code289.hmml +++ b/cmuratori/hero/code/code289.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Decoupling Visuals from Entity Types" vod_platform=youtube id=9J-ZOWPLYM4 annotator=Miblo] +[video output=day289 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Decoupling Visuals from Entity Types" vod_platform=youtube id=9J-ZOWPLYM4 annotator=Miblo] [1:20][Recap and set the stage for the day] [2:32][A few words on deciding when to make new files] [3:58][handmade_brain.h and handmade_brain.cpp: Add these files and pull in the brain code from handmade_entity.h and handmade_world_mode.cpp] diff --git a/cmuratori/hero/code/code290.hmml b/cmuratori/hero/code/code290.hmml index 4b4c16e..8a15331 100644 --- a/cmuratori/hero/code/code290.hmml +++ b/cmuratori/hero/code/code290.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Separated Rendering" vod_platform=youtube id=DCd-abDxftc annotator=Miblo] +[video output=day290 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Separated Rendering" vod_platform=youtube id=DCd-abDxftc annotator=Miblo] [1:01][handmade_sim_region.cpp: Remove the EntityOverlapsRectangle call in BeginSim] [3:58][Run the game and set the stage for moving all the entities to the new path] [4:45][handmade_brain.cpp: Make ExecuteBrain use the ddP2 rather than the ddP] diff --git a/cmuratori/hero/code/code291.hmml b/cmuratori/hero/code/code291.hmml index ee493b5..40fe133 100644 --- a/cmuratori/hero/code/code291.hmml +++ b/cmuratori/hero/code/code291.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hopping Monstar and Occupying Trees" vod_platform=youtube id=wAqPNROQZas annotator=Miblo] +[video output=day291 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hopping Monstar and Occupying Trees" vod_platform=youtube id=wAqPNROQZas annotator=Miblo] [1:48][Run the game and set the stage for the day] [3:17][handmade_brain.cpp: Give ExecuteBrain the ability to move the Monstar] [6:13][handmade_world_mode.cpp: Make AddMonstar take a traversable_reference] diff --git a/cmuratori/hero/code/code292.hmml b/cmuratori/hero/code/code292.hmml index bd23822..6d42c50 100644 --- a/cmuratori/hero/code/code292.hmml +++ b/cmuratori/hero/code/code292.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Snakes" vod_platform=youtube id=NarF07FefqQ annotator=Miblo] +[video output=day292 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Snakes" vod_platform=youtube id=NarF07FefqQ annotator=Miblo] [1:14][Recap and plan to implement a floating method of movement and make a snake] [3:29][handmade_entity.h: Add MovementMode_Floating to entity_movement_mode] [4:48][handmade_brain.cpp: Enable the Familiar to move towards the closest Hero] diff --git a/cmuratori/hero/code/code293.hmml b/cmuratori/hero/code/code293.hmml index 16379e9..20b3945 100644 --- a/cmuratori/hero/code/code293.hmml +++ b/cmuratori/hero/code/code293.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Familiars" vod_platform=youtube id=DIssBI1JBz8 annotator=Miblo] +[video output=day293 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Familiars" vod_platform=youtube id=DIssBI1JBz8 annotator=Miblo] [2:02][Recap and set the stage for the day] [5:22][handmade_entity.h: Add MovementMode_Floating to entity_movement_mode] [10:00][Consider where the delineation between MovementMode and Brain should be] diff --git a/cmuratori/hero/code/code294.hmml b/cmuratori/hero/code/code294.hmml index 1b63ce7..603cba1 100644 --- a/cmuratori/hero/code/code294.hmml +++ b/cmuratori/hero/code/code294.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding the Glove" vod_platform=youtube id=kOHHWPmo1D0 annotator=Miblo] +[video output=day294 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding the Glove" vod_platform=youtube id=kOHHWPmo1D0 annotator=Miblo] [0:48][Prepare for combat] [7:41][handmade_world_mode.cpp: Make AddPlayer initialise a Glove and call AddPiece for it] [10:33][handmade_brain.h: Add Glove to brain_hero] diff --git a/cmuratori/hero/code/code295.hmml b/cmuratori/hero/code/code295.hmml index 7e8e4bd..e480467 100644 --- a/cmuratori/hero/code/code295.hmml +++ b/cmuratori/hero/code/code295.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Stacking Rooms for Z Layer Debugging" vod_platform=youtube id=N0K0eHnVc1Y annotator=Miblo] +[video output=day295 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Stacking Rooms for Z Layer Debugging" vod_platform=youtube id=N0K0eHnVc1Y annotator=Miblo] [0:11][On determining which systems impact many other systems, and solidifying them early on] [2:45][What Mike Acton had to say about the potential costliness of some game design decisions[ref site="Molly Rocket" diff --git a/cmuratori/hero/code/code296.hmml b/cmuratori/hero/code/code296.hmml index e0ce151..e5844da 100644 --- a/cmuratori/hero/code/code296.hmml +++ b/cmuratori/hero/code/code296.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fog and Alpha for Layers" vod_platform=youtube id=kAHKTNjaD-Y annotator=Miblo] +[video output=day296 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fog and Alpha for Layers" vod_platform=youtube id=kAHKTNjaD-Y annotator=Miblo] [2:07][Recap and set the stage for the day] [3:36][handmade_world_mode.cpp: Set Volumes to not be Upright in UpdateAndRenderWorld] [4:38][Run the game and see the difference that makes] diff --git a/cmuratori/hero/code/code297.hmml b/cmuratori/hero/code/code297.hmml index 568cbd6..ce89680 100644 --- a/cmuratori/hero/code/code297.hmml +++ b/cmuratori/hero/code/code297.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Entities into Z Layers" vod_platform=youtube id=hpoNQhVY634 annotator=Miblo] +[video output=day297 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Entities into Z Layers" vod_platform=youtube id=hpoNQhVY634 annotator=Miblo] [1:04][Recap and set the stage for the day] [2:10][Demo the problem with alpha blending textures separately] [4:20][handmade_render_group.h: Consider adding slice information to render_entry_cliprect] diff --git a/cmuratori/hero/code/code298.hmml b/cmuratori/hero/code/code298.hmml index 8dcd0e6..c24cf53 100644 --- a/cmuratori/hero/code/code298.hmml +++ b/cmuratori/hero/code/code298.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Sort Keys Part 1" vod_platform=youtube id=3KsEO5-sYBQ annotator=Miblo] +[video output=day298 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Sort Keys Part 1" vod_platform=youtube id=3KsEO5-sYBQ annotator=Miblo] [0:37][On the two kinds of Z-values necessary for presenting multiple layers of rooms to the viewer] [2:39][Recap and set the stage for the day] [6:16][handmade_render_group.cpp: Look through how the perspective transform is currently programmed] diff --git a/cmuratori/hero/code/code299.hmml b/cmuratori/hero/code/code299.hmml index 1865476..91f5b22 100644 --- a/cmuratori/hero/code/code299.hmml +++ b/cmuratori/hero/code/code299.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Sort Keys Part 2" vod_platform=youtube id=EbaM2XwuscQ annotator=Miblo] +[video output=day299 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Sort Keys Part 2" vod_platform=youtube id=EbaM2XwuscQ annotator=Miblo] [0:11][Recap and set the stage for the day] [1:51][Blackboard: Tile Z Sorting] [2:38][Blackboard: How to sort when looking directly top-down] diff --git a/cmuratori/hero/code/code300.hmml b/cmuratori/hero/code/code300.hmml index cc91ade..bc1f48a 100644 --- a/cmuratori/hero/code/code300.hmml +++ b/cmuratori/hero/code/code300.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing from Sort Keys to Sort Rules" vod_platform=youtube id=jrKVyIfv1ek annotator=Miblo] +[video output=day300 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing from Sort Keys to Sort Rules" vod_platform=youtube id=jrKVyIfv1ek annotator=Miblo] [0:49][How 2.5D Sorting Works in River City Ransom: Underground[ref site="Andrew Russell" page="How 2.5D Sorting Works in River City Ransom: Underground" diff --git a/cmuratori/hero/code/code301.hmml b/cmuratori/hero/code/code301.hmml index 636dd8b..3c4ece4 100644 --- a/cmuratori/hero/code/code301.hmml +++ b/cmuratori/hero/code/code301.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sorting with Sprite Bounds" vod_platform=youtube id=SSgo0UdesQg annotator=Miblo] +[video output=day301 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sorting with Sprite Bounds" vod_platform=youtube id=SSgo0UdesQg annotator=Miblo] [0:02][Recap and set the stage for the day] [4:37][handmade_sort.cpp: Double check that the sense of IsInFrontOf() is correct] [5:46][handmade_sort.cpp: Consider how to get sorting into layers for free, and turning the whole renderer into sprite-bound sorting] diff --git a/cmuratori/hero/code/code302.hmml b/cmuratori/hero/code/code302.hmml index 2969b9f..8a59473 100644 --- a/cmuratori/hero/code/code302.hmml +++ b/cmuratori/hero/code/code302.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Confirming No Total Ordering" vod_platform=youtube id=DH_QepPBeaI annotator=Miblo] +[video output=day302 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Confirming No Total Ordering" vod_platform=youtube id=DH_QepPBeaI annotator=Miblo] [1:15][handmade_render_group.cpp: Correctly compute the SpriteBound values in GetBoundFor()] [2:23][Recap and set the stage for the day] [6:42][handmade_render_group.cpp: Enable SortEntries() to do a total ordering check] diff --git a/cmuratori/hero/code/code303.hmml b/cmuratori/hero/code/code303.hmml index 474a8cd..3f1302d 100644 --- a/cmuratori/hero/code/code303.hmml +++ b/cmuratori/hero/code/code303.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Trying Separate Y and Z Sorts" vod_platform=youtube id=93NKevv-n6k annotator=Miblo] +[video output=day303 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Trying Separate Y and Z Sorts" vod_platform=youtube id=93NKevv-n6k annotator=Miblo] [0:50][Be our own code fairy][quote 496] [1:16][Recap and set the stage for the day] [1:57][Z-buffering is not a good idea for 2D stuff] diff --git a/cmuratori/hero/code/code304.hmml b/cmuratori/hero/code/code304.hmml index a737273..6274902 100644 --- a/cmuratori/hero/code/code304.hmml +++ b/cmuratori/hero/code/code304.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Building and Traversing Graphs" vod_platform=youtube id=4GmDwulUkPA annotator=Miblo] +[video output=day304 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Building and Traversing Graphs" vod_platform=youtube id=4GmDwulUkPA annotator=Miblo] [1:14][Recap and set the stage for the day] [2:52][handmade_sort.cpp: Briefly look through what BuildSpriteGraph() does] [5:08][Blackboard: Graph sort] diff --git a/cmuratori/hero/code/code305.hmml b/cmuratori/hero/code/code305.hmml index b679c98..213d199 100644 --- a/cmuratori/hero/code/code305.hmml +++ b/cmuratori/hero/code/code305.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using Memory Arenas in the Platform Layer" vod_platform=youtube id=ImWSMzMe1kI annotator=Miblo] +[video output=day305 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using Memory Arenas in the Platform Layer" vod_platform=youtube id=ImWSMzMe1kI annotator=Miblo] [0:31][Recap and set the stage for the day] [2:02][handmade_opengl.cpp: Consider making this whole file platform independent] [4:58][handmade_platform.h: Consider moving platform_opengl_display_bitmap and platform_opengl_render_commands in from handmade_opengl.cpp] diff --git a/cmuratori/hero/code/code306.hmml b/cmuratori/hero/code/code306.hmml index 271198b..1220c74 100644 --- a/cmuratori/hero/code/code306.hmml +++ b/cmuratori/hero/code/code306.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Graph-based Sort" vod_platform=youtube id=bMjnXBR98UY annotator=Miblo] +[video output=day306 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Graph-based Sort" vod_platform=youtube id=bMjnXBR98UY annotator=Miblo] [0:11][Recap and set the stage for the day] [1:40][Run the game and see the current state] [3:51]["Let's use the word "evolucent""][quote 497] diff --git a/cmuratori/hero/code/code307.hmml b/cmuratori/hero/code/code307.hmml index 66ea1e0..0d51dcb 100644 --- a/cmuratori/hero/code/code307.hmml +++ b/cmuratori/hero/code/code307.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Visualizing Sort Groups" vod_platform=youtube id=PDg_4lBhTUI annotator=Miblo] +[video output=day307 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Visualizing Sort Groups" vod_platform=youtube id=PDg_4lBhTUI annotator=Miblo] [0:11][A few words on the bonuses of programming on stream] [2:07][Run the game and demo the bug] [2:40][handmade_world_mode.cpp: Reenable the else clause in AddStandardRoom() to generate the rest of the room] diff --git a/cmuratori/hero/code/code308.hmml b/cmuratori/hero/code/code308.hmml index b1abab9..837b8a3 100644 --- a/cmuratori/hero/code/code308.hmml +++ b/cmuratori/hero/code/code308.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Cycle Check" vod_platform=youtube id=trtrBITgktg annotator=Miblo] +[video output=day308 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Cycle Check" vod_platform=youtube id=trtrBITgktg annotator=Miblo] [0:13][Recap and set the stage for the day] [1:19][Run the game and show where we left things] [2:06][handmade_opengl.cpp: Make OpenGLRenderCommands() draw a black border around the render entries] diff --git a/cmuratori/hero/code/code309.hmml b/cmuratori/hero/code/code309.hmml index 6f27191..301e97f 100644 --- a/cmuratori/hero/code/code309.hmml +++ b/cmuratori/hero/code/code309.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Grid Partitioning for Overlap Testing" vod_platform=youtube id=BCiQcL_6ceM annotator=Miblo] +[video output=day309 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Grid Partitioning for Overlap Testing" vod_platform=youtube id=BCiQcL_6ceM annotator=Miblo] [0:09][Recap and set the stage for the day] [1:53][Run the game and see where we left off] [4:05][handmade_entity.cpp: Toggle off the volume highlighting in UpdateAndRenderEntities()] diff --git a/cmuratori/hero/code/code310.hmml b/cmuratori/hero/code/code310.hmml index 4a981ff..826f2a0 100644 --- a/cmuratori/hero/code/code310.hmml +++ b/cmuratori/hero/code/code310.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Sort Acceleration via Gridding" vod_platform=youtube id=maQL_OmS-kM annotator=Miblo] +[video output=day310 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Sort Acceleration via Gridding" vod_platform=youtube id=maQL_OmS-kM annotator=Miblo] [0:09][Recap and set the stage for the day] [1:43][win32_handmade.cpp: Toggle on GlobalShowSortGroups, run the game and view those graphs] [3:59][handmade_render.cpp: Accelerate BuildSpriteGraph() by making it loop through everything in each grid cell when we do an insertion] diff --git a/cmuratori/hero/code/code311.hmml b/cmuratori/hero/code/code311.hmml index 6034700..ad7c157 100644 --- a/cmuratori/hero/code/code311.hmml +++ b/cmuratori/hero/code/code311.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allowing Manual Sorting" vod_platform=youtube id=SkTRPn7pjfw annotator=Miblo] +[video output=day311 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Allowing Manual Sorting" vod_platform=youtube id=SkTRPn7pjfw annotator=Miblo] [0:10][Recap and set the stage for the day] [4:28][Plan to provide the ability to sort a collection of sprites] [5:38][Blackboard: Our options for sorting a collection of sprites] diff --git a/cmuratori/hero/code/code312.hmml b/cmuratori/hero/code/code312.hmml index 6e576e6..9c18a23 100644 --- a/cmuratori/hero/code/code312.hmml +++ b/cmuratori/hero/code/code312.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cross-entity Manual Sorting" vod_platform=youtube id=8ke6OKMFeAI annotator=Miblo] +[video output=day312 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cross-entity Manual Sorting" vod_platform=youtube id=8ke6OKMFeAI annotator=Miblo] [0:08][Recap and set the stage for the day with an embarassing confession] [1:35][Run the game and assess our current situation] [4:46][Blackboard: Manual Edge Specification] diff --git a/cmuratori/hero/code/code313.hmml b/cmuratori/hero/code/code313.hmml index 306e62d..cb374a8 100644 --- a/cmuratori/hero/code/code313.hmml +++ b/cmuratori/hero/code/code313.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Returning to Work on Z Layers" vod_platform=youtube id=PYdOZ_r9RLw annotator=Miblo] +[video output=day313 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Returning to Work on Z Layers" vod_platform=youtube id=PYdOZ_r9RLw annotator=Miblo] [0:11][Recap and set the stage for the day] [2:08][handmade_world_mode.cpp: Make AddStandardRoom() generate multiple layers, run the game and see how wrong the sorting is] [3:24][A few words of encouragement on exploratory programming and embracing the forward flow of the architecture] diff --git a/cmuratori/hero/code/code314.hmml b/cmuratori/hero/code/code314.hmml index cded728..6d7f392 100644 --- a/cmuratori/hero/code/code314.hmml +++ b/cmuratori/hero/code/code314.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Breaking Sprites into Layers" vod_platform=youtube id=I3pW6bQcxWE annotator=Miblo] +[video output=day314 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Breaking Sprites into Layers" vod_platform=youtube id=I3pW6bQcxWE annotator=Miblo] [0:43][Recap and set the stage for the day] [3:01][Run the game and see where we're at] [5:20][handmade_entity.cpp: Stop UpdateAndRenderEntities() from calling ConvertToLayerRelative() and instead calculate the RelativeLayer as worked out yesterday] diff --git a/cmuratori/hero/code/code315.hmml b/cmuratori/hero/code/code315.hmml index c665a77..50ff5bd 100644 --- a/cmuratori/hero/code/code315.hmml +++ b/cmuratori/hero/code/code315.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Un-reversing Sort Key Order" vod_platform=youtube id=jr55zspbhGc annotator=Miblo] +[video output=day315 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Un-reversing Sort Key Order" vod_platform=youtube id=jr55zspbhGc annotator=Miblo] [0:11][Recap and set the stage for the day] [2:07][Blackboard: Layered Sorting] [4:27][Blackboard: How we currently pull entities out of the simulation for sorting] diff --git a/cmuratori/hero/code/code316.hmml b/cmuratori/hero/code/code316.hmml index ab0e70e..7d86023 100644 --- a/cmuratori/hero/code/code316.hmml +++ b/cmuratori/hero/code/code316.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple Software Render Targets" vod_platform=youtube id=NROKpZtyj_o annotator=Miblo] +[video output=day316 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple Software Render Targets" vod_platform=youtube id=NROKpZtyj_o annotator=Miblo] [0:57][Recap and set the stage for the day] [1:31][Debugger: Step into OpenGLRenderCommands() and inspect the Header] [2:23][handmade_render_group.cpp: Make PushRenderElement_() correctly compute the Entry->Offset] diff --git a/cmuratori/hero/code/code317.hmml b/cmuratori/hero/code/code317.hmml index bf5939b..21eba3e 100644 --- a/cmuratori/hero/code/code317.hmml +++ b/cmuratori/hero/code/code317.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Alpha Blending Multiple Render Targets" vod_platform=youtube id=Wv2IAKs7W0A annotator=Miblo] +[video output=day317 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Alpha Blending Multiple Render Targets" vod_platform=youtube id=Wv2IAKs7W0A annotator=Miblo] [1:06][Run the game and show our current situation with render targets] [2:56][handmade_entity.cpp: Make UpdateAndRenderEntities() create two different ClipRects for the alpha and normal floors] [6:08][Run the game and see that the alpha stuff is gone] diff --git a/cmuratori/hero/code/code318.hmml b/cmuratori/hero/code/code318.hmml index 76a7000..c695f04 100644 --- a/cmuratori/hero/code/code318.hmml +++ b/cmuratori/hero/code/code318.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Render Target Blends and Clears" vod_platform=youtube id=HB4Dl8NyE2Q annotator=Miblo] +[video output=day318 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Render Target Blends and Clears" vod_platform=youtube id=HB4Dl8NyE2Q annotator=Miblo] [0:40][Run the game and set the stage for the day] [1:55][handmade_render.cpp: Accelerate BlendRenderTarget() with SIMD instructions] [11:06][Run the game and see that it's fine] diff --git a/cmuratori/hero/code/code319.hmml b/cmuratori/hero/code/code319.hmml index faf037a..463c086 100644 --- a/cmuratori/hero/code/code319.hmml +++ b/cmuratori/hero/code/code319.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inverse and Transpose Matrices" vod_platform=youtube id=9KaIB7PFWeE annotator=Miblo] +[video output=day319 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inverse and Transpose Matrices" vod_platform=youtube id=9KaIB7PFWeE annotator=Miblo] [0:17][Recap and set the stage for the day] [1:29][Blackboard: Skew UV Mapping] [3:48][Blackboard: A conceptual explanation of transforming a texture map] diff --git a/cmuratori/hero/code/code320.hmml b/cmuratori/hero/code/code320.hmml index 7aede6d..0aeac78 100644 --- a/cmuratori/hero/code/code320.hmml +++ b/cmuratori/hero/code/code320.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inverting a 2x2 Matrix by Hand" vod_platform=youtube id=kvSbiHrFKNk annotator=Miblo] +[video output=day320 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inverting a 2x2 Matrix by Hand" vod_platform=youtube id=kvSbiHrFKNk annotator=Miblo] [0:14][Recap and set the stage for the day] [1:54][Blackboard: Inverting a 2x2 Matrix] [3:28][Blackboard: Producing the four scalar equations for the inverse of the A matrix] diff --git a/cmuratori/hero/code/code321.hmml b/cmuratori/hero/code/code321.hmml index 8f7ac1b..df212fc 100644 --- a/cmuratori/hero/code/code321.hmml +++ b/cmuratori/hero/code/code321.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple OpenGL Render Targets" vod_platform=youtube id=kKj3wzpVrMo annotator=Miblo] +[video output=day321 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple OpenGL Render Targets" vod_platform=youtube id=kKj3wzpVrMo annotator=Miblo] [0:32][Recap and set the stage for the day] [2:27][Determine to enable the OpenGL renderer to work with multiple render targets like the software renderer] [4:34][Our two tasks: 1) Talking about render targets to OpenGL; 2) Using those render targets as textures] diff --git a/cmuratori/hero/code/code322.hmml b/cmuratori/hero/code/code322.hmml index 6060be1..d9ffd58 100644 --- a/cmuratori/hero/code/code322.hmml +++ b/cmuratori/hero/code/code322.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Multiple Display Aspect Ratios" vod_platform=youtube id=EKxPnlQ2ipI annotator=Miblo] +[video output=day322 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Multiple Display Aspect Ratios" vod_platform=youtube id=EKxPnlQ2ipI annotator=Miblo] [0:10][Recap and set the stage for the day] [0:35][Consult the issues[ref site="GitHub" diff --git a/cmuratori/hero/code/code323.hmml b/cmuratori/hero/code/code323.hmml index 0c40310..a7529ba 100644 --- a/cmuratori/hero/code/code323.hmml +++ b/cmuratori/hero/code/code323.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing Miscellaneous Bugs" vod_platform=youtube id=YssqJ7eDnv0 annotator=Miblo] +[video output=day323 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing Miscellaneous Bugs" vod_platform=youtube id=YssqJ7eDnv0 annotator=Miblo] [1:09][Run the game and note a bug when walking up the stairs after resizing the window] [5:52][Consult docs.GL to see whether or not the glScissor operates relative to the viewport[ref site="docs.GL" diff --git a/cmuratori/hero/code/code324.hmml b/cmuratori/hero/code/code324.hmml index 63324a4..7d475ea 100644 --- a/cmuratori/hero/code/code324.hmml +++ b/cmuratori/hero/code/code324.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Away from Multiple OpenGL Contexts" vod_platform=youtube id=B5LcmXI1O6w annotator=Miblo] +[video output=day324 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Away from Multiple OpenGL Contexts" vod_platform=youtube id=B5LcmXI1O6w annotator=Miblo] [0:13][Recap and consult the issues list[ref site="GitHub" page="HandmadeHero/cpp Issues" diff --git a/cmuratori/hero/code/code325.hmml b/cmuratori/hero/code/code325.hmml index 5219995..5f615ff 100644 --- a/cmuratori/hero/code/code325.hmml +++ b/cmuratori/hero/code/code325.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Ticket Mutexes" vod_platform=youtube id=A2kCmouscjM annotator=Miblo annotator=AsafGartner] +[video output=day325 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Ticket Mutexes" vod_platform=youtube id=A2kCmouscjM annotator=Miblo annotator=AsafGartner] [0:23][Recap and set the stage for the day] [1:31][Blackboard: Ticket Taking] [4:11][Blackboard: Singly-linked list] diff --git a/cmuratori/hero/code/code326.hmml b/cmuratori/hero/code/code326.hmml index 7bd1324..51f860c 100644 --- a/cmuratori/hero/code/code326.hmml +++ b/cmuratori/hero/code/code326.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Vararg Functions" vod_platform=youtube id=WoakE93Lj_w annotator=Miblo] +[video output=day326 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Vararg Functions" vod_platform=youtube id=WoakE93Lj_w annotator=Miblo] [0:16][Recap and set the stage for the day] [0:54][win32_handmade.cpp: Consult the code and note what the bug is][quote 520] [1:47][Run the game and demo the bug] diff --git a/cmuratori/hero/code/code327.hmml b/cmuratori/hero/code/code327.hmml index e3ff086..5632da7 100644 --- a/cmuratori/hero/code/code327.hmml +++ b/cmuratori/hero/code/code327.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing Printf Format Strings" vod_platform=youtube id=vpB9hFX_L2Y annotator=Miblo] +[video output=day327 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing Printf Format Strings" vod_platform=youtube id=vpB9hFX_L2Y annotator=Miblo] [0:23][Announcement: Early registration for HandmadeCon 2016 ends soon[ref site="Molly Rocket" page="HandmadeCon 2016 is GO!" diff --git a/cmuratori/hero/code/code328.hmml b/cmuratori/hero/code/code328.hmml index 65ad304..0a5825c 100644 --- a/cmuratori/hero/code/code328.hmml +++ b/cmuratori/hero/code/code328.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integer and String Support in Printf" vod_platform=youtube id=kxHN6ICgjgQ annotator=Miblo] +[video output=day328 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integer and String Support in Printf" vod_platform=youtube id=kxHN6ICgjgQ annotator=Miblo] [0:26][Recap and set the stage for the day] [1:25][handmade_shared.h: Consider what we must implement in FormatStringList()] [4:51][handmade_shared.h: Begin to enable FormatStringList() to handle decimal, hexadecimal and octal integers \[see Resources: C++ Reference\]] diff --git a/cmuratori/hero/code/code329.hmml b/cmuratori/hero/code/code329.hmml index e83238f..ffc4f95 100644 --- a/cmuratori/hero/code/code329.hmml +++ b/cmuratori/hero/code/code329.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Printing Out Floats Poorly" vod_platform=youtube id=Qqp-O4cujVM annotator=Miblo] +[video output=day329 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Printing Out Floats Poorly" vod_platform=youtube id=Qqp-O4cujVM annotator=Miblo] [0:28][Recap and set the stage for the day] [2:29][Run the game and refamiliarise ourselves with the code] [3:51][handmade_shared.h: Fix an ArrayCount() call in FormatStringList()] diff --git a/cmuratori/hero/code/code330.hmml b/cmuratori/hero/code/code330.hmml index 20618b3..3925863 100644 --- a/cmuratori/hero/code/code330.hmml +++ b/cmuratori/hero/code/code330.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixings Bugs from the Issue List" vod_platform=youtube id=a346y2H9JcU annotator=Miblo] +[video output=day330 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixings Bugs from the Issue List" vod_platform=youtube id=a346y2H9JcU annotator=Miblo] [0:03][Recap and set the stage for the day] [1:23][Consult and update the issues[ref site="GitHub" diff --git a/cmuratori/hero/code/code331.hmml b/cmuratori/hero/code/code331.hmml index 78e7727..c8479b9 100644 --- a/cmuratori/hero/code/code331.hmml +++ b/cmuratori/hero/code/code331.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Activating Entities by Brain" vod_platform=youtube id=aHv4iYdRZNM annotator=Miblo] +[video output=day331 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Activating Entities by Brain" vod_platform=youtube id=aHv4iYdRZNM annotator=Miblo] [0:09][Recap and set the stage for the day[ref site="GitHub" page="HandmadeHero/cpp Issues" diff --git a/cmuratori/hero/code/code332.hmml b/cmuratori/hero/code/code332.hmml index 6ccba4d..61f0fdd 100644 --- a/cmuratori/hero/code/code332.hmml +++ b/cmuratori/hero/code/code332.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Disabling Sort for Debug Overlays" vod_platform=youtube id=9ZUndaaFNzg annotator=Miblo] +[video output=day332 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Disabling Sort for Debug Overlays" vod_platform=youtube id=9ZUndaaFNzg annotator=Miblo] [0:08][Recap and set the stage for the day] [1:03][Consider how to address the problem of sorting the debug overlay] [3:26][Run the game, toggle on the sort groups and see the extent of the sorting in the debug overlay] diff --git a/cmuratori/hero/code/code333.hmml b/cmuratori/hero/code/code333.hmml index 1ce9397..c0d14bc 100644 --- a/cmuratori/hero/code/code333.hmml +++ b/cmuratori/hero/code/code333.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Floor-relative Perspective Transforms" vod_platform=youtube id=MplLlRJQ6tQ annotator=Miblo] +[video output=day333 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Floor-relative Perspective Transforms" vod_platform=youtube id=MplLlRJQ6tQ annotator=Miblo] [0:08][Recap and set the stage for the day] [5:02][Consult the issues list before jumping right into the Z stuff[ref site="GitHub" diff --git a/cmuratori/hero/code/code334.hmml b/cmuratori/hero/code/code334.hmml index 426bee9..1ad7f69 100644 --- a/cmuratori/hero/code/code334.hmml +++ b/cmuratori/hero/code/code334.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Boost Pads" vod_platform=youtube id=6GY-9Uia_2g annotator=Miblo] +[video output=day334 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Boost Pads" vod_platform=youtube id=6GY-9Uia_2g annotator=Miblo] [1:14][Run the game and demo an unfortunate artifact when transitioning between floors] [3:20][Consider the current issues with the stairwells in general, and alternative means of transitioning between floors] [11:56][Determine to implement boost pads] diff --git a/cmuratori/hero/code/code335.hmml b/cmuratori/hero/code/code335.hmml index dd161a3..205a48f 100644 --- a/cmuratori/hero/code/code335.hmml +++ b/cmuratori/hero/code/code335.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entities on Boost Squares" vod_platform=youtube id=Ed13_ISgrU8 annotator=Miblo] +[video output=day335 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Entities on Boost Squares" vod_platform=youtube id=Ed13_ISgrU8 annotator=Miblo] [0:40][Demo the difference between calling a function via a pointer and as a regular function call] [5:07][A cursory explanation of what the processor is doing] [11:22][Demo what happens when you call a function via a pointer] diff --git a/cmuratori/hero/code/code336.hmml b/cmuratori/hero/code/code336.hmml index 2332775..fe5b488 100644 --- a/cmuratori/hero/code/code336.hmml +++ b/cmuratori/hero/code/code336.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Particle System Cache" vod_platform=youtube id=RBNjzGeaB_M annotator=Miblo] +[video output=day336 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Particle System Cache" vod_platform=youtube id=RBNjzGeaB_M annotator=Miblo] [0:05][Set the stage for working on the particle system] [3:15][Blackboard: Sim Regions and a Persistent Particle System] [6:43][Blackboard: Deterministic f(t) Particle System] diff --git a/cmuratori/hero/code/code337.hmml b/cmuratori/hero/code/code337.hmml index 0e0cf34..652ed3d 100644 --- a/cmuratori/hero/code/code337.hmml +++ b/cmuratori/hero/code/code337.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Convenient SIMD for Particles" vod_platform=youtube id=ucZLbYLTmd0 annotator=Miblo] +[video output=day337 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Convenient SIMD for Particles" vod_platform=youtube id=ucZLbYLTmd0 annotator=Miblo] [0:09][Recap and set the stage for the day] [2:13][Run the game and note that entities may now have a particle system attached to them] [3:36][Look in the art pack for some particle art] diff --git a/cmuratori/hero/code/code338.hmml b/cmuratori/hero/code/code338.hmml index c76839f..e3b228c 100644 --- a/cmuratori/hero/code/code338.hmml +++ b/cmuratori/hero/code/code338.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simulation-space Particles" vod_platform=youtube id=lG3j32DTo1E annotator=Miblo] +[video output=day338 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simulation-space Particles" vod_platform=youtube id=lG3j32DTo1E annotator=Miblo] [0:08][Recap and set the stage for the day] [1:22][Blackboard: Particle Cache] [6:07][handmade_particles.h: Remove the notion of a particle system cache] diff --git a/cmuratori/hero/code/code339.hmml b/cmuratori/hero/code/code339.hmml index c433eb9..09e5325 100644 --- a/cmuratori/hero/code/code339.hmml +++ b/cmuratori/hero/code/code339.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Particle Camera Offset Motion" vod_platform=youtube id=76TSb_HiKus annotator=Miblo] +[video output=day339 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Particle Camera Offset Motion" vod_platform=youtube id=76TSb_HiKus annotator=Miblo] [1:17][Run the game and consider our current situation with entities being incorrectly displaced while the camera moves] [4:09][handmade_particles.cpp: Try temporarily nullifying the FrameDisplacement, run the game and see what happens] [6:04][handmade_particles.h: Add FloorZ and ChunkZ to the particle_4x struct] diff --git a/cmuratori/hero/code/code340.hmml b/cmuratori/hero/code/code340.hmml index 0ade53b..a04d762 100644 --- a/cmuratori/hero/code/code340.hmml +++ b/cmuratori/hero/code/code340.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up World / Sim-Region Interactions" vod_platform=youtube id=WvM38blp5QI annotator=Miblo] +[video output=day340 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up World / Sim-Region Interactions" vod_platform=youtube id=WvM38blp5QI annotator=Miblo] [0:08][Welcome back after having moved to the Molly Rocket offices] [0:45][On switching to a full 3D pipeline] [9:58][todo.txt: Consult the TODO list] diff --git a/cmuratori/hero/code/code341.hmml b/cmuratori/hero/code/code341.hmml index 0728ba6..4302c71 100644 --- a/cmuratori/hero/code/code341.hmml +++ b/cmuratori/hero/code/code341.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Dynamically Growing Arenas" vod_platform=youtube id=lzdKgeovBN0 annotator=Miblo] +[video output=day341 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Dynamically Growing Arenas" vod_platform=youtube id=lzdKgeovBN0 annotator=Miblo] [0:15][Recap and set the stage for the day] [1:12][Blackboard: Expanding Arenas] [7:09][Blackboard: How our arenas currently work] diff --git a/cmuratori/hero/code/code342.hmml b/cmuratori/hero/code/code342.hmml index 9714d4e..8a6b7d3 100644 --- a/cmuratori/hero/code/code342.hmml +++ b/cmuratori/hero/code/code342.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Supporting Temporary Memory in Dynamic Arenas" vod_platform=youtube id=7COUJ8eef6A annotator=Miblo] +[video output=day342 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Supporting Temporary Memory in Dynamic Arenas" vod_platform=youtube id=7COUJ8eef6A annotator=Miblo] [0:02][Recap and set the stage for the day] [2:52][Run the game to see that we are still running and can do looped live code editing] [4:32][handmade_memory.h: Determine to provoke some deleterious effects] diff --git a/cmuratori/hero/code/code343.hmml b/cmuratori/hero/code/code343.hmml index 31351d7..a0a9344 100644 --- a/cmuratori/hero/code/code343.hmml +++ b/cmuratori/hero/code/code343.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Saving and Restoring Dynamically Allocated Memory Pages" vod_platform=youtube id=MSDl5-akNLE annotator=Miblo] +[video output=day343 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Saving and Restoring Dynamically Allocated Memory Pages" vod_platform=youtube id=MSDl5-akNLE annotator=Miblo] [0:03][Recap and set the stage for the day] [4:07][Run the game to demo the current situation with regards to the looped live code editing] [6:11][win32_handmade.h: Introduce a win32_memory_block struct and add a MemorySentinel to win32_state to enable us to iterate over the memory blocks] diff --git a/cmuratori/hero/code/code344.hmml b/cmuratori/hero/code/code344.hmml index 8e416db..4166043 100644 --- a/cmuratori/hero/code/code344.hmml +++ b/cmuratori/hero/code/code344.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Selective Memory Restoration" vod_platform=youtube id=7oXRggHaP60 annotator=Miblo] +[video output=day344 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Selective Memory Restoration" vod_platform=youtube id=7oXRggHaP60 annotator=Miblo] [0:14][Recap and set the stage for the day] [1:05][Run the game and take a look at where we're at with the looped live code editing] [3:06][Step into Win32BeginRecordingInput() and inspect what is going on] diff --git a/cmuratori/hero/code/code345.hmml b/cmuratori/hero/code/code345.hmml index 91b408f..7b0686f 100644 --- a/cmuratori/hero/code/code345.hmml +++ b/cmuratori/hero/code/code345.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Protecting Memory Pages for Underflow Detection" vod_platform=youtube id=imxqyPgUIcM annotator=Miblo] +[video output=day345 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Protecting Memory Pages for Underflow Detection" vod_platform=youtube id=imxqyPgUIcM annotator=Miblo] [0:01][Recap and set the stage for the day] [1:16][Blackboard: Buffer Overruns] [2:47][Blackboard: VirtualAlloc() and virtual memory mapping] diff --git a/cmuratori/hero/code/code346.hmml b/cmuratori/hero/code/code346.hmml index 974ff67..99a2ab0 100644 --- a/cmuratori/hero/code/code346.hmml +++ b/cmuratori/hero/code/code346.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Consolidating Memory Block Headers" vod_platform=youtube id=XBft9E6NBDU annotator=Miblo] +[video output=day346 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Consolidating Memory Block Headers" vod_platform=youtube id=XBft9E6NBDU annotator=Miblo] [0:11][Recap and set the stage for the day] [1:07][Run the game and assess our current situation] [3:22][Blackboard: Memory Protection] diff --git a/cmuratori/hero/code/code347.hmml b/cmuratori/hero/code/code347.hmml index 19c3ee7..bdc4c27 100644 --- a/cmuratori/hero/code/code347.hmml +++ b/cmuratori/hero/code/code347.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Win32 Memory List Corruption" vod_platform=youtube id=wuYRpxnE9R8 annotator=Miblo] +[video output=day347 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Win32 Memory List Corruption" vod_platform=youtube id=wuYRpxnE9R8 annotator=Miblo] [0:09][Recap and set the stage for the day] [1:49][Run the game to demo the bug with the looped live code editing, and begin investigating it] [5:48][win32_handmade.cpp: Walk through how PLATFORM_ALLOCATE_MEMORY(), PLATFORM_DEALLOCATE_MEMORY() and Win32FreeMemoryBlock() work] diff --git a/cmuratori/hero/code/code348.hmml b/cmuratori/hero/code/code348.hmml index b5be98b..5735238 100644 --- a/cmuratori/hero/code/code348.hmml +++ b/cmuratori/hero/code/code348.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Cutscene Z and Traversable Creation" vod_platform=youtube id=KAO3f4oaqWM annotator=Miblo] +[video output=day348 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Cutscene Z and Traversable Creation" vod_platform=youtube id=KAO3f4oaqWM annotator=Miblo] [0:09][Reflect on our recent dynamically allocated arena upgrade] [2:54][todo.txt: Consult the TODO list] [4:52][Consider upgrading to a traditional 3D pipeline] diff --git a/cmuratori/hero/code/code349.hmml b/cmuratori/hero/code/code349.hmml index e9d857f..a333505 100644 --- a/cmuratori/hero/code/code349.hmml +++ b/cmuratori/hero/code/code349.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Running Multiple Sim Regions" vod_platform=youtube id=Q3DtXQGTles annotator=Miblo] +[video output=day349 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Running Multiple Sim Regions" vod_platform=youtube id=Q3DtXQGTles annotator=Miblo] [0:14][Recap and set the stage for the day] [1:42][Run the game and consider the plan for implementing multiple sim regions] [5:47][handmade_world_mode.cpp: Consider how the UpdateAndRender*() functions are currently operating, and whether or not to split them up] diff --git a/cmuratori/hero/code/code350.hmml b/cmuratori/hero/code/code350.hmml index ff92d18..82c56b6 100644 --- a/cmuratori/hero/code/code350.hmml +++ b/cmuratori/hero/code/code350.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multithreaded World Simulation" vod_platform=youtube id=tWzslFE9Qvg annotator=Miblo] +[video output=day350 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multithreaded World Simulation" vod_platform=youtube id=tWzslFE9Qvg annotator=Miblo] [0:35][On two-hour blocks enabling a more continuous workflow] [1:43][Run the game and set the stage for the day] [2:48][handmade_world_mode.cpp: Consider reworking UpdateAndRenderSimRegion() for state visibility minimisation] diff --git a/cmuratori/hero/code/code351.hmml b/cmuratori/hero/code/code351.hmml index 60fd2f9..672d458 100644 --- a/cmuratori/hero/code/code351.hmml +++ b/cmuratori/hero/code/code351.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Multithreaded Simulation Regions" vod_platform=youtube id=6mTkcOlaUUc annotator=Miblo] +[video output=day351 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Multithreaded Simulation Regions" vod_platform=youtube id=6mTkcOlaUUc annotator=Miblo] [0:35][A few words on the new format] [1:41][Recap and set the stage for the day] [2:43][Run the game, consult the profiler and assess our current situation] diff --git a/cmuratori/hero/code/code352.hmml b/cmuratori/hero/code/code352.hmml index 4de0b10..6cbdf97 100644 --- a/cmuratori/hero/code/code352.hmml +++ b/cmuratori/hero/code/code352.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Isolating the Camera Update Code" vod_platform=youtube id=m6yAMBpk7Bg annotator=Miblo] +[video output=day352 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Isolating the Camera Update Code" vod_platform=youtube id=m6yAMBpk7Bg annotator=Miblo] [0:07][Recap the career-switching side-streams] [3:26][todo.txt: Consult the TODO list and set the stage for the day's programming] [12:16][Run the game to remind ourselves of where we are] diff --git a/cmuratori/hero/code/code353.hmml b/cmuratori/hero/code/code353.hmml index 7d5fa8c..aef8949 100644 --- a/cmuratori/hero/code/code353.hmml +++ b/cmuratori/hero/code/code353.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simple RLE Compression" vod_platform=youtube id=kikLEdc3C1c annotator=Miblo] +[video output=day353 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simple RLE Compression" vod_platform=youtube id=kikLEdc3C1c annotator=Miblo] [0:18][Set the stage for the day] [1:10][Blackboard: RLE vs LZ] [1:53][Blackboard: On exploiting the properties of the data we want to compress] diff --git a/cmuratori/hero/code/code354.hmml b/cmuratori/hero/code/code354.hmml index bbc7fd1..bb0618c 100644 --- a/cmuratori/hero/code/code354.hmml +++ b/cmuratori/hero/code/code354.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simple LZ Compression" vod_platform=youtube id=l8WUqmHD1PU annotator=Miblo] +[video output=day354 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simple LZ Compression" vod_platform=youtube id=l8WUqmHD1PU annotator=Miblo] [0:21][Recap and set the stage for the day] [1:55][simple_compressor.cpp: Look through the code and note the relative simplicity of the decompressor] [8:48][simple_compressor.cpp: Introduce LZDecompress()] diff --git a/cmuratori/hero/code/code355.hmml b/cmuratori/hero/code/code355.hmml index de58719..c8cf411 100644 --- a/cmuratori/hero/code/code355.hmml +++ b/cmuratori/hero/code/code355.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Clearing Out Pending GitHub Bugs" vod_platform=youtube id=pqOlYhlfxSE annotator=Miblo] +[video output=day355 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Clearing Out Pending GitHub Bugs" vod_platform=youtube id=pqOlYhlfxSE annotator=Miblo] [0:10][Set the stage for clearing out pending GitHub bugs[ref site="GitHub" page="HandmadeHero/cpp Issues" diff --git a/cmuratori/hero/code/code356.hmml b/cmuratori/hero/code/code356.hmml index c61f649..1e5c596 100644 --- a/cmuratori/hero/code/code356.hmml +++ b/cmuratori/hero/code/code356.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making the Debug System CLANG Compatible" vod_platform=youtube id=q_FIMxta6zo annotator=Miblo] +[video output=day356 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making the Debug System CLANG Compatible" vod_platform=youtube id=q_FIMxta6zo annotator=Miblo] [0:31][Set the stage for the day with a few words on compiling for multiple platforms] [3:20][Determine to make the debug system compatible with CLANG] [5:48][handmade_debug_interface.h: Explain the RecordDebugEvent() and DEBUG_NAME macros] diff --git a/cmuratori/hero/code/code357.hmml b/cmuratori/hero/code/code357.hmml index 39ec54c..a068eaf 100644 --- a/cmuratori/hero/code/code357.hmml +++ b/cmuratori/hero/code/code357.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Room-based Camera Zoom" vod_platform=youtube id=ASewPs1n-GA annotator=Miblo] +[video output=day357 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Room-based Camera Zoom" vod_platform=youtube id=ASewPs1n-GA annotator=Miblo] [0:09][Promote Handmade.Network's new "Submit a Project" functionality[ref site="Handmade.Network" page="Project List" diff --git a/cmuratori/hero/code/code358.hmml b/cmuratori/hero/code/code358.hmml index 9c1bfc3..d9de71b 100644 --- a/cmuratori/hero/code/code358.hmml +++ b/cmuratori/hero/code/code358.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Depth Buffers" vod_platform=youtube id=7EiCGEgb_No annotator=Miblo] +[video output=day358 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Depth Buffers" vod_platform=youtube id=7EiCGEgb_No annotator=Miblo] [0:36][Promote Handmade.Network's new "Submit a Project" functionality[ref site="Handmade.Network" page="Project List" diff --git a/cmuratori/hero/code/code359.hmml b/cmuratori/hero/code/code359.hmml index de85d27..ed38199 100644 --- a/cmuratori/hero/code/code359.hmml +++ b/cmuratori/hero/code/code359.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL Projection Matrices Revisited" vod_platform=youtube id=ykOBtVPjzq4 annotator=Miblo] +[video output=day359 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL Projection Matrices Revisited" vod_platform=youtube id=ykOBtVPjzq4 annotator=Miblo] [0:03][Recap and set the stage for the day] [4:25][A few words on what "stepping through GPU code" entails] [8:59][Run the game to see our 2D pipeline running, and determine to remove the screen-space transform] diff --git a/cmuratori/hero/code/code360.hmml b/cmuratori/hero/code/code360.hmml index 40a145a..ec21393 100644 --- a/cmuratori/hero/code/code360.hmml +++ b/cmuratori/hero/code/code360.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving the Perspective Divide to OpenGL" vod_platform=youtube id=EDfb-13wgk0 annotator=Miblo] +[video output=day360 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving the Perspective Divide to OpenGL" vod_platform=youtube id=EDfb-13wgk0 annotator=Miblo] [0:01][Recap and set the stage for the day] [1:18][Run the game and demo our current situation with the sorting] [2:02][Reacquaint ourselves with our work moving the perspective operations over to OpenGL] diff --git a/cmuratori/hero/code/code361.hmml b/cmuratori/hero/code/code361.hmml index 0a58ba1..794b71e 100644 --- a/cmuratori/hero/code/code361.hmml +++ b/cmuratori/hero/code/code361.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to 3D Rotation Matrices" vod_platform=youtube id=zU5Yyls5uwM annotator=Miblo] +[video output=day361 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to 3D Rotation Matrices" vod_platform=youtube id=zU5Yyls5uwM annotator=Miblo] [0:07][Recap and set the stage for the day] [1:57][Run the game to demo the current state, with a few words on moving towards a more direct streaming approach] [5:18][handmade_platform.h: Remove the sort data from game_render_commands] diff --git a/cmuratori/hero/code/code362.hmml b/cmuratori/hero/code/code362.hmml index 3c5f321..ca7a517 100644 --- a/cmuratori/hero/code/code362.hmml +++ b/cmuratori/hero/code/code362.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Matrix Multiplication and Transform Order" vod_platform=youtube id=5tKiQd73rPk annotator=Miblo] +[video output=day362 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Matrix Multiplication and Transform Order" vod_platform=youtube id=5tKiQd73rPk annotator=Miblo] [0:08][Recap and set the stage for the day] [2:28][Run the game to show where we're at with randomly ordered drawing] [5:54][Blackboard: Matrix Multiplication] diff --git a/cmuratori/hero/code/code363.hmml b/cmuratori/hero/code/code363.hmml index 007cf3d..6d840b7 100644 --- a/cmuratori/hero/code/code363.hmml +++ b/cmuratori/hero/code/code363.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making an Orbiting Debug Camera" vod_platform=youtube id=CTTCf79MgDY annotator=Miblo] +[video output=day363 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making an Orbiting Debug Camera" vod_platform=youtube id=CTTCf79MgDY annotator=Miblo] [0:08][Recap and set the stage for the day] [0:47]["It's always very bad to forget your water bottle"][quote 548] [2:21][Run the game to see the current camera, and consider unifying the camera and clip rect operations] diff --git a/cmuratori/hero/code/code364.hmml b/cmuratori/hero/code/code364.hmml index 68beb6b..fb590a1 100644 --- a/cmuratori/hero/code/code364.hmml +++ b/cmuratori/hero/code/code364.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enabling the OpenGL Depth Buffer" vod_platform=youtube id=m8trVjY2WgI annotator=Miblo] +[video output=day364 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enabling the OpenGL Depth Buffer" vod_platform=youtube id=m8trVjY2WgI annotator=Miblo] [1:32][Run the game, recap and set the stage for the day] [4:55][Blackboard: Using the Z-buffer to sort ground tiles] [6:35][Blackboard: Slanting the upright sprites to make them occlude each other properly] diff --git a/cmuratori/hero/code/code365.hmml b/cmuratori/hero/code/code365.hmml index c2cb202..069b2dd 100644 --- a/cmuratori/hero/code/code365.hmml +++ b/cmuratori/hero/code/code365.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adjusting Sprite Cards to Counter Projection" vod_platform=youtube id=0h916hXePbw annotator=Miblo] +[video output=day365 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adjusting Sprite Cards to Counter Projection" vod_platform=youtube id=0h916hXePbw annotator=Miblo] [0:02][Recap and set the stage for the day] [1:07][handmade_math.h: Make PerspectiveProjection() set the near clip plane to a positive value and perform some test multiplications] [3:58][Step into PerspectiveProjection() and inspect Test0 and Test1] diff --git a/cmuratori/hero/code/code366.hmml b/cmuratori/hero/code/code366.hmml index 68a388a..92b2b0a 100644 --- a/cmuratori/hero/code/code366.hmml +++ b/cmuratori/hero/code/code366.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Cubes to the Renderer" vod_platform=youtube id=W5tnnhe8TK4 annotator=Miblo] +[video output=day366 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Cubes to the Renderer" vod_platform=youtube id=W5tnnhe8TK4 annotator=Miblo] [0:08][Recap and set the stage for the day] [1:28][Run the game to demo the trees always facing the camera] [5:13][Blackboard: Camera-Facing Cards] diff --git a/cmuratori/hero/code/code367.hmml b/cmuratori/hero/code/code367.hmml index b612fae..03d13bb 100644 --- a/cmuratori/hero/code/code367.hmml +++ b/cmuratori/hero/code/code367.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enabling OpenGL Multisampling" vod_platform=youtube id=imW4sX3vVwY annotator=Miblo] +[video output=day367 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enabling OpenGL Multisampling" vod_platform=youtube id=imW4sX3vVwY annotator=Miblo] [0:03][Recap and set the stage for the day] [2:24][Run the game to demo the Z-fighting and fringing that we need to eliminate] [4:51][Consider switching to a different computer with a newer graphics card] diff --git a/cmuratori/hero/code/code368.hmml b/cmuratori/hero/code/code368.hmml index 0bdbaf9..1cd1a7a 100644 --- a/cmuratori/hero/code/code368.hmml +++ b/cmuratori/hero/code/code368.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Compiling and Linking Shaders in OpenGL" vod_platform=youtube id=37KXLsjTRBo annotator=Miblo] +[video output=day368 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Compiling and Linking Shaders in OpenGL" vod_platform=youtube id=37KXLsjTRBo annotator=Miblo] [0:08][Recap and set the stage for the day] [4:06][Attend to the "Getting max allowed samples for texture correctly" issue[ref site="GitHub" diff --git a/cmuratori/hero/code/code369.hmml b/cmuratori/hero/code/code369.hmml index fccb7f8..ad4b0ba 100644 --- a/cmuratori/hero/code/code369.hmml +++ b/cmuratori/hero/code/code369.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Vertex and Fragment Shaders" vod_platform=youtube id=GtNvxxl3AK4 annotator=Miblo] +[video output=day369 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Vertex and Fragment Shaders" vod_platform=youtube id=GtNvxxl3AK4 annotator=Miblo] [0:01][Recap and set the stage for the day] [2:21][Blackboard: Shaders[ref site="Handmade Hero Episode Guide" diff --git a/cmuratori/hero/code/code370.hmml b/cmuratori/hero/code/code370.hmml index 15a42ba..1f78dbe 100644 --- a/cmuratori/hero/code/code370.hmml +++ b/cmuratori/hero/code/code370.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Shader Fallback sRGB" vod_platform=youtube id=PGNH3SKmgEo annotator=Miblo] +[video output=day370 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Shader Fallback sRGB" vod_platform=youtube id=PGNH3SKmgEo annotator=Miblo] [0:04][Introduce our special guest, donated by @quartertron: @owlbot] [1:31]["He kinda has a USB butt"][quote 557] [4:42][Run the game to recap with a few words on supporting sRGB] diff --git a/cmuratori/hero/code/code371.hmml b/cmuratori/hero/code/code371.hmml index d13a6a9..de6e8ab 100644 --- a/cmuratori/hero/code/code371.hmml +++ b/cmuratori/hero/code/code371.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL Vertex Arrays" vod_platform=youtube id=Bn97Txqu9No annotator=Miblo] +[video output=day371 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL Vertex Arrays" vod_platform=youtube id=Bn97Txqu9No annotator=Miblo] [0:04][Recap and set the stage for the day] [1:34][Run the game and note that the sprites are all being submitted separately] [4:21][handmade_render_group.cpp: Enable PushBitmap() to append new textured quads to the CurrentQuads array] diff --git a/cmuratori/hero/code/code372.hmml b/cmuratori/hero/code/code372.hmml index f58afc3..f0a3e97 100644 --- a/cmuratori/hero/code/code372.hmml +++ b/cmuratori/hero/code/code372.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using Strictly OpenGL Core Profile" vod_platform=youtube id=9PkR8pdDOtw annotator=Miblo] +[video output=day372 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using Strictly OpenGL Core Profile" vod_platform=youtube id=9PkR8pdDOtw annotator=Miblo] [0:16][Run the game to recap and set the stage for the day, with a few words on using 3D APIs] [4:44][Determine to field debug messages and conditionally disable compatibility contexts] [10:55][glDebugMessageCallback[ref diff --git a/cmuratori/hero/code/code373.hmml b/cmuratori/hero/code/code373.hmml index e87b039..707d179 100644 --- a/cmuratori/hero/code/code373.hmml +++ b/cmuratori/hero/code/code373.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inverting the Full 3D Transform" vod_platform=youtube id=rMMFFDbh2XU annotator=Miblo] +[video output=day373 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inverting the Full 3D Transform" vod_platform=youtube id=rMMFFDbh2XU annotator=Miblo] [0:09][Recap and set the stage for the day] [3:05]["This will be a stream filled with mucus"][quote 562] [4:14][handmade_debug.cpp: Consider how to enable DEBUGStart() to correctly place the debug text] diff --git a/cmuratori/hero/code/code374.hmml b/cmuratori/hero/code/code374.hmml index 01b8b80..a7072dd 100644 --- a/cmuratori/hero/code/code374.hmml +++ b/cmuratori/hero/code/code374.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Z Transform and Bias" vod_platform=youtube id=G4e70hz3pC0 annotator=Miblo] +[video output=day374 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Z Transform and Bias" vod_platform=youtube id=G4e70hz3pC0 annotator=Miblo] [0:12][Recap and set the stage for the day] [4:26][Determine to fix the "glGetString(GL_EXTENSIONS) fails with error GL_INVALID_ENUM issue"[ref site="GitHub" diff --git a/cmuratori/hero/code/code375.hmml b/cmuratori/hero/code/code375.hmml index 96eea69..4f2dde4 100644 --- a/cmuratori/hero/code/code375.hmml +++ b/cmuratori/hero/code/code375.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Distance-based Fog" vod_platform=youtube id=RvEOtCTDWf0 annotator=Miblo] +[video output=day375 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Distance-based Fog" vod_platform=youtube id=RvEOtCTDWf0 annotator=Miblo] [0:09][Recap and set the stage for the day] [2:51][Run the game and show where we left off] [3:18][handmade_world_mode.cpp: Make PlayWorld() stack up 10 rooms and run the game to view them] diff --git a/cmuratori/hero/code/code376.hmml b/cmuratori/hero/code/code376.hmml index 9ae73cc..ac5977b 100644 --- a/cmuratori/hero/code/code376.hmml +++ b/cmuratori/hero/code/code376.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing Debug Volumes" vod_platform=youtube id=L68VR5VuwnI annotator=Miblo] +[video output=day376 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing Debug Volumes" vod_platform=youtube id=L68VR5VuwnI annotator=Miblo] [0:02][Recap and set the stage for the day] [3:06][Consider approaching alpha fade and upgrading our understanding of the camera] [5:48][Run the game to assess our current situation] diff --git a/cmuratori/hero/code/code377.hmml b/cmuratori/hero/code/code377.hmml index 555709d..f91963b 100644 --- a/cmuratori/hero/code/code377.hmml +++ b/cmuratori/hero/code/code377.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Collision Volumes and the Camera" vod_platform=youtube id=Ll55Vdtf9NU annotator=Miblo] +[video output=day377 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Collision Volumes and the Camera" vod_platform=youtube id=Ll55Vdtf9NU annotator=Miblo] [0:02][Recap and set the stage for the day] [4:34][Run the game to see our debug collision volumes, and determine to implement room-based collision volumes] [8:32][handmade_entity.h: Add CollisionVolume to the entity struct and propagate that change] diff --git a/cmuratori/hero/code/code378.hmml b/cmuratori/hero/code/code378.hmml index 09592bb..c76d189 100644 --- a/cmuratori/hero/code/code378.hmml +++ b/cmuratori/hero/code/code378.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding More Camera Behaviors" vod_platform=youtube id=4hDRp2VDeEU annotator=Miblo] +[video output=day378 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding More Camera Behaviors" vod_platform=youtube id=4hDRp2VDeEU annotator=Miblo] [0:08][Recap and set the stage for the day] [1:48][Run the game to see how the camera is working and consider introducing the notion of camera movement while lingering] [5:59][handmade_sim_region.cpp: Begin to enable UpdateCameraForEntityMovement() to move the camera gradually towards a target] diff --git a/cmuratori/hero/code/code379.hmml b/cmuratori/hero/code/code379.hmml index 8d4c983..20b949a 100644 --- a/cmuratori/hero/code/code379.hmml +++ b/cmuratori/hero/code/code379.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debug Overlay Cleanup and Render Group Performance Investigation" vod_platform=youtube id=Y2fxi_lFwE0 annotator=Miblo] +[video output=day379 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debug Overlay Cleanup and Render Group Performance Investigation" vod_platform=youtube id=Y2fxi_lFwE0 annotator=Miblo] [0:30]["Today's episode might be a little bit of a potpourri"][quote 567] [1:06][Determine to address the "Fix for profiler clipping issue on threads/frames/clocks view" issue[ref site="GitHub" diff --git a/cmuratori/hero/code/code380.hmml b/cmuratori/hero/code/code380.hmml index 40f410a..c77666b 100644 --- a/cmuratori/hero/code/code380.hmml +++ b/cmuratori/hero/code/code380.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Attempting (and Failing) to Fix the Clock" vod_platform=youtube id=fxNhmGJ1OLQ annotator=Miblo] +[video output=day380 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Attempting (and Failing) to Fix the Clock" vod_platform=youtube id=fxNhmGJ1OLQ annotator=Miblo] [0:02][Recap and set the stage for the day] [2:44][Run the game, consult the profiler and note that the game only updates itself as if it's running at 60FPS] [9:51][Determine to enable the game to play properly at various frame rates] diff --git a/cmuratori/hero/code/code381.hmml b/cmuratori/hero/code/code381.hmml index a0409dc..d420434 100644 --- a/cmuratori/hero/code/code381.hmml +++ b/cmuratori/hero/code/code381.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Two-pass Depth Peeling" vod_platform=youtube id=JZIQHygH2cc annotator=Miblo] +[video output=day381 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Two-pass Depth Peeling" vod_platform=youtube id=JZIQHygH2cc annotator=Miblo] [0:08][Recap and set the stage for the day] [0:41][Note a couple of things in ~milton to fix, syncing and stuttering] [1:31][Blackboard: Using atomics to write more than one piece of information to a framebuffer] diff --git a/cmuratori/hero/code/code382.hmml b/cmuratori/hero/code/code382.hmml index 2a58420..7dfd4f9 100644 --- a/cmuratori/hero/code/code382.hmml +++ b/cmuratori/hero/code/code382.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Depth Peel Compositing" vod_platform=youtube id=up8hb_TrKTE annotator=Miblo] +[video output=day382 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Depth Peel Compositing" vod_platform=youtube id=up8hb_TrKTE annotator=Miblo] [0:03][Recap and set the stage for the day] [2:50][Run the game to take a look at the situation as it stands] [5:51][handmade_opengl.cpp: Establish that we can set the viewport correctly] diff --git a/cmuratori/hero/code/code383.hmml b/cmuratori/hero/code/code383.hmml index 89e3623..305b225 100644 --- a/cmuratori/hero/code/code383.hmml +++ b/cmuratori/hero/code/code383.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing Depth Peel Artifacts" vod_platform=youtube id=AHB5J_FPaW4 annotator=Miblo] +[video output=day383 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing Depth Peel Artifacts" vod_platform=youtube id=AHB5J_FPaW4 annotator=Miblo] [0:22][Recap and set the stage for the day, improving the depth peeling] [2:14][Run the game, note the rendering artifacts while depth peeling, and consider what may be causing them] [7:23][handmade_opengl.cpp: Consider how CompilePeelComposite() is computing the ResultColor] diff --git a/cmuratori/hero/code/code384.hmml b/cmuratori/hero/code/code384.hmml index d3eeb52..b4d3aa7 100644 --- a/cmuratori/hero/code/code384.hmml +++ b/cmuratori/hero/code/code384.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Dynamically Responding to Render Settings" vod_platform=youtube id=0QNmoZYaTkM annotator=Miblo] +[video output=day384 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Dynamically Responding to Render Settings" vod_platform=youtube id=0QNmoZYaTkM annotator=Miblo] [0:08][Recap and set the stage for the day] [1:11][Run the game with the determination to enable dynamic responding to render settings] [4:08][A few words on our good fortune with GPU programming] diff --git a/cmuratori/hero/code/code385.hmml b/cmuratori/hero/code/code385.hmml index 663bef1..a4f3d38 100644 --- a/cmuratori/hero/code/code385.hmml +++ b/cmuratori/hero/code/code385.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Trying Multisampled Depth Peels" vod_platform=youtube id=vOre9E5hJzc annotator=Miblo] +[video output=day385 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Trying Multisampled Depth Peels" vod_platform=youtube id=vOre9E5hJzc annotator=Miblo] [0:28][Recap and set the stage for the day] [1:46][Run the game and demo the aliasing around our geometric primitives] [6:28][Describe the two processes at play: Artistic and Analytical Antialiasing] diff --git a/cmuratori/hero/code/code386.hmml b/cmuratori/hero/code/code386.hmml index 5d56be9..b3f185a 100644 --- a/cmuratori/hero/code/code386.hmml +++ b/cmuratori/hero/code/code386.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing a Custom Multisample Resolve" vod_platform=youtube id=RtOLz8xU2tw annotator=Miblo] +[video output=day386 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing a Custom Multisample Resolve" vod_platform=youtube id=RtOLz8xU2tw annotator=Miblo] [0:22][Recap our depth-peeling-with-multisampling puzzler and set the stage for the day] [3:52][cheap and easy solution for enabling multisampled antialiasing on the target platform] [5:30][Describe an old method to perform smoothing, using glHint[ref diff --git a/cmuratori/hero/code/code387.hmml b/cmuratori/hero/code/code387.hmml index 2b478d9..e8a926d 100644 --- a/cmuratori/hero/code/code387.hmml +++ b/cmuratori/hero/code/code387.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Further Attempts at Multisampled Depth Peeling" vod_platform=youtube id=SJRwEVr4HSw annotator=Miblo] +[video output=day387 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Further Attempts at Multisampled Depth Peeling" vod_platform=youtube id=SJRwEVr4HSw annotator=Miblo] [0:08][Recap and set the stage for the day] [1:28][Run the game to show our custom multi-resolution resolve with and without multisampling, and describe the problem that multisampling introduces for our depth peeling scheme] [10:05][handmade_opengl.cpp: Read through CompileResolveMultisample(), and tweak it to specify GLSL version 1.50] diff --git a/cmuratori/hero/code/code388.hmml b/cmuratori/hero/code/code388.hmml index ad0fa35..7b12589 100644 --- a/cmuratori/hero/code/code388.hmml +++ b/cmuratori/hero/code/code388.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Successful Multisampled Depth-Peeling" vod_platform=youtube id=qXS_GHgbNbU annotator=Miblo] +[video output=day388 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Successful Multisampled Depth-Peeling" vod_platform=youtube id=qXS_GHgbNbU annotator=Miblo] [0:12][Thank @serge_rgb for fixing the offset bug in ~Milton, and determine to try CodeXL] [1:35][Try to run the game in CodeXL] [6:13][Inspect the history of OpenGL function calls] diff --git a/cmuratori/hero/code/code389.hmml b/cmuratori/hero/code/code389.hmml index be4d2de..5984d95 100644 --- a/cmuratori/hero/code/code389.hmml +++ b/cmuratori/hero/code/code389.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Simple Lighting" vod_platform=youtube id=9iivQoWdsFk annotator=Miblo] +[video output=day389 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Simple Lighting" vod_platform=youtube id=9iivQoWdsFk annotator=Miblo] [0:10][Recap and set the stage for the day, with a mention of @mtsmox's discovery of that problem with our depth enable] [1:21][A few words on the month-long failure of Google Drive to download the HandmadeCon videos] [2:21][Blackboard: Multisampled Depth Peeling] diff --git a/cmuratori/hero/code/code390.hmml b/cmuratori/hero/code/code390.hmml index d10adce..b31ec8f 100644 --- a/cmuratori/hero/code/code390.hmml +++ b/cmuratori/hero/code/code390.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Simple Phong Lighting" vod_platform=youtube id=owpVP0IQWXk annotator=Miblo] +[video output=day390 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Simple Phong Lighting" vod_platform=youtube id=owpVP0IQWXk annotator=Miblo] [0:02][Recap and run the game to show off the radial fade] [2:36][handmade_render_group: Recap what PushQuad() does] [3:30][On specifying normals per vertex, separately from the triangles] diff --git a/cmuratori/hero/code/code391.hmml b/cmuratori/hero/code/code391.hmml index 60c076c..7d8aff6 100644 --- a/cmuratori/hero/code/code391.hmml +++ b/cmuratori/hero/code/code391.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Planning Better Lighting" vod_platform=youtube id=rl_6bBGoB2E annotator=Miblo] +[video output=day391 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Planning Better Lighting" vod_platform=youtube id=rl_6bBGoB2E annotator=Miblo] [0:03][Recap and set the stage for the day] [1:01][Run the game to show our Phong lighting, and consider how to improve it] [9:46][Blackboard: Light Rendering] diff --git a/cmuratori/hero/code/code392.hmml b/cmuratori/hero/code/code392.hmml index c757f56..355c328 100644 --- a/cmuratori/hero/code/code392.hmml +++ b/cmuratori/hero/code/code392.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating Lighting Textures" vod_platform=youtube id=5XwOoh-k4AI annotator=Miblo] +[video output=day392 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating Lighting Textures" vod_platform=youtube id=5XwOoh-k4AI annotator=Miblo] [0:03][Recap and set the stage for the day with a few words on renderer programming] [2:58][Light probing] [4:01][Try to run the game, but be told that our Visual Studio Community 2013 license "has gone stale"] diff --git a/cmuratori/hero/code/code393.hmml b/cmuratori/hero/code/code393.hmml index 341d9f2..15f9039 100644 --- a/cmuratori/hero/code/code393.hmml +++ b/cmuratori/hero/code/code393.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Planning Lighting from Depth Peels" vod_platform=youtube id=QEJKHpqlTSs annotator=Miblo] +[video output=day393 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Planning Lighting from Depth Peels" vod_platform=youtube id=QEJKHpqlTSs annotator=Miblo] [0:07][Recap and set the stage for the day] [2:24][Run the game to show off the renderer and camera movement] [5:55][Launch the code with a few words on the tweaked 4coder UI, and our intentions for the light textures] diff --git a/cmuratori/hero/code/code394.hmml b/cmuratori/hero/code/code394.hmml index 58298d7..235bdca 100644 --- a/cmuratori/hero/code/code394.hmml +++ b/cmuratori/hero/code/code394.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multigrid Lighting Upward Iteration" vod_platform=youtube id=h6D85wUYMgg annotator=Miblo] +[video output=day394 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multigrid Lighting Upward Iteration" vod_platform=youtube id=h6D85wUYMgg annotator=Miblo] [0:03][Recap and set the stage for the day] [0:54]["You can't win 'em all but you're certainly not gonna win if you never roll"][quote 584] [0:59][Run the game to see where we're at with respect to lighting] diff --git a/cmuratori/hero/code/code395.hmml b/cmuratori/hero/code/code395.hmml index ec0b254..a098aab 100644 --- a/cmuratori/hero/code/code395.hmml +++ b/cmuratori/hero/code/code395.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multigrid Lighting Down Iteration" vod_platform=youtube id=poQ4PZ_vQz0 annotator=Miblo] +[video output=day395 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Multigrid Lighting Down Iteration" vod_platform=youtube id=poQ4PZ_vQz0 annotator=Miblo] [0:07][Recap and set the stage for the day] [1:12][Run the game and consider how to make the light spread further] [2:48][handmade_opengl.cpp: Make CompileFakeSeedLighting() set the Front and Back emitter colours to 100] diff --git a/cmuratori/hero/code/code396.hmml b/cmuratori/hero/code/code396.hmml index 5173e6b..b1e183d 100644 --- a/cmuratori/hero/code/code396.hmml +++ b/cmuratori/hero/code/code396.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering Lighting Information from the Game" vod_platform=youtube id=erE0m3_7FbI annotator=Miblo] +[video output=day396 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rendering Lighting Information from the Game" vod_platform=youtube id=erE0m3_7FbI annotator=Miblo] [0:01][Recap and set the stage for the day] [0:51][handmade_opengl.cpp and handmade_opengl.h: Rename UVStep to SourceUVStep everywhere CompileMultiLightDown()] [3:06][Run the game and consider using different textures for the up and down sampling] diff --git a/cmuratori/hero/code/code397.hmml b/cmuratori/hero/code/code397.hmml index dbb2e6e..7216ef5 100644 --- a/cmuratori/hero/code/code397.hmml +++ b/cmuratori/hero/code/code397.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting Depth Peel Data to Lighting Data" vod_platform=youtube id=7zSz85fsok0 annotator=Miblo] +[video output=day397 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting Depth Peel Data to Lighting Data" vod_platform=youtube id=7zSz85fsok0 annotator=Miblo] [0:08][Recap and set the stage for the day] [2:05][Consider how to resolve the issue that we're only computing the lighting on the topmost of four depth peels] [5:41][Mention that multigrid lighting may not work out] diff --git a/cmuratori/hero/code/code398.hmml b/cmuratori/hero/code/code398.hmml index cbacaf9..e21e351 100644 --- a/cmuratori/hero/code/code398.hmml +++ b/cmuratori/hero/code/code398.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Applying Lighting Back to Depth Peels" vod_platform=youtube id=f4Pzk8R8Sy4 annotator=Miblo] +[video output=day398 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Applying Lighting Back to Depth Peels" vod_platform=youtube id=f4Pzk8R8Sy4 annotator=Miblo] [0:07][Recap and set the stage for the day] [1:44][Run the game to show where we left off with the lighting] [6:00][A few words on playing around with new rendering techniques, considering what to do now] diff --git a/cmuratori/hero/code/code399.hmml b/cmuratori/hero/code/code399.hmml index a09b7c8..1d53c7e 100644 --- a/cmuratori/hero/code/code399.hmml +++ b/cmuratori/hero/code/code399.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating a CPU-side Lighting Testbed" vod_platform=youtube id=4LEFWEbrnPc annotator=Miblo] +[video output=day399 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Creating a CPU-side Lighting Testbed" vod_platform=youtube id=4LEFWEbrnPc annotator=Miblo] [0:09][Recap and set the stage for the day, with a few words on loadable shaders and heredoc indentation] [2:45][handmade_opengl.cpp: Try out @mmozeiko's idea to put a closing quote before the heredoc text] [3:41]["Unfortunately it looks like here 4coder is too smart for us"][quote 588] diff --git a/cmuratori/hero/code/code400.hmml b/cmuratori/hero/code/code400.hmml index ff4f6ec..39cbaf5 100644 --- a/cmuratori/hero/code/code400.hmml +++ b/cmuratori/hero/code/code400.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding an Ambient Occlusion Pass" vod_platform=youtube id=-BNki3w_HEE annotator=Miblo] +[video output=day400 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding an Ambient Occlusion Pass" vod_platform=youtube id=-BNki3w_HEE annotator=Miblo] [0:01][Recap and set the stage for the day] [1:29][Run the game to see the lighting diamonds] [5:31][handmade_render_group.cpp: Make LightingTest() correctly sum the Dest->FrontEmitC] diff --git a/cmuratori/hero/code/code401.hmml b/cmuratori/hero/code/code401.hmml index 63a79e6..2acb94e 100644 --- a/cmuratori/hero/code/code401.hmml +++ b/cmuratori/hero/code/code401.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Transfer" vod_platform=youtube id=iqVzS326DsA annotator=Miblo] +[video output=day401 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Transfer" vod_platform=youtube id=iqVzS326DsA annotator=Miblo] [0:07][Recap and set the stage for the day] [1:14][Run the game to see how the lighting is looking at the moment] [7:39][Note some oddities in the lighting solution] diff --git a/cmuratori/hero/code/code402.hmml b/cmuratori/hero/code/code402.hmml index cc57bc6..151ea8d 100644 --- a/cmuratori/hero/code/code402.hmml +++ b/cmuratori/hero/code/code402.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Raycasting to the Lighting" vod_platform=youtube id=EHLuL65XEnE annotator=Miblo] +[video output=day402 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Raycasting to the Lighting" vod_platform=youtube id=EHLuL65XEnE annotator=Miblo] [0:17][Recap and set the stage for the day] [1:35][Run the game and consider how we can improve the lighting quality] [3:36][Determine to work on directional shadowing or light bleeding] diff --git a/cmuratori/hero/code/code403.hmml b/cmuratori/hero/code/code403.hmml index 22fdf77..94c53d9 100644 --- a/cmuratori/hero/code/code403.hmml +++ b/cmuratori/hero/code/code403.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Off-line Lighting and Per-vertex Reflectors" vod_platform=youtube id=m67dhh85fFQ annotator=Miblo] +[video output=day403 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Off-line Lighting and Per-vertex Reflectors" vod_platform=youtube id=m67dhh85fFQ annotator=Miblo] [0:07][Introduce the new location, recap and set the stage for the day] [1:58][Run the game and consider the current state of the block lighting] [5:59][Blackboard: Multiresolution and Quality] diff --git a/cmuratori/hero/code/code404.hmml b/cmuratori/hero/code/code404.hmml index 1461014..ab947ca 100644 --- a/cmuratori/hero/code/code404.hmml +++ b/cmuratori/hero/code/code404.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Voxel-Indexed Lighting Samples" vod_platform=youtube id=xNS8M-vHUp8 annotator=Miblo] +[video output=day404 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Voxel-Indexed Lighting Samples" vod_platform=youtube id=xNS8M-vHUp8 annotator=Miblo] [0:08][Recap and set the stage for the day] [0:42][Run the game and consider the problem of reconstructing per-pixel lighting from our coarse computations] [8:35][Blackboard: Sending down four interpolation points per quad, instead of doing a global gather] diff --git a/cmuratori/hero/code/code405.hmml b/cmuratori/hero/code/code405.hmml index 94091ce..eb009d4 100644 --- a/cmuratori/hero/code/code405.hmml +++ b/cmuratori/hero/code/code405.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Crashing the Stream with a Fragment Shader" vod_platform=youtube id=0b28L6WnqmI annotator=Miblo] +[video output=day405 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Crashing the Stream with a Fragment Shader" vod_platform=youtube id=0b28L6WnqmI annotator=Miblo] [0:04][Recap and set the stage for the day] [1:17][Determine to handle the "Unable to compile Z Bias program on GTX 1070" issue[ref site="GitHub" diff --git a/cmuratori/hero/code/code406.hmml b/cmuratori/hero/code/code406.hmml index a6354fe..ef2688e 100644 --- a/cmuratori/hero/code/code406.hmml +++ b/cmuratori/hero/code/code406.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Getting a Graphics Debugger Working" vod_platform=youtube id=ozEdHE2ie8o annotator=Miblo] +[video output=day406 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Getting a Graphics Debugger Working" vod_platform=youtube id=ozEdHE2ie8o annotator=Miblo] [0:02][Welcome to the new setup] [3:08][Open up and begin to reacquaint ourselves with the code] [4:18][Run the game to see that it is running correctly, but with weird artifacts] diff --git a/cmuratori/hero/code/code407.hmml b/cmuratori/hero/code/code407.hmml index 1a4c697..28b20e6 100644 --- a/cmuratori/hero/code/code407.hmml +++ b/cmuratori/hero/code/code407.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting to Debug Volume Textures" vod_platform=youtube id=Lub0CXC_eWk annotator=Miblo] +[video output=day407 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting to Debug Volume Textures" vod_platform=youtube id=Lub0CXC_eWk annotator=Miblo] [0:08][Recap our woes from yesterday regarding Windows and graphics drivers] [6:24][Run the game to see where we left off] [8:25][Continue to investigate why our lighting solution is not producing the expected colours] diff --git a/cmuratori/hero/code/code408.hmml b/cmuratori/hero/code/code408.hmml index d1c0d12..acdf72a 100644 --- a/cmuratori/hero/code/code408.hmml +++ b/cmuratori/hero/code/code408.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Debugging Volume Textures" vod_platform=youtube id=aRQ4aSUA5Gs annotator=Miblo] +[video output=day408 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Debugging Volume Textures" vod_platform=youtube id=aRQ4aSUA5Gs annotator=Miblo] [0:03][Recap and set the stage for the day] [0:38][Fix the monitor's colour] [1:55][Resume our investigations into the volume texture lookup] diff --git a/cmuratori/hero/code/code409.hmml b/cmuratori/hero/code/code409.hmml index 1e159e5..8bc7a79 100644 --- a/cmuratori/hero/code/code409.hmml +++ b/cmuratori/hero/code/code409.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Smoother Blending of Lighting Samples" vod_platform=youtube id=_ba1Mxaa2Ks annotator=Miblo] +[video output=day409 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Smoother Blending of Lighting Samples" vod_platform=youtube id=_ba1Mxaa2Ks annotator=Miblo] [0:08][Recap and set the stage for the day, proceeding with lighting] [1:00][Run the game to see our current lighting solution] [4:48][Milton feature request: Hide title bar] diff --git a/cmuratori/hero/code/code410.hmml b/cmuratori/hero/code/code410.hmml index d9dafe4..0d386dc 100644 --- a/cmuratori/hero/code/code410.hmml +++ b/cmuratori/hero/code/code410.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Incident Light" vod_platform=youtube id=IS8fl0H1wmc annotator=Miblo] +[video output=day410 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Incident Light" vod_platform=youtube id=IS8fl0H1wmc annotator=Miblo] [0:09][Recap and set the stage for the day computing the lighting in software] [2:08][handmade_opengl.cpp: Comment out the LightingD contribution in CompileZBiasProgram()] [2:41][Run the game to see the current, non-directional lighting solution] diff --git a/cmuratori/hero/code/code411.hmml b/cmuratori/hero/code/code411.hmml index c1191df..b6c2054 100644 --- a/cmuratori/hero/code/code411.hmml +++ b/cmuratori/hero/code/code411.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Rectangular Lighting Elements" vod_platform=youtube id=opL_VChuNOw annotator=Miblo] +[video output=day411 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Rectangular Lighting Elements" vod_platform=youtube id=opL_VChuNOw annotator=Miblo] [0:09][Recap and set the stage for the day[ref site="Wikipedia" page="Cornell box" diff --git a/cmuratori/hero/code/code412.hmml b/cmuratori/hero/code/code412.hmml index 6e30a3f..b71d6ad 100644 --- a/cmuratori/hero/code/code412.hmml +++ b/cmuratori/hero/code/code412.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Voxel Interpolation" vod_platform=youtube id=x0hWfKH4x_w annotator=Miblo] +[video output=day412 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Voxel Interpolation" vod_platform=youtube id=x0hWfKH4x_w annotator=Miblo] [0:07][Recap and set the stage for the day][:speech] [2:01][:Run the game to see our current :lighting situation][:rendering] [5:42][Consider the current problems in the :lighting][:rendering :run] diff --git a/cmuratori/hero/code/code413.hmml b/cmuratori/hero/code/code413.hmml index 29beaea..a81c63f 100644 --- a/cmuratori/hero/code/code413.hmml +++ b/cmuratori/hero/code/code413.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Encoding Light Values" vod_platform=youtube id=g3VG1H-CBGU annotator=Miblo] +[video output=day413 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Encoding Light Values" vod_platform=youtube id=g3VG1H-CBGU annotator=Miblo] [0:03][Address Patreon's proposed fee change of December 2017[ref site=Patreon page="Patreon Implosion" diff --git a/cmuratori/hero/code/code414.hmml b/cmuratori/hero/code/code414.hmml index cbc4e61..f228e2f 100644 --- a/cmuratori/hero/code/code414.hmml +++ b/cmuratori/hero/code/code414.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Light Distribution" vod_platform=youtube id=tKi-DkS0YVo annotator=Miblo] +[video output=day414 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Light Distribution" vod_platform=youtube id=tKi-DkS0YVo annotator=Miblo] [0:06][Recap and set the stage for the day][:speech] [0:30][Plug the SendOwl-powered contribution page[ref site="Handmade Hero" diff --git a/cmuratori/hero/code/code415.hmml b/cmuratori/hero/code/code415.hmml index 31b43e4..5369a56 100644 --- a/cmuratori/hero/code/code415.hmml +++ b/cmuratori/hero/code/code415.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Per-primitive Lighting Samples" vod_platform=youtube id=oCpUs_ALvz0 annotator=Miblo] +[video output=day415 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Per-primitive Lighting Samples" vod_platform=youtube id=oCpUs_ALvz0 annotator=Miblo] [0:08][Recap and set the stage for the day][:speech] [3:42][Decrease the voxel resolution][:lighting :rendering] [4:29][:Run the game to see our :lighting solution][:rendering] diff --git a/cmuratori/hero/code/code416.hmml b/cmuratori/hero/code/code416.hmml index 42d58f7..4454831 100644 --- a/cmuratori/hero/code/code416.hmml +++ b/cmuratori/hero/code/code416.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Lighting and Geometry Submission" vod_platform=youtube id=NjKttSC6mG4 annotator=Miblo] +[video output=day416 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Lighting and Geometry Submission" vod_platform=youtube id=NjKttSC6mG4 annotator=Miblo] [0:15][Recap and set the stage for the day][:speech] [1:03][:Run the game to see a :"debug visualisation" of our current :lighting solution][:rendering] [1:53][Make UseProgramBegin() use glVertexAttribIPointer() rather than glVertexAttribPointer() for LightIndex and LightCount[ref diff --git a/cmuratori/hero/code/code417.hmml b/cmuratori/hero/code/code417.hmml index 0b9951d..18bcd7e 100644 --- a/cmuratori/hero/code/code417.hmml +++ b/cmuratori/hero/code/code417.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Debug View for Lighting Points" vod_platform=youtube id=vm3XRQI7nrs annotator=Miblo] +[video output=day417 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Debug View for Lighting Points" vod_platform=youtube id=vm3XRQI7nrs annotator=Miblo] [0:13][Recap and set the stage for the day][:speech] [2:26][:Run the game to see our current :lighting solution][:rendering] [6:34][Read through ExtractReflectorsFromQuads()][:research :lighting :rendering] diff --git a/cmuratori/hero/code/code418.hmml b/cmuratori/hero/code/code418.hmml index 152ec17..e370ad7 100644 --- a/cmuratori/hero/code/code418.hmml +++ b/cmuratori/hero/code/code418.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Smoothing Light Samples Over Time" vod_platform=youtube id=0Kz7OnS2E-8 annotator=Miblo] +[video output=day418 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Smoothing Light Samples Over Time" vod_platform=youtube id=0Kz7OnS2E-8 annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [1:26][:Run the game to see the flickering :lighting][:rendering] [2:42][Flicker / Sampling: "Monte Carlo" → "Random" → "Stochastic"][:blackboard :lighting :prng :rendering] diff --git a/cmuratori/hero/code/code419.hmml b/cmuratori/hero/code/code419.hmml index 35c4987..260c6e8 100644 --- a/cmuratori/hero/code/code419.hmml +++ b/cmuratori/hero/code/code419.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Missing Lighting" vod_platform=youtube id=N5050xYdpQc annotator=Miblo] +[video output=day419 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Missing Lighting" vod_platform=youtube id=N5050xYdpQc annotator=Miblo] [0:01][Recap and set the stage for the day, with a few words about :lighting][:rendering :speech] [3:06][:Run the game with the intention of showing the :lighting][:rendering] [5:01][Read through the :lighting code][:rendering :research] diff --git a/cmuratori/hero/code/code420.hmml b/cmuratori/hero/code/code420.hmml index d0a3a0f..0a79977 100644 --- a/cmuratori/hero/code/code420.hmml +++ b/cmuratori/hero/code/code420.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pushing Lighting Information Directly" vod_platform=youtube id=ATBQfmQMdVk annotator=Miblo] +[video output=day420 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Pushing Lighting Information Directly" vod_platform=youtube id=ATBQfmQMdVk annotator=Miblo] [0:05][Recap and set the stage for the day streaming on YouTube[ref site=YouTube page="Handmade Hero Live Stream" diff --git a/cmuratori/hero/code/code421.hmml b/cmuratori/hero/code/code421.hmml index e984ba4..fb4a548 100644 --- a/cmuratori/hero/code/code421.hmml +++ b/cmuratori/hero/code/code421.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Passing Lighting as Boxes" vod_platform=youtube id=ic7mS4tfv8Y annotator=Miblo] +[video output=day421 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Passing Lighting as Boxes" vod_platform=youtube id=ic7mS4tfv8Y annotator=Miblo] [0:00][Welcome to the stream, power outage edition][:speech] [2:04][Recap and set the stage for the day][:lighting :rendering :speech] [3:43][Fix the P, N and XAxis for the fifth and sixth surfaces in PushCube()[ref diff --git a/cmuratori/hero/code/code422.hmml b/cmuratori/hero/code/code422.hmml index b214aa8..f719212 100644 --- a/cmuratori/hero/code/code422.hmml +++ b/cmuratori/hero/code/code422.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Raycasting AABBs Directly" vod_platform=youtube id=c4Q-6aMUh-k annotator=Miblo] +[video output=day422 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Raycasting AABBs Directly" vod_platform=youtube id=c4Q-6aMUh-k annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [0:53][:Run the game with the determination to raycast :lighting boxes directly][:rendering] [3:07][Move the Surface computations from LightingTest() into RayCast()][:lighting :rendering] diff --git a/cmuratori/hero/code/code423.hmml b/cmuratori/hero/code/code423.hmml index a3030fd..2d63946 100644 --- a/cmuratori/hero/code/code423.hmml +++ b/cmuratori/hero/code/code423.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Modifying Lighting to Use a Spatial Hierarchy" vod_platform=youtube id=XFR9WRnPgx4 annotator=Miblo] +[video output=day423 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Modifying Lighting to Use a Spatial Hierarchy" vod_platform=youtube id=XFR9WRnPgx4 annotator=Miblo] [0:07][Recap and set the stage for the day, optimising the :lighting][:optimisation :rendering :speech] [2:37][Consider the intractability of O(n²) algorithms][:speech] [7:10][Consider the kinds of numbers at play in our :lighting system, and possible ways to optimise it as it is][:blackboard :optimisation :rendering] diff --git a/cmuratori/hero/code/code424.hmml b/cmuratori/hero/code/code424.hmml index 1eb0f8e..a8fa41a 100644 --- a/cmuratori/hero/code/code424.hmml +++ b/cmuratori/hero/code/code424.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Modifying Lighting to Use a Spatial Hierarchy" vod_platform=youtube id=jbWKPQuRed4 annotator=Miblo] +[video output=day424 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Modifying Lighting to Use a Spatial Hierarchy" vod_platform=youtube id=jbWKPQuRed4 annotator=Miblo] [0:00][Recap and set the stage for the day, creating a hierarchy of :lighting nodes][:rendering :speech] [0:45][:Run the game to see our current :lighting solution running at \~30 fps][:rendering] [4:28][Determine to make SplitBox() do something intelligent][:geometry :lighting :optimisation :rendering :speech] diff --git a/cmuratori/hero/code/code425.hmml b/cmuratori/hero/code/code425.hmml index c291b63..143912c 100644 --- a/cmuratori/hero/code/code425.hmml +++ b/cmuratori/hero/code/code425.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity-based Lighting Storage" vod_platform=youtube id=NX-tdvLd0RA annotator=Miblo] +[video output=day425 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity-based Lighting Storage" vod_platform=youtube id=NX-tdvLd0RA annotator=Miblo] [0:07][Recap and set the stage for the day, improving the runtime performance of the :lighting][:optimisation :rendering :speech] [0:56][:Run the game to show our whole world, only excepting the trees, lit][:lighting :rendering] [4:43][Consider the two ways of optimising the :lighting solution to only process the necessary elements][:optimisation :rendering :speech] diff --git a/cmuratori/hero/code/code426.hmml b/cmuratori/hero/code/code426.hmml index 9d48e06..635f6c2 100644 --- a/cmuratori/hero/code/code426.hmml +++ b/cmuratori/hero/code/code426.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Persistence" vod_platform=youtube id=5ZcnljyZLWk annotator=Miblo] +[video output=day426 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Persistence" vod_platform=youtube id=5ZcnljyZLWk annotator=Miblo] [0:01][Recap and set the stage for the day debugging the :lighting from last stream][:rendering :speech] [0:50][:Run the game to show our current :lighting situation][:rendering] [2:03][:Lighting Storage][:blackboard :memory :rendering] diff --git a/cmuratori/hero/code/code427.hmml b/cmuratori/hero/code/code427.hmml index 6ccfff9..8cd5880 100644 --- a/cmuratori/hero/code/code427.hmml +++ b/cmuratori/hero/code/code427.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Flicker" vod_platform=youtube id=wvkWI22gV3U annotator=Miblo] +[video output=day427 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Flicker" vod_platform=youtube id=wvkWI22gV3U annotator=Miblo] [0:01][Recap and set the stage for the day doing :lighting :optimisation][:rendering :speech] [2:37][:Run the game to see our current :lighting situation][:rendering] [4:10][Determine to enable OpenGLRenderCommands() to correctly clear the backbuffer][:hardware :research] diff --git a/cmuratori/hero/code/code428.hmml b/cmuratori/hero/code/code428.hmml index f220bcf..9862ee3 100644 --- a/cmuratori/hero/code/code428.hmml +++ b/cmuratori/hero/code/code428.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Light Proportional to Photons per Second" vod_platform=youtube id=pj242UOmouE annotator=Miblo] +[video output=day428 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Light Proportional to Photons per Second" vod_platform=youtube id=pj242UOmouE annotator=Miblo] [0:01][Recap and set the stage for the day continuing debugging the :lighting][:rendering :speech] [3:23][:Lighting transport with fewer sample points than in nature, and the need to record light over time][:blackboard :rendering] [8:11][Introducing 1. Formulation for stored light that means something][:blackboard :lighting :rendering] diff --git a/cmuratori/hero/code/code429.hmml b/cmuratori/hero/code/code429.hmml index f810056..7aba2f1 100644 --- a/cmuratori/hero/code/code429.hmml +++ b/cmuratori/hero/code/code429.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiresolution Light Sampling" vod_platform=youtube id=yrqpqbbe948 annotator=Miblo] +[video output=day429 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiresolution Light Sampling" vod_platform=youtube id=yrqpqbbe948 annotator=Miblo] [0:00][Recap and set the stage for the day working on the :lighting][:rendering :speech] [1:37][:Run the game to show our current :lighting situation whose stability is dependent on the rays][:rendering] [4:14][Wax lyrical on @serge_rgb's wonderful work on ~milton][:blackboard :speech] diff --git a/cmuratori/hero/code/code430.hmml b/cmuratori/hero/code/code430.hmml index e0d01eb..31bad6a 100644 --- a/cmuratori/hero/code/code430.hmml +++ b/cmuratori/hero/code/code430.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Stratifying and Multithreading the Lighting" vod_platform=youtube id=_S6xFy1Le-g annotator=Miblo] +[video output=day430 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Stratifying and Multithreading the Lighting" vod_platform=youtube id=_S6xFy1Le-g annotator=Miblo] [0:02][Recap and set the stage for the day continuing with :lighting mods][:rendering :speech] [0:18][:Lighting mods][:blackboard :rendering] [1:04]["Stratified sampling" with a few words on random number generation and :"debug visualisation"][:blackboard :lighting :prng :rendering :statistics] diff --git a/cmuratori/hero/code/code431.hmml b/cmuratori/hero/code/code431.hmml index 0906bb6..347de97 100644 --- a/cmuratori/hero/code/code431.hmml +++ b/cmuratori/hero/code/code431.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SIMD Raycasting" vod_platform=youtube id=ZnDtlj-_LYE annotator=Miblo] +[video output=day431 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SIMD Raycasting" vod_platform=youtube id=ZnDtlj-_LYE annotator=Miblo] [0:02][Recap and set the stage for the day with a few words on the pace of the project][:speech] [4:09][:Run the game to see our current software-rendered :lighting, with the determination to see how much :performance we can get out of the CPU][:rendering] [6:47][Prevent RayCast() from summing the TotalCastsInitiated][:lighting :rendering] diff --git a/cmuratori/hero/code/code432.hmml b/cmuratori/hero/code/code432.hmml index fe10fbb..e9cb165 100644 --- a/cmuratori/hero/code/code432.hmml +++ b/cmuratori/hero/code/code432.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Main SIMD Raycasting Loop" vod_platform=youtube id=VvxxX9LxR9I annotator=Miblo] +[video output=day432 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing the Main SIMD Raycasting Loop" vod_platform=youtube id=VvxxX9LxR9I annotator=Miblo] [0:01][Recap and set the stage for the day finishing SIMD optimising the :lighting][:optimisation :rendering :speech] [0:47][Toggle on the :threading and add a b32 Hit to raycast_result for RayCast() to encode that a ray did not hit][:lighting :optimisation :rendering] [5:57][:Run the game to find that we're running at 32ms] diff --git a/cmuratori/hero/code/code433.hmml b/cmuratori/hero/code/code433.hmml index 7ca9a4b..a135322 100644 --- a/cmuratori/hero/code/code433.hmml +++ b/cmuratori/hero/code/code433.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Ray vs. AABB Intersections" vod_platform=youtube id=vohsUKjg9tU annotator=Miblo] +[video output=day433 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Ray vs. AABB Intersections" vod_platform=youtube id=vohsUKjg9tU annotator=Miblo] [0:02][Recap and set the stage for the day refining the :lighting][:speech :rendering] [0:31][Take Visual Studio's quick feedback survey][:admin :rant] [8:15][:Run the game to see our current :lighting situation][:rendering] diff --git a/cmuratori/hero/code/code434.hmml b/cmuratori/hero/code/code434.hmml index db51e95..6b4e80e 100644 --- a/cmuratori/hero/code/code434.hmml +++ b/cmuratori/hero/code/code434.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Replacing the Pseudo-random Number Generator" vod_platform=youtube id=OlSYfj8VZi0 annotator=Miblo] +[video output=day434 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Replacing the Pseudo-random Number Generator" vod_platform=youtube id=OlSYfj8VZi0 annotator=Miblo] [0:01][Recap and set the stage for the day investigating the variance (flicker) in the :lighting][:rendering :run] [4:15][Read through and describe our usage of photons per second in the :lighting code][:rendering :research] [8:28][Make ComputeLightPropagation() consider the approximate location of the moon (i.e. directly up in Z) when applying its colour][:lighting :rendering] diff --git a/cmuratori/hero/code/code435.hmml b/cmuratori/hero/code/code435.hmml index 71d735f..0f6010e 100644 --- a/cmuratori/hero/code/code435.hmml +++ b/cmuratori/hero/code/code435.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the CRT from the Win32 Loader" vod_platform=youtube id=sE4tUVaxiV0 annotator=Miblo] +[video output=day435 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the CRT from the Win32 Loader" vod_platform=youtube id=sE4tUVaxiV0 annotator=Miblo] [0:06][Recap and set the stage for the day removing the C Runtime Library][:library :speech] [0:52][Read our linker flags in build.bat][:library :research] [3:02][Inspect our executable in depends[ref diff --git a/cmuratori/hero/code/code436.hmml b/cmuratori/hero/code/code436.hmml index 18e3316..3f97107 100644 --- a/cmuratori/hero/code/code436.hmml +++ b/cmuratori/hero/code/code436.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Spiral and Blue Noise Distributions on the Sphere" vod_platform=youtube id=TfBPaNsGe_k annotator=Miblo] +[video output=day436 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Spiral and Blue Noise Distributions on the Sphere" vod_platform=youtube id=TfBPaNsGe_k annotator=Miblo] [0:03][Recap and set the stage for the day using sine and cosine to improve the :lighting sampling quality][:mathematics :rendering :speech :statistics] [2:08][:Run the game to show the :"debug visualisation" of our :lighting's hemisphere sampling][:rendering :statistics] [4:27][Describe the hemisphere sampling in ComputeLightPropagation()][:lighting :rendering :research :statistics] diff --git a/cmuratori/hero/code/code437.hmml b/cmuratori/hero/code/code437.hmml index cee326b..f638640 100644 --- a/cmuratori/hero/code/code437.hmml +++ b/cmuratori/hero/code/code437.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Precomputed Hemisphere Distributions" vod_platform=youtube id=ZS54TWa-ILA annotator=Miblo] +[video output=day437 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Precomputed Hemisphere Distributions" vod_platform=youtube id=ZS54TWa-ILA annotator=Miblo] [0:06][@combicombi][Q: Casey, was just watching the previous stream about getting better noise sampling, and I was wondering why you need any randomness if you obtain a pretty evenly and well-covered sampling hemisphere?][:prng :statistics] [0:49][Undersampling, and moving noise to the least objectionable place][:blackboard :prng :statistics] [10:59][:Run the game to see how our :lighting is working at the moment][:rendering] diff --git a/cmuratori/hero/code/code438.hmml b/cmuratori/hero/code/code438.hmml index 4300ba5..7484d2e 100644 --- a/cmuratori/hero/code/code438.hmml +++ b/cmuratori/hero/code/code438.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Cosine-weighted Poisson Sampling" vod_platform=youtube id=1SjF9NEcTU8 annotator=Miblo] +[video output=day438 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching to Cosine-weighted Poisson Sampling" vod_platform=youtube id=1SjF9NEcTU8 annotator=Miblo] [0:01][Recap and set the stage for the day with a few words on the recent news around ray tracing][:speech] [2:58][:Run the game to see our current :lighting][:rendering] [4:38][Toggle ComputeLightPropagation() to sample the :lighting using the old white noise scheme][:prng :rendering :statistics] diff --git a/cmuratori/hero/code/code439.hmml b/cmuratori/hero/code/code439.hmml index 49a5d67..a942f63 100644 --- a/cmuratori/hero/code/code439.hmml +++ b/cmuratori/hero/code/code439.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Testing Better Entropy" vod_platform=youtube id=14UGyk8N3p4 annotator=Miblo] +[video output=day439 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Testing Better Entropy" vod_platform=youtube id=14UGyk8N3p4 annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [0:49][Hemisphere Integration][:blackboard :lighting :rendering :statistics] [12:38][Our light reception function][:blackboard :lighting :rendering :statistics] diff --git a/cmuratori/hero/code/code440.hmml b/cmuratori/hero/code/code440.hmml index a66e950..2426ba4 100644 --- a/cmuratori/hero/code/code440.hmml +++ b/cmuratori/hero/code/code440.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=speech title="Introduction to Function Approximation with Andrew Bromage" vod_platform=youtube id=0b68cEY2wKs guest=Pseudonym73 annotator=Miblo] +[video output=day440 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=speech title="Introduction to Function Approximation with Andrew Bromage" vod_platform=youtube id=0b68cEY2wKs guest=Pseudonym73 annotator=Miblo] [0:00][Welcome to a special episode with [@Pseudonym73 Andrew Bromage]] [2:42][@Pseudonym73][How floating point numbers are represented by a computer[ref publisher=IEEE diff --git a/cmuratori/hero/code/code441.hmml b/cmuratori/hero/code/code441.hmml index 7c414c1..5d326a4 100644 --- a/cmuratori/hero/code/code441.hmml +++ b/cmuratori/hero/code/code441.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=admin title="Never, Ever Update Your Development Tools. Ever." vod_platform=youtube id=-Wnx7KznmJU annotator=Miblo] +[video output=day441 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=admin title="Never, Ever Update Your Development Tools. Ever." vod_platform=youtube id=-Wnx7KznmJU annotator=Miblo] [0:00][Welcome to the stream with a brief mention of Visual Studio's installation experience, recalling the time we completed their survey[ref site="Handmade Hero Episode Guide" page="Optimizing Ray vs. AABB Intersections" diff --git a/cmuratori/hero/code/code442.hmml b/cmuratori/hero/code/code442.hmml index 36c622d..9464fb9 100644 --- a/cmuratori/hero/code/code442.hmml +++ b/cmuratori/hero/code/code442.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Getting NSight Working" vod_platform=youtube id=Vodii00nBrA annotator=Miblo] +[video output=day442 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Getting NSight Working" vod_platform=youtube id=Vodii00nBrA annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [0:25][Note that NVIDIA replied to our crash report from the previous stream to let us know that the crash occurred in wglGetProcAddress() inside the old Graphics Driver][:speech] [2:18][Gather further information for NVIDIA, to affirm that it crashes on Graphics Driver 391.01][:admin] diff --git a/cmuratori/hero/code/code443.hmml b/cmuratori/hero/code/code443.hmml index f172b8e..bd15d2c 100644 --- a/cmuratori/hero/code/code443.hmml +++ b/cmuratori/hero/code/code443.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating the Player Movement Code" vod_platform=youtube id=1-10ddFNqcM annotator=Miblo] +[video output=day443 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating the Player Movement Code" vod_platform=youtube id=1-10ddFNqcM annotator=Miblo] [0:07][Recap and set the stage for a few weeks of bouncing around][:speech] [3:16][Determine to lock down the :movement code and make tools to build rooms][:"procedural generation" :speech] [7:19][Re-enable the hero in AddPlayer()][:"entity system"] diff --git a/cmuratori/hero/code/code444.hmml b/cmuratori/hero/code/code444.hmml index 1d9a444..2354188 100644 --- a/cmuratori/hero/code/code444.hmml +++ b/cmuratori/hero/code/code444.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Stubbing Out the World Generator" vod_platform=youtube id=-TBSy54d3ZE annotator=Miblo] +[video output=day444 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Stubbing Out the World Generator" vod_platform=youtube id=-TBSy54d3ZE annotator=Miblo] [0:06][Recap and set the stage for the day][:speech] [1:18][:Run the game with a few words on the :art, :camera and world construction][:"procedural generation" :"graph topology"] [8:02][Explain the existing world struct][:research :"graph topology"] diff --git a/cmuratori/hero/code/code445.hmml b/cmuratori/hero/code/code445.hmml index 5a6c5bd..735c408 100644 --- a/cmuratori/hero/code/code445.hmml +++ b/cmuratori/hero/code/code445.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Entity Creation" vod_platform=youtube id=hhrb6g2OPLI annotator=Miblo] +[video output=day445 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Entity Creation" vod_platform=youtube id=hhrb6g2OPLI annotator=Miblo] [0:01][Recap and set the stage for the day, laying out rooms in a constraint- or evaluation-based manner][:"graph topology" :"procedural generation" :speech] [7:12][Toggle off superfluous test code in GenerateLightingPattern()][:lighting :rendering] [9:26][:Run the game to see that we load up faster][:lighting :performance :rendering] diff --git a/cmuratori/hero/code/code446.hmml b/cmuratori/hero/code/code446.hmml index 0d3cfaa..30cd012 100644 --- a/cmuratori/hero/code/code446.hmml +++ b/cmuratori/hero/code/code446.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Generating Possible Room Volumes" vod_platform=youtube id=BnS1WgMOAYc annotator=Miblo] +[video output=day446 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Generating Possible Room Volumes" vod_platform=youtube id=BnS1WgMOAYc annotator=Miblo] [0:02][Recap and set the stage for the day generating possible room volumes][:"graph topology" :"procedural generation" :speech] [1:52][Describe our current world layout code in CreateOrphanage() with a note that we are using an undirected graph][:"graph topology" :"procedural generation" :research] [4:15][:Run the game to show our current world] diff --git a/cmuratori/hero/code/code447.hmml b/cmuratori/hero/code/code447.hmml index 5c5054b..665caa4 100644 --- a/cmuratori/hero/code/code447.hmml +++ b/cmuratori/hero/code/code447.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Placing Adjacent Rooms" vod_platform=youtube id=afCSha34Hg0 annotator=Miblo] +[video output=day447 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Placing Adjacent Rooms" vod_platform=youtube id=afCSha34Hg0 annotator=Miblo] [0:00][Recap and set the stage for the day continuing on :"procedural generation" of level layout][:speech] [1:47][#if 1 our half-written layout code from yesterday, and implement PushRoom() and PopRoom()][:memory :"procedural generation"] [12:36][Fix up typos in PlaceRoom() and implement CanBeDirection() and HasEntries()][:"procedural generation"] diff --git a/cmuratori/hero/code/code448.hmml b/cmuratori/hero/code/code448.hmml index a606329..5356c16 100644 --- a/cmuratori/hero/code/code448.hmml +++ b/cmuratori/hero/code/code448.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Explicitly Placed Room Connections" vod_platform=youtube id=_ctZUqPtWF4 annotator=Miblo] +[video output=day448 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Explicitly Placed Room Connections" vod_platform=youtube id=_ctZUqPtWF4 annotator=Miblo] [0:05][Recap and set the stage for the day manually laying out rooms to nail down the room placement API][:speech] [2:29][Describe our conceptualisation of min / max in gen_volume][:research] [4:17][Fill Rules for Tile Maps][:blackboard :mathematics] diff --git a/cmuratori/hero/code/code449.hmml b/cmuratori/hero/code/code449.hmml index 53d4234..adcca3d 100644 --- a/cmuratori/hero/code/code449.hmml +++ b/cmuratori/hero/code/code449.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preventing Overlapping Rooms" vod_platform=youtube id=tluPd2CyN3M annotator=Miblo] +[video output=day449 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preventing Overlapping Rooms" vod_platform=youtube id=tluPd2CyN3M annotator=Miblo] [0:00][Recap and set the stage for the day continuing with room layout][:speech] [0:45][:Run the game to show our strange situation with the :camera placement] [1:39][Enable CreateWorld() to set a sane initial :camera position] diff --git a/cmuratori/hero/code/code450.hmml b/cmuratori/hero/code/code450.hmml index bf27dac..f96d2d5 100644 --- a/cmuratori/hero/code/code450.hmml +++ b/cmuratori/hero/code/code450.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Supporting All Room Connection Directions" vod_platform=youtube id=9k35h94RSRs annotator=Miblo] +[video output=day450 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Supporting All Room Connection Directions" vod_platform=youtube id=9k35h94RSRs annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [0:38][Demo the limitations of a) the current :simulation code affecting the :lighting, and b) the :camera code][:rendering :run] [2:36][Determine to exercise the world generation code and add a more manoeuvrable debug :camera][:"procedural generation" :run] diff --git a/cmuratori/hero/code/code451.hmml b/cmuratori/hero/code/code451.hmml index c4688ba..ed782a1 100644 --- a/cmuratori/hero/code/code451.hmml +++ b/cmuratori/hero/code/code451.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating Unproject" vod_platform=youtube id=WtGg7r9ufek annotator=Miblo] +[video output=day451 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating Unproject" vod_platform=youtube id=WtGg7r9ufek annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [1:03][A few words on :art, originally produced remotely by Yangtian Li, and then produced in-house by Anna Rettberg][:speech] [4:35][:Run the game to see what on-demand, in-house :art production would entail] diff --git a/cmuratori/hero/code/code452.hmml b/cmuratori/hero/code/code452.hmml index 87a085d..8081e71 100644 --- a/cmuratori/hero/code/code452.hmml +++ b/cmuratori/hero/code/code452.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Camera Placement and Room Alignment" vod_platform=youtube id=4EdDZlVH8bY annotator=Miblo] +[video output=day452 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Camera Placement and Room Alignment" vod_platform=youtube id=4EdDZlVH8bY annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [1:30][:Run the game with the determination to position and zoom the :camera to focus on a given rectangle, and retain the :simulation region until the camera transitions are complete] [7:39][Make UpdateAndRenderWorld() merge the :camera bounds into the :simulation region] diff --git a/cmuratori/hero/code/code453.hmml b/cmuratori/hero/code/code453.hmml index c32279e..945057c 100644 --- a/cmuratori/hero/code/code453.hmml +++ b/cmuratori/hero/code/code453.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing PNG Headers" vod_platform=youtube id=lkEWbIUEuN0 annotator=Miblo] +[video output=day453 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing PNG Headers" vod_platform=youtube id=lkEWbIUEuN0 annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [0:16][:Run the game to show the current :camera and :lighting situation, and consider our next steps][:rendering] [2:22][Determine to support hot-loadable :art assets in a readily usable format by [@aerettberg Anna], i.e. PNG][:run] diff --git a/cmuratori/hero/code/code454.hmml b/cmuratori/hero/code/code454.hmml index bdc64e0..3715a39 100644 --- a/cmuratori/hero/code/code454.hmml +++ b/cmuratori/hero/code/code454.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing ZLIB Headers" vod_platform=youtube id=nQ0ctmQPs-E annotator=Miblo] +[video output=day454 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing ZLIB Headers" vod_platform=youtube id=nQ0ctmQPs-E annotator=Miblo] [0:00][Welcome to the stream][:speech] [0:21][Recap and set the stage for :parsing PNG IDAT data][:speech] [1:18][:Run the program to look at our IDAT chunks][:parsing] diff --git a/cmuratori/hero/code/code455.hmml b/cmuratori/hero/code/code455.hmml index 032b621..d0d1958 100644 --- a/cmuratori/hero/code/code455.hmml +++ b/cmuratori/hero/code/code455.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Decoding PNG Huffman Tables" vod_platform=youtube id=fuPhHEBTShI annotator=Miblo] +[video output=day455 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Decoding PNG Huffman Tables" vod_platform=youtube id=fuPhHEBTShI annotator=Miblo] [0:00][Recap and set the stage for the day decoding Huffman][:compression :speech] [0:48][Bring us up to speed with ParsePNG()][:compression :research] [2:09][Return to the PNG[ref diff --git a/cmuratori/hero/code/code456.hmml b/cmuratori/hero/code/code456.hmml index c7a4de9..f5fd682 100644 --- a/cmuratori/hero/code/code456.hmml +++ b/cmuratori/hero/code/code456.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Decoding PNG Length and Distance Extra Bits" vod_platform=youtube id=_D_v9DwymgM annotator=Miblo] +[video output=day456 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Decoding PNG Length and Distance Extra Bits" vod_platform=youtube id=_D_v9DwymgM annotator=Miblo] [0:06][Recap and set the stage debugging our PNG reader, with a few words on implementing from a specification][:compression :parsing :speech] [2:12][Step through ParsePNG() and consider our current situation][:compression :parsing :run] [6:41][A few thoughts on compressor scheme quality in terms of its possibility for erroneous output][:compression :speech] diff --git a/cmuratori/hero/code/code457.hmml b/cmuratori/hero/code/code457.hmml index c783a1a..8a1c651 100644 --- a/cmuratori/hero/code/code457.hmml +++ b/cmuratori/hero/code/code457.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing PNG Reconstruction Filters" vod_platform=youtube id=M27KjGYbWvs annotator=Miblo] +[video output=day457 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing PNG Reconstruction Filters" vod_platform=youtube id=M27KjGYbWvs annotator=Miblo] [0:00][Recap and set the stage for the day continuing with our PNG reader][:compression :parsing :speech] [2:44][Our understanding of the DEFLATE encoding][:compression :parsing :speech] [6:00][Pull up our piece of structured :art][:drawing] diff --git a/cmuratori/hero/code/code458.hmml b/cmuratori/hero/code/code458.hmml index 0b73589..d11fcab 100644 --- a/cmuratori/hero/code/code458.hmml +++ b/cmuratori/hero/code/code458.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the PNG Reader" vod_platform=youtube id=iqpGuyc308w annotator=Miblo] +[video output=day458 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the PNG Reader" vod_platform=youtube id=iqpGuyc308w annotator=Miblo] [0:01][Recap and set the stage for the day debugging our PNG reader][:speech] [1:01][On starting by making our decompressor produce the correct number of bytes from our input stream][:compression :speech] [4:14][Approaching problems either by working from a spec, or comparing our implementation with a working version][:speech] diff --git a/cmuratori/hero/code/code459.hmml b/cmuratori/hero/code/code459.hmml index 40ed1c3..3687a4b 100644 --- a/cmuratori/hero/code/code459.hmml +++ b/cmuratori/hero/code/code459.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Partitioning the PNG Reader for Integration" vod_platform=youtube id=pPP4rn3DEAY annotator=Miblo] +[video output=day459 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Partitioning the PNG Reader for Integration" vod_platform=youtube id=pPP4rn3DEAY annotator=Miblo] [0:00][Recap and set the stage for the day working towards putting :art into [~hero Handmade Hero]][:speech] [3:08][@puremouron][Is anyone else mesmerised by the bobbing orphan on the web page[ref site="Handmade Hero" diff --git a/cmuratori/hero/code/code460.hmml b/cmuratori/hero/code/code460.hmml index 311a6f9..c6730bc 100644 --- a/cmuratori/hero/code/code460.hmml +++ b/cmuratori/hero/code/code460.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Providing Platform File Information to the Game" vod_platform=youtube id=1hsgCZShc9Q annotator=Miblo] +[video output=day460 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Providing Platform File Information to the Game" vod_platform=youtube id=1hsgCZShc9Q annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [1:18][Determine to enable the PNG loader to use :memory from an arena][:speech] [5:16][Switch the PNG loader over to use a memory_arena][:memory] diff --git a/cmuratori/hero/code/code461.hmml b/cmuratori/hero/code/code461.hmml index fca3bac..80c162c 100644 --- a/cmuratori/hero/code/code461.hmml +++ b/cmuratori/hero/code/code461.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Checking for File Date Changes" vod_platform=youtube id=k6K7smNtM8A annotator=Miblo] +[video output=day461 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Checking for File Date Changes" vod_platform=youtube id=k6K7smNtM8A annotator=Miblo] [0:00][Recap and set the stage for the day integrating our PNG reader into the game][:"asset loading" :speech] [2:53][Consult our current :"asset loading" code with a view to storing assets more smartly][:"asset loading" :research] [8:04][Walk through our asset struct, and consider removing asset_memory_header][:"asset loading" :research] diff --git a/cmuratori/hero/code/code462.hmml b/cmuratori/hero/code/code462.hmml index 9e9b044..62ef95e 100644 --- a/cmuratori/hero/code/code462.hmml +++ b/cmuratori/hero/code/code462.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Extracting Asset Tiles from Gridded PNGs" vod_platform=youtube id=rWrHfGfzoOE annotator=Miblo] +[video output=day462 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Extracting Asset Tiles from Gridded PNGs" vod_platform=youtube id=rWrHfGfzoOE annotator=Miblo] [0:04][Recap and set the stage for the day][:speech] [1:57][Dive into implementing UpdateAssetPackageFromPNG(), adding an Errors stream to asset_source_file][:"asset loading" :"error handling"] [9:52][Introduce MakeReadStream()][:memory] diff --git a/cmuratori/hero/code/code463.hmml b/cmuratori/hero/code/code463.hmml index f36e394..fd55d40 100644 --- a/cmuratori/hero/code/code463.hmml +++ b/cmuratori/hero/code/code463.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing HHAs for Rewriting" vod_platform=youtube id=-jNJ0nTtbKc annotator=Miblo] +[video output=day463 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing HHAs for Rewriting" vod_platform=youtube id=-jNJ0nTtbKc annotator=Miblo] [0:04][Recap and set the stage for the day continuing with :"asset loading"][:speech] [2:49][Review CheckForArtChanges() with a few words on obtaining tagging information from filenames][:"asset loading" :research] [6:30][Considering file deletion][:"file io" :speech] diff --git a/cmuratori/hero/code/code464.hmml b/cmuratori/hero/code/code464.hmml index 5df6a0a..f0ea723 100644 --- a/cmuratori/hero/code/code464.hmml +++ b/cmuratori/hero/code/code464.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Applying Asset Types and Tags to Imported PNGs" vod_platform=youtube id=afBjVoBhvOM annotator=Miblo] +[video output=day464 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Applying Asset Types and Tags to Imported PNGs" vod_platform=youtube id=afBjVoBhvOM annotator=Miblo] [0:00][Recap and set the stage for the day plumbing in the :"asset loading"][:speech] [1:05][Review CheckForArtChanges() in terms of over-imported asset avoidance][:"asset loading" :research] [3:32][Review WriteModificationsToHHA() with the determination to extract information from, and tag, assets][:"asset loading" :research] diff --git a/cmuratori/hero/code/code465.hmml b/cmuratori/hero/code/code465.hmml index e882264..dd8e840 100644 --- a/cmuratori/hero/code/code465.hmml +++ b/cmuratori/hero/code/code465.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating HHAs from V0 to V1" vod_platform=youtube id=x9NKVi4Dib4 annotator=Miblo] +[video output=day465 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating HHAs from V0 to V1" vod_platform=youtube id=x9NKVi4Dib4 annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [1:47][Take a look at the .hha files in our data directory][:"asset loading" :speech] [3:06][Demo hhaedit creating a new local.hha file][:"asset loading" :run] diff --git a/cmuratori/hero/code/code466.hmml b/cmuratori/hero/code/code466.hmml index 9e20f30..1c28742 100644 --- a/cmuratori/hero/code/code466.hmml +++ b/cmuratori/hero/code/code466.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading and Displaying HHA Files as Text" vod_platform=youtube id=GFhXSma72W0 annotator=Miblo] +[video output=day466 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Loading and Displaying HHA Files as Text" vod_platform=youtube id=GFhXSma72W0 annotator=Miblo] [0:01][Recap and set the stage for the day continuing with our modder-friendly asset file format][:"asset loading" :speech] [2:23][Dive into the code with a few words on the asset annotations, and the determination to augment the hha_asset struct with data conducive to moving assets between packs][:"asset loading" :speech] [7:03][Augment hha_asset with DataSize and DataType][:"asset loading"] diff --git a/cmuratori/hero/code/code467.hmml b/cmuratori/hero/code/code467.hmml index a94693d..56812eb 100644 --- a/cmuratori/hero/code/code467.hmml +++ b/cmuratori/hero/code/code467.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating the Game to HHA Version 1" vod_platform=youtube id=xIh1WOFzIcQ annotator=Miblo] +[video output=day467 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating the Game to HHA Version 1" vod_platform=youtube id=xIh1WOFzIcQ annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [0:33][Check out our testfonts.hha in TabView][:"asset loading" :run] [2:13][Introduce WriteHHA_V1()][:"asset loading"] diff --git a/cmuratori/hero/code/code468.hmml b/cmuratori/hero/code/code468.hmml index 36efb44..ad96633 100644 --- a/cmuratori/hero/code/code468.hmml +++ b/cmuratori/hero/code/code468.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Annotation Data During Import" vod_platform=youtube id=YvIS84oVfyw annotator=Miblo] +[video output=day468 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Annotation Data During Import" vod_platform=youtube id=YvIS84oVfyw annotator=Miblo] [0:00][Recap and set the stage for the day cleaning up the asset importing][:"asset loading" :speech] [2:55][Continuing thoughts on asset tagging][:"asset loading" :speech] [6:26][:Run the game and consider hhaedit's ability to upgrade .hha files][:"asset loading"] diff --git a/cmuratori/hero/code/code469.hmml b/cmuratori/hero/code/code469.hmml index 4027b04..bc8acbf 100644 --- a/cmuratori/hero/code/code469.hmml +++ b/cmuratori/hero/code/code469.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Downsampling Imported Assets" vod_platform=youtube id=OIIgYxV_1GI annotator=Miblo] +[video output=day469 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Downsampling Imported Assets" vod_platform=youtube id=OIIgYxV_1GI annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [2:02][:Research fast, good file hash: xxHash[ref site=xxHash diff --git a/cmuratori/hero/code/code470.hmml b/cmuratori/hero/code/code470.hmml index 6552136..38a9baf 100644 --- a/cmuratori/hero/code/code470.hmml +++ b/cmuratori/hero/code/code470.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating the Renderer Completely (Part 1)" vod_platform=youtube id=q6VHxmGoAuc annotator=Miblo] +[video output=day470 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating the Renderer Completely (Part 1)" vod_platform=youtube id=q6VHxmGoAuc annotator=Miblo] [0:00][][:speech][quote 624] [0:12][Set up for the special two-stream day separating out and finalising the renderer for use in a new project][:api :speech] [4:44][Determine to perform Snuffleupagus-Oriented Programming, creating our dream sample program to drive :API development][:speech] diff --git a/cmuratori/hero/code/code471.hmml b/cmuratori/hero/code/code471.hmml index 61a6b82..b25ebd5 100644 --- a/cmuratori/hero/code/code471.hmml +++ b/cmuratori/hero/code/code471.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating the Renderer Completely (Part 2)" vod_platform=youtube id=RS4kudtk0Xw annotator=Miblo] +[video output=day471 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating the Renderer Completely (Part 2)" vod_platform=youtube id=RS4kudtk0Xw annotator=Miblo] [0:01][Set the stage for the day making the texture system optional][:speech] [2:14][A few words on ping-ponging between the renderer test bed and the full game, to gradually work the code away from the game, like in cookery][:api :speech] [4:16][Pull out non-generic parts of handmade_renderer.h into handmade_math.h and handmade_renderer_software.h][:api] diff --git a/cmuratori/hero/code/code472.hmml b/cmuratori/hero/code/code472.hmml index 49c9638..424e77a 100644 --- a/cmuratori/hero/code/code472.hmml +++ b/cmuratori/hero/code/code472.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Simple Scene with the Separated Renderer" vod_platform=youtube id=D3nI8x_pxpU annotator=Miblo] +[video output=day472 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Simple Scene with the Separated Renderer" vod_platform=youtube id=D3nI8x_pxpU annotator=Miblo] [0:00][Recap and set the stage for the day cleaning up the renderer's :API][:speech] [0:50][Texture handling][:api :"asset loading" :rendering :speech] [3:38][Texture atlases and mipmapping][:api :"asset loading" :rendering :speech] diff --git a/cmuratori/hero/code/code473.hmml b/cmuratori/hero/code/code473.hmml index 9b4f049..a083e26 100644 --- a/cmuratori/hero/code/code473.hmml +++ b/cmuratori/hero/code/code473.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing Screen Coordinates from the Render Group" vod_platform=youtube id=xzOU9RglmIg annotator=Miblo] +[video output=day473 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing Screen Coordinates from the Render Group" vod_platform=youtube id=xzOU9RglmIg annotator=Miblo] [0:08][Recap and set the stage for the day continuing our renderer :API cleanup and addressing texture arrays][:speech] [3:42][:Run the Renderer Test and consider addressing the :API call for rotation][:rendering] [5:58][Consider organising our source files into directories][:speech] diff --git a/cmuratori/hero/code/code474.hmml b/cmuratori/hero/code/code474.hmml index 34948d1..de2dc68 100644 --- a/cmuratori/hero/code/code474.hmml +++ b/cmuratori/hero/code/code474.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the Transient State Concept" vod_platform=youtube id=R-_cK8jBNPE annotator=Miblo] +[video output=day474 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing the Transient State Concept" vod_platform=youtube id=R-_cK8jBNPE annotator=Miblo] [0:01][Recap and set the stage for the day continuing our renderer :API cleanup, with a few general words on API design][:speech] [3:03][Walk through RenderLoop()][:api :research] [5:07][On offering user-controllable granularity in an :API, including both low-level control of data and high-level utility functions][:speech] diff --git a/cmuratori/hero/code/code475.hmml b/cmuratori/hero/code/code475.hmml index 9bb91a0..c58fb37 100644 --- a/cmuratori/hero/code/code475.hmml +++ b/cmuratori/hero/code/code475.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Abstracting the Renderer Interface" vod_platform=youtube id=EguT5zni4J4 annotator=Miblo] +[video output=day475 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Abstracting the Renderer Interface" vod_platform=youtube id=EguT5zni4J4 annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [0:49][Walk through our test RenderLoop() with a view to streamlining the :camera and fog code, and cleaning up the drawing calls in PushSimpleScene()][:api :rendering :research] [3:34][Our framerate problems incurred by the :lighting][:performance :rendering :research] diff --git a/cmuratori/hero/code/code476.hmml b/cmuratori/hero/code/code476.hmml index a39e609..f4d6f6f 100644 --- a/cmuratori/hero/code/code476.hmml +++ b/cmuratori/hero/code/code476.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Providing Convenient Camera Controls" vod_platform=youtube id=05fgxEYTR5M annotator=Miblo] +[video output=day476 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Providing Convenient Camera Controls" vod_platform=youtube id=05fgxEYTR5M annotator=Miblo] [0:00][Recap and set the stage for the day continuing the renderer :API cleanup][:speech] [1:25][Determine to switch platform_renderer to use a table of function pointers, to enable loading of renderers from DLLs][:api :library :speech] [3:41][Switch platform_renderer to use function pointers][:api] diff --git a/cmuratori/hero/code/code477.hmml b/cmuratori/hero/code/code477.hmml index 005f778..28a2387 100644 --- a/cmuratori/hero/code/code477.hmml +++ b/cmuratori/hero/code/code477.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing to Single Dispatch Per Pass (Part 1)" vod_platform=youtube id=xEWV5zvCiho annotator=Miblo] +[video output=day477 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing to Single Dispatch Per Pass (Part 1)" vod_platform=youtube id=xEWV5zvCiho annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [1:05][Reacquaint ourselves with the separated renderer][:api :run] [2:07][Review win32_renderer_test.cpp][:api :research] diff --git a/cmuratori/hero/code/code478.hmml b/cmuratori/hero/code/code478.hmml index 1e923c4..8d25b0e 100644 --- a/cmuratori/hero/code/code478.hmml +++ b/cmuratori/hero/code/code478.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing to Single Dispatch Per Pass (Part 2)" vod_platform=youtube id=0d0_NitChCY annotator=Miblo] +[video output=day478 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Changing to Single Dispatch Per Pass (Part 2)" vod_platform=youtube id=0d0_NitChCY annotator=Miblo] [0:00][Recap our switch to texture vertex indices][:hardware :rendering :speech] [1:36][Augment game_render_commands with an IndexArray, with a few words on the GPU's ability to cache vertex shader transforms][:hardware :rendering] [7:29][Remove renderer_texture_group and renderer_memory_layout, and pass our new IndexArray down the pipe, also augmenting open_gl with IndexArray and MaxIndexCount][:hardware :rendering] diff --git a/cmuratori/hero/code/code479.hmml b/cmuratori/hero/code/code479.hmml index eb118b4..8eec8fc 100644 --- a/cmuratori/hero/code/code479.hmml +++ b/cmuratori/hero/code/code479.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Large Texture Support" vod_platform=youtube id=wzDx--c5uUo annotator=Miblo] +[video output=day479 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Large Texture Support" vod_platform=youtube id=wzDx--c5uUo annotator=Miblo] [0:00][Recap and set the stage for the day][:rendering :speech] [2:11][Plug Meow Hash[ref site="Molly Rocket" diff --git a/cmuratori/hero/code/code480.hmml b/cmuratori/hero/code/code480.hmml index b298cfe..6871ba6 100644 --- a/cmuratori/hero/code/code480.hmml +++ b/cmuratori/hero/code/code480.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Large Texture Support" vod_platform=youtube id=FvNWEIaz9tM annotator=Miblo] +[video output=day480 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Large Texture Support" vod_platform=youtube id=FvNWEIaz9tM annotator=Miblo] [0:00][Recap and set the stage for the day debugging our large texture implementation][:"asset system" :speech] [1:27][Refresh our memories on the additional multiple-dispatch slow path for arbitrary sized textures][:"asset system" :speech] [3:17][Continue to investigate the incorrectness in the multiple-dispatch path][:"asset system"] diff --git a/cmuratori/hero/code/code481.hmml b/cmuratori/hero/code/code481.hmml index 54e9246..e385f77 100644 --- a/cmuratori/hero/code/code481.hmml +++ b/cmuratori/hero/code/code481.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Encoding Cube UVs" vod_platform=youtube id=Oj4J9b8t7ck annotator=Miblo] +[video output=day481 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Encoding Cube UVs" vod_platform=youtube id=Oj4J9b8t7ck annotator=Miblo] [0:02][Recap and set the stage for the day focusing on the :"asset system"][:speech] [4:24][Determine to decorate the world and bind assets to entities][:"asset system" :"entity system" :"procedural generation" :run] [11:20][Open "Fog is broken!" issue[ref diff --git a/cmuratori/hero/code/code482.hmml b/cmuratori/hero/code/code482.hmml index fd769ce..a38332e 100644 --- a/cmuratori/hero/code/code482.hmml +++ b/cmuratori/hero/code/code482.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Associating Tags with PNGs" vod_platform=youtube id=FHqgQaUksok annotator=Miblo] +[video output=day482 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Associating Tags with PNGs" vod_platform=youtube id=FHqgQaUksok annotator=Miblo] [0:00][Recap and set the stage for the day improving our :"asset system"][:speech] [2:14][:Run the game with the determination to texture our world][:"asset system"] [3:43][Set up to associate asset file contents with tags][:"asset system" :speech] diff --git a/cmuratori/hero/code/code483.hmml b/cmuratori/hero/code/code483.hmml index e857516..62502c0 100644 --- a/cmuratori/hero/code/code483.hmml +++ b/cmuratori/hero/code/code483.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Tagged PNG Imports" vod_platform=youtube id=3H4FLqGpTlQ annotator=Miblo] +[video output=day483 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Tagged PNG Imports" vod_platform=youtube id=3H4FLqGpTlQ annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [0:40][:Run the game to see our upside-down and blue-toned textures][:"asset system"] [3:47][The steps in the asset creation, packing, rendering process][:"asset system" :speech] diff --git a/cmuratori/hero/code/code484.hmml b/cmuratori/hero/code/code484.hmml index 93936dd..2d6e295 100644 --- a/cmuratori/hero/code/code484.hmml +++ b/cmuratori/hero/code/code484.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Multi-tile Import" vod_platform=youtube id=sBp83etTY2s annotator=Miblo] +[video output=day484 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Multi-tile Import" vod_platform=youtube id=sBp83etTY2s annotator=Miblo] [0:01][Welcome and set the stage for the day][:speech] [0:17][Set up to try ~cdbg[ref site=CDbg diff --git a/cmuratori/hero/code/code485.hmml b/cmuratori/hero/code/code485.hmml index 4302f59..c95c678 100644 --- a/cmuratori/hero/code/code485.hmml +++ b/cmuratori/hero/code/code485.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Entity Placement to the World Generator" vod_platform=youtube id=2KeNcUTvVcs annotator=Miblo] +[video output=day485 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Entity Placement to the World Generator" vod_platform=youtube id=2KeNcUTvVcs annotator=Miblo] [0:04][Recap and set the stage for the day][:speech] [0:40][:Run the game as a giant, misaligned cat, with a view to implementing the ability to place cats in the world][:"asset system" :"procedural generation"] [8:00][Separating the world generation into room-generation and character-placement phases][:"procedural generation" :speech] diff --git a/cmuratori/hero/code/code486.hmml b/cmuratori/hero/code/code486.hmml index f0ad789..f84a28d 100644 --- a/cmuratori/hero/code/code486.hmml +++ b/cmuratori/hero/code/code486.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Multiple Alignment Points" vod_platform=youtube id=UVwFh2pvS2I annotator=Miblo] +[video output=day486 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Multiple Alignment Points" vod_platform=youtube id=UVwFh2pvS2I annotator=Miblo] [0:03][Recap and set the stage for the day][:speech] [0:45][Thoughts on augmenting artwork with information not intrinsic to the artwork itself, e.g. positional relationships of different assets][:"asset system" :run] [9:29][Authoritative vs non-authoritative resources][:"asset system" :run] diff --git a/cmuratori/hero/code/code487.hmml b/cmuratori/hero/code/code487.hmml index 87a088b..e738021 100644 --- a/cmuratori/hero/code/code487.hmml +++ b/cmuratori/hero/code/code487.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hit-Testing Boxes in 3D" vod_platform=youtube id=g6lM0xhcTX0 annotator=Miblo] +[video output=day487 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hit-Testing Boxes in 3D" vod_platform=youtube id=g6lM0xhcTX0 annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [0:30][:Run the game and point out the discombobulation of the cat artwork][:"asset system"] [1:33][View the intro_art_v2.hha file in TabView][:admin :"asset system"] diff --git a/cmuratori/hero/code/code488.hmml b/cmuratori/hero/code/code488.hmml index 8fe3ace..3cead9f 100644 --- a/cmuratori/hero/code/code488.hmml +++ b/cmuratori/hero/code/code488.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding an In-Game Editor" vod_platform=youtube id=fDSVYJMXnIQ annotator=Miblo] +[video output=day488 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding an In-Game Editor" vod_platform=youtube id=fDSVYJMXnIQ annotator=Miblo] [0:02][Recap and set the stage for the day implementing asset editing features][:"asset system" :speech] [2:00][:Run the game to see our currently misaligned and scaled cat][:"asset system"] [3:33][Set up to implement asset editing, comparing our procedurally generated situation with the hand-designed situation of a game like Braid][:"asset system" :"procedural generation" :speech] diff --git a/cmuratori/hero/code/code489.hmml b/cmuratori/hero/code/code489.hmml index 4a035f6..36bd3dd 100644 --- a/cmuratori/hero/code/code489.hmml +++ b/cmuratori/hero/code/code489.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Undo and Redo" vod_platform=youtube id=HT7IPuVmzCE annotator=Miblo] +[video output=day489 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing Undo and Redo" vod_platform=youtube id=HT7IPuVmzCE annotator=Miblo] [0:00][Recap and set the stage for the day implementing our asset editor :UI][:"asset system" :speech] [0:36][:Run the game to see the current :UI capabilities of our :profiling :"debug system"] [4:16][Review the purpose of AssetEditor(), editing Alignment Points][:"asset system" :research] diff --git a/cmuratori/hero/code/code490.hmml b/cmuratori/hero/code/code490.hmml index ca1f45a..5c6ed3a 100644 --- a/cmuratori/hero/code/code490.hmml +++ b/cmuratori/hero/code/code490.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Merging Debug and Developer UI" vod_platform=youtube id=ja4X99Spj7o annotator=Miblo] +[video output=day490 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Merging Debug and Developer UI" vod_platform=youtube id=ja4X99Spj7o annotator=Miblo] [0:00][Recap and set the stage for the day and December's surprise streams in celebration of Krampuslauf][:speech] [1:46][:Run the game and set up to edit asset annotations][:"asset system" :ui] [4:58][Review AssetEditor() and the beginnings of our :UI functionality][:"asset system" :research] diff --git a/cmuratori/hero/code/code491.hmml b/cmuratori/hero/code/code491.hmml index d817402..f44e5ce 100644 --- a/cmuratori/hero/code/code491.hmml +++ b/cmuratori/hero/code/code491.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Basic Editor UI" vod_platform=youtube id=1vq8sVOzGRQ annotator=Miblo] +[video output=day491 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Basic Editor UI" vod_platform=youtube id=1vq8sVOzGRQ annotator=Miblo] [0:01][Recap and set the stage for the day wiring up our asset editor][:"asset system" :speech :ui] [1:03][:Run the game to show our current asset editor :UI][:"asset system"] [2:36][A few words on our immediate-mode user interface][:speech :ui] diff --git a/cmuratori/hero/code/code492.hmml b/cmuratori/hero/code/code492.hmml index aba6b41..f10a960 100644 --- a/cmuratori/hero/code/code492.hmml +++ b/cmuratori/hero/code/code492.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding More Editor Interactions" vod_platform=youtube id=F5fgotKYqQU annotator=Miblo] +[video output=day492 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding More Editor Interactions" vod_platform=youtube id=F5fgotKYqQU annotator=Miblo] [0:01][Recap and set the stage for the day continuing with our asset editing :UI][:"asset system" :speech] [1:22][:Run the game to show our asset editing :UI and consider positioning and styling it, and aggregate continuous interactions (e.g. drags)][:"asset system"] [8:00][Set up to enable the :"undo / redo" system to aggregate continuous interactions, introducing the notion of an InProgressSentinel in the in_game_editor][:"asset system" :ui] diff --git a/cmuratori/hero/code/code493.hmml b/cmuratori/hero/code/code493.hmml index a02906e..4c063a1 100644 --- a/cmuratori/hero/code/code493.hmml +++ b/cmuratori/hero/code/code493.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the Editor UI Layout" vod_platform=youtube id=aHG-uTt-n9Q annotator=Miblo] +[video output=day493 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up the Editor UI Layout" vod_platform=youtube id=aHG-uTt-n9Q annotator=Miblo] [0:01][Recap and set the stage for the day beautifying the asset editing :UI][:"asset system" :speech] [1:32][Showcase the current asset editing :UI][:"asset system" :run] [3:37][Introduce the notion of tabbed :UI sections, and try to make UpdateAndRenderEditor() peg the :UI to the left side of the screen][:"asset system"] diff --git a/cmuratori/hero/code/code494.hmml b/cmuratori/hero/code/code494.hmml index d96ca70..94354e7 100644 --- a/cmuratori/hero/code/code494.hmml +++ b/cmuratori/hero/code/code494.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing Entity Pieces for Alignment Points" vod_platform=youtube id=0Dpi3fIWiBo annotator=Miblo] +[video output=day494 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing Entity Pieces for Alignment Points" vod_platform=youtube id=0Dpi3fIWiBo annotator=Miblo] [0:01][Recap and set the stage for the day][:"asset system" :speech] [5:02][Demo the asset editor :UI][:"asset system" :run] [8:08][Reacquaint ourselves with the bitmap alignment and sizing code][:"asset system" :research] diff --git a/cmuratori/hero/code/code495.hmml b/cmuratori/hero/code/code495.hmml index 0abd39e..99964a3 100644 --- a/cmuratori/hero/code/code495.hmml +++ b/cmuratori/hero/code/code495.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving the Alignment Editing UI" vod_platform=youtube id=ma6tAZRiDh8 annotator=Miblo] +[video output=day495 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving the Alignment Editing UI" vod_platform=youtube id=ma6tAZRiDh8 annotator=Miblo] [0:01][Recap and set the stage for the day doing, essentially, skeletal :animation][:"asset system" :speech] [5:14][Set up to snap heads onto bodies and visualise snapping points, considering flexible scaling][:animation :"asset system" :run :ui] [10:51][A few preliminary words on immediate-mode GUI][:speech :ui] diff --git a/cmuratori/hero/code/code496.hmml b/cmuratori/hero/code/code496.hmml index 2824ebd..db307af 100644 --- a/cmuratori/hero/code/code496.hmml +++ b/cmuratori/hero/code/code496.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Attachment Point Transforms" vod_platform=youtube id=Ip3NiJ7ojN8 annotator=Miblo] +[video output=day496 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Attachment Point Transforms" vod_platform=youtube id=Ip3NiJ7ojN8 annotator=Miblo] [0:00][Recap and set the stage for the day snapping cat heads onto bodies][:"asset system" :speech :ui] [0:50][Showcase the asset editing :UI, with thoughts on scaling asset pieces][:"asset system" :run] [5:24][Storing and transforming alignment points of entities on-demand][:"asset system" :"entity system" :speech] diff --git a/cmuratori/hero/code/code497.hmml b/cmuratori/hero/code/code497.hmml index 7e37d5f..3dc4323 100644 --- a/cmuratori/hero/code/code497.hmml +++ b/cmuratori/hero/code/code497.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting on Asset System Cleanup" vod_platform=youtube id=IlLZyemvqB8 annotator=Miblo] +[video output=day497 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting on Asset System Cleanup" vod_platform=youtube id=IlLZyemvqB8 annotator=Miblo] [0:01][Recap and set the stage for the day cleaning up the :"asset system"][:speech] [0:58][Showcase our asset editing :UI with snapping functionality, setting up to implement scaling and saving][:"asset system" :run] [5:22][Plans for after the :"asset system", making the game look more professional][:run] diff --git a/cmuratori/hero/code/code498.hmml b/cmuratori/hero/code/code498.hmml index 33de246..32ef026 100644 --- a/cmuratori/hero/code/code498.hmml +++ b/cmuratori/hero/code/code498.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Asset System Cleanup" vod_platform=youtube id=aQyYn_y2Tcg annotator=Miblo] +[video output=day498 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Asset System Cleanup" vod_platform=youtube id=aQyYn_y2Tcg annotator=Miblo] [0:00][Recap and set the stage for the day finishing our :"asset system" cleanup][:speech] [0:49][Reacquaint ourselves with the renderer_texture queueing / dequeuing code][:"asset system" :rendering :research] [5:00][Split AddOp() into newly introduced functions CompleteTextureOp() and BeginTextureOp()][:rendering] diff --git a/cmuratori/hero/code/code499.hmml b/cmuratori/hero/code/code499.hmml index 120ec2b..997985b 100644 --- a/cmuratori/hero/code/code499.hmml +++ b/cmuratori/hero/code/code499.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unifying Debug and Editor Modes" vod_platform=youtube id=Xv3uTUvE-zw annotator=Miblo] +[video output=day499 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Unifying Debug and Editor Modes" vod_platform=youtube id=Xv3uTUvE-zw annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [0:52][Set up to unify the debug and asset editing interfaces][:"asset system" :"debug system" :run :ui] [5:42][Introduce the notion of a global dev_mode, of which asset editing and profiling are modes][:ui] diff --git a/cmuratori/hero/code/code500.hmml b/cmuratori/hero/code/code500.hmml index 6ed0456..91106a1 100644 --- a/cmuratori/hero/code/code500.hmml +++ b/cmuratori/hero/code/code500.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Saving HHAs Modified by the In-Game Editor" vod_platform=youtube id=EgLT-43RnC4 annotator=Miblo] +[video output=day500 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Saving HHAs Modified by the In-Game Editor" vod_platform=youtube id=EgLT-43RnC4 annotator=Miblo] [0:01][Recap and set the stage for the day saving our in-game asset edits][:"asset system" :run] [5:07][Dive into saving asset modifications, introducing SaveAllChanges() and WriteAllHHAModifications()][:"asset system"] [10:35][Fixing "redo"][:speech :"undo / redo"] diff --git a/cmuratori/hero/code/code501.hmml b/cmuratori/hero/code/code501.hmml index 775600b..2aa8d87 100644 --- a/cmuratori/hero/code/code501.hmml +++ b/cmuratori/hero/code/code501.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Importing Orphans" vod_platform=youtube id=7MnGW4k0LLE annotator=Miblo] +[video output=day501 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Importing Orphans" vod_platform=youtube id=7MnGW4k0LLE annotator=Miblo] [0:00][Welcome to the stream][:speech] [0:19][Show our correct :camera interpolation, and plan to get our hero back in][:run] [2:06][Showcase [@aerettberg Anna]'s new :art pack, with heads and bodies in different files][:admin :"asset system"] diff --git a/cmuratori/hero/code/code502.hmml b/cmuratori/hero/code/code502.hmml index fc76582..ad64826 100644 --- a/cmuratori/hero/code/code502.hmml +++ b/cmuratori/hero/code/code502.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Stairs to the Generator" vod_platform=youtube id=tJlhy8qUgEk annotator=Miblo] +[video output=day502 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Stairs to the Generator" vod_platform=youtube id=tJlhy8qUgEk annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [0:55][Set up to continue working on the :camera, scrolling and zooming][:run] [3:45][:Camera: Scrolling in large rooms][:speech] diff --git a/cmuratori/hero/code/code503.hmml b/cmuratori/hero/code/code503.hmml index 3b9bea9..447b67a 100644 --- a/cmuratori/hero/code/code503.hmml +++ b/cmuratori/hero/code/code503.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Constructing a Camera Easing Function" vod_platform=youtube id=bOJC2uiBBJM annotator=Miblo] +[video output=day503 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Constructing a Camera Easing Function" vod_platform=youtube id=bOJC2uiBBJM annotator=Miblo] [0:00][Set up to work on :camera functionality][:run] [5:27][Meaningful Fog and AlphaClip parameters][:camera :speech] [9:18][Fading floors and moving the :camera][:blackboard] diff --git a/cmuratori/hero/code/code504.hmml b/cmuratori/hero/code/code504.hmml index 6ecd9ef..0ca579e 100644 --- a/cmuratori/hero/code/code504.hmml +++ b/cmuratori/hero/code/code504.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploring Camera Interpolation Alternatives" vod_platform=youtube id=JlOPS70vROM annotator=Miblo] +[video output=day504 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploring Camera Interpolation Alternatives" vod_platform=youtube id=JlOPS70vROM annotator=Miblo] [0:00][Recap and set the stage for the day][:camera :speech] [0:48][Show our :camera transitions, noting our desire to follow a moving target][:run] [3:04][Moving :Camera Target][:blackboard :mathematics] diff --git a/cmuratori/hero/code/code505.hmml b/cmuratori/hero/code/code505.hmml index 0f094e7..b449110 100644 --- a/cmuratori/hero/code/code505.hmml +++ b/cmuratori/hero/code/code505.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Placing Multiple Entities at a Time" vod_platform=youtube id=_AGAW_82e0w annotator=Miblo] +[video output=day505 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Placing Multiple Entities at a Time" vod_platform=youtube id=_AGAW_82e0w annotator=Miblo] [0:00][Recap and set the stage for the first day in the new office, only possible today thanks to [@naysayer88 Jon] and [@aerettberg Anna]][:speech] [4:00][Show our proportional derivative controlled :camera behaviour][:run] [6:17][Plan to clean out the :camera wobble in Z, cap the speed at which the camera considers changes and re-enable the debug camera][:run] diff --git a/cmuratori/hero/code/code506.hmml b/cmuratori/hero/code/code506.hmml index 41ca379..1d6574e 100644 --- a/cmuratori/hero/code/code506.hmml +++ b/cmuratori/hero/code/code506.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Camera Motion" vod_platform=youtube id=MDeoneIezno annotator=Miblo] +[video output=day506 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Camera Motion" vod_platform=youtube id=MDeoneIezno annotator=Miblo] [0:00][Recap our new entity grouping functionality and set the stage for the day][:"entity system" :speech] [1:59][Show off our orphan–cat groups][:"entity system" :run] [3:02][Create a special camera-triggering entity region, introducing AddConversation() and GetCameraOffsetZForCloseup()][:camera :"entity system"] diff --git a/cmuratori/hero/code/code507.hmml b/cmuratori/hero/code/code507.hmml index e2370d9..112614c 100644 --- a/cmuratori/hero/code/code507.hmml +++ b/cmuratori/hero/code/code507.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="LRU Texture Handle Reuse" vod_platform=youtube id=N882oz3Kv2A annotator=Miblo] +[video output=day507 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="LRU Texture Handle Reuse" vod_platform=youtube id=N882oz3Kv2A annotator=Miblo] [0:00][Set the stage for an unannounced day mopping up issues[ref site=GitHub page="HandmadeHero / cpp" diff --git a/cmuratori/hero/code/code508.hmml b/cmuratori/hero/code/code508.hmml index 0c68fac..37923f6 100644 --- a/cmuratori/hero/code/code508.hmml +++ b/cmuratori/hero/code/code508.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing the Remaining GitHub Issues" vod_platform=youtube id=iySIodVWS_s annotator=Miblo] +[video output=day508 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixing the Remaining GitHub Issues" vod_platform=youtube id=iySIodVWS_s annotator=Miblo] [0:00][Recap and set the stage for the bonus stream][:speech] [1:58][Close "Segfault in handmade_brain.cpp:277" issue[ref site=GitHub diff --git a/cmuratori/hero/code/code509.hmml b/cmuratori/hero/code/code509.hmml index 045017f..5597076 100644 --- a/cmuratori/hero/code/code509.hmml +++ b/cmuratori/hero/code/code509.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=admin title="Creating Tags Files" vod_platform=youtube id=XSKhCJ9b8ZA annotator=Miblo] +[video output=day509 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=admin title="Creating Tags Files" vod_platform=youtube id=XSKhCJ9b8ZA annotator=Miblo] [0:00][Briefly recap our ~4coder upgrade and set the stage for the day][:speech] [1:07][Set up to try out [@x13pixels George Menhorn]'s ~RemedyBG debugger[ref site=itch.io diff --git a/cmuratori/hero/code/code510.hmml b/cmuratori/hero/code/code510.hmml index 6abfd75..523738e 100644 --- a/cmuratori/hero/code/code510.hmml +++ b/cmuratori/hero/code/code510.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Parser for HHTs" vod_platform=youtube id=Ha3NbEhXAtU annotator=Miblo] +[video output=day510 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Parser for HHTs" vod_platform=youtube id=Ha3NbEhXAtU annotator=Miblo] [0:03][Welcome to the stream][:speech] [0:33][Announce a job opening on the game Sub Rosa[ref site=Steam diff --git a/cmuratori/hero/code/code511.hmml b/cmuratori/hero/code/code511.hmml index 6e9d8f7..ef43876 100644 --- a/cmuratori/hero/code/code511.hmml +++ b/cmuratori/hero/code/code511.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Merging HHT Parsing into the Asset System" vod_platform=youtube id=-6M7yekHfiU annotator=Miblo] +[video output=day511 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Merging HHT Parsing into the Asset System" vod_platform=youtube id=-6M7yekHfiU annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [2:18][Show our tag :"file format" and the separation of .hht files from the source assets][:speech] [4:37][Organise our uncompressed cutscene layer images for all eleven shots into a single directory[ref diff --git a/cmuratori/hero/code/code512.hmml b/cmuratori/hero/code/code512.hmml index b649796..f776c8c 100644 --- a/cmuratori/hero/code/code512.hmml +++ b/cmuratori/hero/code/code512.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating Assets via HHT Files" vod_platform=youtube id=WSziFN_wG4w annotator=Miblo] +[video output=day512 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Updating Assets via HHT Files" vod_platform=youtube id=WSziFN_wG4w annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [1:32][Set up to use the traditional announcer voice in honour of Day 512, as per @ivereadthesequel's request][:speech] [3:04][And we're off, summarising our .hht :parsing in the announcer voice][:"asset system" :speech] diff --git a/cmuratori/hero/code/code513.hmml b/cmuratori/hero/code/code513.hmml index 8cdc394..09e8511 100644 --- a/cmuratori/hero/code/code513.hmml +++ b/cmuratori/hero/code/code513.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Raw Tokens and Alignment Point Parsing" vod_platform=youtube id=Rw0K9spDLrY annotator=Miblo] +[video output=day513 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Raw Tokens and Alignment Point Parsing" vod_platform=youtube id=Rw0K9spDLrY annotator=Miblo] [0:01][Recap and set the stage for the day getting our asset tagging file :parsing working][:"asset system" :speech] [2:24][Demo our asset selection and alignment point editing :UI][:"asset system" :run] [5:41][On the need to generate .hht files corresponding to .hha files][:"asset system" :run] diff --git a/cmuratori/hero/code/code514.hmml b/cmuratori/hero/code/code514.hmml index bea3029..36c18d5 100644 --- a/cmuratori/hero/code/code514.hmml +++ b/cmuratori/hero/code/code514.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Image and Metadata Imports" vod_platform=youtube id=Kbw67tdiaHo annotator=Miblo] +[video output=day514 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating Image and Metadata Imports" vod_platform=youtube id=Kbw67tdiaHo annotator=Miblo] [0:00][Recap and set the stage for the day communicating asset data between the .hht and .hha files][:"asset system" :speech] [4:11][Merging alignment points into .hht][:"asset system" :speech] [7:18][Our options for merging in alignment points][:"asset system" :speech] diff --git a/cmuratori/hero/code/code515.hmml b/cmuratori/hero/code/code515.hmml index a283c11..02bcf29 100644 --- a/cmuratori/hero/code/code515.hmml +++ b/cmuratori/hero/code/code515.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging HHT to HHA Packing" vod_platform=youtube id=SWdM5MdSCbc annotator=Miblo] +[video output=day515 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging HHT to HHA Packing" vod_platform=youtube id=SWdM5MdSCbc annotator=Miblo] [0:01][Meow the Infinite[ref site="Meow the Infinite" url=https://meowtheinfinite.com/]][:research] diff --git a/cmuratori/hero/code/code516.hmml b/cmuratori/hero/code/code516.hmml index 0dfef1f..455fbb5 100644 --- a/cmuratori/hero/code/code516.hmml +++ b/cmuratori/hero/code/code516.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rewriting HHTs" vod_platform=youtube id=XrrepWs0xoQ annotator=Miblo] +[video output=day516 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Rewriting HHTs" vod_platform=youtube id=XrrepWs0xoQ annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [1:53][The workings of our .hht and .hha files, and hhaedit][:"asset system" :speech] [3:23][Look at our exported .bmp files in GIMP][:admin :"asset system"] diff --git a/cmuratori/hero/code/code517.hmml b/cmuratori/hero/code/code517.hmml index ff13cca..d05c905 100644 --- a/cmuratori/hero/code/code517.hmml +++ b/cmuratori/hero/code/code517.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inserting and Rewriting HHT Alignment Points" vod_platform=youtube id=lepbJedkolg annotator=Miblo] +[video output=day517 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Inserting and Rewriting HHT Alignment Points" vod_platform=youtube id=lepbJedkolg annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [1:15][Demo our asset alignment point editor][:"asset system" :run :ui] [5:32][Synchronising our asset alignment points between .hha and .hht files][:"asset system" :parsing :speech] diff --git a/cmuratori/hero/code/code518.hmml b/cmuratori/hero/code/code518.hmml index 8f09ead..60fa252 100644 --- a/cmuratori/hero/code/code518.hmml +++ b/cmuratori/hero/code/code518.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying Import Errors" vod_platform=youtube id=sGmiIyWx8Gs annotator=Miblo] +[video output=day518 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Displaying Import Errors" vod_platform=youtube id=sGmiIyWx8Gs annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [2:17][Fix ParseTopLevelBlock() to correctly consume a semicolon only once, and remove the redundant check for Context->HHTOut, as per @frostyninja's suggestion][:"asset system" :parsing] [6:34][Loading alignment points from .hht and applying them to the live assets][:"asset system" :speech :ui] diff --git a/cmuratori/hero/code/code519.hmml b/cmuratori/hero/code/code519.hmml index 74b8d8b..f8aa029 100644 --- a/cmuratori/hero/code/code519.hmml +++ b/cmuratori/hero/code/code519.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Brainstorming about Z Bias" vod_platform=youtube id=3vUzT7JFMVc annotator=Miblo] +[video output=day519 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Brainstorming about Z Bias" vod_platform=youtube id=3vUzT7JFMVc annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [1:35][Fix typos in EditableBoolean(), EditableSize() and Error() as per @KimJorgensen's bug report[ref site=GitHub diff --git a/cmuratori/hero/code/code520.hmml b/cmuratori/hero/code/code520.hmml index b45ae0b..1a7538d 100644 --- a/cmuratori/hero/code/code520.hmml +++ b/cmuratori/hero/code/code520.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Solving for Debug Camera Parameters" vod_platform=youtube id=yQpCRzF717k annotator=Miblo] +[video output=day520 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Solving for Debug Camera Parameters" vod_platform=youtube id=yQpCRzF717k annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [2:34][Demo our world level / elevation fogging, and our need for a rigorous Z-bias solution][:camera :rendering :run] [5:52][Z Occlusion][:blackboard :rendering :sorting] diff --git a/cmuratori/hero/code/code521.hmml b/cmuratori/hero/code/code521.hmml index 3b66c60..220c20a 100644 --- a/cmuratori/hero/code/code521.hmml +++ b/cmuratori/hero/code/code521.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Missing Parent Pointers" vod_platform=youtube id=2YF5klxWgxg annotator=Miblo] +[video output=day521 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Missing Parent Pointers" vod_platform=youtube id=2YF5klxWgxg annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [0:33][Show off our sprite Y-displacement solution (replacing Z bias)][:"entity system" :run] [3:06][Make UpdateAndRenderWorld() pan the debug :camera along its own axes (rather than those of the regular game camera)] diff --git a/cmuratori/hero/code/code522.hmml b/cmuratori/hero/code/code522.hmml index b2197e1..470e035 100644 --- a/cmuratori/hero/code/code522.hmml +++ b/cmuratori/hero/code/code522.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Solving for Sorting Displacement" vod_platform=youtube id=q8_iHs_GJPs annotator=Miblo] +[video output=day522 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Solving for Sorting Displacement" vod_platform=youtube id=q8_iHs_GJPs annotator=Miblo] [0:02][Recap yesterday's post-stream suggestion from @binjimin, that our erroneous ParentAlignType may be caused by an unset parent TextureHandle][:speech] [1:25][Change UpdateAndRenderEntities() to acquire the TextureHandle after having set all the BitmapInfo][:"entity system"] [4:47][Separating streaming and non-streaming information][:memory :speech] diff --git a/cmuratori/hero/code/code523.hmml b/cmuratori/hero/code/code523.hmml index 75bbe59..a782b00 100644 --- a/cmuratori/hero/code/code523.hmml +++ b/cmuratori/hero/code/code523.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Git" vod_platform=youtube id=3mOVK0oSH2M annotator=Miblo] +[video output=day523 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Git" vod_platform=youtube id=3mOVK0oSH2M annotator=Miblo] [0:01][Welcome with introductory thoughts on professional-grade source code control][:speech :vcs] [2:15][Introducing git[ref site=GitHub diff --git a/cmuratori/hero/code/code524.hmml b/cmuratori/hero/code/code524.hmml index 41d396f..8cf4942 100644 --- a/cmuratori/hero/code/code524.hmml +++ b/cmuratori/hero/code/code524.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integrating WAV Importing" vod_platform=youtube id=mXqA2U0sa28 annotator=Miblo] +[video output=day524 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Integrating WAV Importing" vod_platform=youtube id=mXqA2U0sa28 annotator=Miblo] [0:01][Welcome with a plug of Handmade Seattle[ref site="Handmade Seattle" url=https://www.handmade-seattle.com/], noting that the HandmadeCon site[ref diff --git a/cmuratori/hero/code/code525.hmml b/cmuratori/hero/code/code525.hmml index 50fc993..faf9068 100644 --- a/cmuratori/hero/code/code525.hmml +++ b/cmuratori/hero/code/code525.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Import Tag Grids" vod_platform=youtube id=t81mqx7rf1k annotator=Miblo] +[video output=day525 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Import Tag Grids" vod_platform=youtube id=t81mqx7rf1k annotator=Miblo] [0:00][Recap and set the stage for the day finishing up our WAV file importing][:"asset system" :speech] [4:23][][:speech][quote 645] [5:03][Set up to upgrade ~remedybg][:speech] diff --git a/cmuratori/hero/code/code526.hmml b/cmuratori/hero/code/code526.hmml index deeeece..9894938 100644 --- a/cmuratori/hero/code/code526.hmml +++ b/cmuratori/hero/code/code526.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Single-Buffer Sound Streaming" vod_platform=youtube id=sU56s8w878Q annotator=Miblo] +[video output=day526 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Single-Buffer Sound Streaming" vod_platform=youtube id=sU56s8w878Q annotator=Miblo] [0:05][Note the upgrade to ~remedybg 0.2.2.0 with thanks to @x13pixels][:speech] [1:18][Set up to get our audio streaming into the game, checking out intro_cutscene.hha in TabView][:admin :"asset system"] [4:06][Streaming audio into 256KiB fixed-size chunks, with thoughts on audio-visual budgetary considerations][:"asset system" :speech] diff --git a/cmuratori/hero/code/code527.hmml b/cmuratori/hero/code/code527.hmml index cc4df06..47acc20 100644 --- a/cmuratori/hero/code/code527.hmml +++ b/cmuratori/hero/code/code527.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Stand-Alone Font Extractor" vod_platform=youtube id=n8zn2DYjTbU annotator=Miblo] +[video output=day527 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Stand-Alone Font Extractor" vod_platform=youtube id=n8zn2DYjTbU annotator=Miblo] [0:01][Note our capability to rebuild all of our assets except fonts][:"asset system" :font :speech] [2:04][Cross-platform :font processing][:"platform layer" :speech] [5:08][Reacquaint ourselves with our current .hha representation of fonts][:"asset system" :font :research] diff --git a/cmuratori/hero/code/code528.hmml b/cmuratori/hero/code/code528.hmml index 342fe93..0058c24 100644 --- a/cmuratori/hero/code/code528.hmml +++ b/cmuratori/hero/code/code528.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing HHTs from HHFont" vod_platform=youtube id=yzLKupv6Oy0 annotator=Miblo] +[video output=day528 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing HHTs from HHFont" vod_platform=youtube id=yzLKupv6Oy0 annotator=Miblo] [0:00][Recap and set the stage for the day processing fonts][:"asset system" :font :speech] [1:46][Demo hhfont with thoughts on localisation][:admin :"asset system" :font] [7:16][Walk through the hhfont utility][:"asset system" :font :research] diff --git a/cmuratori/hero/code/code529.hmml b/cmuratori/hero/code/code529.hmml index afcf623..b1e62ec 100644 --- a/cmuratori/hero/code/code529.hmml +++ b/cmuratori/hero/code/code529.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the PNG Writer" vod_platform=youtube id=WFs7irxSpwc annotator=Miblo] +[video output=day529 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the PNG Writer" vod_platform=youtube id=WFs7irxSpwc annotator=Miblo] [0:01][Recap and set the stage for the day debugging our :font glyph PNG writer][:speech] [4:59][Reacquaint ourselves with PNGFilterReconstruct()][:research] [7:11][Try running test_png on the known-valid shot4_2.png][:admin :"asset system"] diff --git a/cmuratori/hero/code/code530.hmml b/cmuratori/hero/code/code530.hmml index 3933a33..bacb0ca 100644 --- a/cmuratori/hero/code/code530.hmml +++ b/cmuratori/hero/code/code530.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing Large PNGs and Supersampling Fonts" vod_platform=youtube id=6-nOuoehfd4 annotator=Miblo] +[video output=day530 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Writing Large PNGs and Supersampling Fonts" vod_platform=youtube id=6-nOuoehfd4 annotator=Miblo] [0:00][Recap and set the stage for the day with a few words on asset metadata][:"asset system" :font :speech] [4:19][Determine to address the "Support writing "large" PNGs" issue[ref site=GitHub diff --git a/cmuratori/hero/code/code531.hmml b/cmuratori/hero/code/code531.hmml index b650d33..047a2ab 100644 --- a/cmuratori/hero/code/code531.hmml +++ b/cmuratori/hero/code/code531.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing and Updating Font Metadata" vod_platform=youtube id=uvPbmPLfArQ annotator=Miblo] +[video output=day531 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Parsing and Updating Font Metadata" vod_platform=youtube id=uvPbmPLfArQ annotator=Miblo] [0:01][Recap and set the stage for the day, assuming that our certificates are not about to expire][:speech] [2:34][Recall Windows' rule for antialiasing fonts (up to 353px high), and set up to parse and update :font metadata][:speech] [4:33][Address the "hhfont creates corrupt PNG for "space" glyph" issue[ref diff --git a/cmuratori/hero/code/code532.hmml b/cmuratori/hero/code/code532.hmml index f7a7522..65cc501 100644 --- a/cmuratori/hero/code/code532.hmml +++ b/cmuratori/hero/code/code532.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing HHT-Based Font Importing" vod_platform=youtube id=nTirm1eqz8M annotator=Miblo] +[video output=day532 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing HHT-Based Font Importing" vod_platform=youtube id=nTirm1eqz8M annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [1:32][Check out our NotImplemented routines][:research] [2:34][Implement the overloaded GetOrCreateAssetSourceFile() that takes a string, making the char * version call it] diff --git a/cmuratori/hero/code/code533.hmml b/cmuratori/hero/code/code533.hmml index 1f9b778..d3c75db 100644 --- a/cmuratori/hero/code/code533.hmml +++ b/cmuratori/hero/code/code533.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Importing Particles, Scenery, and Items" vod_platform=youtube id=fxSCbuBRxuc annotator=Miblo] +[video output=day533 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Importing Particles, Scenery, and Items" vod_platform=youtube id=fxSCbuBRxuc annotator=Miblo] [0:01][Recap and set the stage for the day sprucing up the :"asset system"][:speech] [6:38][Crash on the GetFontInfo() call in InitializeUI()][:"asset system" :font :run] [7:12][Determine to investigate the problem with segoeui.hht][:font :speech] diff --git a/cmuratori/hero/code/code534.hmml b/cmuratori/hero/code/code534.hmml index 7d48de1..3b86703 100644 --- a/cmuratori/hero/code/code534.hmml +++ b/cmuratori/hero/code/code534.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Heuristic Alpha Testing for Multi-Tile Import" vod_platform=youtube id=w5uW0yWSsng annotator=Miblo] +[video output=day534 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Heuristic Alpha Testing for Multi-Tile Import" vod_platform=youtube id=w5uW0yWSsng annotator=Miblo] [0:00][Recap and set the stage for the day, having updated the GitHub issues for [@aerettberg Anna][ref site=GitHub page="HandmadeHero / cpp" diff --git a/cmuratori/hero/code/code535.hmml b/cmuratori/hero/code/code535.hmml index 3bde57e..0c490c3 100644 --- a/cmuratori/hero/code/code535.hmml +++ b/cmuratori/hero/code/code535.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Minor Art Update, Reenabling Particles, Glove Fixes" vod_platform=youtube id=Ba8W1dpqaRU annotator=Miblo] +[video output=day535 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Minor Art Update, Reenabling Particles, Glove Fixes" vod_platform=youtube id=Ba8W1dpqaRU annotator=Miblo] [0:02][Recap and set the stage for the day incorporating [@aerettberg Anna]'s :art updates[ref site=GitHub page="HandmadeHero / cpp" diff --git a/cmuratori/hero/code/code536.hmml b/cmuratori/hero/code/code536.hmml index ad11939..b5e91c0 100644 --- a/cmuratori/hero/code/code536.hmml +++ b/cmuratori/hero/code/code536.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Proper Variant Distributions and Issue Cleanup" vod_platform=youtube id=3n66-Wnzz_A annotator=Miblo] +[video output=day536 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Proper Variant Distributions and Issue Cleanup" vod_platform=youtube id=3n66-Wnzz_A annotator=Miblo] [0:01][Recap and set the stage for the day addressing @cvaucher's pre-stream question about [~hero Handmade Hero] halting under clang's address sanitizer][:speech] [0:33][Address sanitizer][:memory :speech] [2:30][@cvaucher][Q: The equivalent area in the win32 layer would be accessing Info->Platform in PLATFORM_OPEN_FILE][:"file io" :"platform layer"] diff --git a/cmuratori/hero/code/code537.hmml b/cmuratori/hero/code/code537.hmml index cbe62f0..e10010f 100644 --- a/cmuratori/hero/code/code537.hmml +++ b/cmuratori/hero/code/code537.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Filling Areas Around Rooms" vod_platform=youtube id=FJBoPGFRhY8 annotator=Miblo] +[video output=day537 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Filling Areas Around Rooms" vod_platform=youtube id=FJBoPGFRhY8 annotator=Miblo] [0:01][Set up to start something new: tag system clean-up, ground cover, :lighting and world fill generation][:"asset system" :"procedural generation" :rendering :speech] [3:02][Demonstrate the need to surround the world with an apron of non-dead space][:"procedural generation" :run] [8:36][Reacquaint ourselves with the world generation code][:"procedural generation" :research] diff --git a/cmuratori/hero/code/code538.hmml b/cmuratori/hero/code/code538.hmml index aaee455..dec5197 100644 --- a/cmuratori/hero/code/code538.hmml +++ b/cmuratori/hero/code/code538.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Grid-based Layout Helper" vod_platform=youtube id=GcvTZVc4glw annotator=Miblo] +[video output=day538 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Grid-based Layout Helper" vod_platform=youtube id=GcvTZVc4glw annotator=Miblo] [0:00][Recap and set the stage for the day][:"procedural generation" :speech] [0:34][Demo the current state of our world apron, with the determination to semantically codify our world tiles to help produce that apron][:"procedural generation" :run] [6:30][Codifying world tiles such that they may be queried in a more semantic fashion][:geometry :research] diff --git a/cmuratori/hero/code/code539.hmml b/cmuratori/hero/code/code539.hmml index 36b1e36..f265fb1 100644 --- a/cmuratori/hero/code/code539.hmml +++ b/cmuratori/hero/code/code539.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Capturing Source Information for Memory Allocations" vod_platform=youtube id=WHjbH_5Cl0w annotator=Miblo] +[video output=day539 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Capturing Source Information for Memory Allocations" vod_platform=youtube id=WHjbH_5Cl0w annotator=Miblo] [0:01][Recap our new world apron and the tiled nature of our game, and set the stage for the day][:speech] [3:23][Demo our world apron, and set up to tackle our world solidity issues: :lighting and ground cover][:"procedural generation" :run] [8:11][Transient vs persistent state in the context of :lighting entities and placing ground cover][:"entity system" :run] diff --git a/cmuratori/hero/code/code540.hmml b/cmuratori/hero/code/code540.hmml index 8fd85b9..4e69cf7 100644 --- a/cmuratori/hero/code/code540.hmml +++ b/cmuratori/hero/code/code540.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Memory Usage Visualization" vod_platform=youtube id=akkA5FrGfgU annotator=Miblo] +[video output=day540 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Memory Usage Visualization" vod_platform=youtube id=akkA5FrGfgU annotator=Miblo] [0:03][Welcome to the stream][:speech] [0:55][@kim_jorgensen][Q: There is a small compile error with Clang: "extra tokens at end of #endif" in handmade_import.cpp (#endif HANDMADE_INTERNAL). Could you fix this?] [1:49][Remove HANDMADE_INTERNAL from the #endif] diff --git a/cmuratori/hero/code/code541.hmml b/cmuratori/hero/code/code541.hmml index 83d6422..94e626d 100644 --- a/cmuratori/hero/code/code541.hmml +++ b/cmuratori/hero/code/code541.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Call Sites to the Arena Display" vod_platform=youtube id=o7rKOhvNPjw annotator=Miblo] +[video output=day541 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Call Sites to the Arena Display" vod_platform=youtube id=o7rKOhvNPjw annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [1:08][Update ~remedybg[ref site=RemedyBG diff --git a/cmuratori/hero/code/code542.hmml b/cmuratori/hero/code/code542.hmml index 0a3b8c0..26ad93e 100644 --- a/cmuratori/hero/code/code542.hmml +++ b/cmuratori/hero/code/code542.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing Memory Occupancy Accurately" vod_platform=youtube id=EXWyH6CaoRc annotator=Miblo] +[video output=day542 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Drawing Memory Occupancy Accurately" vod_platform=youtube id=EXWyH6CaoRc annotator=Miblo] [0:00][Plug Handmade Seattle[ref site="Handmade Seattle" url=https://www.handmade-seattle.com/]][:speech] diff --git a/cmuratori/hero/code/code543.hmml b/cmuratori/hero/code/code543.hmml index 3fc22f1..2a619be 100644 --- a/cmuratori/hero/code/code543.hmml +++ b/cmuratori/hero/code/code543.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Unpacked Entities from the Sim Region to World" vod_platform=youtube id=kWXQTOPy_1o annotator=Miblo] +[video output=day543 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving Unpacked Entities from the Sim Region to World" vod_platform=youtube id=kWXQTOPy_1o annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [1:10][Demo our new :memory viewer, with a view to working on the storage of our world's entity data][:"entity system" :run] [6:05][Our :"entity system", not pre-designed][:research] diff --git a/cmuratori/hero/code/code544.hmml b/cmuratori/hero/code/code544.hmml index 0250a42..377b3ac 100644 --- a/cmuratori/hero/code/code544.hmml +++ b/cmuratori/hero/code/code544.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Caching Unpacked Entities Across Frames" vod_platform=youtube id=6MN0Ks5VeSg annotator=Miblo] +[video output=day544 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Caching Unpacked Entities Across Frames" vod_platform=youtube id=6MN0Ks5VeSg annotator=Miblo] [0:01][Recap and set the stage for the day, judiciously packing and unpacking entities][:"entity system" :speech] [4:05][Show the game running][:run] [4:12][Remove entity_reference in favour of making the traversable_reference and entity structs identify entities by entity_id][:"entity system"] diff --git a/cmuratori/hero/code/code545.hmml b/cmuratori/hero/code/code545.hmml index 7193821..50cb372 100644 --- a/cmuratori/hero/code/code545.hmml +++ b/cmuratori/hero/code/code545.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Ground Cover" vod_platform=youtube id=0g79tWCv7x0 annotator=Miblo] +[video output=day545 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Ground Cover" vod_platform=youtube id=0g79tWCv7x0 annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [2:26][Consider the need to speed up our :lighting solution, determining to generate ground cover to exercise the :"entity system"'s new :caching][:run] [7:13][Temporarily reduce the MaxUnpackedEntityCount in CreateWorld()][:"entity system"] diff --git a/cmuratori/hero/code/code546.hmml b/cmuratori/hero/code/code546.hmml index 9eb0a99..5f413df 100644 --- a/cmuratori/hero/code/code546.hmml +++ b/cmuratori/hero/code/code546.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="GPU MIP Mapping" vod_platform=youtube id=mpRKQCi3tjw annotator=Miblo] +[video output=day546 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="GPU MIP Mapping" vod_platform=youtube id=mpRKQCi3tjw annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [0:40][Demo our new ground cover, with the need to light our sprites][:"entity system" :lighting :rendering :run] [1:49][MIP mapping our sprites][:"entity system" :memory :rendering :run] diff --git a/cmuratori/hero/code/code547.hmml b/cmuratori/hero/code/code547.hmml index 22d3897..22b82ba 100644 --- a/cmuratori/hero/code/code547.hmml +++ b/cmuratori/hero/code/code547.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting the Move to Light Probes" vod_platform=youtube id=BxHuaLnVocE annotator=Miblo] +[video output=day547 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting the Move to Light Probes" vod_platform=youtube id=BxHuaLnVocE annotator=Miblo] [0:00][Recap and set the stage for the day cleaning up the :lighting][:speech] [0:57][Demo the state of our :lighting solution][:performance :rendering :run] [3:37][Why is our :lighting slow?][:performance :rendering :run] diff --git a/cmuratori/hero/code/code548.hmml b/cmuratori/hero/code/code548.hmml index 0070dc5..607dbcd 100644 --- a/cmuratori/hero/code/code548.hmml +++ b/cmuratori/hero/code/code548.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Voxelizing Light Probes" vod_platform=youtube id=MluOUXL8F-c annotator=Miblo] +[video output=day548 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Voxelizing Light Probes" vod_platform=youtube id=MluOUXL8F-c annotator=Miblo] [0:00][Welcome to the show][:speech] [0:06][@xdafal][@handmade_hero What's a high-level :language you find bit interesting?] [0:30][:Language Graph: :Performance vs Speed of Development][:blackboard] diff --git a/cmuratori/hero/code/code549.hmml b/cmuratori/hero/code/code549.hmml index 03a434e..4c258ce 100644 --- a/cmuratori/hero/code/code549.hmml +++ b/cmuratori/hero/code/code549.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing Old Lighting Lookups" vod_platform=youtube id=e1W8dHWeLy8 annotator=Miblo] +[video output=day549 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Removing Old Lighting Lookups" vod_platform=youtube id=e1W8dHWeLy8 annotator=Miblo] [0:01][Recap our ongoing switch to light probes and set the stage for the day][:lighting :speech] [8:17][Demo the currently unlit game][:lighting :run] [9:06][Disable ComputeLightPropagation()][:lighting] diff --git a/cmuratori/hero/code/code550.hmml b/cmuratori/hero/code/code550.hmml index 7f8daf2..9a27676 100644 --- a/cmuratori/hero/code/code550.hmml +++ b/cmuratori/hero/code/code550.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SIMD Raycast Point and Normal Computations" vod_platform=youtube id=BzrMiEVa3gs annotator=Miblo] +[video output=day550 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="SIMD Raycast Point and Normal Computations" vod_platform=youtube id=BzrMiEVa3gs annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [2:14][Putting six-rayed light probes into the :lighting system][:speech] [3:16][Our old box-intersection testing in RayCast()][:lighting :speech] diff --git a/cmuratori/hero/code/code551.hmml b/cmuratori/hero/code/code551.hmml index 4a604f4..f8c776b 100644 --- a/cmuratori/hero/code/code551.hmml +++ b/cmuratori/hero/code/code551.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Computing Probe to Probe Transmission" vod_platform=youtube id=H_TJChafe9c annotator=Miblo] +[video output=day551 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Computing Probe to Probe Transmission" vod_platform=youtube id=H_TJChafe9c annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [1:53][Walk through the current state of our light probe implementation][:lighting :research] [8:45][Determine to perform probe to probe transmission][:lighting :speech] diff --git a/cmuratori/hero/code/code552.hmml b/cmuratori/hero/code/code552.hmml index 8ce8561..30ebdc1 100644 --- a/cmuratori/hero/code/code552.hmml +++ b/cmuratori/hero/code/code552.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Generating Sampling Spheres into an INL" vod_platform=youtube id=1RKMpFH73gA annotator=Miblo] +[video output=day552 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Generating Sampling Spheres into an INL" vod_platform=youtube id=1RKMpFH73gA annotator=Miblo] [0:00][Recap and set the stage for the day, with a plug of Daily MOBA Hero[ref site=Twitter page="Daily MOBA Hero" diff --git a/cmuratori/hero/code/code553.hmml b/cmuratori/hero/code/code553.hmml index feff173..32978c7 100644 --- a/cmuratori/hero/code/code553.hmml +++ b/cmuratori/hero/code/code553.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improved Sphere Distributions" vod_platform=youtube id=Sln28NSVacQ annotator=Miblo] +[video output=day553 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improved Sphere Distributions" vod_platform=youtube id=Sln28NSVacQ annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [1:27][Address the "Sphere generator alignment" issue[ref site=GitHub diff --git a/cmuratori/hero/code/code554.hmml b/cmuratori/hero/code/code554.hmml index c567469..83e7d48 100644 --- a/cmuratori/hero/code/code554.hmml +++ b/cmuratori/hero/code/code554.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reducing GPU Memory Footprint" vod_platform=youtube id=dl4QKPK8LMo annotator=Miblo] +[video output=day554 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reducing GPU Memory Footprint" vod_platform=youtube id=dl4QKPK8LMo annotator=Miblo] [0:02][Update ~Milton and ~RemedyBG, with thanks to Ameen Sayegh[ref site=Twitter page="Ameen Sayegh" diff --git a/cmuratori/hero/code/code555.hmml b/cmuratori/hero/code/code555.hmml index bc63188..54a2b9e 100644 --- a/cmuratori/hero/code/code555.hmml +++ b/cmuratori/hero/code/code555.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Looking for GPU Performance Issues" vod_platform=youtube id=fduWZsh1riQ annotator=Miblo] +[video output=day555 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Looking for GPU Performance Issues" vod_platform=youtube id=fduWZsh1riQ annotator=Miblo] [0:02][Welcome to the stream][:speech] [0:14][A few words on RenderDoc's crash message yesterday, with praise for their tech support, and plans to enable the game to fail gracefully when launched with incorrect parameters][:speech] [3:48][Launch [~hero Handmade Hero] in RenderDoc][:run] diff --git a/cmuratori/hero/code/code556.hmml b/cmuratori/hero/code/code556.hmml index 84348b1..156c2a9 100644 --- a/cmuratori/hero/code/code556.hmml +++ b/cmuratori/hero/code/code556.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Depth Peeling and Multisample Resolves" vod_platform=youtube id=M6qE6ncZV68 annotator=Miblo] +[video output=day556 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing Depth Peeling and Multisample Resolves" vod_platform=youtube id=M6qE6ncZV68 annotator=Miblo] [0:02][Plug Molly Rocket's Discord channel[ref site=Discord page=MollyRocket diff --git a/cmuratori/hero/code/code557.hmml b/cmuratori/hero/code/code557.hmml index 71bfd80..1f7ff22 100644 --- a/cmuratori/hero/code/code557.hmml +++ b/cmuratori/hero/code/code557.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Dynamic Quad Output Optimizations" vod_platform=youtube id=4RQ8fMyN4Tw annotator=Miblo] +[video output=day557 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Dynamic Quad Output Optimizations" vod_platform=youtube id=4RQ8fMyN4Tw annotator=Miblo] [0:00][Plug Molly Rocket's Discord channel[ref site=Discord page=MollyRocket diff --git a/cmuratori/hero/code/code558.hmml b/cmuratori/hero/code/code558.hmml index ab5fb42..78396b6 100644 --- a/cmuratori/hero/code/code558.hmml +++ b/cmuratori/hero/code/code558.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Assigning Lighting Probe Slots" vod_platform=youtube id=TrUzbXwIdbk annotator=Miblo] +[video output=day558 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Assigning Lighting Probe Slots" vod_platform=youtube id=TrUzbXwIdbk annotator=Miblo] [0:00][Plug Molly Rocket's Discord channel[ref site=Discord page=MollyRocket diff --git a/cmuratori/hero/code/code559.hmml b/cmuratori/hero/code/code559.hmml index 82aa121..bb5778e 100644 --- a/cmuratori/hero/code/code559.hmml +++ b/cmuratori/hero/code/code559.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Experimenting with Fragment Light Sampling" vod_platform=youtube id=21rMO0e8FXg annotator=Miblo] +[video output=day559 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Experimenting with Fragment Light Sampling" vod_platform=youtube id=21rMO0e8FXg annotator=Miblo] [0:00][Plug Molly Rocket's Discord channel[ref site=Discord page=MollyRocket diff --git a/cmuratori/hero/code/code560.hmml b/cmuratori/hero/code/code560.hmml index 5337a22..a9bbe4f 100644 --- a/cmuratori/hero/code/code560.hmml +++ b/cmuratori/hero/code/code560.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Querying Irradiance Directly from Voxels" vod_platform=youtube id=3w_JPx14aS8 annotator=Miblo] +[video output=day560 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Querying Irradiance Directly from Voxels" vod_platform=youtube id=3w_JPx14aS8 annotator=Miblo] [0:01][We are working on :lighting][:speech] [0:41][Plug Molly Rocket's Discord channel[ref site=Discord diff --git a/cmuratori/hero/code/code561.hmml b/cmuratori/hero/code/code561.hmml index 51d77d7..b88c112 100644 --- a/cmuratori/hero/code/code561.hmml +++ b/cmuratori/hero/code/code561.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sampling Light Voxels with a Reflection Vector" vod_platform=youtube id=6m3xD5Gm9DA annotator=Miblo] +[video output=day561 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sampling Light Voxels with a Reflection Vector" vod_platform=youtube id=6m3xD5Gm9DA annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [0:34][Demo our tartan world with a view to :sampling all of our voxels][:lighting :run] [2:19][Consider optimising CompileZBiasProgram() to only sample from three voxels][:lighting :research] diff --git a/cmuratori/hero/code/code562.hmml b/cmuratori/hero/code/code562.hmml index ad3dd58..6ef14ca 100644 --- a/cmuratori/hero/code/code562.hmml +++ b/cmuratori/hero/code/code562.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Testing Voxel Light Sampling" vod_platform=youtube id=SV0L6cm1Ugo annotator=Miblo] +[video output=day562 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Testing Voxel Light Sampling" vod_platform=youtube id=SV0L6cm1Ugo annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [0:35][Demo the current test state of our :lighting :sampling, planning to stuff predictable values into our light probes][:run] [5:05][Split out and explain our :lighting equation in CompileZBiasProgram()] diff --git a/cmuratori/hero/code/code563.hmml b/cmuratori/hero/code/code563.hmml index a57654a..7812dd6 100644 --- a/cmuratori/hero/code/code563.hmml +++ b/cmuratori/hero/code/code563.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using the Light Probe Spatial Index" vod_platform=youtube id=4NnMdLZfpgg annotator=Miblo] +[video output=day563 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using the Light Probe Spatial Index" vod_platform=youtube id=4NnMdLZfpgg annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [0:26][Demo our current :lighting :sampling, with the trilinear blend artifacts][:run] [3:07][Determine to move on to light transmission][:lighting :run] diff --git a/cmuratori/hero/code/code564.hmml b/cmuratori/hero/code/code564.hmml index ca64a36..846b2ac 100644 --- a/cmuratori/hero/code/code564.hmml +++ b/cmuratori/hero/code/code564.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Trilinear Sampling Results" vod_platform=youtube id=kv2LxJNcQfs annotator=Miblo] +[video output=day564 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving Trilinear Sampling Results" vod_platform=youtube id=kv2LxJNcQfs annotator=Miblo] [0:02][Recap and set the stage for the day debugging our :lighting pipeline][:speech] [2:57][Demo our mostly unlit world][:lighting :run] [5:00][Scrutinise EndLightingComputation() for bugs][:lighting :research] diff --git a/cmuratori/hero/code/code565.hmml b/cmuratori/hero/code/code565.hmml index c65c0d6..002c9ac 100644 --- a/cmuratori/hero/code/code565.hmml +++ b/cmuratori/hero/code/code565.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reconstructing Multiple Lights" vod_platform=youtube id=PinOVuuBSnM annotator=Miblo] +[video output=day565 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reconstructing Multiple Lights" vod_platform=youtube id=PinOVuuBSnM annotator=Miblo] [0:01][Recap yesterday's discovery using a signed distance field for :lighting falloff][:speech] [2:42][Demo our voxel-based signed distance field interpolated :lighting, non-computed][:run] [4:04][Make EndLightingComputation() encode the light as 0 to 1 values][:lighting] diff --git a/cmuratori/hero/code/code566.hmml b/cmuratori/hero/code/code566.hmml index 8d8be29..f9c4ea0 100644 --- a/cmuratori/hero/code/code566.hmml +++ b/cmuratori/hero/code/code566.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving to a Voxels-only Lighting Approach" vod_platform=youtube id=b6DkdOEEDSs annotator=Miblo] +[video output=day566 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Moving to a Voxels-only Lighting Approach" vod_platform=youtube id=b6DkdOEEDSs annotator=Miblo] [0:03][Recap and set the stage for the day streaming from a new location][:speech] [1:11][Demo our new signed distance field-based :lighting solution][:run] [4:39][Determine to work on our light transport, with an eye on outputting it to our signed distance field voxel grid][:lighting :run] diff --git a/cmuratori/hero/code/code567.hmml b/cmuratori/hero/code/code567.hmml index a9f0118..943154a 100644 --- a/cmuratori/hero/code/code567.hmml +++ b/cmuratori/hero/code/code567.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Large to Small Voxel Transfer" vod_platform=youtube id=70JGOG1IT0Q annotator=Miblo] +[video output=day567 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Large to Small Voxel Transfer" vod_platform=youtube id=70JGOG1IT0Q annotator=Miblo] [0:00][Recap and set the stage for the day][:speech] [1:19][Some thoughts on experimental vs clean code][:speech] [3:37][Describe our new light_voxel_cell :lighting scheme][:speech] diff --git a/cmuratori/hero/code/code568.hmml b/cmuratori/hero/code/code568.hmml index d54f790..24a8e18 100644 --- a/cmuratori/hero/code/code568.hmml +++ b/cmuratori/hero/code/code568.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Raycaster" vod_platform=youtube id=vPc2gfdABSk annotator=Miblo] +[video output=day568 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging the Raycaster" vod_platform=youtube id=vPc2gfdABSk annotator=Miblo] [0:01][Welcome to Handmade Coffee, roasted by [@iradicator Irad][ref site=Twitter page="Irad Ratmansky" diff --git a/cmuratori/hero/code/code569.hmml b/cmuratori/hero/code/code569.hmml index 5600d01..99ac913 100644 --- a/cmuratori/hero/code/code569.hmml +++ b/cmuratori/hero/code/code569.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Raycasting from Light Probe Locations" vod_platform=youtube id=rE3RPBA7UvI annotator=Miblo] +[video output=day569 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Raycasting from Light Probe Locations" vod_platform=youtube id=rE3RPBA7UvI annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [0:44][Demo the current state of our test ray casting from voxel centres, with the determination to cast rays from light probe locations][:lighting :run] [4:28][Prepare to switch over to raycasting from light probe locations][:lighting :research] diff --git a/cmuratori/hero/code/code570.hmml b/cmuratori/hero/code/code570.hmml index 072932f..e037d8a 100644 --- a/cmuratori/hero/code/code570.hmml +++ b/cmuratori/hero/code/code570.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Distinguishing Between Lights and Occluders" vod_platform=youtube id=_dVntlUp4eM annotator=Miblo] +[video output=day570 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Distinguishing Between Lights and Occluders" vod_platform=youtube id=_dVntlUp4eM annotator=Miblo] [0:01][Demo the current state of our light probe-based ray cast :lighting][:run] [1:59][:Lighting improvements: 1. Averaging across frames][:run] [2:57][:Lighting improvements: 2. Real indirect bounce and convection][:run] diff --git a/cmuratori/hero/code/code571.hmml b/cmuratori/hero/code/code571.hmml index 15cce74..6d29dde 100644 --- a/cmuratori/hero/code/code571.hmml +++ b/cmuratori/hero/code/code571.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Light Hierarchy" vod_platform=youtube id=r53FentCzXs annotator=Miblo] +[video output=day571 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Light Hierarchy" vod_platform=youtube id=r53FentCzXs annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [0:49][Acquaint us with the problem of targeting and gathering nearby light sources][:lighting :research] [3:48][Consider making a :"data structure" for figuring out which directions to cast our rays][:lighting :research] diff --git a/cmuratori/hero/code/code572.hmml b/cmuratori/hero/code/code572.hmml index 411eb81..9082849 100644 --- a/cmuratori/hero/code/code572.hmml +++ b/cmuratori/hero/code/code572.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Scrolling the Lighting Voxel" vod_platform=youtube id=YJI3cZGZ3eA annotator=Miblo] +[video output=day572 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Scrolling the Lighting Voxel" vod_platform=youtube id=YJI3cZGZ3eA annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [1:19][Demo the current state of our :lighting solution][:run] [3:27][Switch to the test sphere path in EndLightingComputation()][:lighting] diff --git a/cmuratori/hero/code/code573.hmml b/cmuratori/hero/code/code573.hmml index 9e56106..4a55178 100644 --- a/cmuratori/hero/code/code573.hmml +++ b/cmuratori/hero/code/code573.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Wiring Up Light Transport" vod_platform=youtube id=nTN1hqyp9JM annotator=Miblo] +[video output=day573 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Wiring Up Light Transport" vod_platform=youtube id=nTN1hqyp9JM annotator=Miblo] [0:00][Welcome to the stream][:speech] [0:40][Demo the current state of our blended and stably positioned light][:lighting :run] [2:52][Set up to sample the voxel :lighting like in the pixel shader][:research] diff --git a/cmuratori/hero/code/code574.hmml b/cmuratori/hero/code/code574.hmml index 31c548b..f9ad618 100644 --- a/cmuratori/hero/code/code574.hmml +++ b/cmuratori/hero/code/code574.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Experimenting with Voxel Filters" vod_platform=youtube id=NK8sJfl6o18 annotator=Miblo] +[video output=day574 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Experimenting with Voxel Filters" vod_platform=youtube id=NK8sJfl6o18 annotator=Miblo] [0:01][Recap and set the stage for the day making the ray caster produce a stable set of inputs to pass to the light field interpolater, with thoughts on multiple light fields][:lighting :speech] [5:25][Show the current state of the :lighting][:run] [7:11][Show the current state of the :lighting, without filling in negative light values][:run] diff --git a/cmuratori/hero/code/code575.hmml b/cmuratori/hero/code/code575.hmml index 9f39a7c..cbdb86d 100644 --- a/cmuratori/hero/code/code575.hmml +++ b/cmuratori/hero/code/code575.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Generalizing Code Reloading" vod_platform=youtube id=Pax5jIz6m_Q annotator=Miblo] +[video output=day575 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Generalizing Code Reloading" vod_platform=youtube id=Pax5jIz6m_Q annotator=Miblo] [0:02][Welcome to the stream with an apparently successful build of TensorFlow][:admin :ai] [2:05][Recap the current state of our :lighting][:speech] [2:28][Demo our current :lighting][:run] diff --git a/cmuratori/hero/code/code576.hmml b/cmuratori/hero/code/code576.hmml index cee75c6..b557b0b 100644 --- a/cmuratori/hero/code/code576.hmml +++ b/cmuratori/hero/code/code576.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=research title="Octahedral Encoding" vod_platform=youtube id=CUboglhuTDw annotator=Miblo] +[video output=day576 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=research title="Octahedral Encoding" vod_platform=youtube id=CUboglhuTDw annotator=Miblo] [0:04][Recap our generalised :"hot reloading" and set the stage for the day][:speech] [2:43][Set up to recompile shaders when reloading the renderer][:"hot reloading"] [4:33][Augment game_render_settings with Version, for WinMainCRTStartup() to increment and trigger shader recompilation][:"hot reloading" :programming] diff --git a/cmuratori/hero/code/code577.hmml b/cmuratori/hero/code/code577.hmml index 5628a6b..3ee1151 100644 --- a/cmuratori/hero/code/code577.hmml +++ b/cmuratori/hero/code/code577.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Octahedral Light Atlases" vod_platform=youtube id=1GqCmW_1BCw annotator=Miblo] +[video output=day577 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding Octahedral Light Atlases" vod_platform=youtube id=1GqCmW_1BCw annotator=Miblo] [0:04][Recap last stream's Octahedral Encoding paper research and set the stage for the day][:speech] [1:58][Consider Octahedral Encoding: Texture Array vs Atlas[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields" diff --git a/cmuratori/hero/code/code578.hmml b/cmuratori/hero/code/code578.hmml index ff9a81e..da10897 100644 --- a/cmuratori/hero/code/code578.hmml +++ b/cmuratori/hero/code/code578.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sampling Octahedral Atlases" vod_platform=youtube id=djWM1u7ZrNk annotator=Miblo] +[video output=day578 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sampling Octahedral Atlases" vod_platform=youtube id=djWM1u7ZrNk annotator=Miblo] [0:05][Recap and set the stage for the day debugging and making meaningful our Octahedral Encoding][:lighting :speech] [3:13][Show our unlit game][:lighting :run] [4:30][Prepare to draw our octahedral light map][:"debug visualisation" :lighting :research] diff --git a/cmuratori/hero/code/code579.hmml b/cmuratori/hero/code/code579.hmml index b9b5bcd..79a4ba0 100644 --- a/cmuratori/hero/code/code579.hmml +++ b/cmuratori/hero/code/code579.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Octahedral Shading" vod_platform=youtube id=CcK-Yshqg1w annotator=Miblo] +[video output=day579 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Octahedral Shading" vod_platform=youtube id=CcK-Yshqg1w annotator=Miblo] [0:03][Recap and set the stage for the day][:speech] [0:31][Demo our octahedral light map][:"debug visualisation" :lighting :run] [3:23][Understanding the Octahedron[ref diff --git a/cmuratori/hero/code/code580.hmml b/cmuratori/hero/code/code580.hmml index ee81861..9498231 100644 --- a/cmuratori/hero/code/code580.hmml +++ b/cmuratori/hero/code/code580.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Investigating Octahedral Interpolation" vod_platform=youtube id=8PxkSisBp3I annotator=Miblo] +[video output=day580 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Investigating Octahedral Interpolation" vod_platform=youtube id=8PxkSisBp3I annotator=Miblo] [0:03][Recap and set the stage for the day streamlining the :lighting system, operating directly in the octahedral map, and hook up the light convection][:speech] [4:58][Determine to hook up the bounce-based light convection][:lighting :speech] [6:02][Demo the current state of the :lighting][:"debug visualisation" :run] diff --git a/cmuratori/hero/code/code581.hmml b/cmuratori/hero/code/code581.hmml index 1573291..234ae38 100644 --- a/cmuratori/hero/code/code581.hmml +++ b/cmuratori/hero/code/code581.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing for Octahedral Indirect Lighting" vod_platform=youtube id=axbGjkYgXO4 annotator=Miblo] +[video output=day581 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Preparing for Octahedral Indirect Lighting" vod_platform=youtube id=axbGjkYgXO4 annotator=Miblo] [0:04][Recap our new radial interpolation of :lighting samples and set the stage for the day][:speech] [3:43][This is @Molly Bean][:speech] [4:58][Determine to: 1) Use the ray caster in the octahedral light maps, and 2) Streamline the :lighting voxels intermediate storage out of the equation][:speech] diff --git a/cmuratori/hero/code/code582.hmml b/cmuratori/hero/code/code582.hmml index 8ba9961..4267c71 100644 --- a/cmuratori/hero/code/code582.hmml +++ b/cmuratori/hero/code/code582.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting Specular Maps to Diffuse" vod_platform=youtube id=YyEvNfCgkJ0 annotator=Miblo] +[video output=day582 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Converting Specular Maps to Diffuse" vod_platform=youtube id=YyEvNfCgkJ0 annotator=Miblo] [0:03][Recap and set the stage for the day, debugging the :lighting stability over time, and efficiently :sampling diffuse surface reflections][:speech] [4:29][Diffuse :sampling efficiency: 1) Downsampling our map][:lighting :speech] [7:13][Diffuse :sampling efficiency: 2) Take multiple interior samples, e.g. 4×4][:lighting :speech] diff --git a/cmuratori/hero/code/code583.hmml b/cmuratori/hero/code/code583.hmml index 8f1c149..6caf0dc 100644 --- a/cmuratori/hero/code/code583.hmml +++ b/cmuratori/hero/code/code583.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Streamlining the New Lighting Pipeline" vod_platform=youtube id=WzXFlKj5G2o annotator=Miblo] +[video output=day583 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Streamlining the New Lighting Pipeline" vod_platform=youtube id=WzXFlKj5G2o annotator=Miblo] [0:04][Recap and set the stage for the day debugging and streamlining our :lighting][:speech] [4:41][Launch the game, with continued thoughts on :hardware :rendering][:run] [5:15][Demo our diffuse :lighting, considering disabling it for the debug overlay][:"debug system" :run] diff --git a/cmuratori/hero/code/code584.hmml b/cmuratori/hero/code/code584.hmml index f168cdc..1c23b25 100644 --- a/cmuratori/hero/code/code584.hmml +++ b/cmuratori/hero/code/code584.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enabling Infinite-Bounce Lighting" vod_platform=youtube id=gCZL4SWJYAI annotator=Miblo] +[video output=day584 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Enabling Infinite-Bounce Lighting" vod_platform=youtube id=gCZL4SWJYAI annotator=Miblo] [0:02][Recap and set the stage for the day][:speech] [1:13][Describe the problem with black gaps in the light map][:lighting :run] [1:57][Describe the indexing discrepancy between BuildDiffuseLightMaps() and ComputeLightPropagationWork()][:lighting :research] diff --git a/cmuratori/hero/code/code585.hmml b/cmuratori/hero/code/code585.hmml index 79fd538..47a53d1 100644 --- a/cmuratori/hero/code/code585.hmml +++ b/cmuratori/hero/code/code585.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Centralized Light Atlas Handling" vod_platform=youtube id=0WXRn82zHys annotator=Miblo] +[video output=day585 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Centralized Light Atlas Handling" vod_platform=youtube id=0WXRn82zHys annotator=Miblo] [0:05][Welcome to the stream][:speech] [0:23][Demo the current specular :lighting][:run] [2:57][Prepare to use the diffuse light map for bounce :lighting, first treating the light voxel cells as a texture atlas][:speech] diff --git a/cmuratori/hero/code/code586.hmml b/cmuratori/hero/code/code586.hmml index 6e34798..344b4b5 100644 --- a/cmuratori/hero/code/code586.hmml +++ b/cmuratori/hero/code/code586.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Indirect Diffuse Sampling" vod_platform=youtube id=BoWkXfSgJdE annotator=Miblo] +[video output=day586 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Indirect Diffuse Sampling" vod_platform=youtube id=BoWkXfSgJdE annotator=Miblo] [0:02][Mention the 'Handmade Collectives Worldwide" thread in the handmade.network forums[ref author="Casey Muratori" publisher=Twitter diff --git a/cmuratori/hero/code/code587.hmml b/cmuratori/hero/code/code587.hmml index 4e1e74c..cb10e33 100644 --- a/cmuratori/hero/code/code587.hmml +++ b/cmuratori/hero/code/code587.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing the Specular to Diffuse Transform" vod_platform=youtube id=J0Z4rdTYM0Y annotator=Miblo] +[video output=day587 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Optimizing the Specular to Diffuse Transform" vod_platform=youtube id=J0Z4rdTYM0Y annotator=Miblo] [0:03][Demo the current state and :performance of our :lighting][:run] [1:37][Reacquaint ourselves with the :lighting's blend-over-time parameter in EndLightingComputation()][:research] [3:02][Demo the fast-response :lighting blend][:run] diff --git a/cmuratori/hero/code/code588.hmml b/cmuratori/hero/code/code588.hmml index 2eb19f0..28b56cc 100644 --- a/cmuratori/hero/code/code588.hmml +++ b/cmuratori/hero/code/code588.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Light Voxels with the Camera" vod_platform=youtube id=S3JutszP9fg annotator=Miblo] +[video output=day588 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Light Voxels with the Camera" vod_platform=youtube id=S3JutszP9fg annotator=Miblo] [0:03][Welcome to the stream][:speech] [0:08][12% frame time (64ms per frame) spent in ComputeLightPropagationWork()][:lighting :performance :run] [1:13][Consider shrinking the :lighting box][:run] diff --git a/cmuratori/hero/code/code589.hmml b/cmuratori/hero/code/code589.hmml index 85fdea2..faac1b6 100644 --- a/cmuratori/hero/code/code589.hmml +++ b/cmuratori/hero/code/code589.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Sampling Spheres with the Octahedral Map" vod_platform=youtube id=w-Yyg-mw1-s annotator=Miblo] +[video output=day589 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Aligning Sampling Spheres with the Octahedral Map" vod_platform=youtube id=w-Yyg-mw1-s annotator=Miblo] [0:03][Welcome to the stream][:speech] [0:09][Demo our more tightly bound :lighting region, at 33ms per frame][:lighting :performance :run] [1:59][Determine to optimise the :lighting ray caster, then improve the quality][:optimisation :run] diff --git a/cmuratori/hero/code/code590.hmml b/cmuratori/hero/code/code590.hmml index d7c746e..9b7e47c 100644 --- a/cmuratori/hero/code/code590.hmml +++ b/cmuratori/hero/code/code590.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting Raycast Optimizations" vod_platform=youtube id=cprFjrly3BU annotator=Miblo] +[video output=day590 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Starting Raycast Optimizations" vod_platform=youtube id=cprFjrly3BU annotator=Miblo] [0:02][Welcome to the stream with a plug of the post-stream stream on [@naysayer88 Jon Blow]'s channel[ref site=twitch page=naysayer88 diff --git a/cmuratori/hero/code/code591.hmml b/cmuratori/hero/code/code591.hmml index 42eec78..25b862b 100644 --- a/cmuratori/hero/code/code591.hmml +++ b/cmuratori/hero/code/code591.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Stand-alone Lighting Performance Test" vod_platform=youtube id=Rj7nCMEuhMQ annotator=Miblo] +[video output=day591 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Making a Stand-alone Lighting Performance Test" vod_platform=youtube id=Rj7nCMEuhMQ annotator=Miblo] [0:01][Recap and set the stage for the day][:speech] [1:00][Plug @x13pixels' ~RemedyBG version 0.3.0.0, with a brief history of Microsoft Visual Studio][:speech] [5:09][Conditional Breakpoints in ~RemedyBG][:run] diff --git a/cmuratori/hero/code/code592.hmml b/cmuratori/hero/code/code592.hmml index a162428..b5bac73 100644 --- a/cmuratori/hero/code/code592.hmml +++ b/cmuratori/hero/code/code592.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Capturing the Entire Lighting Data" vod_platform=youtube id=YTIz_eV_BsE annotator=Miblo] +[video output=day592 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Capturing the Entire Lighting Data" vod_platform=youtube id=YTIz_eV_BsE annotator=Miblo] [0:02][Welcome to the stream][:speech] [0:08][Plug the Meow the Infinite printed comic Kickstarter[ref site=Kickstarter diff --git a/cmuratori/hero/code/code593.hmml b/cmuratori/hero/code/code593.hmml index c0a3a27..e4bc9c7 100644 --- a/cmuratori/hero/code/code593.hmml +++ b/cmuratori/hero/code/code593.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Validation" vod_platform=youtube id=uoVm_59w03o annotator=Miblo] +[video output=day593 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Debugging Lighting Validation" vod_platform=youtube id=uoVm_59w03o annotator=Miblo] [0:03][Plug the Meow the Infinite printed comic Kickstarter[ref site=Kickstarter page="Meow the Infinite: Book One" diff --git a/cmuratori/hero/code/code594.hmml b/cmuratori/hero/code/code594.hmml index 9869f74..b7754f6 100644 --- a/cmuratori/hero/code/code594.hmml +++ b/cmuratori/hero/code/code594.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching from Center-Radius to Min-Max" vod_platform=youtube id=TzoW0CjmPl8 annotator=Miblo] +[video output=day594 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Switching from Center-Radius to Min-Max" vod_platform=youtube id=TzoW0CjmPl8 annotator=Miblo] [0:03][Plug the Meow the Infinite printed comic Kickstarter[ref site=Kickstarter page="Meow the Infinite: Book One" diff --git a/cmuratori/hero/code/code595.hmml b/cmuratori/hero/code/code595.hmml index 6d7d40e..69b4ce9 100644 --- a/cmuratori/hero/code/code595.hmml +++ b/cmuratori/hero/code/code595.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sketching Out A K-d Tree Loop" vod_platform=youtube id=3vWqM96zT-w annotator=Miblo] +[video output=day595 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sketching Out A K-d Tree Loop" vod_platform=youtube id=3vWqM96zT-w annotator=Miblo] [0:00][Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter[ref site=Kickstarter page="Meow the Infinite: Book One" diff --git a/cmuratori/hero/code/code596.hmml b/cmuratori/hero/code/code596.hmml index 4d975e7..6900246 100644 --- a/cmuratori/hero/code/code596.hmml +++ b/cmuratori/hero/code/code596.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fleshing Out Kd-Tree Traversal" vod_platform=youtube id=uD7bL5VUy0c annotator=Miblo] +[video output=day596 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fleshing Out Kd-Tree Traversal" vod_platform=youtube id=uD7bL5VUy0c annotator=Miblo] [0:01][Welcome to the stream][:speech] [0:52][Determine to implement the k-d tree loop, demoing the :lighting variance][:run] [1:47][Describe our current k-d tree code in RayCast()][:lighting :research] diff --git a/cmuratori/hero/code/code597.hmml b/cmuratori/hero/code/code597.hmml index f0e8a71..89ac5af 100644 --- a/cmuratori/hero/code/code597.hmml +++ b/cmuratori/hero/code/code597.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Kd-tree Construction" vod_platform=youtube id=OzoG0cuV5_A annotator=Miblo] +[video output=day597 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Kd-tree Construction" vod_platform=youtube id=OzoG0cuV5_A annotator=Miblo] [0:01][Recap our Snuffleupagus oriented k-d tree implementation, and set the stage for the day][:"data structure" :lighting :speech] [2:04][Introduce SplitKd() to replace SplitBox()][:"data structure" :lighting] [2:52][Determine to divide up the :lighting box hierarchy the same as before][:"data structure" :research] diff --git a/cmuratori/hero/code/code598.hmml b/cmuratori/hero/code/code598.hmml index 3d79af4..44b7944 100644 --- a/cmuratori/hero/code/code598.hmml +++ b/cmuratori/hero/code/code598.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploring Voxel Partitions for Raycasting" vod_platform=youtube id=gHAH9h_WVyM annotator=Miblo] +[video output=day598 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Exploring Voxel Partitions for Raycasting" vod_platform=youtube id=gHAH9h_WVyM annotator=Miblo] [0:00]["If anything, we should be looking for technologies that allow us to reduce latency"][:speech] [0:09][Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter[ref site=Kickstarter diff --git a/cmuratori/hero/code/code599.hmml b/cmuratori/hero/code/code599.hmml index aa01f06..d31788c 100644 --- a/cmuratori/hero/code/code599.hmml +++ b/cmuratori/hero/code/code599.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing the Grid Raycast Postamble" vod_platform=youtube id=HN5IP9q4pWE annotator=Miblo] +[video output=day599 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Implementing the Grid Raycast Postamble" vod_platform=youtube id=HN5IP9q4pWE annotator=Miblo] [0:00][Welcome to the stream with a plug of Slipways[ref site=SlipWays url=https://slipways.net/]][:speech] diff --git a/cmuratori/hero/intro-to-c/intro-to-c1.hmml b/cmuratori/hero/intro-to-c/intro-to-c1.hmml index 12915ae..7817c9d 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c1.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c1.hmml @@ -1,5 +1,5 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 1" vod_platform=youtube id=F3ntGDm6hOs annotator=jacebennett annotator=Miblo annotator=theinternetftw] -[0:00][Introduction] +[video output=day1 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 1" vod_platform=youtube id=F3ntGDm6hOs annotator=jacebennett annotator=Miblo annotator=theinternetftw] +[0:00][Introduction to Magnificence] [2:40][Getting a C Compiler on Windows] [5:21][How to start a project in Visual Studio] [8:15][Structure of a Visual Studio project] diff --git a/cmuratori/hero/intro-to-c/intro-to-c1qa.hmml b/cmuratori/hero/intro-to-c/intro-to-c1qa.hmml index a33fa89..43f6d47 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c1qa.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c1qa.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 1 Q&A" vod_platform=youtube id=I5fNrmQYeuI annotator=jacebennett annotator=wheatdog] +[video output=day1qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 1 Q&A" vod_platform=youtube id=I5fNrmQYeuI annotator=jacebennett annotator=wheatdog] [0:27][How many videos do you think you'll do before you actually start coding the game?] [1:35][What libraries do you plan to use in the game development?] [1:48][What about Emacs + MinGW?] diff --git a/cmuratori/hero/intro-to-c/intro-to-c2.hmml b/cmuratori/hero/intro-to-c/intro-to-c2.hmml index 796a4bd..db9319e 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c2.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c2.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 2" vod_platform=youtube id=KF29ePTqWa4 annotator=jacebennett annotator=theinternetftw] +[video output=day2 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 2" vod_platform=youtube id=KF29ePTqWa4 annotator=jacebennett annotator=theinternetftw] [0:05][News - You can get Visual Studio Community Edition for free (better than express)] [2:35][VS tip - can load the last thing you had open when you start it next time] [3:00][Recap on functions] diff --git a/cmuratori/hero/intro-to-c/intro-to-c2qa.hmml b/cmuratori/hero/intro-to-c/intro-to-c2qa.hmml index 193c041..f0e6b48 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c2qa.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c2qa.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 2 Q&A" vod_platform=youtube id=FVDEIXdGBYo annotator=jacebennett annotator=theinternetftw] +[video output=day2qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 2 Q&A" vod_platform=youtube id=FVDEIXdGBYo annotator=jacebennett annotator=theinternetftw] [0:51][Positivity!] [1:30][If windows wants \\r\\n, why does printf("hello\\n") work fine?] [3:06][printf internals] diff --git a/cmuratori/hero/intro-to-c/intro-to-c3.hmml b/cmuratori/hero/intro-to-c/intro-to-c3.hmml index da5ef53..d6f7434 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c3.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c3.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 3" vod_platform=youtube id=T4CjOB0y9nI annotator=jacebennett annotator=theinternetftw] +[video output=day3 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 3" vod_platform=youtube id=T4CjOB0y9nI annotator=jacebennett annotator=theinternetftw] [1:16][Today: Memory] [2:38][Programming = Modifying Memory] [4:55][Recap of our program] diff --git a/cmuratori/hero/intro-to-c/intro-to-c3qa.hmml b/cmuratori/hero/intro-to-c/intro-to-c3qa.hmml index a13feb0..081e960 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c3qa.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c3qa.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 3 Q&A" vod_platform=youtube id=20LmZk1hakA annotator=jacebennett annotator=wheatdog] +[video output=day3qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 3 Q&A" vod_platform=youtube id=20LmZk1hakA annotator=jacebennett annotator=wheatdog] [0:20][They teach nothing of this in many colleges. How do you feel about the new programming workforce?] [3:38][Someone asking Casey to play Density] [3:48][Suggestion on how to evaluate and see results in VS Memory Window] diff --git a/cmuratori/hero/intro-to-c/intro-to-c4.hmml b/cmuratori/hero/intro-to-c/intro-to-c4.hmml index d70aad1..b45207e 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c4.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c4.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 4" vod_platform=youtube id=0CB1mYS5wBc annotator=jacebennett annotator=effect0r] +[video output=day4 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 4" vod_platform=youtube id=0CB1mYS5wBc annotator=jacebennett annotator=effect0r] [0:00:00][Intro, welcome, and correction] [0:05:19][Show code bytes in the debugger] [0:06:28][Asside on processor architecture philosphies] diff --git a/cmuratori/hero/intro-to-c/intro-to-c4qa.hmml b/cmuratori/hero/intro-to-c/intro-to-c4qa.hmml index ae83a41..b39ffdd 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c4qa.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c4qa.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 4 Q&A" vod_platform=youtube id=Bf3LiCd1O9c annotator=jacebennett annotator=effect0r] +[video output=day4qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 4 Q&A" vod_platform=youtube id=Bf3LiCd1O9c annotator=jacebennett annotator=effect0r] [0:00:20][Q&A] [0:00:22][@Braincruzer][Do a segmentation error!] [0:00:38][@chronaldragon][Will you explain how negative numbers are encoded?] diff --git a/cmuratori/hero/intro-to-c/intro-to-c5.hmml b/cmuratori/hero/intro-to-c/intro-to-c5.hmml index 3e6afb8..c0df2d6 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c5.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c5.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 5" vod_platform=youtube id=Pb19uCFU2EA annotator=jacebennett annotator=theinternetftw] +[video output=day5 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 5" vod_platform=youtube id=Pb19uCFU2EA annotator=jacebennett annotator=theinternetftw] [0:04][Where does everything live? First: The Code] [2:36][From Code to Executable to Memory] [9:24][Virtual Memory and Paging] diff --git a/cmuratori/hero/intro-to-c/intro-to-c5qa.hmml b/cmuratori/hero/intro-to-c/intro-to-c5qa.hmml index 2eafac4..be90033 100644 --- a/cmuratori/hero/intro-to-c/intro-to-c5qa.hmml +++ b/cmuratori/hero/intro-to-c/intro-to-c5qa.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 5 Q&A" vod_platform=youtube id=rFA1SzRCRWc annotator=jacebennett annotator=theinternetftw] +[video output=day5qa member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 5 Q&A" vod_platform=youtube id=rFA1SzRCRWc annotator=jacebennett annotator=theinternetftw] [0:36][At some point, Casey might do a real multi-week intro to C for non-programmers] [1:46][Have you ever found a use for bitfields?] [2:32][,b lets you see binary in Watch window of Visual Studio \[n.b. this is in newest version only\]] @@ -53,7 +53,7 @@ [52:05][What about Game Design? (best ways to prototype, how to learn it vs. this stream)] [53:26][How much money do game devs make? (General career and skills musings)] [55:27][Will the source downloads be under version control?] -[55:53][Trolls exist :D] +[55:53][Trolls exist] [56:03][What's your current day job?] [56:08][More pay discussion (how location, company factor in)] [57:01][More on RAII] diff --git a/cmuratori/hero/misc/basic_emacs.hmml b/cmuratori/hero/misc/2014-12-16_basic_emacs.hmml similarity index 83% rename from cmuratori/hero/misc/basic_emacs.hmml rename to cmuratori/hero/misc/2014-12-16_basic_emacs.hmml index c33682d..3f9a5ff 100644 --- a/cmuratori/hero/misc/basic_emacs.hmml +++ b/cmuratori/hero/misc/2014-12-16_basic_emacs.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=misc title="Optional Editor Intro: Basic Emacs Tutorial" vod_platform=youtube id=hbmV1bnQ-i0 annotator=schme annotator=effect0r annotator=theinternetftw] +[video output=basic_emacs member=cmuratori stream_platform=twitch stream_username=handmade_hero project=misc title="Optional Editor Intro: Basic Emacs Tutorial" vod_platform=youtube id=hbmV1bnQ-i0 annotator=schme annotator=effect0r annotator=theinternetftw] [0:00:00][Introduction and disclaimer][:speech] [0:01:29][Where to get Casey's .emacs config file] [0:02:26][What's in the .emacs file (quick overview)] diff --git a/cmuratori/hero/misc/30mlocp.hmml b/cmuratori/hero/misc/2018-05-12_30mlocp.hmml similarity index 96% rename from cmuratori/hero/misc/30mlocp.hmml rename to cmuratori/hero/misc/2018-05-12_30mlocp.hmml index 73be8db..2db7a39 100644 --- a/cmuratori/hero/misc/30mlocp.hmml +++ b/cmuratori/hero/misc/2018-05-12_30mlocp.hmml @@ -1,4 +1,4 @@ -[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=misc medium=speech title="The Thirty-Million Line Problem" vod_platform=youtube id=kZRE7HIO3vk annotator=Miblo] +[video output=30mlocp member=cmuratori stream_platform=twitch stream_username=handmade_hero project=misc medium=speech title="The Thirty-Million Line Problem" vod_platform=youtube id=kZRE7HIO3vk annotator=Miblo] [0:00][Welcome to the lecture][:hardware :isa :"operating system"] [1:20][:Hardware Quality is At Its Historical Best] [4:06][Software Quality is At Its Historical Worst] diff --git a/miotatsu/riscy/cinera__riscy.css b/miotatsu/riscy/cinera__riscy.css index aac19c8..15c6edd 100644 --- a/miotatsu/riscy/cinera__riscy.css +++ b/miotatsu/riscy/cinera__riscy.css @@ -1,6 +1,26 @@ +/* + * Base colours: + * background-color: #EEE; + * color: #000; + * + * :hover + * background-color: #FFF8E7; + * + * .progress + background-color: rgb(42, 49, 114); + color: #FFF; + * + * .faded + background-color: rgba(42, 49, 114, 0.7); + * + * + */ + #cineraIndexControl.riscy .cineraQueryContainer .inputContainer #query, +#cineraIndexControl.riscy .cineraFilterProject, + #cineraResults .dayContainer.riscy, -#cineraIndex.riscy #cineraIndexEntries div, +#cineraIndex .cineraIndexProject.riscy .cineraIndexEntries div, .cineraMenus.riscy, .cineraMenus.riscy > .menu > div, @@ -23,14 +43,17 @@ } #cineraIndexControl.riscy .cineraQueryContainer .inputContainer #query:focus, -#cineraResults .dayContainer:nth-child(2n).riscy, #cineraIndexControl.riscy #cineraIndexSort, -#cineraIndex.riscy #cineraIndexEntries div:nth-child(2n) { + +.cineraIndexProject.riscy .cineraProjectTitle, +#cineraResults .dayContainer:nth-child(2n).riscy, +#cineraIndex .cineraIndexProject.riscy .cineraIndexEntries div:nth-child(2n) { background-color: #FFF; } #cineraResults .markerList.riscy > .marker, +#cineraIndexControl.riscy .cineraIndexFilter .filter_container, .cineraMenus.riscy, .cineraMenus.riscy > .menu > div, .cineraMenus.riscy > .menu > .quotes_container .ref, @@ -45,11 +68,15 @@ border-color: rgba(246, 178, 26, 0.8); } +/* Default Text */ #cineraIndexControl.riscy .cineraQueryContainer .inputContainer #query, -.cineraResults .dayContainer.riscy > .dayName, -#cineraResults .markerList.riscy > .marker, #cineraIndexControl.riscy #cineraIndexSort, -#cineraIndex.riscy #cineraIndexEntries div a, +#cineraIndexControl.riscy .cineraFilterProject, + +#cineraResults .dayContainer.riscy > .dayName, +#cineraResults .markerList.riscy > .marker, +.cineraIndexProject.riscy .cineraProjectTitle, +#cineraIndex .cineraIndexProject.riscy .cineraIndexEntries div a, .cineraMenus.riscy, .cineraMenus.riscy > .menu > .quotes_container .ref, @@ -65,19 +92,20 @@ } /* Visited Indicator */ -#cineraIndex.riscy #cineraIndexEntries div a::before { +#cineraIndex .cineraIndexProject.riscy .cineraIndexEntries div a::before { color: #EEE; } -#cineraIndex.riscy #cineraIndexEntries div:nth-child(2n) a::before { +#cineraIndex .cineraIndexProject.riscy .cineraIndexEntries div:nth-child(2n) a::before { color: #FFF; } -#cineraIndex.riscy #cineraIndexEntries div a:visited::before { +#cineraIndex .cineraIndexProject.riscy .cineraIndexEntries div a:visited::before { color: #33BB33; } /**/ + .cineraMenus.riscy > .menu { transition: box-shadow 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275); box-shadow: inset 0 0 0 #2A3172; @@ -96,9 +124,12 @@ color: rgb(246, 178, 26); } -#cineraResults .markerList.riscy > .marker:hover, #cineraIndexControl.riscy #cineraIndexSort:hover, -#cineraIndex.riscy #cineraIndexEntries div:hover, +#cineraIndexControl.riscy .cineraFilterProject.focused, +#cineraIndexControl.riscy .cineraFilterProject.focused *, + +#cineraResults .markerList.riscy > .marker:hover, +#cineraIndex .cineraIndexProject.riscy .cineraIndexEntries div:hover, .cineraMenus.riscy > .menu.visible, .cineraMenus.riscy > .menu > .quotes_container .ref.focused, @@ -136,6 +167,8 @@ background-color: rgba(42, 49, 114, 0.7); } +#cineraIndexControl.riscy .cineraFilterProject.off, + .cineraMenus.riscy > .menu > .refs .ref .source, .cineraMenus.riscy > .menu > .refs .ref .quote_byline, .cineraMenus.riscy > .menu > .filter_container .filter_content.off .cineraText, diff --git a/pervognsen/bitwise/cinera__bitwise.css b/pervognsen/bitwise/cinera__bitwise.css index a1f7721..d7991bc 100644 --- a/pervognsen/bitwise/cinera__bitwise.css +++ b/pervognsen/bitwise/cinera__bitwise.css @@ -17,8 +17,9 @@ */ #cineraIndexControl.bitwise .cineraQueryContainer .inputContainer #query, +#cineraIndexControl.bitwise .cineraFilterProject, #cineraResults .dayContainer.bitwise, -#cineraIndex.bitwise #cineraIndexEntries div, +#cineraIndex .cineraIndexProject.bitwise .cineraIndexEntries div, .cineraMenus.bitwise, .cineraMenus.bitwise > .menu > div, @@ -28,6 +29,7 @@ .cineraMenus.bitwise > .menu > .link_container #cineraLinkMode, .cineraMenus.bitwise > .menu > .link_container #cineraLink, .cineraMenus.bitwise > .menu > .credits_container .credit, +.cineraMenus.bitwise > .menu > .view, .cineraMenus.bitwise > .menu > .views_container .view, .cineraPlayerContainer .markers_container.bitwise, .cineraPlayerContainer .markers_container.bitwise > .episodeMarker, @@ -40,14 +42,17 @@ } #cineraIndexControl.bitwise .cineraQueryContainer .inputContainer #query:focus, -#cineraResults .dayContainer:nth-child(2n).bitwise, #cineraIndexControl.bitwise #cineraIndexSort, -#cineraIndex.bitwise #cineraIndexEntries div:nth-child(2n) { + +.cineraIndexProject.bitwise .cineraProjectTitle, +#cineraResults .dayContainer:nth-child(2n).bitwise, +#cineraIndex .cineraIndexProject.bitwise .cineraIndexEntries div:nth-child(2n) { background-color: #1E1E1E; } #cineraResults .markerList.bitwise > .marker, +#cineraIndexControl.bitwise .cineraIndexFilter .filter_container, .cineraMenus.bitwise, .cineraMenus.bitwise > .menu > div, .cineraMenus.bitwise > .menu > .quotes_container .ref, @@ -62,11 +67,15 @@ border-color: #8EB08F; } +/* Default Text */ #cineraIndexControl.bitwise .cineraQueryContainer .inputContainer #query, +#cineraIndexControl.bitwise #cineraIndexSort, +#cineraIndexControl.bitwise .cineraFilterProject, + #cineraResults .dayContainer.bitwise > .dayName, #cineraResults .markerList.bitwise > .marker, -#cineraIndexControl.bitwise #cineraIndexSort, -#cineraIndex.bitwise #cineraIndexEntries div a, +.cineraIndexProject.bitwise .cineraProjectTitle, +#cineraIndex .cineraIndexProject.bitwise .cineraIndexEntries div a, .cineraMenus.bitwise, .cineraMenus.bitwise > .menu > .quotes_container .ref, @@ -82,20 +91,21 @@ } /* Visited Indicator */ -#cineraIndex.bitwise #cineraIndexEntries div a::before { +#cineraIndex .cineraIndexProject.bitwise .cineraIndexEntries div a::before { color: #212121; } -#cineraIndex.bitwise #cineraIndexEntries div:nth-child(2n) a::before { +#cineraIndex .cineraIndexProject.bitwise .cineraIndexEntries div:nth-child(2n) a::before { color: #1E1E1E; } -#cineraIndex.bitwise #cineraIndexEntries div a:visited::before { +#cineraIndex .cineraIndexProject.bitwise .cineraIndexEntries div a:visited::before { color: #33FF33; } /**/ /* NOTE(matt): Somehow use this to colour the "Default Medium" when .off */ +#cineraIndexControl.bitwise .cineraFilterProject.off, .cineraMenus.bitwise > .menu > .filter_container .filter_content.off .cineraText { color: #3A3936; } @@ -118,9 +128,12 @@ color: #37D341; /* Colour when hovering over the ref that is currently playing */ } -#cineraResults .markerList.bitwise > .marker:hover, #cineraIndexControl.bitwise #cineraIndexSort:hover, -#cineraIndex.bitwise #cineraIndexEntries div:hover, +#cineraIndexControl.bitwise .cineraFilterProject.focused, +#cineraIndexControl.bitwise .cineraFilterProject.focused *, + +#cineraResults .markerList.bitwise > .marker:hover, +#cineraIndex .cineraIndexProject.bitwise .cineraIndexEntries div:hover, .cineraMenus.bitwise > .menu.visible, .cineraMenus.bitwise > .menu > .quotes_container .ref.focused,