[{"data":1,"prerenderedAt":656},["Reactive",2],{"course":3},{"data":4},{"course_type":5,"learning_outcomes":6,"course_code":7,"og_description":8,"course_description":9,"og_title":10,"reviews":11,"experience_level":12,"course_certificate":13,"workshop_end_date":14,"course_requirements":15,"image":16,"workshop_time":17,"suitable_age":18,"faqs":19,"course_duration":53,"rating":11,"terms_and_condition":54,"total_quiz":55,"og_image":56,"thubmnail":57,"why_register_for_course":64,"audience":65,"total_assessment":55,"total_test_paper":55,"course_name":10,"skills":66,"total_projects":55,"total_amount":111,"sub_categories":112,"course_image":16,"product_code":7,"lms_class_id":128,"total_price":129,"sale_price":129,"dollar_sale_price":130,"is_live":131,"classDetails":132,"classscheduleDetail":647,"already_assign":655},"teacher_training_workshop",[],"global-educator-bootcamp---game-dev--coding-aug-2026","This is a masterclass in game design for educators. With Avishkaar Game Builder learn how to teach AI & Coding through interactive game design and make your classroom more engaging than ever.","The Global Educator Bootcamp is back - a free, live online workshop for teachers to master game design on Avishkaar's own Maker Studio. Join us on 22nd and 23rd August, 4 PM IST to 6 PM IST, and learn to use Avishkaar Game Builder to create interactive games from scratch. Once trained, educators can guide their students into building teams for the prestigious Avishkaar League - turning classroom learning into competition-ready skills. There are ONLY \u003Cstrike>200\u003C/strike> 50 free seats LEFT, so register today before they're gone! Use coupon code EDUCATOR100 to reserve your free seat..","Global Educator Bootcamp - Game Dev & Coding (Aug 2026)","","Beginner","yes","2026-08-23T07:30:47.543Z",[],"https://images.avishkaar.cc/workshops/global_educator_bootcamp_game_league.png","Aug 22 - 23, 2026","For Teachers / Trainers / Educators Only",[20,23,26,29,32,35,38,41,44,47,50],{"question":21,"answer":22},"What is the duration of the Bootcamp?","The bootcamp spans two days, offering an immersive learning experience.",{"question":24,"answer":25},"Who is eligible to participate in the Bootcamp?","Educators worldwide are eligible to join and enhance their skills in Coding, Artificial Intelligence, and Game Design",{"question":27,"answer":28},"Do I need prior experience in AI, or coding?","No prior experience is required. The bootcamp caters to all skill levels.",{"question":30,"answer":31},"What certifications will I receive upon completion?","You will receive Avishkaar certifications in Game Design, Artificial Intelligence, and Coding, validating your expertise. The certificates will also bear the STEM.org certification",{"question":33,"answer":34},"How interactive are the sessions? ","The sessions are highly interactive, fostering collaborative learning and engagement.",{"question":36,"answer":37},"Does the bootcamp allow virtual or in-person attendance? ","The Bootcamp is designed for virtual attendance, allowing flexibility for participants worldwide. Although the sessions will be recorded, it is advised to attend the sessions live, to make the maximum benefit.",{"question":39,"answer":40},"What software/tools will be used during the Bootcamp? ","The Bootcamp utilizes cutting-edge tools like Avishkaar Maker Studio (AI & Game Builder), ensuring a comprehensive learning experience. ",{"question":42,"answer":43},"How will the Bootcamp benefit my teaching career? ","The Bootcamp enhances your skills, making you a certified AI, and Coding trainer, ultimately boosting your teaching career.",{"question":45,"answer":46},"Can I access the recorded sessions later if I miss a live session? ","Yes, recorded sessions will be available for participants who miss live sessions, ensuring flexibility. Although, it is highly recommended that you attend the sessions for maximum benefit.",{"question":48,"answer":49},"What is the cost of the Bootcamp? ","The Bootcamp is paid. However we have limited free seats, which will be provided on first-come-first-serve basis.",{"question":51,"answer":52},"How can I contact the support team for assistance? ","Reach out to our support team via email on support@avishkaar.cc or call / message on +91-8506931515.","4 Hours",[],"0","https://images.avishkaar.cc/courses/game_builder_bootcamp/lp_banner.gif",[58,60,62],{"image":59,"main_video":11,"main_image":59},"https://images.avishkaar.cc/workshops/Aug23_2026_bootcamp_thumbnail_1.png",{"image":61,"main_video":11,"main_image":61},"https://images.avishkaar.cc/workshops/Aug23_2026_bootcamp_thumbnail_2.gif",{"image":63,"main_video":11,"main_image":63},"https://images.avishkaar.cc/workshops/Aug23_2026_bootcamp_thumbnail_3.png",[],"Educators/Partners",[67,78,85,90,97,101],[68,72,75],{"name":69,"key":70,"code":71},"Artificial Intelligence","parent_skill","artificial-intelligence",{"name":73,"key":71,"code":74},"AI Domains","ai-domains",{"name":76,"key":74,"code":77},"Computer Vision","computer-vision",[79,81,84],{"name":80,"key":70,"code":80},"Coding",{"name":82,"key":80,"code":83},"Algorithms","algorithms",{"key":83,"code":11},[86,89],{"name":87,"key":70,"code":88},"Computational Thinking","computational-thinking",{"key":88,"code":11},[91,94],{"name":92,"key":70,"code":93},"Design Thinking","design-thinking",{"name":95,"key":93,"code":96},"Problem Solving","problem solving",[98],{"name":99,"key":70,"code":100},"Logical Reasoning","logical-reasoning",[102,105,108],{"name":103,"key":70,"code":104},"App Development","app-development",{"name":106,"key":104,"code":107},"Product Design","product-design",{"name":109,"key":107,"code":110},"Game Design","game-design","1599",{"ai-hand-gestures-game-mode":113,"ai-body-pose-game-mode":117,"ams-maker-board-simulator":119,"game-builder-basics":121},[114,115,116],"ai_hand-gestures-game-mode_Advanced_Hand_Gesture_Detection","ai_hand-gestures-game-mode_Catch_the_Thief","ai_hand-gestures-game-mode_Pinch_the_Ant",[118],"ai_body-pose-game-mode_Alien_Crusher",[120],"ams_maker-board-simulator_Getting_Started_with_the_Bootcamp",[122,123,124,125,126,127],"game_builder-basics_Basics_of_Game_Design_","game_builder-basics_Bee_Free","game_builder-basics_Egg_Collector","game_builder-basics_How_to_use_AI_hand_Gesture_and_Body_pose","game_builder-basics_Interface_of_Avishkaar_Game_Builder","game_builder-basics_Introduction_to_Game_Builder","Avishkaar_Bootcamp-1785315517908205",1599,0,1,[133,387],{"class_code":128,"class_details":134,"session_description":140,"session_image":384,"session_name":140,"session_small_image":385,"session_type":386},[135,161,248,284,329,375],{"chapter_type":136,"submission_details":137,"mandatory":13,"chapter_details":138,"content_code":138,"session_chapter_details":139},"theory",{"program_key":11,"description":11,"type":11,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"ams-maker-board-simulator.ams_maker-board-simulator_Getting_Started_with_the_Bootcamp",{"chapter_name":140,"checkpoint":141,"subcategory_uri":145,"chapter_type":136,"Introduction":146,"generic_checkpoints":160,"chapter_code":120},"Getting Started with the Bootcamp",[142],{"title":143,"type":144},"Introduction","grid_card_1","ams-maker-board-simulator",[147,151,154,157],{"section_text":148,"type":149,"section_name":150},"Welcome to the Bootcamp!\nWe’re excited to have you onboard. This chapter will help you access live sessions, understand the schedule, and prepare for a successful learning experience.","single","Introduction ",{"section_name":152,"type":149,"section_text":153},"Live Session Details","\u003Cp>\u003Cstrong>Platform:\u003C/strong> Zoom\u003C/p> \u003Cp> \u003Cstrong>Zoom Meeting Link:\u003C/strong>\u003Cbr> \u003Ca href=\"https://us06web.zoom.us/meeting/register/0ZtYz_rtTyKvlj_XKxH-iw\n\"> Click Here to Join the Bootcamp \u003C/a> \u003C/p> ",{"section_text":155,"section_name":156,"type":149},"\u003Cul> \u003Cli>Join the session 5 minutes before the scheduled time.\u003C/li> \u003Cli>Use your full name while joining the meeting.\u003C/li> \u003Cli>Keep your microphone muted unless asked to speak.\u003C/li> \u003Cli>Ensure your internet connection is stable.\u003C/li> \u003Cli>Use headphones for better audio quality.\u003C/li> \u003C/ul>","Joining Instructions",{"section_name":158,"type":149,"section_text":159},"Sessions Recordings","\u003Cp> \u003Cstrong>Session Recording for Day 1 Link:\u003C/strong>\u003Cbr> \u003Ca href=\"https://www.youtube.com/watch?v=o4PQ5ruhs0w&feature=youtu.be\n\"> Click Here to watch day 1 \u003C/a> \u003C/p> \n\u003Cp> \u003Cstrong>Session Recording for Day 2 Link:\u003C/strong>\u003Cbr> \u003Ca href=\"https://www.youtube.com/watch?v=Ohl7jTsmyH0&feature=youtu.be\n\"> Click Here to watch day 2 \u003C/a> \u003C/p> ",[],{"chapter_type":136,"submission_details":162,"mandatory":13,"chapter_details":163,"content_code":163,"session_chapter_details":164},{"program_key":11,"description":11,"type":11,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"game-builder-basics.game_builder-basics_Interface_of_Avishkaar_Game_Builder",{"chapter_name":165,"checkpoint":166,"subcategory_uri":184,"chapter_type":136,"Introduction ":185,"generic_checkpoints":191,"The Game World":192,"Uploading a Custom Background":196,"Sprite Creation":210,"Uploading a Custom Sprite":217,"Modifying Sprite Properties":224,"Adding Sounds":235,"Additional Features":244,"chapter_code":126},"Interface of Avishkaar Game Builder",[167,168,170,173,175,177,179,182],{"title":150,"type":144},{"title":169,"type":144},"The Game World",{"title":171,"type":172},"Uploading a Custom Background","tutorial_steps",{"title":174,"type":144},"Sprite Creation",{"title":176,"type":172},"Uploading a Custom Sprite",{"title":178,"type":172},"Modifying Sprite Properties",{"title":180,"type":181},"Adding Sounds","grid_card_6",{"title":183,"type":144},"Additional Features","game-builder-basics",[186],{"section_text":187,"type":188,"section_images":189,"section_name":190},"\u003Cul>\n  \u003Cli>It uses a coordinate system starting at the top left of the screen.\u003C/li>\n  \u003Cli>The game world is 800 pixels wide and 450 pixels high.\u003C/li>\n  \u003Cli>Understanding coordinates helps precisely position Sprites and elements.\u003C/li>\n\u003C/ul>\n\n","single_image","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_1.webp","Understanding Screen Coordinates",[],[193],{"section_text":194,"type":188,"section_images":195,"section_name":169},"\u003Cul>\n  \u003Cli>The game area is known as the world in AMS Game.\u003C/li>\n  \u003Cli>Background images can be added to give the game a unique look.\u003C/li>\n  \u003Cli>Opacity of the background can be controlled using a specific value.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_2.webp",{"concept_video":11,"data":197},[198,202,206],{"section_text":199,"type":188,"section_images":200,"section_name":201},"Click on the Bg Images in the Game Assets section\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_3.webp","Step 1",{"section_text":203,"type":188,"section_images":204,"section_name":205},"Click on Upload, choose an image, and confirm.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_4.webp","Step 2",{"section_text":207,"type":188,"section_images":208,"section_name":209},"Adjust opacity if needed for a better visual effect.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_5.webp","Step 3",[211],{"section_text":212,"type":213,"section_images":214,"section_name":174},"\u003Cul>\n\u003Cdl>\n  \u003Cli> \u003Cdt>Steps to create a Sprite:\u003C/dt>\u003C/li>\n  \u003Cdd>- Click on the Sprite section.\u003C/dd>\u003C/li>\n  \u003Cdd>- Select Create Sprite and give it a name.\u003C/dd>\u003C/li>\n  \u003Cdd>- Drag and drop the Create Sprite with Image block inside the setup block.\u003C/dd>\u003C/li>\n  \u003Cdd>- The Sprite will be placed at the center by default.\u003C/dd>\u003C/li>\n\u003C/dl>\n  \u003Cli>Every element in the game needs to be created in the setup block.\u003C/li>\n\u003C/ul>\n\n","multiple_image",[215,216],"https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_6.webp","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_7.webp",{"concept_video":11,"data":218},[219,222],{"section_text":220,"type":188,"section_images":221,"section_name":201},"Click on the sprites in Game Assets section\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_8.webp",{"section_text":203,"type":188,"section_images":223,"section_name":205}," https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_9.webp",{"concept_video":11,"data":225},[226,229,232],{"section_text":227,"type":188,"section_images":228,"section_name":201},"Resize Sprites using the Set Sprite to block.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_10.webp",{"section_text":230,"type":188,"section_images":231,"section_name":205},"Position Sprites using the Set Sprite Position block.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_11.webp",{"section_text":233,"type":188,"section_images":234,"section_name":209},"Use the crosshair marker to determine X, Y coordinates.","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_12.webp",[236,240],{"section_text":237,"type":188,"section_images":238,"section_name":239},"\u003Cdl>\n\u003Cul>\n  \u003Cli>\n  \u003Cdt>Two types of sounds:\u003C/dt>\u003C/li>\n  \u003Cdd>- Background Music – Plays continuously.\u003C/dd>\n  \u003Cdd>- Tones – Short sounds used for events.\u003C/dd>\n\u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_13.webp","Sounds add life to the game!",{"section_text":241,"type":188,"section_images":242,"section_name":243},"Use the Play Background Music block inside the setup to add music.\nCustom sounds can also be uploaded like Sprites.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_14.webp","Add Music",[245],{"section_text":246,"type":188,"section_images":247,"section_name":183},"AMS game provides various types of blocks similar to other AMS modes:\n\u003Cul>\n  \u003Cli>Math Section (for calculations)\u003C/li>\n  \u003Cli>Control Section (for loops and conditions)\u003C/li>\n  \u003Cli>Variables & Functions (for storing and reusing values)\u003C/li>\n  \u003Cli>Console (for debugging and displaying messages)\u003C/li>\n\u003C/ul>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/interface_of_avishkaar_game_builder/interface_15.webp",{"chapter_type":136,"submission_details":249,"mandatory":13,"chapter_details":250,"content_code":250,"session_chapter_details":251},{"program_key":11,"description":11,"type":11,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"game-builder-basics.game_builder-basics_How_to_use_AI_hand_Gesture_and_Body_pose",{"chapter_name":252,"checkpoint":253,"subcategory_uri":184,"chapter_type":136,"Introduction ":255,"generic_checkpoints":282,"Introduction to Hand Gesture Recognition":283,"chapter_code":125},"How to use AI hand Gesture and Body pose",[254],{"title":150,"type":144},[256,262,266,272,276],{"section_text":257,"type":213,"section_images":258,"section_name":261},"\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n\u003Cstyle>\np.small {\n  line-height: 0.7;\n}\n\np.big {\n  line-height: 1.8;\n}\n\u003C/style>\n\u003C/head>\n\u003Cbody>\n\u003Cp>Hand Gesture Recognition is a technology that detects and interprets hand movements to interact with digital environments. This feature enables users to control game elements using their hand motions.\u003C/p>\n\u003Cp class=\"big\">\n\u003Cdl>\n  \u003Cdt>\u003Ch3>Detecting Hand Gestures to Control Game Elements:\u003C/h3> \u003C/dt>\u003C/p>\n\u003Cp class=\"big\">\n\n\u003Cdd>- The system recognizes specific hand positions or movements.\u003C/dd>\n\u003Cdd>- These movements can be mapped to actions in a game, such as moving a character or triggering an event.\u003C/dd>\n\u003C/dl>\u003C/p>",[259,260],"https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_2.webp","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_3.webp","Introduction to Hand Gesture Recognition",{"section_text":263,"type":188,"section_images":264,"section_name":265},"\u003Cdl>\n\u003Cul>\n  \u003Cli>\n  \u003Cdt>To create an interactive game, two essential blocks are used:\u003C/dt>\u003C/li>\n  \u003Cdd>- Game Setup – Initializes the game world.\u003C/dd>\n  \u003Cdd>- Game Loop – Keeps the game running continuously.\u003C/dd>\n\n  \u003Cli>\u003Cdt>A custom Sprite is created (e.g., a Ghost) to represent the controlled object.\nThe image of the Sprite is uploaded and resized to fit the game environment.\u003C/dt>\u003C/li>\n\u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/use_ai_hand_gesture_and_body_pose/ai_1.webp","Setting Up the Game Environment",{"section_text":267,"type":213,"section_images":268,"section_name":271},"\u003Cul>\n  \u003Cli>The Hand Detected and Get Position block is used to recognize hand movements.\u003C/li>\n  \u003Cli>A specific reference point, like the wrist, is selected to track motion.\u003C/li>\n  \u003Cli>The wrist’s position is mapped to the Sprite’s movement, allowing hand gestures to control the game character.\u003C/li>\n\u003C/ul>",[269,270],"https://images.avishkaar.cc/curriculum/coding/game_builder/use_ai_hand_gesture_and_body_pose/ai_2.webp","https://images.avishkaar.cc/curriculum/coding/game_builder/use_ai_hand_gesture_and_body_pose/ai_3.webp","Implementing Hand Gesture Recognition",{"section_text":273,"type":188,"section_images":274,"section_name":275},"\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n\u003Cstyle>\np.small {\n  line-height: 0.7;\n}\n\np.big {\n  line-height: 1.8;\n}\n\u003C/style>\n\u003C/head>\n\u003Cbody>\n\u003Cp>Body pose recognition is a computer vision technique that detects and tracks the positions of key body points (such as the head, shoulders, elbows, knees, etc.) to understand human posture and movement. It allows interaction with digital environments using body movements instead of traditional input devices.\u003C/p>\n\n\u003Cp class=\"big\">How Does Body Pose Recognition Work?\u003C/p>\n\u003Cp class=\"big\">\n\u003Cdl>\n  \u003Cdt>\u003Ch3>Detecting Key Points\u003C/h3> \u003C/dt>\n   \u003Cdd>-AI models analyze images or video frames to identify body landmarks.\u003C/dd>\n   \u003Cdd>-These points are mapped to a virtual skeleton that represents the body’s posture.\u003C/dd>\n   \u003Cdt>\u003Ch3>Tracking Motion in Real-Time\u003C/h3>\u003C/dt>\n   \u003Cdd>-The system continuously updates the positions of key points as the person moves.\u003C/dd>\n   \u003Cdd>-This enables gesture-based control of characters or objects in a game.\u003C/dd>\n\u003C/dl>\u003C/p>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/bee_free/pose.webp","Introduction to Body Pose Detection",{"section_text":277,"type":213,"section_images":278,"section_name":281},"\u003Cul>\n  \u003Cli>The Body Pose Detected and Get Position block is used to recognize body movements.\u003C/li>\n  \u003Cli>A specific reference point, like the Nose, is selected to track motion.\u003C/li>\n  \u003Cli>The Nose’s position is mapped to the Sprite’s movement, allowing Body Pose to control the game character.\u003C/li>\n\u003C/ul>",[279,280],"https://images.avishkaar.cc/curriculum/coding/game_builder/use_ai_hand_gesture_and_body_pose/ai_5.webp","https://images.avishkaar.cc/curriculum/coding/game_builder/use_ai_hand_gesture_and_body_pose/ai_4.webp","Moving Sprite with Body Pose Detection",[],[],{"chapter_type":285,"submission_details":286,"mandatory":13,"chapter_details":287,"content_code":287,"session_chapter_details":288},"practical",{"program_key":11,"description":11,"type":11,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"ai-hand-gestures-game-mode.ai_hand-gestures-game-mode_Pinch_the_Ant",{"chapter_name":289,"checkpoint":290,"subcategory_uri":294,"chapter_type":285,"Introduction ":295,"generic_checkpoints":302,"Let's Code":303,"chapter_code":116},"Pinch the Ant",[291,292],{"title":150,"type":144},{"title":293,"type":172},"Let's Code","ai-hand-gestures-game-mode",[296,300],{"section_text":297,"type":188,"section_images":298,"section_name":299},"\u003Cul>\n  \u003Cli>Create an interactive game where an ant moves across the screen.\u003C/li>\n  \u003Cli>Stop the ant using a pinch gesture.\u003C/li>\n  \u003Cli>Utilize hand tracking markers to detect finger positions\u003C/li>\n\u003C/ul>\n\n","https://images.avishkaar.cc/curriculum/coding/game_builder/pinch_the_ant/ant_1.webp","Objective",{"section_text":257,"type":213,"section_images":301,"section_name":261},[259,260],[],{"concept_video":11,"data":304},[305,309,313,317,321,325],{"section_text":306,"type":188,"section_images":307,"section_name":308},"\u003Cdl>\n\u003Cul>\n  \u003Cli>\n  \u003Cdt>Two key parts of our game:\u003C/dt>\u003C/li>\n  \u003Cdd>- Game Setup\u003C/dd>\n  \u003Cdd>- Game Loop\u003C/dd>\n  \u003Cli>\u003Cdt>Required game elements:\u003C/dt>\u003C/li>\n  \u003Cdd>- Ant Sprite\u003C/dd>\n  \u003Cdd>- Blood Sprite\u003C/dd>\n\u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/bee_free/bee_free_2.webp","Game Setup: Understanding the Components",{"section_text":310,"type":188,"section_images":311,"section_name":312},"\u003Cdl>\n\u003Cul>\n  \u003Cli>Create a new Sprite and name it Ant.\u003C/li>\n  \u003Cli>Upload the Ant image.\u003C/li>\n  \u003Cli>Resize the sprite to 25% for better visibility.\u003C/li>\n\n  \u003Cli>\u003Cdt>Set the initial position to:\u003C/dt>\u003C/li>\n  \u003Cdd>- X: World Width\u003C/dd>\n  \u003Cdd>- Y: World Half Height\u003C/dd>\n\u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/pinch_the_ant/ant_2.webp","Creating the Ant Sprite",{"section_text":314,"type":188,"section_images":315,"section_name":316},"\u003Cdl>\n\u003Cul>\n  \u003Cli>Create two markers named Marker 1 and Marker 2.\u003C/li>\n  \u003Cli>Set their diameter\u003C/li>\n  \u003Cli>\u003Cdt>Set their colors:\u003C/dt>\u003C/li>\n  \u003Cdd>- Marker 1: Blue\u003C/dd>\n  \u003Cdd>- Marker 2: Red\u003C/dd>\n  \u003Cli>Place them initially at the center.\u003C/li>\n\u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/pinch_the_ant/ant_3.webp","Adding Hand Markers",{"section_text":318,"type":188,"section_images":319,"section_name":320},"\u003Cul>\n  \u003Cli>Move the Ant from right to left at a fixed speed.\u003C/li>\n  \u003Cli>When the ant reaches X = 0, reset it back to the right side.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/pinch_the_ant/ant_4.webp","Moving the Ant",{"section_text":322,"type":188,"section_images":323,"section_name":324},"\u003Cul>\n  \u003Cli>Map Marker 1 to Index Finger Tip.\u003C/li>\n  \u003Cli>Map Marker 2 to Thumb Tip.\u003C/li>\n  \u003Cli>Ensure markers move with hand tracking\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/pinch_the_ant/ant_5.webp","Mapping Markers to Fingers",{"section_text":326,"type":188,"section_images":327,"section_name":328},"\u003Cdl>\n\u003Cul>\n  \u003Cli>Check if hand is detected.\u003C/li>\n   \u003Cli>\u003Cdt>If Marker 1 and Marker 2 are touching the Ant Sprite:\u003C/dt>\u003C/li>\n  \u003Cdd>-Change the ant’s image to the Blood Clot Image.\u003C/dd>\n  \u003Cdd>- Play the Pinch Sound Effect.\u003C/dd>\n  \u003Cdd>- Reset the ant’s position.\n\u003C/dd>\n\u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/pinch_the_ant/ant_6.webp","Detecting the Pinch Gesture",{"chapter_type":285,"submission_details":330,"mandatory":13,"chapter_details":331,"content_code":331,"session_chapter_details":332},{"program_key":11,"description":11,"type":11,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"ai-body-pose-game-mode.ai_body-pose-game-mode_Alien_Crusher",{"chapter_name":333,"checkpoint":334,"subcategory_uri":337,"chapter_type":285,"Introduction ":338,"generic_checkpoints":344,"Let's Code":345,"chapter_code":118},"Alien Crusher",[335,336],{"title":150,"type":144},{"title":293,"type":172},"ai-body-pose-game-mode",[339,342],{"section_text":340,"type":188,"section_images":341,"section_name":299},"Develop an Alien Crusher game where we crush an alien using our hands or by bumping fists.Learn about game setup, game loop, and integrating PoseNet for motion detection.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_1.webp",{"section_text":273,"type":188,"section_images":274,"section_name":343},"Body Pose Recognition Concept",[],{"concept_video":11,"data":346},[347,349,353,356,360,364,368,372],{"section_text":348,"type":188,"section_images":307,"section_name":308},"\u003Cdl>\n\u003Cul>\n  \u003Cli>\n  \u003Cdt>Two key parts of our game:\u003C/dt>\u003C/li>\n  \u003Cdd>- Game Setup\u003C/dd>\n  \u003Cdd>- Game Loop\u003C/dd>\n  \u003Cli>\u003Cdt>Required game elements:\u003C/dt>\u003C/li>\n  \u003Cdd>- AlienMonster Sprite\u003C/dd>\n  \u003Cdd>- left_glove\u003C/dd>\n  \u003Cdd>- right_glove\u003C/dd>\n\u003C/ul>\n\u003C/dl>\n",{"section_text":350,"type":188,"section_images":351,"section_name":352},"\u003Cul>\n  \u003Cli>Create an AlienMonster Sprite.\u003C/li>\n  \u003Cli>Adjust its size and position.\u003C/li>\n  \u003Cli>Set the sprite to spawn at random locations.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_2.webp","Creating the Game Sprite",{"section_text":354,"type":188,"section_images":355,"section_name":352},"Create an left_glove and right_glove Sprites.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_3.webp",{"section_text":357,"type":188,"section_images":358,"section_name":359},"\u003Cul>\n  \u003Cli>Create 2 Sprites left glove and right glove \u003C/li>\n  \u003Cli>Attach gloves to left and right wrists.\u003C/li>\n  \u003Cli>Adjust Sprite size for better accuracy\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_4.webp","Using PoseNet for Motion Detection",{"section_text":361,"type":188,"section_images":362,"section_name":363},"\u003Cdl>\n  \u003Cdt>If both sprites touch the AlienMonster, execute actions:\u003C/dt>\u003C/li>\n  \u003Cdd>- Play a crushing sound.\u003C/dd>\n  \u003Cdd>- Move the alien to a new random location.\u003C/dd>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_5.webp","Checking Collision with Alien Sprite",{"section_text":365,"type":188,"section_images":366,"section_name":367},"\u003Cul>\n  \u003Cli>Identify the moment when the monster is crushed.\u003C/li>\n  \u003Cli>Use the block: Sprite -> Change Sprite Image.\u003C/li>\n  \u003Cli>Select the Alien Monster sprite.\u003C/li>\n\u003C/ul>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_6.webp","Setting Up Sprite Image Change",{"section_text":369,"type":188,"section_images":370,"section_name":371},"\u003Cul>\n  \u003Cli>Use the Control -> Run After block.\u003C/li>\n  \u003Cli>Set timing initially to 100ms.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_7.webp","Adjusting Timing for Smooth Transition",{"section_text":11,"type":188,"section_images":373,"section_name":374},"https://images.avishkaar.cc/curriculum/coding/game_builder/alien_crusher/alien_8.webp","Final Code",{"chapter_type":376,"submission_details":377,"mandatory":13,"chapter_details":11,"content_code":11},"assignment",{"program_key":11,"description":378,"ams_block":379,"type":381,"title":382,"maxMark":11,"ams_mode":383,"unity_context":11},"Create an interactive Duck jump game where the player controls a duck character using a pinch gesture. The objective is to help the duck jump and avoid bullets being fired from the right side of the screen. The game tests gesture-based interaction, timing, and quick reactions.",[380],"all","ams","Duck Jump Game","handposeGames","https://images.avishkaar.cc/curriculum/hardware_prototyping/thumbnails/game_builder/gb2.webp","https://images.avishkaar.cc/curriculum/hardware_prototyping/arduino/icons/gb2.webp","live_1",{"class_code":128,"class_details":388,"session_description":644,"session_image":645,"session_name":644,"session_small_image":645,"session_type":646},[389,438,496,638],{"chapter_type":136,"submission_details":390,"mandatory":13,"chapter_details":391,"content_code":391,"session_chapter_details":392},{"program_key":11,"description":11,"type":11,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"ai-hand-gestures-game-mode.ai_hand-gestures-game-mode_Advanced_Hand_Gesture_Detection",{"chapter_name":393,"checkpoint":394,"subcategory_uri":294,"chapter_type":285,"Introduction ":397,"generic_checkpoints":404,"Let's Code":405,"chapter_code":114},"Advanced Hand Gesture Detection",[395,396],{"title":150,"type":144},{"title":293,"type":172},[398,402],{"section_text":399,"type":188,"section_images":400,"section_name":401},"To understand and implement advanced hand gesture detection using the AMS Game Builder mode. Learners will explore pinch and fist gestures, calculate distances between key points, and use these inputs to control game elements dynamically.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_1.webp","Objective ",{"section_text":257,"type":213,"section_images":403,"section_name":261},[259,260],[],{"concept_video":11,"data":406},[407,410,414,418,422,426,430,434],{"section_text":408,"type":188,"section_images":409,"section_name":308},"\u003Cdl>\n\u003Cul>\n  \u003Cli>\n  \u003Cdt>Two key parts of our game:\u003C/dt>\u003C/li>\n  \u003Cdd>- Game Setup\u003C/dd>\n  \u003Cdd>- Game Loop\u003C/dd>\n  \u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_2.webp",{"section_text":411,"type":188,"section_images":412,"section_name":413},"\u003Cul>\n  \u003Cli>Use \"Create Variable\" to define the Distance. \u003C/li>\n  \u003Cli>Use a variable named distance to store the distance between two points.\u003C/li>\n  \u003Cli>Initialize the variable to zero.\u003C/li>\n  \u003Cli>Check if the hand is detected using a control block.\u003C/li>\n\u003C/ul>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_3.webp","Creating a Variable",{"section_text":415,"type":188,"section_images":416,"section_name":417},"\u003Cul>\n  \u003Cli>Identify two points: Index Finger Tip and Thumb Tip.\u003C/li>\n  \u003Cli>Use hand pose detection to determine their positions.\u003C/li>\n  \u003Cli>Print the calculated distance to the console.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_4.webp","Calculating Distance Between Two Points",{"section_text":419,"type":188,"section_images":420,"section_name":421},"\u003Cul>\n  \u003Cli>Distance changes with hand movement.\u003C/li>\n  \u003Cli>Bringing fingers closer reduces the distance.\u003C/li>\n  \u003Cli>Moving hand closer to the camera increases the distance.\u003C/li>\n  \u003Cli>Keep the hand at a stable position for accurate readings.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_5.webp","Observing Distance Changes",{"section_text":423,"type":188,"section_images":424,"section_name":425},"\u003Cul>\n  \u003Cli>Create a Sprite named Duck.\u003C/li>\n  \u003Cli>Upload an image for the sprite.\u003C/li>\n  \u003Cli>Resize the sprite to 50% for better visibility.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_6.webp","Creating a Game Object",{"section_text":427,"type":188,"section_images":428,"section_name":429},"\u003Cul>\n  \u003Cli>Use an if block to check if the distance is less than 30.\u003C/li>\n  \u003Cli>If the condition is met, hide the sprite.\u003C/li>\n  \u003Cli>Else, keep the sprite visible.\u003C/li>\n \u003Cli>Test the visibility toggle with the gesture.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_7.webp","Implementing the Pinch Gesture",{"section_text":431,"type":188,"section_images":432,"section_name":433},"\u003Cul>\n  \u003Cli>Modify the detection points: Middle Finger Tip & Wrist.\u003C/li>\n  \u003Cli>If the distance is less than 90, hide the sprite.\u003C/li>\n  \u003Cli>Otherwise, make the sprite visible.\u003C/li>\n \u003Cli>Adjust threshold values for accuracy.\u003C/li>\n\u003C/ul>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_8.webp","Implementing the Fist Gesture",{"section_text":435,"type":188,"section_images":436,"section_name":437},"\u003Cul>\n  \u003Cli>Disable the visibility blocks.\u003C/li>\n  \u003Cli>Use Set Sprite Scale with the distance value.\u003C/li>\n  \u003Cli>Observe the sprite resizing based on hand gestures.\u003C/li>\n\u003C/ul>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/advanced_hand_gesture_detection/advanced_9.webp","Scaling the Sprite with Gesture",{"chapter_type":285,"submission_details":439,"mandatory":13,"chapter_details":440,"content_code":440,"session_chapter_details":441},{"program_key":11,"description":11,"type":11,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"game-builder-basics.game_builder-basics_Egg_Collector",{"chapter_name":442,"checkpoint":443,"subcategory_uri":184,"chapter_type":285,"Introduction ":446,"generic_checkpoints":452,"Let's Code":453,"chapter_code":124},"Egg Collector",[444,445],{"title":150,"type":144},{"title":293,"type":172},[447,450],{"section_text":448,"type":188,"section_images":449,"section_name":299},"The goal of the game is to catch as many falling eggs as possible using a hand-controlled basket. Players will use hand gestures to move the basket left and right to catch the eggs.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_1.webp",{"section_text":257,"type":213,"section_images":451,"section_name":261},[259,260],[],{"concept_video":11,"data":454},[455,457,461,465,469,473,477,481,485,489,493],{"section_text":456,"type":188,"section_images":307,"section_name":308},"\u003Cdl>\n\u003Cul>\n  \u003Cli>\n  \u003Cdt>Two key parts of our game:\u003C/dt>\u003C/li>\n  \u003Cdd>- Game Setup\u003C/dd>\n  \u003Cdd>- Game Loop\u003C/dd>\n  \u003Cli>\u003Cdt>Required game elements:\u003C/dt>\u003C/li>\n  \u003Cdd>- Egg Sprite\u003C/dd>\n  \u003Cdd>- Basket Sprite\u003C/dd>\n\u003C/ul>\n\u003C/dl>\n",{"section_text":458,"type":188,"section_images":459,"section_name":460},"\u003Cul>\n  \u003Cli>Use \"Create Sprite\" to define the basket.\u003C/li>\n\u003Cdl>\n  \u003Cli> \u003Cdt>Position the basket at:\u003C/dt>\u003C/li>\n  \u003Cdd>- X: half width (center of the screen)\u003C/dd>\u003C/li>\n  \u003Cdd>- Y: 370 (bottom of the screen)\u003C/dd>\u003C/li>\n\u003C/dl>\n  \u003Cli>Scale up or down if needed for better visibility.\u003C/li>\n\u003C/ul>\n\n","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_4.webp","Creating the Basket Sprite",{"section_text":462,"type":188,"section_images":463,"section_name":464},"\u003Cul>\n  \u003Cli>Create a \"Sprite Group\" called \"eggs.\"\u003C/li>\n  \u003Cli>Define the initial number of eggs (2-3).\u003C/li>\n  \u003Cli>Scale up or down if needed for better visibility.\u003C/li>\n\u003C/ul>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_6.webp","Creating the Eggs Sprite",{"section_text":466,"type":188,"section_images":467,"section_name":468},"\u003Cdl>\n  \u003Cdt>Use a loop to assign random X positions (50 - 750 range).\u003C/dt>\n  \u003Cdd>- This ensures that eggs do not always fall from the same position, making the game unpredictable and more engaging.\u003C/dd>\n  \u003Cdt>Set Y position to random (top of the screen) - 50 to 90.\u003C/dt>\n  \u003Cdd>- This ensures that eggs always start falling from the top, mimicking the natural motion of objects dropping from above.\u003C/dd>\n  \u003Cdt>Run the game and observe different egg placements.\u003C/dt>\n\u003C/dl>","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_5.webp","Randomizing Egg Positions",{"section_text":470,"type":188,"section_images":471,"section_name":472},"Define variables for score and lives.\n","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_7.webp","Adding Scoring & Lives System",{"section_text":474,"type":188,"section_images":475,"section_name":476},"\u003Cul>\n  \u003Cli>Inside game loop, Change eggs Y position by 0.2 for slow movement.\u003C/li>\n  \u003Cli>Observe the eggs falling downward.\u003C/li>\n\u003C/ul>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_8.webp","Moving Sprites Downward",{"section_text":478,"type":188,"section_images":479,"section_name":480},"\u003Cdl>\n\u003Cul>\n  \u003Cli> \u003Cdt>If eggs Y position > world height (450):\u003C/dt>\u003C/li>\n  \u003Cdd>- Subtract one life.\u003C/dd>\u003C/li>\n  \u003Cdd>- Reset sprite position to top (-50).\u003C/dd>\u003C/li>\n  \u003Cli>Ensure lives are deducted properly.\u003C/li>\n\u003C/ul>\n\u003C/dl>\n","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_9.webp","Detecting When Eggs Reach Bottom",{"section_text":482,"type":188,"section_images":483,"section_name":484},"\u003Cdl>\n\u003Cul>\n  \u003Cli> \u003Cdt>If lives \u003C= 0:\u003C/dt>\u003C/li>\n  \u003Cdd>- Stop the game.\u003C/dd>\u003C/li>\n  \u003Cdd>- Display \"Game Over\" message at screen center.\u003C/dd>\u003C/li>\n  \u003Cli>Adjust text size and positioning for better visibility.\u003C/li>\n\u003C/ul>\n\u003C/dl>","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_10.webp","Implementing Game Over Condition",{"section_text":486,"type":188,"section_images":487,"section_name":488},"\u003Cul>\n  \u003Cli>Detect hand movement using wrist key point.\u003C/li>\n  \u003Cli>Set Sprite basket position to wrist key point.\u003C/li>\n  \u003Cli>Ensure basket moves only left and right.\u003C/li>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_11.webp","Moving the Basket with Hand Movement",{"section_text":490,"type":188,"section_images":491,"section_name":492},"\u003Cdl>\n\u003Cul>\n  \u003Cli> \u003Cdt>If basket touches an egg:\u003C/dt>\u003C/li>\n  \u003Cdd>- Reset egg position to top.\u003C/dd>\u003C/li>\n  \u003Cdd>- Play a Success sound.\u003C/dd>\u003C/li>\n  \u003Cdd>- Increase game score.\u003C/dd>\u003C/li>\n\u003C/dl>\n\u003C/ul>","https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_12.webp","Detecting Basket and Egg Collision",{"section_text":11,"type":188,"section_images":494,"section_name":495},"https://images.avishkaar.cc/curriculum/coding/game_builder/egg_collector/egg_collector_13.webp","Final code",{"chapter_type":285,"submission_details":497,"mandatory":13,"chapter_details":498,"content_code":498,"session_chapter_details":499},{"program_key":11,"description":11,"type":381,"title":11,"maxMark":11,"ams_mode":11,"unity_context":11},"ai-hand-gestures-game-mode.ai_hand-gestures-game-mode_Catch_the_Thief",{"chapter_name":500,"checkpoint":501,"subcategory_uri":294,"chapter_type":285,"Introduction":504,"generic_checkpoints":510,"Let's Code":511,"chapter_code":115},"Catch the Thief",[502,503],{"title":143,"type":144},{"title":293,"type":172},[505,508],{"section_text":506,"type":188,"section_images":507,"section_name":299},"Develop a game where players use hand gestures to control a barrier sprite that stops or allows items to pass on the screen. Objects are categorised as \"Good\" or \"Bad\", impacting the player's score and lives based on their actions. ","https://images.avishkaar.cc/curriculum/c76605e0-95fe-11f1-9fb9-d52918174f5a.png",{"section_text":257,"type":213,"section_images":509,"section_name":261},[259,260],[],{"concept_video":11,"data":512},[513,516,519,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618,622,626,630,634],{"section_text":514,"type":188,"section_images":515,"section_name":201},"We need the game to randomly choose which type of character will appear each time.\n\nInstead of writing the same selection code repeatedly, we put it inside a function called SelectCharacter.\n\nLater, whenever we want a new character, we can simply call this function.","https://images.avishkaar.cc/curriculum/98651e80-96ca-11f1-aada-713b8b5cc5b8.png",{"section_text":517,"type":188,"section_images":518,"section_name":205},"Use: random integer from 1 to 100. \n\nWe don't want the player to know beforehand whether the next character will be good or bad.\n\nA random number gives us an unpredictable result.\n\nWhen any whole number is divided by 2, the remainder can only be:\n\n0 → even number\n1 → odd number\n\nSo we have created a simple way to randomly get either 0 or 1.","https://images.avishkaar.cc/curriculum/89999fb0-96cb-11f1-954f-e98490740d73.png",{"section_text":520,"type":188,"section_images":521,"section_name":209},"We now need to make a decision.\n\nIf the remainder is 0:\n\nSet the Character sprite's image to the good character\n\nIf the remainder is 1, the else part:\n\nSet the Character sprite's image to the bad character\n\nThis gives us an approximately 50–50 chance of getting either type.","https://images.avishkaar.cc/curriculum/1101ee30-96cc-11f1-b270-bf5de398e11c.png",{"section_text":523,"type":188,"section_images":524,"section_name":525},"Set:\n\nCharacter → isGood = 1\n\nBecause later, when the player catches the character, the game needs to know:\n\n\"Was the character good or bad?\"\n\nSet the Character scale to 160%.\n\n\n","https://images.avishkaar.cc/curriculum/a0ac7eb0-96cc-11f1-8047-bbe724288bd5.png","Step 4",{"section_text":527,"type":188,"section_images":528,"section_name":529},"In the else section, Set:\n\nCharacter → isGood = 0\n\nWe need to remember that this particular character is bad.\nSet the scale to 100%","https://images.avishkaar.cc/curriculum/3636d020-96cd-11f1-a3bd-59305b143e3d.png","Step 5",{"section_text":531,"type":188,"section_images":532,"section_name":533},"Set:\n\nCharacter → isCatched = 0\n\nAt the beginning, the character has not been caught yet.\n\nThis property is important because the game loop runs continuously.\n\nImagine the character touches the barrier for 1 second. The computer may detect the collision many times during that second.\n\nThis prevents the same character from being counted repeatedly.","https://images.avishkaar.cc/curriculum/5dfab6d0-96cd-11f1-954f-e98490740d73.png","Step 6",{"section_text":535,"type":188,"section_images":536,"section_name":537},"Set Up the Game: Set Lives = 5\n\nThe player needs a limited number of chances.\n\nStarting with 5 lives means the player can make mistakes before the game ends.\n\nSet:\n\ngame lives = Lives\n\nWe have created our own Lives variable, but the game system needs to know that this variable represents the player's remaining lives.\n\nSo whenever Lives decreases, the game can reflect the change.","https://images.avishkaar.cc/curriculum/e4783020-96cd-11f1-b927-5d3a5c3313c9.png","Step 7",{"section_text":539,"type":188,"section_images":540,"section_name":541},"Set Score = 0\n\nThe game has not started scoring yet.\n\nTherefore, the player starts with:\n\nScore = 0\n\nEvery time the player successfully catches a bad character, we will increase this value.\nSet:\n\ngame score = Score\n\nThe game system needs to know which variable represents the player's score.\n\nThis allows the game score to update whenever our Score variable changes.","https://images.avishkaar.cc/curriculum/2d5a7b90-96ce-11f1-954f-e98490740d73.png","Step 8",{"section_text":543,"type":188,"section_images":544,"section_name":545},"Play background music\n\nIt is placed in setup because we only need to start the music once, not every time the game loop repeats.","https://images.avishkaar.cc/curriculum/56787400-96ce-11f1-90ac-d73338915deb.png","Step 9",{"section_text":547,"type":188,"section_images":548,"section_name":549},"Set the background image\n\nThe player needs a visual environment in which the game takes place.\n\nThis is also placed in setup because the background doesn't need to be changed every frame.","https://images.avishkaar.cc/curriculum/8c848340-96ce-11f1-8fef-7b95fd35effe.png","Step 10",{"section_text":551,"type":188,"section_images":552,"section_name":553},"Create the Character sprite\nThe character is the main object that the player needs to interact with.\nWe create it once during setup instead of creating a new sprite every time the game loop runs.","https://images.avishkaar.cc/curriculum/68552ca0-96dc-11f1-8536-c3c4286fd38b.png","Step 11",{"section_text":555,"type":188,"section_images":556,"section_name":557},"Create the Barrier sprite\nThe barrier is the obstacle that will interact with the character.\n\nWe create it during setup so the game already has the object ready.\n\nWe can then simply change its visibility when needed.","https://images.avishkaar.cc/curriculum/cfd59a90-96dc-11f1-a694-99a720bf3a73.png","Step 12",{"section_text":559,"type":188,"section_images":560,"section_name":561},"Set: Barrier visibility = hidden\n\nThe barrier should not be visible from the beginning.\n\nIt only appears when the player performs the required hand gesture.\n\nIf we didn't hide it initially, the obstacle would already be on the screen before the player acts.","https://images.avishkaar.cc/curriculum/fb88d310-9a2d-11f1-8004-d9bd2f4b4839.png","Step 13",{"section_text":563,"type":188,"section_images":564,"section_name":565},"Call SelectCharacter\n\nWe created the function earlier, but creating a function doesn't automatically execute it.\n\nWe need to call it.\n\nThis tells the program: \"Now actually choose whether this character is good or bad.\"\n\nThis is where our random selection logic becomes part of the game.","https://images.avishkaar.cc/curriculum/3b9eec00-9a2e-11f1-99df-d584775a6b0d.png","Step 14",{"section_text":567,"type":188,"section_images":568,"section_name":569},"Position the Character at (20, 350). The character needs a defined starting position.\n\nThis creates a consistent starting point every time the game begins.\n\nPosition the Barrier at (700, 325). We want the barrier to appear somewhere ahead of the character rather than directly on top of it.\n\nThe barrier is placed near the right side of the game world, so the character has space to move toward it.","https://images.avishkaar.cc/curriculum/b68998c0-9a2e-11f1-9a6d-597fbcfe0b38.png","Step 15",{"section_text":571,"type":188,"section_images":572,"section_name":573},"Create a game loop\n\nSome actions need to happen continuously while the game is running.\n\nWithout a loop, the program would check them only once.","https://images.avishkaar.cc/curriculum/01335660-9a32-11f1-9bde-2d5f99607151.png","Step 16",{"section_text":575,"type":188,"section_images":576,"section_name":577},"Change Character x by 0.3\n\nThe x-coordinate controls horizontal movement.\n\nIncreasing x moves the character toward the right.\n\nBecause this block is inside the game loop, the movement happens repeatedly:\n\nx → x + 0.3 → x + 0.3 → x + 0.3...\n\nThis creates animation.","https://images.avishkaar.cc/curriculum/24867570-9a32-11f1-a49e-a98118f310df.png","Step 17",{"section_text":579,"type":188,"section_images":580,"section_name":581},"Check whether the character is touching the right edge\n\nThe character would eventually leave the game screen if we allowed it to keep moving right.\n\nSo we continuously ask:\n\n\"Has the character reached the right edge?\"","https://images.avishkaar.cc/curriculum/ecde5780-9a33-11f1-a41b-4d1a94cb25b8.png","Step 18",{"section_text":583,"type":188,"section_images":584,"section_name":585},"Move the character back to (20, 350)\n\nOnce the character reaches the edge, we reset it to its starting position.\n\nThis creates a continuous cycle:\n\nStart → Move right → Reach edge → Return → Move right again\n\nWithout this reset, the character would eventually disappear off-screen.","https://images.avishkaar.cc/curriculum/28981b30-9a34-11f1-9bde-2d5f99607151.png","Step 19",{"section_text":587,"type":188,"section_images":588,"section_name":589},"Call SelectCharacter\n\nThis is where our random selection logic comes into play.","https://images.avishkaar.cc/curriculum/72f4aa90-9a34-11f1-a49e-a98118f310df.png","Step 20",{"section_text":591,"type":188,"section_images":592,"section_name":593},"Check hand detected\n\nThis game is controlled partly through hand gestures.\n\nBefore calculating any finger positions, we first need to know whether the camera can actually detect a hand.\n\nThis prevents the program from trying to use hand landmarks when there is no detected hand.","https://images.avishkaar.cc/curriculum/050d2dd0-9a35-11f1-a49e-a98118f310df.png","Step 21",{"section_text":595,"type":188,"section_images":596,"section_name":597},"We need one point on the hand to identify the player’s gesture.\n\nThe middle fingertip gives us the position of the end of the middle finger.\n\nWe need a second reference point to compare with the fingertip.\n\nBy comparing the middle fingertip position with the wrist position, we can determine whether the hand is open or closed.\nCalculate the distance between these two points\n\nDistance = distance between the middle fingertip and the wrist\n\n","https://images.avishkaar.cc/curriculum/dbaa20a0-9a35-11f1-a100-89eb1db2daf2.png","Step 22",{"section_text":599,"type":188,"section_images":600,"section_name":601},"Check whether the distance is ≤ 70\n\nWe need a threshold that defines when the gesture should be considered active.\n\nHere, 70 is that threshold.\n\nSo:\n\nDistance ≤ 70 → Hand closed\n\nDistance > 70 → Hand Open\n\n","https://images.avishkaar.cc/curriculum/475a0770-9a36-11f1-a41b-4d1a94cb25b8.png","Step 23",{"section_text":603,"type":188,"section_images":604,"section_name":605},"Make the Barrier visible\n\nOnce the player performs the correct hand gesture, the barrier should appear.\n\nSo the player's hand becomes an input:\n\nCorrect gesture → Barrier appears\n\nThis creates the core interaction of the game.","https://images.avishkaar.cc/curriculum/96251480-9a36-11f1-af07-4feb169cf8c3.png","Step 24",{"section_text":607,"type":188,"section_images":608,"section_name":609},"Check whether the Barrier is touching the Character\n\nShowing the barrier isn't enough.\n\nThe game needs to know whether the player has successfully interacted with it.\n\nSo we continuously check:\n\n\"Is the Character touching the Barrier?\"\n\nIf yes, we have a collision.\nAlso check isCatched = 0\n\nThis is the protection against multiple scoring/life deductions.\n\nWe only want to process the collision if the character hasn't already been caught.\n\nTherefore:\n\nBarrier touching Character AND isCatched = 0\n\nmeans:\n\n\"The character has just been caught.\"","https://images.avishkaar.cc/curriculum/120869f0-9ab7-11f1-a5c4-a9d063fe2e08.png","Step 25",{"section_text":611,"type":188,"section_images":612,"section_name":613},"Mark the Character as Caught\nStep 36: Set isCatched = 1\nImmediately after detecting the collision, we mark the character as caught.\n\nNow, if the game loop checks the collision again a moment later:\n\nisCatched = 1\n\nso the collision logic will not run again.\n\nThis is a simple form of state management.","https://images.avishkaar.cc/curriculum/4e90c840-9ab7-11f1-9bba-11988ba85ff9.png","Step 26",{"section_text":615,"type":188,"section_images":616,"section_name":617},"Play the splat sound\n\nThe player needs immediate feedback that the collision occurred.\n\nSound makes the interaction more noticeable.\n\nChange the Character image\n\nThe character should visually change after being caught.\n\nThis communicates:\n\n\"This character has already been caught.\"\n\nIt also gives the player confirmation that their action worked.","https://images.avishkaar.cc/curriculum/b8ba0f10-9ab7-11f1-9e9f-d3d20ad29c50.png","Step 27",{"section_text":619,"type":188,"section_images":620,"section_name":621},"Decide Whether the Player Made a Good or Bad Catch\n\nIf isGood = 1, reduce Lives\n\nThe game is designed so that catching a good character is a mistake.\n\nUpdate game lives\n\nWe changed our own Lives variable, but the game's displayed life value also needs to know about the change.\n\nUse the else\nIf the character is not good, then it is the bad character.\n\nIncrease Score by 1\n\nCatching a bad character is the correct action, so the player should be rewarded.\n\nUpdate game score\n\nAgain, we need to synchronize our variable with the game's score system.\n\n","https://images.avishkaar.cc/curriculum/6824faf0-9ab8-11f1-8313-878c028e8525.png","Step 28",{"section_text":623,"type":188,"section_images":624,"section_name":625},"Use else for hand detected\nIf there is no hand detected, the player is no longer performing the required interaction.\n\nTherefore, the barrier should disappear.\n\nHand gesture ON → Barrier visible\n\nHand gesture OFF → Barrier hidden","https://images.avishkaar.cc/curriculum/a4f7cfc0-9ab8-11f1-be10-993381523ee2.png","Step 29",{"section_text":627,"type":188,"section_images":628,"section_name":629},"Check for Game Over\nCheck Lives = 0\n\nThe player has a limited number of mistakes.\n\nWhen all five lives are gone, there is no reason to continue playing.\n","https://images.avishkaar.cc/curriculum/13ed1c90-9ac4-11f1-8856-bb8c0b9428da.png","Step 30",{"section_text":631,"type":188,"section_images":632,"section_name":633},"If we only displayed \"You Lost!!\" but allowed the game loop to continue, the character could still move, collisions could still happen, and the score could still change.\n\nStopping the loop freezes the gameplay.\nShow You Lost!!\n\nThe player needs clear feedback about why the game stopped.\n\n","https://images.avishkaar.cc/curriculum/7ab8b970-9ac4-11f1-9af0-b1fe04783e7f.png","Step 31",{"section_text":635,"type":188,"section_images":636,"section_name":637},"Check for Winning\nCheck whether Score = 10\n\nHere, the goal is to correctly catch 10 bad characters.\n\nWhen:\n\nScore = 10\n\nStop the game loop\n\nOnce the player reaches the target score, the game should end.\n\nOtherwise, the player could continue earning points after already winning.\n\nShow You Won!!\n\nThe player needs immediate confirmation that they successfully completed the game.","https://images.avishkaar.cc/curriculum/10c14620-9ac6-11f1-9707-93a9d096ea8c.png","Step 32",{"chapter_type":376,"submission_details":639,"mandatory":13,"chapter_details":11,"content_code":11},{"program_key":11,"description":640,"ams_block":641,"type":381,"title":642,"maxMark":11,"ams_mode":643,"unity_context":11},"Create an interactive Racing Car Game where the player controls the speed of a car based on the distance between their hands. The player must adjust their hand distance to increase or decrease the car's speed while driving through different road environments. The game focuses on gesture-based control, speed management, coordination, and adapting to changing road conditions",[380],"Racing Car Game","posenetGames","Catch the thief","https://images.avishkaar.cc/curriculum/hardware_prototyping/thumbnails/game_builder/gb1.webp","live_2",{"id":648,"course_code":7,"class_code":128,"class_name":649,"class_description":650,"class_type":651,"live_session_count":652,"asynchronous_session_count":130,"submitted_on":653,"creator_user_id":130,"created_by":654,"shareable":130,"is_deleted":130},568,"Avishkaar Bootcamp","Teacher Training Game Dev & Coding Bootcamp Course","mentor_led",2,"2026-07-29T14:28:37.000Z","admin",null,1787658190122]