ट्रैकिंग गेम राज्य किसी अन्य प्रोलॉग कार्यक्रम में ट्रैकिंग राज्य से अलग नहीं है। आप तथ्यों को परिभाषित करते हैं और फिर निर्णय लेने के लिए उनका उपयोग करते हैं। यह बहुत पुराना है, लेकिन यह लेख एक्सप्लोरिंग प्रोलॉग: एडवेंचर्स, ऑब्जेक्ट्स, एनिमल्स, और टैक्स यह समझाने का एक अच्छा काम करता है कि यह एक गेम में कैसे काम कर सकता है। लेख से संक्षेप:
% 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.
इसके अलावा, आपको एक ग्राफिक्स और आईओ लाइब्रेरी की आवश्यकता है। वाणिज्यिक प्रोलॉग वितरण हो सकते हैं जिनमें उन्हें शामिल किया गया है। मैं SWI प्रोलॉग से सबसे अधिक परिचित हूं , इसलिए मैं शुरुआती बिंदु के रूप में plOpenGL का सुझाव दूंगा । न केवल यह आपको ओपनग्ल की रेंडरिंग क्षमताओं तक पहुंच प्रदान करता है, इसमें माउस और कीबोर्ड ईवेंट के लिए बाइंडिंग भी शामिल है। उदाहरण के लिए, एस्केप कुंजी के एक प्रेस को संभालने के लिए, आप एक कीबोर्ड नियम को परिभाषित करते हैं:
% 27 is ASCII Code for Escape
keyboard(27,_,_) :-
write('Escape key was pressed...'),nl.
कुछ और विवरणों और माउस के मूवमेंट से निपटने के उदाहरण के लिए plOpenGL के बढ़ते प्रकाश उदाहरण पर एक नज़र डालें ।
यदि आप एक ग्राफिक्स लाइब्रेरी का उपयोग करते हैं, तो यह संभवतः आपके लिए गेम लूप को संभाल लेगा। मूल रूप से, आप लाइब्रेरी पर नियंत्रण को उल्टा कर देते हैं और उचित होने पर निष्पादित होने के लिए नियम प्रदान करते हैं: सेट अप करना, पुनरावृत्ति करना, आईओ इवेंट आदि। यदि आप एफपीएस को सीमित करना चाहते हैं या कोड को सशर्त रूप से समय के आधार पर चलाना चाहते हैं, तो आप समय / तारीख का उपयोग करके समय को ट्रैक कर सकते हैं। भविष्यवाणी करता है और तदनुसार निर्णय लेता है।
कई प्रोलॉग फ्लेवर हैं, इसलिए यह निश्चित रूप से गेम बनाने का एकमात्र तरीका नहीं है। विभिन्न वितरण और संबंधित भाषाएं विभिन्न पुस्तकालयों / बाइंडिंग का उपयोग करेंगी जो विभिन्न दृष्टिकोणों को प्रोत्साहित कर सकती हैं। इसके अलावा, पॉलीग्लॉट प्रोग्रामर आपको मॉडल गेम इकाई व्यवहार और निर्णय लेने के लिए प्रोलॉग का उपयोग करते हुए रेंडरिंग और आईओ को प्रबंधित करने के लिए अधिक "ग्राफिक्स के अनुकूल" मेजबान भाषा / रनटाइम का उपयोग करने के लिए प्रोत्साहित कर सकते हैं।