1 ความคิดเห็น

 
GN⁺ 2024-03-24
ความคิดเห็นจาก Hacker News
  • สิ่งที่เจ๋งที่สุดในงานชิ้นนี้น่าจะเป็น วิธีที่เวลาทำงาน
    เพราะหนึ่งสเต็ปของแต่ละระดับถูกคำนวณจากสเต็ปจำนวนมหาศาลของระดับที่อยู่ถัดลงไป พอยิ่งซูมออกก็ยิ่งเหมือนตกเข้าสู่ วังวนแบบเอ็กซ์โปเนนเชียล ที่หนึ่งสเต็ปกินเวลาเป็นวัน เป็นปี หรือเป็นพันปี
    แต่สิ่งที่ฉลาดคือซิมูเลเตอร์ปรับความเร็วให้ลื่นไหลตามระดับการซูม จนเหมือนลบการมีอยู่ของเวลาออกไปเลย
    ถ้ามีตัวบอกว่าหนึ่งวินาทีในโลกจริงเท่ากับเวลาในเกมผ่านไปเท่าไรคงดี แต่ถ้าจะทำแบบนั้นก็คงต้องกำหนดให้มีระดับหนึ่งเป็นระดับ “ฐาน” หรือระดับที่รันแบบเรียลไทม์ ซึ่งน่าจะทำให้ความเป็นแฟร็กทัลของทั้งหมดเสียไป

    • ในบทความอธิบายการทำงาน หลังจากอธิบายแนวคิดของ แพตเทิร์นเมตาพิกเซล ก็มีการบอก “อัตรานาฬิกา” ของคาบไว้
      ประมาณว่า “แพตเทิร์นนี้มีคาบ 35328 ดังนั้นเมื่อผ่านไป 35328 generations เมตาเลเวลจะเดินหน้าไป 1 generation”
      ความหน่วงของเวลาแบบนี้อาจมองได้ว่าเป็นสิ่งจำเป็น เพราะถ้าความคล้ายตัวเองของแพตเทิร์นแผ่ไปตามกาลเวลา และสองระดับทำงานด้วยนาฬิกาคนละอัตรา ก็ต้องลดความเร็วเมื่อยกระดับถัดไปขึ้นมาให้ตรงกับมุมมองแอนิเมชันแบบคล้ายตัวเองของระดับก่อนหน้า
      กล่าวคือ โครงสร้างระดับ n ต้องอาศัยการทำซ้ำ 35328 ครั้ง ของโครงสร้างคล้ายตัวเองในระดับ n+1 ดังนั้นเมื่อดึง n+1 ขึ้นมาเป็นมุมมองคล้ายตัวเองของ n หากต้องการให้ความคล้ายตัวเองเชิงเวลาด้วยตรงกัน n+1 ก็ต้องช้าลงด้วย
      เลยชวนให้สงสัยว่ามีอะไรคล้าย ค่าคงที่ไม่แปรตามเวลา อยู่หรือไม่ แบบที่ “ความซับซ้อนเชิงคำนวณ” ของมุมมองหนึ่งคงที่เท่ากันในทุกระดับการซูม
    • สิ่งที่น่าประทับใจเป็นพิเศษคือทุกครั้งที่ซูมออก เราจะหลุดออกมาจากคนละส่วนของวงจรเสมอ
      เลยไม่รู้สึกเหมือนแฟร็กทัลที่วนซ้ำแบบธรรมดา แต่เหมือนกำลังมองส่วนต่าง ๆ ของเครื่องจักรจากมุมมองทางเวลาที่ต่างกัน
    • เพราะแรงโน้มถ่วงทำให้เวลาเดินช้าลง
      ยิ่งขึ้นไปสูงก็ยิ่งได้รับผลจากแรงโน้มถ่วงน้อยลง เวลาเลยเดินเร็วขึ้น
      อ้างอิง: https://en.wikipedia.org/wiki/Gravitational_time_dilation
    • อาจกำหนดให้ระดับที่เริ่มต้นเป็นแบบเรียลไทม์ แล้วให้เข็มวินาทีขยับช้าลงในระดับล่าง และเร็วขึ้นในระดับบนก็ได้นะ
    • เนื่องจากกริดไม่มีที่สิ้นสุด จึงน่าจะเป็นไปได้ที่ระดับหนึ่งจะ เหมือนกับระดับถัดไปทุกประการแม้กระทั่งประวัติทั้งหมด
      ถ้าอย่างนั้นก็อาจมองว่าทุกระดับเป็นสิ่งเดียวกัน และทั้งอวกาศกับเวลาก็กลายเป็นวงกลมในเชิงสเกล
      ถึงอย่างนั้น ระดับเดียวนั้นก็ยังอาจไม่ซ้ำในทั้งเชิงอวกาศและเชิงเวลาได้
  • ตอนซูมเข้าในครั้งแรก ผมเผลออุทานในใจว่า “อะไรวะเนี่ย”
    มันพลิกสิ่งที่คุ้นเคยมานานกว่า 20 ปีแบบกลับหัวกลับหาง และเป็นหนึ่งในสิ่งที่เจ๋งที่สุดที่ได้เห็นมานานมาก

  • อันนี้เป็นประเภทที่อย่าแค่อ่านคอมเมนต์ ต้อง ลองรันเอง
    เกือบจะปิดไปเฉย ๆ แล้ว แต่พอเข้าไปดูก็ถึงกับจ้องไม่วางตา
    ยอดเยี่ยมจริง ๆ

    • แค่ดูและลองซูมไปซูมมาก็มีอะไรให้คิดเยอะมากแล้ว
    • เห็นด้วยว่าต้องกดลิงก์เข้าไป
      ปกติผมก็มักอ่านคอมเมนต์ก่อนเพื่อเช็กก่อนว่าจะเป็นเว็บติดเพย์วอลล์ เปลืองเวลา มีแบนเนอร์ยักษ์ หรือเป็นเว็บหลอกลวงหรือเปล่า แล้วค่อยตัดสินใจว่าจะคลิกไหม
      แต่ก็รู้สึกขอบคุณมากกับคนที่อ่านเนื้อหาแล้วกลับมาคอมเมนต์ไว้ให้คนอื่น
      ทุกครั้งที่เรียนภาษาใหม่ ผมน่าจะทำ Conway's Game of Life อย่างน้อยสักสิบสองรอบ และตอนนี้ก็เริ่มคิดแล้วว่าสิ่งนี้ถูกทำขึ้นมายังไง
      แค่จะใส่แพตเทิร์นตัวอย่างให้ผู้ใช้เริ่มเล่นได้สักไม่กี่แบบก็ยุ่งพอแล้ว ขึ้นอยู่กับการออกแบบการทำงาน แต่เว็บนี้เหมือนเอาพวก still lifes, oscillators และ spaceships มาผสานกันเป็นชั้นที่มีจำนวนไม่สิ้นสุด
      แม้แพตเทิร์นจะดูเหมือนมีการวนซ้ำ แต่แค่การประกอบเลเยอร์พื้นฐานขึ้นมาก็น่าประทับใจมากแล้ว
    • แนะนำอย่างยิ่งให้เปิด “darude - sandstorm” ไปด้วยระหว่างเลื่อนดู
    • ดูเหมือนเว็บจะโดนทราฟฟิกถล่ม
      คิดว่าอีกสองสามวันค่อยกลับมาลองใหม่
  • น่าสนใจที่มันเขียนด้วย Haxe
    เป็นภาษาที่ไม่เคยได้ยินชื่อมาก่อน แต่ผมกำลังมองหา “ภาษาแฮ็กเกอร์” ที่พอจะใช้แทรกตัวได้เกือบทุกงานเฉพาะทาง และนี่อาจเป็นแบบนั้นก็ได้
    พอดูเรื่อง static type แบบเลือกใช้ได้ กับการคอมไพล์ไปได้หลายเป้าหมาย โดยเฉพาะ C++ ก็ไม่ค่อยเข้าใจว่าทำไมมันถึงไม่ดังมากกว่านี้
    มันดูเป็นภาษาที่ใช้งานจริงมาก ออกแบบโดยคนที่เข้าใจความต้องการของนักพัฒนาอย่างดี

    • เท่าที่รู้ Haxe ถูกสร้างขึ้นมาเพื่อแทนที่ Flash
      ไม่แน่ใจว่าทำไมถึงไม่ดังไปกว่านี้ แต่ในชุมชนเกมก็มีคนใช้พอสมควร
    • Haxe เป็นภาษาที่ตั้งหลักได้ดีพอสมควรแล้ว แต่ไม่ได้เป็นที่รู้จักในวงกว้าง และมักอยู่ในตำแหน่งรองเสมอ
      ถึงอย่างนั้นมันก็ยอดเยี่ยมมาก
      มันยังมี แมโครที่สามารถแปลง abstract syntax tree (AST) ได้ด้วย เลยทำอะไรน่าทึ่งได้มากตอนคอมไพล์
      มีภาษาไม่กี่ตัวนักที่รองรับความสามารถแบบนี้อย่างสุกงอม
      ถ้าคุณไม่ชอบ Lisp แต่ต้องการภาษาแนวแฮ็กเกอร์ Haxe ก็น่าลองมาก
    • ก็ด้วยเหตุผลเดียวกับที่ของดีหลายอย่างมักไม่ค่อยดัง
      คนที่เก่งเรื่องสร้างของเจ๋งมักไม่เก่งเรื่องผลักดันมันให้ดัง ขณะที่คนที่เก่งขายฝันมักทำของที่ซับซ้อนแต่ขายง่าย แล้วสร้างกระแสความสนใจเกินจริงได้
    • Haxe ค่อนข้างเจ๋งเลย และถ้ายังไม่เคยใช้ก็ควรลองจับดู
      ผมไม่ได้ทำอะไรกับมันมากนักเพราะไม่ได้ทำเกม แต่ความรู้สึกมันเหมือน “ถ้า ActionScript 3 ยังพัฒนาต่อไปนอกโลกของ Flash จะเป็นยังไง?”
      สักวันก็อยากใช้มันให้มากขึ้นและลองทำพวกเกมดูบ้าง
    • มันทำให้นึกถึงไอเดียเก่า ๆ ที่อยากหาวิธี เชื่อมฝั่งเซิร์ฟเวอร์ PHP กับฝั่งไคลเอนต์ JS ให้แน่นแฟ้น ตอนทำเว็บและเว็บแอป
      โดยเฉพาะเวลาทำฟอร์มที่อิง HTML มักเจอเรื่องนี้บ่อย ต่อให้กำหนดฟอร์มใน PHP ได้ แต่ฝั่งที่ทำงานโดยไม่ต้องรีโหลดหน้ามักให้ประสบการณ์ผู้ใช้ดีกว่า จึงมักต้องนิยามอ็อบเจ็กต์ TypeScript เพื่อส่งฟอร์มผ่าน Ajax
      การต้องนิยามชื่อฟิลด์ทั้งสองฝั่งเป็นฝันร้ายด้านการดูแลรักษา ผมเลยให้ TypeScript ไปขอรายการอินพุตที่เซิร์ฟเวอร์ต้องการผ่าน Ajax แทน
      ถ้าเป็น Haxe งานแบบนี้น่าจะทำได้สะอาดกว่ามาก: https://haxe.org/use-cases/web/
  • น่าทึ่งจริง ๆ
    รายละเอียดเกี่ยวกับวิธีทำงานอยู่ที่นี่: http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1

  • เจ๋งมาก
    สำหรับใครที่อยากดูว่ามันทำงานอย่างไร นี่คือ ลิงก์ GitHub: https://github.com/saharan/works/tree/main/life

    • ใน repo นั้นยังมีซิมูเลชันเจ๋ง ๆ อีกหลายอัน แต่อันนี้ดีที่สุดแบบขาดลอย
      เป็นหนึ่งใน ไอเดีย Game of Life ที่น่าทึ่งที่สุดที่ได้เห็นมานานแล้ว
  • บางครั้งก็คิดว่าเอกภพของเราอาจเป็นแบบนี้เหมือนกัน
    เราพยายามค้นหาอนุภาคพื้นฐานที่สุดกันอยู่เรื่อย ๆ แต่บางทีมันอาจไม่มีสิ่งนั้นอยู่เลย
    บางทีทุกอย่างอาจซูมได้ไม่สิ้นสุด และพวกเรารับรู้ได้แค่ระดับของตัวเองเท่านั้น
    สสารประกอบด้วยสสารอีกชนิดหนึ่ง และสสารนั้นก็ประกอบด้วยสสารอีกชนิดหนึ่งต่อไปเรื่อย ๆ แบบไม่รู้จบ
    และอาจมีสิ่งมีชีวิตอยู่ในระดับอื่นด้วย
    ไม่ว่าจะอยู่ภายในอิเล็กตรอน หรือเราเองอาจอาศัยอยู่ภายในสิ่งมีชีวิตที่ใหญ่โตกว่ามหาศาล

  • มีความคิดบางอย่างผุดขึ้นมา
    ถ้าปรับค่าเซลล์แบบฝืน ๆ จะเกิดอะไรขึ้น? ดูเหมือนว่าจะเกิดความโกลาหลและการเปลี่ยนแปลงจะลามไปทุกระดับในที่สุด ซึ่งอยากเห็นกับตาจริง ๆ
    แล้วจะทำให้แต่ละเซลล์เป็นคนละซิมูเลชันกัน แต่เมื่อซูมออกในระดับใหญ่ขึ้นยังคงทำงานเหมือน Conway's Game of Life ได้ไหม? ถ้ารักษาขอบเขตไว้ได้และเปิดปิดถูกจังหวะก็น่าจะเป็นไปได้ เลยอยากรู้ว่าขีดจำกัดอยู่ตรงไหน

    • ระดับที่มีการแก้ค่าเซลล์จะพังจาก คลื่นแห่งความโกลาหล ที่แผ่ออกไปจากจุดเสียหายแรกเริ่ม และจะทิ้งลวดลาย “เถ้า” ที่น่าเบื่อไว้ด้านหลัง
      ระดับที่ต่ำกว่านั้นจะไม่ได้รับผลกระทบ และจะยังคงจำลองความโกลาหลที่เกิดขึ้นด้านบนอย่างซื่อตรงด้วยกลไกที่ยังไม่เสียหาย
      ส่วนระดับที่สูงกว่านั้นจะไม่จำลอง Game of Life อีกต่อไป
      ส่วนที่เสียหายในระดับล่างจะดูเหมือนจุดพร่ามัวที่ไม่ใช่ทั้งสีขาวหรือสีดำ และจะขยายใหญ่ขึ้นชั่วนิรันดร์อย่างช้าลงแบบยกกำลังเมื่อมองขึ้นไป
    • ถ้าการเปลี่ยนค่าเซลล์แบบฝืน ๆ ทำให้เกิดความโกลาหลและการเปลี่ยนแปลงลามไปทุกระดับ นี่พอจะเป็นอุปมาแบบ มะเร็ง ได้ไหม?
      น่าสนใจดีถ้าได้เห็นว่ามันคลี่คลายไปอย่างไร และจะมีผลแบบ “การซ่อมแซม” หรือ “ระบบภูมิคุ้มกัน” เกิดขึ้นหรือไม่
  • ทำออกมาได้สวยงามจริง ๆ
    Game of Life น่าจะเป็นซิมูเลชันแรกที่ฉันลองทำในฐานะโปรแกรมเมอร์ และหลังจากนั้นก็ยังวนกลับมาหามันอีกหลายปี
    จนถึงตอนนี้ เวลาคนพยายามครุ่นคิดเรื่องอย่าง จิตสำนึก มันก็ยังผุดขึ้นมาในหัว
    เรามีอะไรบางอย่างเหมือนผงวิเศษอยู่จริงหรือเปล่า หรือทั้งหมดเป็นเพียงผลของกฎง่าย ๆ ที่คลี่ตัวอยู่บนเวทีอันมหึมา

    • ถ้าดูพฤติกรรมเกิดใหม่ที่ปรากฏจากการรัน โปรแกรม 256 ไบต์ นี้ก็น่าจะเพลินดี
      ช่วงเวลาที่จิตใจกำเนิดขึ้น: https://www.youtube.com/watch?v=sWblpsLZ-O8
    • เช่นเดียวกับที่กฎฟิสิกส์ไม่ได้หยุดอยู่ที่ขอบกะโหลกศีรษะ ก็ไม่มีอะไรอย่าง อธิปไตยของตัวตน ด้วยเช่นกัน
      แต่ถ้าความคิดบางอย่างจะมองว่าตัวเองเป็นผู้คิดของตัวเอง ก็ไม่มีใครสนใจอยู่ดี
      เพราะตั้งแต่แรกก็ไม่มีใครอยู่แล้ว มีเพียงความคิดเท่านั้น
    • บางทีตัวกฎง่าย ๆ เองนี่แหละอาจเป็น “ผงวิเศษ”
      โครงสร้างที่สมบูรณ์แบบแบบทัวริง เช่นนี้ปรากฏขึ้นได้ทั่วไป และในหลายแง่ก็เทียบเท่ากัน
      บางทีโครงสร้างชั้นล่างนี้อาจเป็นรากฐานของอภิปรัชญาของเรา และความเป็นจริงเป็นเพียงโหนดหนึ่งในความเป็นไปได้เชิงการจัดเรียงสับเปลี่ยนของมัน
      กฎง่าย ๆ ของ Game of Life อาจเป็นภาพสะท้อนเชิงเกิดใหม่ของธรรมชาติพื้นฐานของความเป็นจริงระดับเมตา
      และการที่ภาพสะท้อนแบบนี้มีอยู่ในโครงสร้างประสาทและโครงสร้างของความหมายของเรา อาจเป็น “ผงวิเศษ” ที่จำเป็นต่อการเกิดของจิตสำนึกก็ได้
  • ยังมีเวอร์ชันเจ๋ง ๆ ที่ แสดงภาพแบบ 3D ของ Game of Life ด้วย
    เฟรมเวลาก่อนหน้าจะซ้อนเรียงลงไปด้านล่างเหมือนรากที่งอกออกมา และแสดงเป็นแอนิเมชันในมุมมองไอโซเมตริก
    แม้จะไม่ใช่แฟร็กทัลแบบงานชิ้นนี้ แต่ก็มีบรรยากาศร่วมกันชัดเจนในจุดที่ศิลปะกับวิทยาศาสตร์มาบรรจบกัน
    AlecsForum: https://www.instagram.com/reel/C2hoRnFsmQW/