Remaking Bully in 5 Days: AI Agents and Mac Tackle Unreal Engine 5.8

Remaking Bully in 5 Days: AI Agents and Mac Tackle Unreal Engine 5.8

Unreal Engine 5BullyAI CodingApple SiliconGame Remake

Sources:GitHub + web research

python3 -m tools.importers world
python3 -m tools.importers ped PLAYER --anims '*' --root-motion inplace --head B_Buzz
tools/ue/run_lighting.sh --variant B_raking_amber

With just three terminal commands, the campus map and dynamic lighting of the 2006 classic Bully: Scholarship Edition were fully assembled inside Unreal Engine 5.8. On October 18, 2026, independent developer @ashen_one shared a three-minute gameplay demonstration. The entire project—from repository initialization on October 15 to getting the opening 26 mission stages fully playable—took a mere five days. Most remarkably, it ran entirely on a Mac at 1080p and 45 frames per second.

The fusion of generative AI asset pipelines and Apple’s native graphics stack is compressing the barrier to modernizing classic AAA games from hundred-person studios down to a single developer. Automated material remapping bypasses years of manual art conversion, while the Metal API and unified memory give lightweight laptops enough practical horsepower to run next-generation dynamic lighting scenes natively.

Jimmy Hopkins Concept Art from Bully Figure: Original character concept art for Jimmy Hopkins from Bully. The remake pipeline migrated his 36-joint skeleton and 4,374 animation segments directly into Unreal Engine 5.8 via automated scripts. Source: Rockstar Games (Project background material)

Multi-Agent Swarm Writes Asset Pipeline in 5 Days, Bypassing Massive Studio Labor

Classic game remakes typically get bogged down in the grueling reverse-engineering of proprietary legacy formats and endless C++ rewrites. In the oh-ashen-one/bully-remake open-source repository, the human developer acted strictly as a creative director—providing guidance, playtesting milestones, and judging aesthetic fidelity. Virtually all Python conversion utilities and C++ engine glue code were generated by AI. Claude Code (Fable 5) acted as the orchestrator agent, delegating build and debugging sub-tasks to Opus 5.5, Sonnet 5.5, and Haiku 5.5 agents.

This multi-agent workflow conquered the format barriers of the original Gamebryo engine within the first four days. The Python importer directly ingests Stream/World.img archives from a local retail game install, converting proprietary .nif meshes, .txd compressed textures, and .ipb world coordinates into glTF 2.0 and JSON intermediates in batch. The scripts simultaneously decoded 4,374 animation clips from MAINPED.HXD alongside MS-ADPCM audio streams from .SEA sound archives. What historically demanded a dedicated team of toolchain engineers months of reverse engineering was compressed into standardized CLI utilities within 96 hours.

Mathematical PBR Remapping and On-Device Voice LLMs on Day 5

Injecting legacy baked vertex lighting directly into modern deferred renderers produces crushed blacks under dynamic shadows. The pipeline solved this by translating lighting data into physical material (PBR) parameters mathematically. The importer reads the red channel of the original _s specular textures, dynamically generating Unreal Engine 5 material instances using Specular = 0.35 + gloss.r * SpecularScale and Roughness = 0.85 - 0.35 * gloss.r, while introducing a global collection parameter MPC_Bully.BakedVertexLight to counterbalance baked shading artifacts in real time.

By day five (October 19, commit 69abe5a), the main branch had merged campus-wide free-form melee combat alongside an interactive AI dialog stack. Approaching any student and pressing T initiates conversation, while holding Tab enables hands-free voice chat via a local whisper.cpp speech-to-text pipeline. In the background, MiniMax M2.7-highspeed paired with Fish Audio generates in-character vocal responses. After each conversation, dialog is summarized into first-person memories stored in Saved/NPCChat/<ped>.json—meaning an NPC you insulted will remember the grudge the following morning.

Metal SM6 and Unified Memory Deliver 1080p 45 FPS Dynamic Lighting on Mac

Cross-platform fan remakes have traditionally depended on Windows rigs with power-hungry discrete graphics cards; macOS has long been relegated to the sidelines of hardcore 3D development. Yet @ashen_one explicitly noted that “no PC was used” during development. Heavy asset imports, headless regression testing, and high-resolution 3840×1920 renders were executed on an M3 Ultra Mac Studio, while daily gameplay testing and code iteration took place directly on an Apple Silicon MacBook.

