Tags:

คำว่า "Engine" ในทางคอมพิวเตอร์ มันคืออะไร? หมายความว่าอะไร?กันแน่คะ
และ ในการเขียน โปรแกรมภาษาคำว่า "Engine" มันคืออะไร หมายความว่าอะไร? คะ ช่วยอธิบายให้กระจ่างหน่อยนะคะ ไม่ทราบจริงๆ ค่ะ ไปถามคนอื่นก็ไม่ได้คำตอบที่กระจ่าง

(ไม่รู้ว่าตั้งกระทู้ถูกหมวดหรือเปล่า ถ้าไม่ใช่ก็ขออภัยด้วยนะคะ เพิ่งสมัครเข้ามาอ่ะค่ะ)
***พอดีไปอ่าน Code ของคนๆนึง ที่เขียน app ด้วย java มาอ่ะค่ะ ไม่เข้าใจจริงๆ

ขอบคุณทุกท่านที่ช่วยมาให้คำตอบนะคะ

Get latest news from Blognone
By: Thaina
Windows
on 24 August 2009 - 00:03 #120546

ในทาง เกมโปรแกรมมิ่ง นะครับ

เอนจิ้น จะหมายถึง ไลบรารี่กองหนึ่ง และโปรแกรมที่เป็น Tools สำหรับการสร้าง หรือแก้ไขข้อมูล ให้เป็นฟอร์แม็ทที่เหมาะกับไลบรารี่ตัวนั้นๆ

เช่น เอนจิ้นเกม 3D มักจะมี Tools สำหรับสร้างไฟล์ Map ที่เอาโมเดลต่างๆในเกม มาจัดวางเป็นฉาก แล้วเซฟเป็นไฟล์เฉพาะ และมีไลบรารี่สำหรับ อ่านไฟล์ฉากดังกล่าว มาแสดงผลเป็นฉากในเกม

อันนี้เฉพาะ เกมเอนจิ้นนะครับ อาจจะมีความหมายอื่นอีกซึ่งผมไม่รู้

My Blog

By: magicbank on 24 August 2009 - 10:17 #120576

Engine กับ Framework มันต่างกันมากแค่ไหน หรือเหมือนกันตรงไหนบ้างครับ

By: mr_tawan
ContributoriPhoneAndroidWindows
on 26 August 2009 - 21:10 #121164 Reply to:120576
mr_tawan's picture

Framework เหมือนเป็นการจำกัดกรอบคร่าว ๆ ของ Application ให้เราพัฒนาต่อยอดขึ้นไปครับ

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

Engine เหมือนเป็น Blackbox อันนึงที่ พอเราโยน Input เข้าไป (พร้อม Logic บางส่วน) มันจะสร้าง Output ออกมา อย่างเช่น ถ้าเราเขียนเกม ถ้าเราโยนกราฟิค พร้อมกับกำหนดกฎหลัก ๆ บางส่วนของเกมลงไปใน Engine มันก็จะสร้างเกมออกมาให้เราเล่นได้ (ซึ่งต่างกับการเขียนเกมด้วยการเขียนโปรแกรมที่ต้องเขียนมันหมดทุกอย่าง ทั้งวิธีการแสดงผล วิธีการรับอินพุต ฯลฯ)

จะมองว่า Engine เป็น Application ที่เกือบจะเสร็จแล้ว ขาดแต่ Content บางอย่างที่จะทำให้ทำให้ Application ออกมาแตกต่างกัน

... อ่าน ๆ ไปแล้วก็งง ๆ อันที่จริง ๆ ผมว่ามันก็ก้ำกึ่ง ๆ กันนะ ... ผมว่ามันแตกต่างกันที่ความสมบูรณ์ของ Lib มากกว่า

Framework เหมือนจะเป็นแค่โครงที่กำหนดวิธีการคร่าว ๆ เรายังต้องสร้างอะไรเข้าไปต่อเติมอีกเยอะกว่าจะออกมาเป็นโปรแกรมได้ ในขณะที่ Engine เนี่ย มันเหมือนเกือบจะเสร็จแล้ว แค่หาอะไรใส่เข้าไปอีกหน่อยก็สมบูรณ์เป็นโปรแกรมละ

