Announcement

Collapse
No announcement yet.

อธิบายความหมายของคำว่า game engine หน่อย

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • อธิบายความหมายของคำว่า game engine หน่อย

    คำผมรู้ว่ามันคืออะไรประมาณไหนเเต่อยากรู้ลึกครับว่ามันเป็นยังไง

  • #2
    Enging ตามตัวเลยมันคือเครื่องยนต์ครับ เป็นที่ทำงานอยู่ในตัวโปรแกรม คอยจัดการกับตัวระบบปฏิบัติการ แทนที่จะต้องมาคอยควบคุมเรื่องกราฟฟิค เสียง หรือการควบคุม ก็ยกหน้าที่ไปที่ตัวเอ็นจิ้น เพื่อนให้การพัฒนาเกมเป็นไปได้ง่ายขึ้น

    เขียนเองก็งงเอง....ลองนึกถึงเครื่องยนต์ของรถเอาละกัน

    Comment


    • #3
      มันคือโปรแกรมสร้างเกมส์อย่างนึง เหมือนพวก 3D MAX ไรพวกนี้อ่ะมั๊ง แต่สูงกว่าโคตรๆ - -

      Comment


      • #4
        มานมีพื้นฐานมาจากภาษา C++ ใช่ปะครับ

        อย่างงี้ java ก้อเขียนเกมได้เหมือนกันใช่มะครับ พอดีเพิ่งเริ่มเรียนน่ะครับ ^^

        Comment


        • #5
          ถ้าคุณต้องการสร้างรถซักคัน Engine เทียบง่าย ๆ ก็คือเครื่องยนต์ของรถคันนึง ถ้าไม่อยากเสียเวลาในการพัฒนาเครื่องยนต์ เราก็ทำส่วนอื่นไป เครื่องยนต์เราก็ซื้อมาใส่ แต่งองค์ทรงเครื่องซักหน่อยก็ออกมาวิ่งได้แล้ว ฝีมือดีรถก็ออกมาดี ( เช่น BioShock ใช้ Unreal 3.0 ) ห่วยก็ออกมาแย่ ( Turok ใช้ Unreal 3.0 เช่นกัน ) Java ก็เขียนเกมได้ครับ แต่เห็นมันรุ่งกับพวกโทรศัพท์มากกว่า Symbian เบิกทางให้แล้ว

          Comment


          • #6
            จะบอกว่าเป็นไลบราลี่ของภาษาที่ใช้เขียนก็ได้มั้ง
            อย่างC++มันก็ยังมีทั้งdirectXและOpenGL
            ประมาณว่าเป็นชุดคำสั่งที่ใช้สร้างน่ะครับ

            Comment


            • #7
              งงหนักกว่าเดิม

              - -

              เเสดงว่าผมเข้าใจผิดเเต่เเรก

              คิดว่ามันเป็นรูปแบบของโพลีกอนสำเร็จรูป - -

              ออกทะเลเลย~~~~~~~~~~~~~~~

              Comment


              • #8
                Originally posted by OHM_DGO View Post
                ถ้าคุณต้องการสร้างรถซักคัน Engine เทียบง่าย ๆ ก็คือเครื่องยนต์ของรถคันนึง ถ้าไม่อยากเสียเวลาในการพัฒนาเครื่องยนต์ เราก็ทำส่วนอื่นไป เครื่องยนต์เราก็ซื้อมาใส่ แต่งองค์ทรงเครื่องซักหน่อยก็ออกมาวิ่งได้แล้ว ฝีมือดีรถก็ออกมาดี ( เช่น BioShock ใช้ Unreal 3.0 ) ห่วยก็ออกมาแย่ ( Turok ใช้ Unreal 3.0 เช่นกัน ) Java ก็เขียนเกมได้ครับ แต่เห็นมันรุ่งกับพวกโทรศัพท์มากกว่า Symbian เบิกทางให้แล้ว
                ประมาณนี้ ผมเห็นภาพครับ
                ผมเข้าใจว่า
                Car engine ก็คือ ตัวเครื่องยนต์ทำให้รถเคลื่อนที่ได้
                Game Engine ก็เช่นเดียวกัน ทำให้เกมถูกเล่นได้
                ตัวอย่าง ก็เช่น Unreal engine 3.0
                เกม BioShock และ Turok ก็ใช้ Unreal engine 3.0 ทั้งคู่
                จะเห็นได้ว่าลักษณะ แสงเงา รูปร่างตัวละคร ลักษณะการปีนบรรได ลักษณะการใช้อาวุธ จะคล้าย ๆ กัน
                ต่างกันก็ที่เนื้อหาเกม และการใช้ประโยชน์สูงสุดจาก engine (เช่น บางฉากกิน CPU VGA มากเพราะไม่เขียน script ให้ดี)
                ถ้าเปรียบกับรถยนต์ก็เหมือนเครื่องที่มีแรงม้า 300 แล้วทำในรถยนต์ 2 คัน
                ก็จะวิ่งได้้ความเร็วใกล้เคียงกัน ประหยัดน้ำมันใกล้เคียงกัน
                ต่างกันที่รูปลักษณ์ภายนอก ความนุ่มนวลในการขับขี่ เพราะขึ้นอยู่กับการปรับปรุงของแต่บริษัท



                ปล. ความเห็นนึงผิดขออภัย

                Comment


                • #9
                  555....คำตอบแรกของผมคงจะไม่ออกทะเลนะครับ

                  Comment


                  • #10
                    ก็โครงสร้างหลักของเกมสแหละ จะเอาไปใช้ทำอะไร ก็แต่หน้าทาปากนิดหน่อย มันก็กลายเป้นสิ่งที่ต้องการ

                    บ้างก็ มีเสิมเติมแต่ประยุกค์ใช้ แบบโคตรพิสดาร ไม่เหลือเค้าเดิม

                    แต่ถึงอย่างไร ภาพก็ค้ลายกันมาก

                    จะยกตัวอย่างเกมส์ที่ใช้ engine เดียวกัน



                    Source Engine = HL2 - Counterstrike source - Team fortress2

                    SAGE Engine = Generals - Command 3 - Lotr battle for middle earth

                    id Tech 4 /Doom 3 engine = Doom3 - Quake 4 - Prey -enemy territory

                    Comment


                    • #11
                      ว่ากันง่ายๆ มันคือ โปรแกรมสำเร็จรูปสำหรับสร้างเกมส์ครับ คุณแค่เลือกหรือ อาจจะสร้างขึ้นมาอีกนิดหน่อยครับ

                      ประมาณนี้ครับ





                      Comment


                      • #12
                        ข้างบนชัดเจนและแน่นอน คราฟฟฟฟฟ

                        Comment


                        • #13
                          Game Engine มันขึ้นอยู่กับมุมมอง และการตีความหมายของคนพูดแต่ละคนไม่เหมือนกัน เหมือนเราเห็นผู้หญิงแล้วบอกว่าสวย แต่คำว่าสวยของแต่ละคนก็คงไม่เท่ากัน บางคนเลยมีคำพูดกลางๆออกมาถนอมน้ำใจว่าน่ารักออกมาแทน

                          กลับมาที่ Game Engine ดีกว่า
                          บางคนสงสัยว่า DirectX เป็น Game Engine หรือไม่ อันนี้ก็ขึ้นอยู่กับมุมมองครับ
                          ถ้าในสมัยก่อน หมายถึงบน Dos น่ะ เราต้องเขียนคำสั่งจัดการกับ Card จอโดยตรง ปรับแต่งอีกนิดมันก็จะกลายเป็นว่าเราสร้าง Driver ให้ระบบปฏิบัติการได้แล้วละครับ คือเขียนติดต่อการ์ดจอเมื่อก่อนมันยากมาก ต้องใช้คำสั่ง Interrupt ใน C จัดการ ต้องจัดการกับ Register เอง แล้วที่เขียนมานะครับใช่ว่าจะติดต่อได้กับทุกการ์ดแสดงผล มาหลังๆจึงได้มี DirectX และ OpenGL ออกมา ซึ่งได้ทำการวางมาตรฐานของการ์ดแสดงผล ว่าจะต้องประกอบไปด้วยส่วนใดบ้าง มีการเรียกใช้งานอย่างไร ผ่านทาง driver ของอุปกรณ์ตัวนั้น
                          ดังนั้นในสมัยก่อนเราจะมองว่า DirectX และ OpenGL เป็น Game Engine ครับ (ปัจจุบันถูกจัดเป็น Game Engine ในระดับล่าง คือ Game Engine ทุกตัวจะต้องอาศัยตัวใดตัวหนึ่งหรือทั้งสองตัวนี้เป็นพื้นฐาน) สำหรับ OpenGL นั้นถ้าจะเรียกให้ถูกเราจะเรียกว่า Graphics Engine เพราะจัดการแต่การแสดงผลอย่างเดียว ไม่เหมือนกับ DirectX

                          ขออธิบายเพิ่มเติม
                          สาเหตุที่คนสมัยก่อนมอง DirectX และ OpenGL เป็น Game Engine นั้นเพราะทั้งสองตัวนี้เป็นตัวเชื่อมการทำงานระหว่างเกมที่เขียนขึ้น กับ Driver ของฮาร์ดแวร์นั่นเอง

                          สมัยก่อน (บนดอส)
                          Hardware
                          ^
                          |
                          Driver
                          ^
                          |
                          DirectX/Open GL
                          ^
                          |
                          Game

                          ปัจจุบัน
                          Hardware
                          ^
                          |
                          Driver
                          ^
                          |
                          DirectX/Open GL
                          ^
                          |
                          Game Engine (หมายเหตุ)
                          ^
                          |
                          Game
                          หมายเหตุ
                          ในปัจจุบัน Game Engine นอกจากติดต่อกับฮาร์ดแวร์ผ่านทาง DirectX และ OpenGL หรือ API อื่นๆพื้นฐานแล้วยังเพิ่มความสามารถต่างๆเข้าไปอีก เช่น
                          AI Engine
                          Script Engine
                          Physics Engine
                          Network Engine
                          เครื่องมือในการสร้างโมเดล หรือ ฉากภายในเกมเป็นต้น เหมือนที่ข้างบนๆ ว่าไว้

                          ดังนั้นหากจะเขียนเกมขึ้นมาสักเกมโดยไม่มี Engine ได้ไหม บอกว่าได้ แต่เสียเวลา และ ลำบากโคตร
                          ไม่รู้เจ้าของกระทู้จะได้คำตอบโดนใจหรือเปล่า ถ้ายังไงถามมาก็แล้วกัน จะพยามตอบสุดความสามารถ

                          Comment


                          • #14
                            เอแล้วยังงี้ PhysicX ของ Nvidia นี้จะอยู่ส่วนไหนของการรันเกมส์อยู่
                            ประเภทเดียวกับพวก AI Engine / Script Engine หรือเปล่า
                            เพราะงงว่าบางเกมส์ มี Physics Engine มาในตัว แต่ปัจจุบันนี้
                            มี PhysicX ของ Nvidia ออกมา ซัพพอร์ตเกมส์ใหม่ๆแล้วมันจะอยู่ส่วนไหน?
                            อีกอย่างการ์ดฝั่ง Ati จะทำไง

                            Comment


                            • #15
                              จัดเป็น Physics Engine ที่ทำงานในระดับล่างครับ มันเป็น Option ครับ โดยปรกติจะตรวจสอบก่อนว่า ในเครื่องของผู้เล่นสนับสนุนการทำงานของ PhysicsX หรือเปล่า ถ้ามีก็ใช้การประมวลผลจากตัวฮาร์ดแวร์เลย ถ้าไม่มีจะใช้ Software ของ PhysicsX มาประมวลผลแทน (ในกรณีนี้จะจัดเป็น Engine ระดับสูงไป เนื่องจากไม่ได้ติดต่อกับฮาร์ดแวร์โดยตรง แต่ใช้ CPU คำนวณเพียวๆ)

                              ในสมัยก่อน Game Engine จะสร้าง Physics Engine ของตัวเองมาใช้เองซึ่งต้องใช้ CPU เพียวๆ ทำให้ CPU ทำงานหนักขึ้นเกมอาจจะหน่วงหากต้องการให้เร็วขึ้นต้องอาศัยการเขียนแบบ Multithread เอาครับคือทำงานหลายๆงานได้พร้อมกัน แสดงผลด้วย พร้อมกับคำนวณฟิสิกส์ไปด้วย (Multithread จริงๆเป็นการซอยงานหลักออกเป็นส่วนเล็กๆแล้วทำการสลับการทำงานไปมาในช่วงเวลาสั้นๆ จึงดูเสมือนว่าทำงานพร้อมกัน แต่ถ้าไม่เป็นแบบ Multithread จะต้องคอยให้งานหนึ่งๆเสร็จก่อนแล้วจึงค่อยทำงานอื่นต่อไป เช่นคอยให้แสดงผลเสร็จก่อน แล้วค่อยคำนวณฟิสิกส์ต่อเป็นต้น สำหรับ Game Engine แพงๆ ได้ออกแบบการทำงานส่วนนี้ไว้ให้โปรแกรมเมอร์แล้วส่วนหนึ่งทำให้ไม่ต้องปวดหัวกับการจัดการกับ Thread ภายในเกม)

                              พูดง่ายๆที่ปัจจุบันเอา Physics Engine มาใส่ในการ์ดแสดงผล เพื่อกลยุทธ์ทางการตลาดเพิ่มมูลค่าในการตลาด ซึ่งเคยเกิดมาแล้วกับ directx 8.1a และ b ที่ครั้งแรก microsoft เน้นสนับสนุนความสามารถทาง vertex shader ของ ATI เป็นหลักใน directx8.1a มากกว่าของ Nvidia ทำให้ต้องออก 8.1b ตามมาแก้ปัญหา (ไม่แน่ใจว่าผมจำยี่ห้อสลับกันหรือเปล่า)
                              สำหรับระบบ PhysicsX ผมมองว่า ATI คงหาวิธีทางการตลาดมาแข่งแน่ครับหรือไม่ก็ขอซื้อมาใช้ใส่ในการ์ดตัวเองไปเลย แต่สุดท้ายก็คงจะเป็น Microsoft เข้ามาจัดวางมาตรฐานอีกทีนึง เพื่อให้ตัวเองสามารถควบคุมแนวทางในการพัฒนาได้เพื่อผลดีทางการตลาดของ Microsoft เองด้วย รวยได้เพราะพยามจัดระเบียบคู่แข่ง และ คู่ค้า
                              Last edited by attapong5; 18 Oct 2008, 13:13:34.

                              Comment

                              Working...
                              X