Mac Gameplay Demo Screenshot Figure: Gameplay capture shared by @ashen_one running on Mac. The window title bar explicitly indicates the SF_METAL_SM6 shader backend, with the top-left HUD tracking the DAY ONE 2 / 26 mission stage. Source: @ashen_one (X gameplay demonstration capture)

The title bar string BullyRemake (64-bit Development SF_METAL_SM6) confirms that the project directly targets Unreal Engine 5.8’s native Metal Shader Model 6 backend. The configuration file Config/DefaultEngine.ini explicitly sets r.AllowStaticLighting=False, completely stripping legacy lightmap pre-bakes in favor of full Lumen dynamic global illumination and reflections, paired with the B_raking_amber dusk atmospheric lighting variant. Even with static baking disabled and pure dynamic ray tracing active, the MacBook sustained a smooth 45 FPS at 1080p, demonstrating how effectively Metal SM6 taps into mobile GPU ray tracing and mesh shading throughput.

Apple’s Unified Memory Architecture (UMA) quietly solved severe bandwidth bottlenecks caused by early unoptimized assets. Every building in the scene currently enables ensure_complex_collision, utilizing raw render geometry triangles as physical collision hulls rather than simplified bounding boxes. On traditional split-memory PC architectures, streaming tens of thousands of raw vertices continuously clogs PCIe buses. On Mac, CPU physics queries and GPU rendering share the same high-bandwidth physical memory pool; this zero-copy advantage preserved a playable frame rate floor throughout rough development builds.

Fan remakes of Rockstar IPs have historically carried severe legal risks, with numerous community projects shut down by Take-Two cease-and-desist letters. To sidestep copyright infringements, @ashen_one enforced strict physical isolation between code and proprietary assets: the GitHub repository is licensed under MIT and distributes only original Python parsing scripts and C++ scaffolding—not a single byte of Rockstar game assets is packaged. Players must supply a legitimate copy of Bully: Scholarship Edition via Steam through CrossOver on macOS; the scripts then perform read-only extraction locally to assemble Unreal assets.

Evaluation AngleOpen Source AdvocatesEngineering Realists
Development VelocityAI agents conquered 26 missions and 4,374 animations in 5 days, redefining indie development productivity.Passing headless tests (-nullrhi) does not guarantee fluid gameplay feel; sprinting skids and turning animations still require manual tuning.
Platform EcosystemNative SF_METAL_SM6 backend achieved 1080p 45 FPS on Mac, shattering the myth that thin laptops cannot handle Unreal Engine 5.Launch scripts hardcode macOS binary paths and depend on an unbundled gpu_slot.sh concurrency lock, preventing out-of-the-box Windows/Linux runs.
Legal BoundariesDistributing zero proprietary assets under a “Bring Your Own Copy” model cleanly adheres to MIT open-source boundaries.Operating under the Bully trademark while attracting massive public attention still leaves the project vulnerable to Take-Two takedowns.

Enthusiasts see this combination of “Bring Your Own Copy” architecture and plug-and-play prompts for local AI coding agents as a blueprint for community-driven game preservation. However, inspecting the repository exposes clear engineering rough edges: tools/ue/_common.sh hardcodes macOS binary paths and mandates an unversioned ~/.cache/gpu-slot/bin/gpu_slot.sh external concurrency lock script. Furthermore, Unreal Engine 5.8 requires Xcode 26.1.1 and has known compatibility issues with Xcode 26.4, making one-click installation tricky for casual players. Crucially, only the indoor academy grounds have been imported so far; navigating the external town, resolving NPC clipping issues, and tuning melee impact audio remain labor-intensive design hurdles that automated headless logs cannot solve.

AI agents can help a solo engineer bridge the 0-to-1 engine migration chasm in five days, but they cannot replace human craft when polishing animation timing, controller responsiveness, and cross-platform standards across the final 10%. Regardless of whether this non-commercial project ever ports the entire Bullworth town map, it has set a clear benchmark: pairing LLM-driven asset pipelines with mature Apple Silicon graphics stacks means remaking a 20-year-old AAA classic is no longer a luxury exclusive to mega-studios.

Reference Links:

  • GitHub: oh-ashen-one/bully-remake official repository and technical docs
  • Tech4Gamers: Fan Is Porting Bully To Unreal Engine 5.8 Using AI
  • TweakTown: Bully gets a playable Unreal Engine 5 port nearly 20 years after its release
  • IT Home: Fan remakes Bully in Unreal Engine 5.8 with AI, running at 1080p 45 FPS on Mac