❄️🎁⛄ The Winter Games Tournament is Live! 🎄🎅❄️
Jump to content

[Winter Games 2025] Ingenuity Legacy: A Tribute to the Mars Helicopter (Devlog)


Recommended Posts

Posted

Helic.thumb.png.d816edcbb72df9bfae54f2c55385e185.png
 

Hello everyone!

I am officially joining the Leadwerks Winter Games 2025 Tournament with my project: Ingenuity Legacy.

This game will be a tribute to the historic adventure of the helicopter on Mars. My goal is to capture the feeling of solitude and the technological achievement of Ingenuity on the surface of the Red Planet.

Tech Specs & Tools

For this tournament, I decided to go with a transparent and classic approach:

Engine: Leadwerks 5.
Language: Lua Script.
Dev Environment: I will use the Leadwerks Map Editor for level design and Visual Studio Code for all scripting.

Methodology: The project starts from scratch. I am beginning with a completely blank code file—no pre-made templates—to build the flight mechanics step-by-step.

Resources: I will be using assets available from the internet for the art and environment, and I will use AI assistance to support the coding process when necessary to speed things up.

Follow the Development Live

I want to share the creation process with you all, from the very first line of code to the final build. I will be streaming my development sessions live on Twitch.

 

"Spin up, take off, climb, hover, descent, landing, touchdown and spin down." 
Ingenuity Legacy | Leadwerks Winter Games 2025 🚁 "Altimeter data confirmed."

 

  • Like 2

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Murphy's Law: We don't fix bugs, we document them as features. – Murphy Games

  • Yue changed the title to [Winter Games 2025] Ingenuity Legacy: A Tribute to the Mars Helicopter (Devlog)
Posted

Code Lua Script, Day One.


image.thumb.png.3b44aabdc2d9b8ba2e1470d00e4bd5c5.png

--############################################################################--
--##                                                                        ##--
--##  Project    : INGENUITY LEGACY                                         ##--
--##  File Name  : main.lua                                                 ##--
--##  Created by : Yue Rexie                                                ##--
--##  Notes      : Main application entry file                       		##--
--##                                                                        ##--
--############################################################################--

import("Class/CApp.lua")
import("Class/CWorld.lua")

--Create application instance
local app = CApp:New("Ingenuity Legacy (Development Build 0.1 [Alpha])")
local world = CWorld:New()


while true do

	world:Update()
	world:Render()
	
	collectgarbage()


	if app:GetWindow():GetClosed() then
		break
	end


end

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Murphy's Law: We don't fix bugs, we document them as features. – Murphy Games

Posted

Imagen 
 

Hi everyone!

This is Yue. I’m continuing my journey in the Winter Games Tournament with my project: "Ingenuity Legacy". This is a very personal project for me, a tribute to that brave little helicopter, and today (Day 3) was a rollercoaster of emotions and code.

I wanted to share my progress because today the project stopped feeling like a "floating mesh" and started feeling like a real machine with weight and soul.

Here is what I achieved today using Lua in Leadwerks 5:

Rotor Inertia & Visuals: I implemented the visual rotation of the coaxial blades. It's not just a simple loop animation; the rotation speed is code-driven by an inertia variable. When I toggle the engine off, the blades don't stop instantly—they keep spinning and slow down gradually over 30 seconds, simulating the momentum in the low-density atmosphere.

Real Martian Physics: I abandoned the arcade approach (0 gravity). Now, the helicopter has a constant gravity of -3.71 (Mars gravity). The engine script calculates "Lift" based on the rotor RPM. If the engine power drops, gravity wins, and the drone falls realistically. It feels heavy now!

The 24-Meter Ceiling: Did you know the real Ingenuity had a max altitude of roughly 24 meters? I implemented a "thin atmosphere" logic. If the player tries to go higher, the lift force decreases smoothly. No invisible walls, just physics saying "no more air here."

Dynamic Audio: I added a drone loop that changes Pitch and Volume based on that same rotor inertia. It sounds like a giant mosquito now, very immersive!

The "Bug" of the Day (The Funny Part): I spent a good amount of time fighting with the Audio. I used EmitSound, but the sound was being left behind at the spawn point (0,0,0). I tried to force SetPosition on the speaker every frame, but it was messy.

Then, I realized something absurdly simple: I had created the Mouth (the Speaker on the drone), but I forgot to tell the engine where my Ears were! 😂 One simple line saved the day: _camera:Listen(). Now the audio works perfectly in 3D space. Sometimes the solution is just telling the engine: "Hey, put my ears on the camera, please!"

I'm really enjoying the process and learning a lot about the new API.

Thanks for reading! - Yue

  • Like 2

 

 

Astrocuco.thumb.png.c76e0fb3de2d6e437e7dca099625e11e.png

Murphy's Law: We don't fix bugs, we document them as features. – Murphy Games

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...