ทั้งนี้ทั้งนั้น นิยามตรงนี้มันก็จะต่างกันไปในแต่ละคน (คำว่า Framework มีนิยามค่อนข้างตายตัว แต่ Engine เนี่ยจะหลากหลายกันไปหน่อย) ดังนั้นก็คงมีคนที่เห็นไม่ตรงกับผมครับ (อย่างข้างบนนี้ก็มีคนนึงล่ะ)


  • 9tawan.net บล็อกส่วนตัวฮับ
By: javaboom
WriteriPhone
on 24 August 2009 - 11:50 #120592
javaboom's picture

ในทาง distributed system มันหมายถึงกลไกที่ทำงานอย่างต่อเนื่องแบบ preemption ที่สามารถประมวลผลหรือดำเนินงานตาม flow ของงานอื่นๆ (เช่น โปรแกรมอื่นๆ)

อาทิเช่น คำว่า Compute Engine อันเป็นตัวอย่างที่ใช้บ่อยมากสำหรับเขียนโปรแกรมแบบ client/server ซึ่ง Compute Engine ที่ทำงานบนฝั่ง server สามารถรับโปรแกรมใดๆจากฝั่ง client แต่โปรแกรมนั้นๆต้องพัฒนาหรือมีีีรูปแบบถูกต้องตามที่ผู้พัฒนา engine กำหนดไว้ (เช่น implement อินเทอร์เฟซที่กำหนด) แล้ว server สามารถประมวลโปรแกรมดังกล่าวได้

ผมเจอใน wikipedia ก็มีอธิบายไว้นิดหน่อยในหัวข้อ Engine (computer science) และยังมีคำว่า engine อื่นๆอีกจำนวนหนึ่ง จาก Engine (disambiguation) เช่น Game Engine อย่างที่คุณ Thaina อธิบายไว้แล้ว เป็นต้น

My Blog / hi5 / Facebook / Follow me


My Blog

By: Nongnu on 25 August 2009 - 17:50 #120926

ไปอ่าน Code ของคนอื่นที่ ทำ app เขียนโดย java มาอ่ะค่ะ
แล้วก็เป็น client/server อย่างที่คุณ javaboom บอกไว้เลยอ่ะค่ะ

เห็น ชอบเรียกกัน engine จะได้รู้สักทีว่าคืออะไร

By: nuttin0011 on 25 August 2009 - 22:34 #120969

แปลตรงๆ ว่า เครื่องยนต์ ครับ :P

โปรแกรมที่มีเครื่องยนต์เดียวกัน ก็จะวิ่งเร็วพอๆกัน ใช้พลังงานเหมือนๆกัน ต่างกันแค่รูปร่างภายนอก กะ คอนโซล เฉยๆ

เช่น เกม Kingdom underfire ใช้ Engine ของเกม Starcraft จะเห็นว่าตัวเกมคล้ายกันมาก

เช่น มวยสิงอี้ ซึ่งมีท่าร่างมากมาย พอพัฒนาเอาแต่ Engine ออกมาไม่เอาท่าร่าง เลยกลายเป็นมวย อี้เฉวียน

ปล อธิบายมั่วๆ ไถๆ ไป 5555 อย่าคิดมากนะเอาฮา

By: heart
ContributoriPhone
on 31 August 2009 - 12:20 #121965
heart's picture

Engine คือเครื่องยนต์

เครื่องยนต์ ก็จะประกอบไปด้วยส่วนเล็กๆน้อยๆ เช่นฟันเฟืองต่างๆ ระบบเล็กๆน้อยๆ หลายๆระบบรวมกัน โดยจะผลิตในบริษัทเดียว หรือนำเข้าชิ้นส่วนจากต่างประเทศก็ได้

เครื่องยนต์ก็จะมีความสามารถ และมีวิธีการทำงานของมัน

