สถานะของเกมการติดตามไม่แตกต่างจากสถานะการติดตามในโปรแกรม Prolog อื่น ๆ คุณกำหนดข้อเท็จจริงแล้วใช้เพื่อตัดสินใจ มันค่อนข้างเก่า แต่บทความExploring Prolog: การผจญภัย, วัตถุ, สัตว์, และภาษีทำงานได้ดีในการอธิบายว่ามันทำงานได้อย่างไรในเกม สรุปจากบทความ:
% Set up - you start in a house
location(you, house).
% Move to a new location.
goto(X) :-
location(you, L), % Read your current location into L
connect(L, X), % Check if you can reach the new location X from L
retract( location(you, L) ), % Remove the old location fact
assert( location(you, X) ). % Add a new location fact. You are in X now.
write($ You are in the $), write(X), nl.
นอกเหนือจากนั้นคุณต้องมีกราฟิกและ IO ไลบรารี อาจมีการแจกแจง Prolog เชิงพาณิชย์ที่รวมไว้ ฉันคุ้นเคยกับSWI Prologมากที่สุดดังนั้นฉันจะแนะนำplOpenGLเป็นจุดเริ่มต้น ไม่เพียงให้คุณเข้าถึงความสามารถในการเรนเดอร์ของ OpenGL แต่ยังรวมถึงการเชื่อมโยงสำหรับเหตุการณ์เมาส์และคีย์บอร์ด ตัวอย่างเช่นหากต้องการจัดการการกดปุ่ม Escape คุณจะต้องกำหนดกฎของแป้นพิมพ์ดังนี้:
% 27 is ASCII Code for Escape
keyboard(27,_,_) :-
write('Escape key was pressed...'),nl.
ดูตัวอย่างแสงที่เคลื่อนที่ได้ของ plOpenGL เพื่อดูรายละเอียดเพิ่มเติมเล็กน้อยและตัวอย่างการจัดการการเคลื่อนไหวของเมาส์
หากคุณใช้ไลบรารีกราฟิกมันอาจเป็นไปได้ที่จะจัดการลูปเกมให้คุณ โดยทั่วไปคุณกลับควบคุมไลบรารีและกำหนดกฎที่จะดำเนินการเมื่อเหมาะสม: ตั้งค่า, ทาสี, เหตุการณ์ IO ฯลฯ หากคุณต้องการ จำกัด FPS หรือเรียกใช้รหัสตามเงื่อนไขตามเวลาคุณสามารถติดตามเวลาที่ผ่านไปโดยใช้เวลา / วันที่ เพรดิเคตและตัดสินใจตามความเหมาะสม
มีรสชาติของ Prolog มากมายดังนั้นนี่จึงไม่ใช่วิธีเดียวในการสร้างเกม การแจกแจงที่แตกต่างกันและภาษาที่เกี่ยวข้องจะใช้ไลบรารี / การเชื่อมโยงที่อาจสนับสนุนวิธีการที่แตกต่างกัน นอกจากนี้โปรแกรมเมอร์หลายภาษาอาจสนับสนุนให้คุณใช้ภาษาโฮสต์ / มิตร "กราฟิกที่เป็นมิตร" มากขึ้นในการจัดการการเรนเดอร์และ IO ในขณะที่ใช้ Prolog เพื่อจำลองพฤติกรรมของเอนทิตีเกมและการตัดสินใจ