Id Tech 3

id Tech 3 הוא מנוע משחק שפותח על ידי id Software עבור המשחק Quake 3: Arena ומאוחר יותר עבור משחקים רבים, בדרך כלל תחת השמות Quake 3: Arena engine או Quake 3: Team Arena engine. כשם שהמשחק פותח כדי להתחרות בUnreal Tournament, כך גם המנוע פותח כדי להתחרות במנוע של UT הלוא הוא Unreal engine.

כמו קודמו, גם id Tech 3 הוא וריאציה של המנוע המפורסם Quake engine, אם כי בניגוד לקודמו id Tech 2, רוב הקוד במנוע שוכתב מחדש. id Tech 4, המנוע שפותח עבור דום 3, התבסס על מנוע זה.

קוד המקור פורסם ב-2005 על ידי ג'ון קארמק לציבור הרחב תחת הרישיון הציבורי הכללי של גנו וניתן להורדה מהאתר של id.

==תכונות==
===גרפיקה===
בניגוד למנועים הקודמים, הוחלט בפיתוח מנוע זה לנטוש את האצת התוכנה (המבוצעת על ידי המעבד המרכזי) ולכן כדי להריץ משחקים המופעלים במנוע זה נדרש מאיץ חומרה (כרטיס מסך) תואם OpenGL. המנוע הציג תמיכה במשטחים מעוגלים על בסיס משטחים מישוריים, אשר אחראים לחלק ניכר מהממשטחים הנוכחיים בתוך המשחק.

המנוע הציג טכנולוגיית מצללים (Shaders) חדשנית, כאשר הרעיון העומד בבסיס הטכנולוגיה הזו היא ליצור שכבה של טקסטורות דינאמיות בה חישובי האור והצל במשטח מסוים ישתנו על פי תזוזת השחקן ואיך שהשחקן מסתכל על המשטח שלפניו. לצורך יישום טכנולוגיה זו נעשה שימוש בסקריפטים מיוחדים (shader scripts) שבהם נעשה שימוש בשורש הריבועי הפוך מהיר לחישוב המצללים.

הווידאו במשחק משתמש בפורמט קנייני בשם RoQ שפותח במקור על ידי המעצב של Quake 3 בעבור המשחק The 11th Hour. גם קוד המקור של פורמט זה השתחרר לציבור כקוד פתוח, אולם הוא לא נראה הרבה במשחקים אחרים פרט לאלה מבוססי id Tech 3 ו-4.

מודלי תלת המימד במשחק נשמרים בפורמט MD3 שלצורך בנייתם נעשה שימוש באנימציה "קודקודית" (Vertex animation) בניגוד לפורמט MD2 ממנועים קודמים שהשתמש באנימציית "שלד". באמצעות שימוש בפורמט שכזה ניתן היה ליצור אנימציות תלת־ממדיות מורכבות יותר שלא מוגבלות במספר ה־keyframes לשנייה, ואפשור חלוקת המודל לחלקים כדי ליצור עבור כל חלק אנימציה נפרדת וכך להפוך את האנימציות ליותר ריאליסטיות. המודלים התלת־ממדיים מוארים ומוצללים באמצעות הצללת גוראוד (Gouraud shading - שיטת הצללה שפותחה בשנות ה-1970 על ידי הנרי גוראוד המבוססת על אינטרפולציה של קווי המצולע מקודקודיו), בעוד שהמפות (שנשמרות, כמו המנועים הקודמים, בפורמט BSP) מוארות על ידי מפת-תאורה (lightmap). הייתה אמורה להיות גם תמיכה בפורמט MD4 אך נראה שהיא מעולם לא הושלמה אם כי Ritual Entertainment פיתחו תמיכה שכזאת במשחק Heavy Metal: F.A.K.K². (מאוחר יותר הם שחררו שדרוג למנוע המשחק בשם Ritual's ÜberTools)

טכנולוגיות נוספות שהוצגו במנוע הם שימוש בצללים דינאמיים בעבור המודלים, נתינת נפח לאובייקטים כגון עננים או ערפל, פורטלים, מראות, סימני פגיעות קליעים, ואנימציה ריאליסטית יותר של מקווי מים.

===סאונד===
במנוע נעשה שימוש ב־2 ערוצי סאונד עם סטריאו מרחבי ואפקט דופלר שהמיקס שלו נעשה כחלק מהמנוע, מה שהקשה על מפתחים חיצוניים להכניס לשם אפקטים כגון סאונד חיצוני, והיווה גם פגימה בביצועי המשחק במיוחד בתפריטים שם הסאונד שנשמע הופק מהמנוע עצמו כמו הגרפיקה ולא ממיקסר נפרד.

===רשת===
המנוע הציג טכנולוגיית "snapshot" כדי לשלוח מידע לשרתי המשחק בזמן אמת על פרוטוקול UDP. כמו כן המנוע הציג למנהלי השרתים שיטה למניעת שימוש בציטים ועזרי משחק לא חוקיים בשם "Pure server" בו כל מי שנכנס לשרת הזה נסרק קודם כל על ידי המערכת לראות אם יש לו עריכות לא חוקיות של הקליינט. בעדכון האחרון ביותר של המשחק Quake 3(1.32) הוצגה גם מערכת Anti cheat מובנית בשם PunkBuster (שמשתמשים בה הרבה משחקים אחרים ונחשבת למתחרה הגדולה ביותר של Valve Anti-Cheat) שפועלת הן ברמת הקליינט והן ברמת השרת. כיוון שזו מערכת קניינית היא לא נכללה בשחרור הקוד הפתוח.

==משחקים המשתמשים במנוע==
===משחקים שמשתמשים בהפצת ioquake3 מבוססת קוד פתוח===
*Space Trader
*Smokin' Guns
*Urban Terror שהיה קיים כמוד ושוחרר מאוחר יותר כמשחק עצמאי
*Tremulous

===משחקים שמשתמשים בהפצה המסחרית של המנוע===
* Quake 3: Arena(1999)
**ההרחבה Quake 3: Team Arena(2000)
*Star Trek: Voyager – Elite Force(2000)
*Return to Castle Wolfenstein(2001)
*007: Agent Under Fire(2001)
*007: Everything or Nothing(2004)
*Soldier of Fortune II: Double Helix(2002)
*Star Wars Jedi Knight II: Jedi Outcast(2002)
*Star Wars Jedi Knight: Jedi Academy(2002)
*Call of Duty(2003) וההרחבה United Offensive(2004)
*Call of Duty Classic(2009)
*Severity(2007)
*Iron Grip: Warlord(2008) 
*Dark Salvation(2009)
*Quake Live(2010)

===ממשחקים שמשתמשים בהפצה המסחרית של המנוע עם ÜberTools===
*Heavy Metal: F.A.K.K.²(2000)
*American McGee's Alice(2000)
*Medal of Honor: Allied Assault(2002) וההרחבות שלו Spearhead ו-Breakthrough
*Star Trek: Elite Force II(2003)

==ראו גם==
*Quake Engine
*id Tech 2
*Unreal Engine

==קישורים חיצוניים==
* 
* [ftp://ftp.idsoftware.com/idstuff/source/quake3-1.32b-source.zip קוד המקור של המשחק להורדה מאתר id]
* [https://github.com/id-Software/Quake-III-Arena קוד המקור של המשחק להורדה מאתר github]
* [http://fabiensanglard.net/quake3/index.php סקירת קוד המקור של המנוע]
* [http://ioquake3.org/ פרויקט ioquake3]

==הערות שוליים==

קטגוריה:מנועי משחק
קטגוריה:תוכנה חופשית