Engine ในทางการเขียนโปรแกรม ก็เช่นกัน มันคือโค้ด ที่เปรียบได้กับเครื่องยนต์ มีส่วนเล็กๆน้อยๆ ที่ทำงานร่วมกีัน ประสานงานกันอย่างมีประสิทธิภาพ โดยชิ้นส่วนนั้น จะเขียนขึ้นมาเองทั้งหมด หรือนำของคนอื่นมาใช้ก็ได้เหมือนเครื่องยนต์เลย (นำมาใช้ภายใต้การอนุญาต ของผู้เป็นเจ้าของ โค้ดนั้นๆ)

ยกตัวอย่างเช่น Engine ของเกม ก็จะประกอบไปด้วย การแสดงผล การเดิน การยิง ซึ่งถูกเขียนไว้ให้ทำงานได้อย่างดี และมีประสิทธิภาพแล้ว ง่ายต่อการนำไปใช้งาน

Engine เอง จะยังไม่สามารถใช้งานได้ เหมือนเครื่องยนต์ ที่ตั้งเอาไว้ก็เป็นเศษเหล็ก

เราต้องนำมันมาใช้งาน สาเหตุที่ต้องทำ Engine หรือเครื่องยนต์แยกไว้ เพราะว่า เราจะสามารถนำมันมาใช้งานได้หลากหลาย

ยกตัวอย่างเช่น Engine ของคูโบต้า สามารถนำมันมาเป็นรถอีแต๋นก็ได้ นำมาประกอบส่วนอื่นๆและใช้ไถนาก็ได้

หรือนำสายยางมาต่อ ทำเป็นเครื่องสูบน้ำเข้านา ก็ยังได้

Framework แปลตรงตัวคือ กรอบการทำงาน

Framework คือการที่เราตั้งกฏ ขึ้นมา ให้ทำงานได้เร็วขึ้น โดยไม่ต้องทำความเข้าใจเหตุผล (แต่ถ้าอยากเก่ง ก็ต้องทำความเข้าใจ)

เช่น การประกอบรถยนต์ เรารู้แค่ว่า เอาล้อ มาต่อตรงนี้ ตัวถังต่อตรงนี้ เครื่องยนต์ ต่อในห้องเครื่อง (เครื่องยนต์ก็คือ Engine ที่อธิบายไป)

เมื่อต่อครบ จะได้รถวิ่งได้ จะเห็นได้ว่า เราทำความเข้าใจกับเหตุผลน้อยมาก แค่ทำตามกฏ ก็จะได้รถออกมา

เปรียบเทียบกับ Framework ในทางการเขียนโปรแกรม ยกตัวอย่าง CakePHP เป็น Framework ในการเขียนเว็ปไซท์

เราแค่ ตั้งค่า ดาต้า้เบส นำส่วนต่างๆไปวางไว้ที่โฟลเดอร์ที่กำหนดไว้ ตั้งชื่อไฟล์ตามกฏ
โดยเราแทบจะไม่ต้องรู้เลยว่า แล้วทำไมต้องบังคับกรูตั้งชื่อไฟล์ด้วยวะ

แต่สุดท้าย เมื่อทำตามกฏที่ว่า จะได้เว็ปไซท์ออกมา ในเวลาที่รวดเร็ว

By: Thaina
Windows
on 3 September 2009 - 20:50 #122633 Reply to:121965

+1

ขอบคุณมากครับ กระจ่างใจมากๆ

อ่า ผมขออนุญาตนำข้อความนี้ไปลงในที่อื่นด้วยนะครับ เป็นประโยชน์มากเลย

หากว่าไม่ได้ ช่วยบอกด้วยนะครับ

By: heart
ContributoriPhone
on 27 September 2009 - 16:50 #127462 Reply to:122633
heart's picture

ได้ครับ ยินดี

By: oakyman
ContributorAndroid
on 28 September 2009 - 16:36 #127716 Reply to:121965

+1 เห็นภาพ

Oakyman.com

By: Nongnu on 3 September 2009 - 11:20 #122566

ขอขอบคุณ พี่ๆทุกท่านที่มาให้ความกระจ่างนะคะ