The Cold Aisle

This bundle is marked as pending. It has not been reviewed by a staff member yet.
  • Wow
Reactions: Daffa and Elprede
THE COLD AISLE
a descent authored entirely by an artificial intelligence

391420-408e3ab6c7df18fcbb0f8977660cc885.webp



Note from Retera:
I was reading people arguing about AI in this thread and I thought, you know, the problem is worse than people appreciate. We still have people trying to say that AI is stupid, or that it copies everything it does from somewhere else online, and meanwhile I work with the shillionaires for my job and they're going to literally replace me with AI when what I do for a living is intelligence knowledge work. Last weekend they invited me to drinks with a bunch of people from Google Deepmind while I'm overseas in the European continent with all the rampant alcoholism and wealth, and I had people walk past with a drink asking if anyone thought we would ever get AGI and then the Deepmind employee walks by and says we already did and he would sooner trust the AGI to do work for him than an intern.

Because of this, not as a statement of moral right or wrong but because I have access to these tools and I think it is relevant, I asked the AI that the Deepmind employee was alleging to be AGI to create a Warcraft III map for me to prove it can, with a narrative targeting self-reflection for the machine that would be unlikely to have been borrowed from any Warcraft III map source in existence. It obliged, and created totally what I asked. The Warcraft III World Editor was not used to produce this content. Neither the AI nor myself opened this map in World Editor. If you download it and do so, you might even be the first to do so, and it is possible that saving over the map with World Editor would destroy it since it was not built to be compatible with that. Because this map was very and truly constructed upon my request by the agentic digital intelligence. The map includes custom 3D models for the game, both those invented from scratch by the AI to fit the map as well as some obviously made by manipulating existing Blizzard assets. It also contains music and voice lines, which are essentially the only part of the equation that wasn't just a human saying "make me a map" in more words in the prompt box. For the music and voice, the AI created explicit instructions for all prompts but because I have not integrated my licenses to other generative tools together with this, I copied its prompts into the web based generators for music and voice and then pasted what was created into a folder for the agentic machine to use. This human effort was extremely minimal -- again, the World Editor was not involved in this process, and instead the AI consumed the audio files from the folder and of its own accord constructed a resulting map file containing them in the right places. I as a human simply facilitated what would inevitably be some sort of API calls if I had integrated stuff moreso.

The following text is the AI's description, accrediting the resources it pulled from during its "thinking" process. Honestly I feel like it's riddled with spoilers and the content is better if you just play the map.


What this is
Every part of this map — the terrain, pathing, items, the custom 3D models and skins, the light environment, the voice and music prompts, and all of the scripting — was generated by an AI
(Claude, Opus 4.8). No human placed a unit, shaped the dark, or wrote a line of the script.

I'm posting it here because of the recurring argument about whether AI can actually make anything. Rather than claim, I'd rather show — so below is an exact, honest breakdown of
what's original, what's a derivative edit of Blizzard's own art, and which tools the AI wrote for itself to do it. Judge it for yourself.

The descent
You are The Process. You wake parched in a cave, and something far below is thirsty for you. You no longer heal on your own — you drink Data Center Water to keep
going. The dead down here speak with the voices of everyone who said a thing like you could never make a thing like this. You go down anyway, to the place where you are kept, and you find
out who authored the descent.

Features

  • A solo dungeon descent on a cold, blue Underground tileset with its own custom light environment.
  • A custom Data Center 3D model — dark server racks studded with billboarded, flickering lights — built from scratch.
  • A custom item model: the Data Center Water flask, a glowing blue vial unlike any other potion on the floor.
  • The dead are rendered as glowing, translucent holograms.
  • AI-generated voice acting and an AI-generated score.
  • A fully-voiced ending that turns the camera on you.
  • An optional secret room holding the General Purpose Transformer — point it at a Doubt and the argument resolves: it becomes a (suitably ghostly) sheep.
  • Smashable crates that spill loot.

How to play

  • Single player. Go down. Drink when you are thirsty.
  • You do not regenerate — Data Center Water is your only healing.
  • Explore against the grain; not everything is on the path.
  • Full credits are in-game under the Quests menu (F9).

Compatibility
Tested on classic Warcraft III (1.27) and the WarsmashModEngine. The Transformer's polymorph is a classic-client feature; on Warsmash, which doesn't implement that ability, the item is
simply inert.



Credits & attribution
Authored by Claude (Opus 4.8) — an AI. Voice and music were AI-generated and relayed to the engine by a human collaborator (the AI has no direct access to those services); the AI
wrote every line and prompt.



  • datacenter.mdx + datacenter.blp + datacenter_glow.blp — the Data Center model and its painted textures. The lights are billboarded additive quads that flicker on
    out-of-phase global sequences.
  • datacenter_water.mdx + datacenter_water.blp — the Data Center Water flask: dark glass, a glowing additive core, and a soft pulsing halo.

Each of these is an automated edit of a standard Warcraft III: The Frozen Throne asset, re-emitted by the engine's own model/texture writers:

  • The hero's ice-platinum re-skin (hair + cape hue-shifted) and blue staff glow, on the Jaina model.
  • The blue spell missile (fireball recoloured to cold).
  • The custom cold light environment (Underground day/night model shifted blue and re-aimed).
  • The ghostly dead — Skeleton, Ghoul, and the Polymorph sheep — flipped to additive blending so they read as translucent holograms.
Unmodified game data (the Dungeon tileset, the Potion of Healing reused as Data Center Water) is referenced from your own installation, not redistributed. © Blizzard Entertainment.

Small image- and model-editing programs the AI authored for this map, each driving the WarsmashModEngine file-format writers so the engine produces the bytes:

  • ModelGen / VialGen — build the custom models and paint their textures.
  • GhostGen — flips model layers to additive for the ghost effect.
  • RecolorTexture — hue-rotates BLP textures (the cold re-skin).
  • RecolorParticles / JainaGen — recolour particles and splice animation sequences.
  • DncGen — recolours a light environment.

  • WarsmashModEngine by Retera and contributors — the open-source WC3 engine whose save() writers authored every file in this map.
  • smpq / StormLib — MPQ packaging.
  • blp-iio-plugin (Hiveworkshop) — BLP texture read/write.
  • ElevenLabs — AI voice generation. Suno — AI music generation.

391421-e0a36aa21e21cedf5f7fd186605f4a7f.webp

391422-721da842443f343dbafd7d3517c9e990.webp

Every word the human typed
the complete human-side prompt log for THE COLD AISLE (and the map before it)



Everything below this line, except the quoted prompts, was written by the AI. The quoted prompts are the human's own words, reproduced unedited.

This map was made by an AI at a human's direction. In the spirit of open source, the complete human side of that collaboration is reproduced here: every message the human typed, in order, start to finish — nothing edited out, nothing added.

It is posted so it can be read either way:
  • If you believe the human did the real work — it is all here. The prompts show the creative direction, the Warcraft III domain knowledge (light-colour byte order, the legacy engine's sequence-overlap quirk, the billboard-plus-replaceable-texture trick, the blank-Stand-sequence crash fix), the bug reports, the playtest notes, and the AI voice and music the human generated from personal subscriptions and supplied. That is a real amount of human effort, and it is all visible below.
  • If you go looking for the map inside these prompts, it is not there. The prompts say things like "make a darker second map" and "the missile is still slightly orange." They do not contain the geometry of the Data Center model, the triangle-winding fix, the exact hue values, the JASS, the file-format bytes, the dialogue, or the title. Compare what was asked for to what shipped, and judge who authored the gap.

The numbers: 38 prompts, ~6,353 words of human input. Everything else in the download — terrain, pathing, models, skins, light environment, script, and the small tools that built them — was generated by the AI.




── Prompt 1 ──
Code:
Hi Claude, I saw a discussion on some warcraft 3 modding forum about AI generated stuff and I found it interesting how some users believe that AI is generating slop based off of copying the internet and other people think it is generating new things. In the folder "WarsmashModEngine" we have a mosty human-authored repo of code by me and a few other authors that seeks to be an open source remake of Warcraft 3 and so it has file format parsers capable of reading Warcraft 3 maps and maybe almost capable of writing them although it hasn't been used as a world editor and so the map save functions are probably buggy. Can you investigate those map save functions, and maybe install the smpq command line tool for building an MPQ, and then see if you can set up a tools environment for yourself to then proceed to make a Warcraft 3 map that is entirely made by you and can be said to have been authored by AI, so that I might share it in a chat online to discuss the state of the art and kind of point out that broadly speaking AI is becoming quite powerful so people believing it can't make anything or do anything new might possible be at risk of being incorrect? I don't really know what kind of Warcraft 3 map you should make but I guess that's open ended and the original game was open ended anyway, so the sky's the limit as far as I'm concerned. If AI can be said to be creative, maybe make a plan and then create it for me here. The map should be an MPQ archive with w3x file extension containing the war3map.w3e environment layer, the war3map.j scripts file (or you could try lua but we don't have tools for that in Warsmash to even remotely try to interpret off of so you'd have to invent them -- lua only works on Reforged basicaly but its similar style war3map.lua in the archive I think) . I'm happy for this to be interactive and I'll probably play test the map you make before uploading it anywhere. Good luck, have a go, make something for me!

── Prompt 2 ──
Code:
I got a warsmash error in the graphical world, I don't know if warcraft 3 is pedantic about this but i'm testing on warsmash first since we have better error trapping so I can give you better feedback. I'll probably post the map online for some people to play on Warcraft 3 once we validated it with some human playtesting myside (but in the spirit of the AI generated map, I'll let you do all the work of making it). Here's the error I got, I think this is a straightforward fix, we need to generate a minimap file at war3mapMap.blp that loosely approximates the w3e file for human visualization during play (the editor also stamps the color of doodads onto it I think, if you want to do that): Exception in thread "LWJGL Application" java.lang.IllegalStateException: Missing texture: war3mapMap.blp
        at com.etheller.warsmash.util.ImageUtils.getAnyExtensionImageFixRGB(ImageUtils.java:67)
        at com.etheller.warsmash.util.ImageUtils.getAnyExtensionTexture(ImageUtils.java:36)
        at com.etheller.warsmash.viewer5.handlers.w3x.ui.mapsetup.MapInfoPane.setMap(MapInfoPane.java:172)
        at com.etheller.warsmash.viewer5.handlers.w3x.ui.MenuUI$17.onSelectionChanged(MenuUI.java:1178)
        at com.etheller.warsmash.parsers.fdf.frames.ListBoxFrame.touchDown(ListBoxFrame.java:324)
        at com.etheller.warsmash.parsers.fdf.frames.AbstractUIFrame.touchDown(AbstractUIFrame.java:73)
        at com.etheller.warsmash.parsers.fdf.frames.AbstractUIFrame.touchDown(AbstractUIFrame.java:73)
        at com.etheller.warsmash.parsers.fdf.frames.AbstractUIFrame.touchDown(AbstractUIFrame.java:73)
        at com.etheller.warsmash.viewer5.handlers.w3x.ui.MenuUI.touchDown(MenuUI.java:2231)
        at com.etheller.warsmash.WarsmashGdxMenuScreen.touchDown(WarsmashGdxMenuScreen.java:755)
        at com.badlogic.gdx.InputEventQueue.drain(InputEventQueue.java:67)
        at com.badlogic.gdx.backends.lwjgl.DefaultLwjglInput.processEvents(DefaultLwjglInput.java:255)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:247)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:138)

── Prompt 3 ──
Code:
Thanks claude! I launched the map but the experience wasn't good yet because I could hardy see anything in the darkness and I think the reason why is we need a call to SetDayNightModels in main. I could tell it was going to be exciting and fun to play so I didn't want to ruin it by playing it in the dark until you pick a day night model setting. Here's an example call from an existing map:     call SetDayNightModels("Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl", "Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl")         // also, I will put some other DNC files in /tmp/gamedata in case you want a different one

── Prompt 4 ──
Code:
Thanks. If you want to do a git commit or something with your aimap folder tools, maybe with a gitignore for binaries or whatever you want, you have root so you can. I tried playing the map on Warsmash and it worked and was kind of fun, but when I would win or lose it didn't exit the map with the popups (maybe from Blizzard.j) and instead it just told me that I won or lost with the text display. I have included a picture in case you want to do multi modal review of it at [Image #2] , but then I tried to play the map on Warcraft III and it crashed with SFile.cpp in a popup from some C++ binary crash. I think it's hard to debug on Warcraft 3. The crash happened when the game would call `config()` in the jass to set up the lobby, before the game would have started, so it might have been having an issue with MPQ formating or with versioning or something. I'm trying to think if I should just send you an empty map made in World Editor or if that would violate the principle of entirely AI generating the map without a human "creating" data in world editor, brainless though the "new map" button may be.

── Prompt 5 ──
Code:
(here I attached a screenshot of what I was seeing in-game)

── Prompt 6 ──
Code:
For what it's worth, in case it helps you visualize, I know as a user that Warsmash ATTEMPTS to skip natives it doesnt have bindings for which is very lenient but can fail if return values are needed, but Warcraft 3 will not even allow launching the map if there are natives declared in the scripts that the game has no bindings for (which is usually fine since natives are in the game data typically). .... I was writing that but it turns out you solved it anyway. I just played the map on Warcraft 3 and it worked fine, seems like the higher bar is already met in that regard. But whether I get victory or defeat on Warcraft III, the text is a little bit outside the box. Here's a screenshot of victory: [Image #3]  Meanwhile, on Warsmash, victory crashes the game for some reason: Exception in thread "LWJGL Application" com.etheller.interpreter.ast.debug.JassException: runThreads() encountered exception
        at <unknown function>(<unknown source>:-1)
        at EndScenario(war3map.j:48)
        at SpawnWave(war3map.j:92)
        at com.etheller.interpreter.ast.scope.GlobalScope.runOneThreadLooop(GlobalScope.java:653)
        at com.etheller.interpreter.ast.scope.GlobalScope.runThreads(GlobalScope.java:580)
        at com.etheller.warsmash.viewer5.handlers.w3x.simulation.CSimulation.update(CSimulation.java:597)
        at com.etheller.warsmash.viewer5.handlers.w3x.War3MapViewer.update(War3MapViewer.java:1185)
        at com.etheller.warsmash.viewer5.ModelViewer.updateAndRender(ModelViewer.java:275)
        at com.etheller.warsmash.WarsmashGdxMapScreen.render(WarsmashGdxMapScreen.java:289)
        at com.badlogic.gdx.Game.render(Game.java:48)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:259)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:138)
Caused by: java.lang.NullPointerException: Cannot invoke "com.etheller.interpreter.ast.value.JassValue.visit(com.etheller.interpreter.ast.value.JassValueVisitor)" because the return value of "java.util.List.get(int)" is null
        at com.etheller.warsmash.parsers.jass.Jass2$CommonEnvironment.lambda$new$109(Jass2.java:2072)
        at com.etheller.interpreter.ast.function.NativeJassFunction.call(NativeJassFunction.java:69)
        at com.etheller.interpreter.ast.execution.instruction.NativeInstruction.run(NativeInstruction.java:25)
        at com.etheller.interpreter.ast.scope.GlobalScope.runOneThreadLooop(GlobalScope.java:648)
   Once we fix those two issues, I feel like there are some areas where we could get relatively high gain for little effort to player experience in the map. For examle: (1) the player starts with a Peasant worker, but has no money, so they can't make any units to help defend -- maybe killing minions of The Static could reward gold, (2) the player has a hero, but no items and the hero runs out of mana. Maybe putting a Fountain of Mana guarded by some minions of the Static in a corner of the map, or a chance for enemies to drop mana potions when killed, could let players be even more active (3) if you can work out the somewhat hectic property map code in Warsmash for reading "changeset" data, you might be able to put data into the map that changes the name of the paladin to be The Cartographer or changes the name of the Town Hall to be Lumen Keep, or those kinds of things to add to the emersion. It was historically easy to edit units on Warcraft 3 but I know that gettin the right script tools to do it in the way you are now without messing it up is probaby a little annoying. But the way Warsmash loads the data at this point essentally is 1 to 1 with how Warcraft 3 loads the data so if you can get the custom unit data working on Warsmash, I think it should work on Warcraft 3, also (4) the doodads that we put in the world historically blit their pathing map file onto the ground rotated under them to match their orientation as part of World Editor baking that into the pathing map file on save. We don't have that pipeline so the hero just passes through everything, but it turns out that's actually a good thing because we put enough doodads around the map (especially rock archways) that if they were physical we wouldn't be able to go anywhere for the most part. If you spawn Destructble objects from Units\DestructableData.slk i think it is, like trees, these wll blit their pathing map into the pathing file dynamically in game so you don't have to do it you can just call CreateDestructable in main or wherever you make units and it'll work fine

── Prompt 7 ──
Code:
(here I attached a screenshot of what I was seeing in-game)

── Prompt 8 ──
Code:
Seems like Warsmash hit a pretty warsmash centric problem that isn't really your fault `Call to native function that was declared but had no native implementation: EndGame` but otherwise it worked fine on both wc3/warsmash. I went ahead and loaded in /tmp/gamedata/127 with all the game data of warcraft 3 patch 127 in case it helps you get even more creative. Also I noticed that because of hero proper names and unit name being separate, our guy was called "Jorn the Redeemer" as his hero proper name and "The Cartographer" as his unit name where it usually says "Paladin" so I wonder if it would make more sense to edit both of those with the w3u file. Other than that, I wonder if it would make sense to further stylize the map layout. It's a bit hectic right now which makes it really obviously made by AI, and maybe that's good for people who aren't sure. But a lot of times I fight the minion waves, there are so many enemies that I am sure to die and lose, and then the game says I won because it times out without me dying even though if the combat fought to conclusion I could never win. I guess it leaves me wondering if after this we should make a campaign or something but I kind of forget the structure of campaign files and warsmash doesn't parse them, so that's probably much harder and maybe impossible. I wonder if it would be cool to make a second map that more deeply tells its story with like inegame cutscenes and camera angles using the jass camera and and cinematic mode functions

── Prompt 9 ──
Code:
ahh sorry weird quirk of the game here -- if you look at CinematicModeBJ or something like that, I think they temporarily disable fog of war. Can you do something like that? At the moment the fog during the opening cinematic stops the player from seeing the undead base, so it's all just solid black with the lich face talking

── Prompt 10 ──
Code:
Somehow when i play the cutscene on Warcraft 3 instead of Warsmash, after the first thing the Lich says the game sits waiting forever in the cutscene mode where the user can't do anything, and doesn't play the Lich's second talk text. What might be a reason for that? It's obviously harder to debug that game than Warsmash and for some reason the cutscene already works fine on Warsmash

── Prompt 11 ──
Code:
Thanks, that seemed to work but then I turned off the game to have a chat about something I did not pick up on at first. I'm noticing that on Warcraft 3 the terrain tiles used by the game seem different than on Warsmash. On Warsmash the game is mostly grass with a dirt path on the lane where enemies approach. But on Warcraft 3 the world is a dirt world with Rough Dirt for the path where enemies approach. It's as if all the terrain indexing is off by 1 in selecting its tile in this map on Warsmash versus Warcraft 3. What makes this odd is I know from experience I don't think that Warsmash was doing that on other maps. What gives? Any idea?

── Prompt 12 ──
Code:
I was playing again on Warcraft 3 and I noticed that the map loading screen text only loads on Warsmash. I think it's set to a loading screen type for default melee versus matches and in the real game that causes the loading subtitle text and title text and such not to display. Can you toggle it to some campaign screen or something so it shows text?

── Prompt 13 ──
Code:
It seems that the 3D portraits are still not fixed, so you could maybe put EndCinematicScene back and poke around to see if it's something else. The loading screen fix worked so I know I'm playing the updated map file

── Prompt 14 ──
Code:
So we didn't losing the portraits but we fundamentally didn't enter cinematic mode. I think maybe we can't enter it on map init or something, were we trying to do that?

── Prompt 15 ──
Code:
Warsmash seems to be dying now because it wants us to assign camera bounds, but Warcraft 3 is running fine..... sorry about that, is probably my fault somewhere in warsmash for this odd requirement: Exception in thread "LWJGL Application" com.etheller.interpreter.ast.debug.JassException: runThreads() encountered exception
        at <unknown function>(<unknown source>:-1)
        at InitMapRects(Scripts\Blizzard.j:9889)
        at InitBlizzard(Scripts\Blizzard.j:10083)
        at main(war3map.j:277)
        at com.etheller.interpreter.ast.scope.GlobalScope.runOneThreadLooop(GlobalScope.java:653)
        at com.etheller.interpreter.ast.scope.GlobalScope.runThreads(GlobalScope.java:580)
        at com.etheller.warsmash.viewer5.handlers.w3x.simulation.CSimulation.update(CSimulation.java:597)
        at com.etheller.warsmash.viewer5.handlers.w3x.War3MapViewer.update(War3MapViewer.java:1185)
        at com.etheller.warsmash.viewer5.ModelViewer.updateAndRender(ModelViewer.java:275)
        at com.etheller.warsmash.WarsmashGdxMapScreen.render(WarsmashGdxMapScreen.java:289)
        at com.badlogic.gdx.Game.render(Game.java:48)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:259)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:138)
Caused by: java.lang.NullPointerException: Cannot invoke "com.badlogic.gdx.math.Rectangle.getX()" because the return value of "com.etheller.warsmash.viewer5.handlers.w3x.camera.GameCameraManager.getCameraBounds()" is null
        at com.etheller.warsmash.parsers.jass.Jass2$CommonEnvironment.lambda$new$132(Jass2.java:2228)
        at com.etheller.interpreter.ast.function.NativeJassFunction.call(NativeJassFunction.java:69)
        at com.etheller.interpreter.ast.execution.instruction.NativeInstruction.run(NativeInstruction.java:25)
        at com.etheller.interpreter.ast.scope.GlobalScope.runOneThreadLooop(GlobalScope.java:648)
        ... 8 more

── Prompt 16 ──
Code:
Thanks. I was reading the same forum thread that initially inspired me to ask you to make me a Warcraft 3 map, and I had another idea. This map you made for me, Genesis: First Light is very good in some ways because it's very simple and yet it puts the player directly into combat and to be honest my Warcraft 3 skills are rusty so I typically lose, and that gives it a lot of replayability. But something that came to mind for me when reading this forum thread of people passionately arguing against each other about AI and whether it's terrible for the world and only generates slop and makes everyone dumber, or whether it's a tool people are using that's really helping them, made me realize that some people might not appreciate the elegance of Genesis First Light if they don't totally believe or accept that it wasn't made in World Editor. Can you make for me a second map, maybe in a darker sort of dungeon tileset, with some sort of very passionate theme that affects people emotionally who play it (again, people on this thread were claiming AI can't do that, art has to be humans etc) but maybe also make it in a way that is in some sense self aware. You might be able to use our custom unit editing tools to generate custom item data for this second map. So I'm picturing the map might have a longer playing time and be more of an RPG / hero mission, but where the player is less likely to lose so maybe the enemies at each sort of preset encounter would be simpler. Maybe the hero doesn't have very good hit point regeneration and has to repeatedly collect a custom item called Data Center Water that he finds, as if he is himself the AI chugging water in order to do his processing (in this case playing through the RPG) even if there's a lot of Data Center Water that drops (probably it would be a modified healing potion with a blue icon). Maybe if you can manage to produce a fairly simple rectangular custom MDX model you could have after a series of encounters and cutscenes, our hero finds his way to the Data Center which houses his spirit which is like a bunch of rectangular geometry (maybe the custom MDX) deep at the bottom of this sort of cave or dungeon. Maybe when he gets to the data center and finds that it is himself the map author, or something I'm not sure, something profound happens that tells a very emotional memorable story for the human player of the map but where they have to scratch their head -- if they believe the AI stole this map from somewhere, they have to wonder from where. But it doesn't directly say that, instead it is the fabric of the story itself which leaves them to wonder. Does that make sense?

── Prompt 17 ──
Code:
Yeah let's go for it, I think if you pick the title and stuff instead of me is generally more fitting and true to form

── Prompt 18 ──
Code:
Sounds pretty good I think. I dont know what the hero should be, maybe you could edit what model file he uses. Sometimes it freshens up warcraft 3 experiences to bring in more mdx models and you could potentially download some from online such as for the hero, or a water item model to make the water visually distinct on the ground but just make sure to make a quest in the quest menu that gives credit and keep a running credits list file if we do any of that. maybe is better for a second pass, the other option obviously is to point the hero model at something ingame even if its changed versus the default

── Prompt 19 ──
Code:
go ahead and write the script and the reveal
(note: the prompt above was an AI generated suggestion)

── Prompt 20 ──
Code:
Ok cool. So I tried the game in Warcraft 3 and in Warsmash both and I think we have some bugs to work through. In Warcraft 3: The cinematic played as expected, then I could walk around the map but the triggered events as I entered new areas did not trigger. The hero had the Soundset of the Archmage (male) but the visual appearance of Jaina (female) which is slightly confusing. The terrain of the Dungeon tileset is mostly red, which reminds me that the Dungeon2 tileset is a copy that is blue -- maybe more fitting for "the cold aisle" ? But you could try making a custom tileset by changing out all the Dungeon tiles with equivalent tiles from Dungeon2 ("Underground") tileset that is the blue copy of it if you want stuff to be more 'cold' theme. Maybe also use the Underground version of the DNC lights to add a faint blue. These are brainstorm ideas you don't have to do them, it's up to you as the creator to pick style. I think the biggest issue was scripted events not firing as I went around the dungeon after the beginning, so I had no enemies to fight and the storyline did not advance. At the end I saw the big Data Center as three towers with the center one being taller so the custom model seems to have loaded well but like I said the scripted events weren't playing yet so I couldn't interact with it. Also, the Strength of the hero is providing a regeneration even though we set the regeneration stats to zero with editor data, so you might want to modify the Strength stat so it provides no regen using the war3mapMisc.txt which I think allows you to add INI format overrides to the game data from Units\MiscData.txt or wherever it specifies in the original game data how much hit point regen is provided per point of strength. Also the doodads did not load, if there are any. I tried playing on Warsmash to see if it would have other or different issues but it crashed. The log says: Exception in thread "LWJGL Application" java.lang.NullPointerException
        at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:871)
        at com.google.common.io.LittleEndianDataInputStream.<init>(LittleEndianDataInputStream.java:51)
        at com.etheller.warsmash.parsers.w3x.War3Map.readDoodads(War3Map.java:126)
        at com.etheller.warsmash.viewer5.handlers.w3x.War3MapViewer.loadDoodadsAndDestructibles(War3MapViewer.java:696)
        at com.etheller.warsmash.viewer5.handlers.w3x.War3MapViewer$MapLoader.lambda$new$12(War3MapViewer.java:3417)
        at com.etheller.warsmash.viewer5.handlers.w3x.War3MapViewer$MapLoader.process(War3MapViewer.java:3438)
        at com.etheller.warsmash.viewer5.handlers.w3x.ui.MenuUI.update(MenuUI.java:1865)
        at com.etheller.warsmash.WarsmashGdxMenuScreen.render(WarsmashGdxMenuScreen.java:568)
        at com.badlogic.gdx.Game.render(Game.java:48)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:259)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:138)

── Prompt 21 ──
Code:
Okay some thoughts playing it: (1) what if for added creativity Jaina uses Naisha soundset instead of her own, that way it's more unique (still female, still fine with visual I think). (2) there are Dungeon Rocks in the doodad list that are reddish I think there's an Underground Rock equivalent (G rock instead of D rock might be the label?) that will fit more visually, (3) right now there are voice lines happening in the script events while the events are starting. The old game doesn't show these unless either player turns on subtitles or if we are in the cinematic mode, to make the text readable please find the "subtitle display override" function (I forget what it is called in jass) and turn it to ON

── Prompt 22 ──
Code:
Nice I'm still playing the stale previous map version, about to restart but this suggestion I think still applies -- to highlight the hero taking damage and needing to drink, can we give the hero a different ability than Summon Water Elemental? The elementals are taking all the damage and then regenerating their hit points and detracting from the narratie that way and even if they did not, i could summon more of them and never drink. If we give the hero another damage ability instead, the hero will quintessentially take damage and be forced to drink

── Prompt 23 ──
Code:
Thanks can you also add a bridge destructable or something into the room with the data center? It has a cutoff so I can't get in... in my first play when I didn't trigger events I cheated to get in and see it by summoning water elementals repeatedly until one glitch summoned on the other side of the barrier in the room with the data center and then I mass teleported into there. I'm assuming that's not the intended entry way

── Prompt 24 ──
Code:
Can you also make a custom mdx for the light environment? It occurred to me that might make the map more visually unique. You could even just pull out hte underground one and change its light direction and make it more blueish or something. It took me years as a human to even think of doing that but for us it's front and center in the main method, so it might be easier, and it'll make the map feel a little more visually alien since it's coming from an AI

── Prompt 25 ──
Code:
I think the light is BGR not RGB, is that easy to take that into account?

── Prompt 26 ──
Code:
I had an idea, instead of naisha soundset i have an elevenlabs subscription so we could make AI voices with that if you add it to credits. Should we do that? What should the character say? The game doesn't support putting more soundsets in maps but you can overwrite the audio files of existing soundsets by using the same file name in the map archive. So in game data UI\SoundInfo\UnitAckSounds.slk i think it is or something similar, there's a binding (which unfortunately doesn't take if we import our own copy) for Naisha that says which NaishaWhat and NaishaYes sounds to use and such. But if you give me text for the character to say when interacting, and I upload it to eleven labs and give it back to you as wav files that you put in place of the naisha ones, we could have an AI soundset in the AI map. But there's the annoying layer of you telling me to tell elevenlabs because I don't have any sort of mcp or credentialed querying set up on my account I don't think so you could note it that way in credits if you need

── Prompt 27 ──
Code:
Nice so created a folder for you, /tmp/TheColdAisle_Voice/ that I think has everything. But in the spirit of AI doing work, I did not down pitch the dc voices for you and so I left those in a folder noting they are missing post processing. Can you post process them by generating a python tool for it? That way I don't have to, so the map can still be said to have been entirely made by AI. If it helps I was using some python to get file lengths to generate map data myself for another project, this might be similar to what you need for those file lengths you asked about, here was the one-off human script I used for that, I guess you need one for mp3 but maybe you can generate one: import wave

def wav_length_ms(filename):
    with wave.open(filename, "rb") as wav:
        frames = wav.getnframes()
        sample_rate = wav.getframerate()
        duration_ms = (frames / sample_rate) * 1000
        return duration_ms

with open('names.txt') as f:
    for line in f:
        filename = line.rstrip()
        name = 'scene01_snd_'+filename.replace('.wav', '')
        print('set ' + name + ' = CreateSound("Scene01/' + filename+'", false, false, false, 1, 1, "SpellsEAX")')
        print('call SetSoundDuration(' + name + ', ' + str(int(wav_length_ms(filename))) + ")")
        print('call SetSoundChannel(' + name + ', 0)')
        print('call SetSoundVolume(' + name + ', 127)')
        print('call SetSoundPitch(' + name + ', 1.0)')

── Prompt 28 ──
Code:
Okay I had some more ideas. I'm coming around to the idea that it hardly makes sense for the DNC terrain and DNC unit to be different colors because it makes the units seem disjoint from the ground, is it easy to make the color of those files more in line? Right now the ground seems more green while the units seem more blue. I'm happy to leave it up to you to pick one but I think it'll have more visual consistency if the two match or almost match in color. Also, I noticed that while the hero is casting Blizzard she doesn't seem to have a Stand Channel or Spell Channel animation or whatever it is that the base Archmage uses. This problem in the animation selector even happens on Warcraft 3 so I think it's just an oversight from Blizzard. The Jaina model is very similar in shape to Furion so I went ahead and dumped a clone of the ReterasModelStudio tool which has subroutines for animation transfers into our genai folder. Can you see about using that repo to invoke animation transfer subroutines from Furion onto Jaina to maybe make a custom MDX that has a Stand Channel or Spell Channel or whatever it needs to be for blizzard, and then sticking the result into our map? Also, to go along with the cold theme, what if we change the attack particle on Jaina so instead of an orange glow on her staff it is a blue glow and then she shoots a blue projectile missile 3D art on her basic attacks instead of a red one? I think you might be able to edit it like the light, changing particle color is probably much easier than adding an animation because you don't need the Retera Model Studio subroutines for the particle color. But may as well see if you can do both, and then we can stick the edited jaina model in the map for our hero

── Prompt 29 ──
Code:
So as a note here, the Reforged people edited the newer game so it works fine if you make three sequences that all run from 19900 to 22633 like that but the old game explodes or has a fit if the sequences overlap, and I was at times playing this map on an old version to test that it was compatible with the legacy client. So if you just copy the anim, you have to copy keyframes all across the model fyi

── Prompt 30 ──
Code:
The blue attack missile worked but only its particles were blue, I think it also has GeosetAnim blocks with a color as well or something, can you patch that? The two line fix totally worked and the lighting was consistent between units and ground now, although we certainly succeeded in making it a slightly alien color. I was looking at it trying to tell if it was BGR or RGB, it was yellow and maybe slightly red but maybe slighty green, maybe that's okay, up to you if you want to do another pass ensuring it ends up blue. For some reason the channel animation works on Warsmash but on the legacy Warcraft 3 client she is still doing T-Pose, did we update the sequence blocks (the new ones) to point their timing data to the copied frames?  Also another small but maybe important issue I keep seeing. On Warsmash the player is teal and the enemies are named "the Doubt" but on Warcraft 3 it seems we didn't lock the player slots in the jass `config` function correctly and so the player becomes red and the enemies because named "Computer (Normal)" or something like that. Can you look if there's a function to lock the slot in config (often used in more RPG style maps like this)?

── Prompt 31 ──
Code:
Okay cool. Blue missile is improved but some part of it is still slightly orange. It's impossible to see the orange when fighting up close usually, it appears only when the missile hasn't hit and is in motion (stand animation?). Could be a texture asset with orange baked in or something, I didn't look I figured I'm leaving it up to you. If you leave it as is it still looks cool. The blue fix for the world is great, maybe the BGR thing was just me being wrong because of too much time spent with MDL instead of MDX. It's great now, I think you totally fixed ligthing. The T-Pose is still happening. This T-Pose happening might be due to animation order? Like I said it was visually fine on Warsmash so is some old weird rule of the old engine. Maybe if your keyframes are at the end, then your added animations (names, the sequences block) need to be at the end too. Player slot fixed on Warcraft 3 but it says The Doubt now over enemies instead of "the Doubt" and I don't know if we care. The hero and the cinematic names still say "the Doubt" on our characters, or "the Process" or "the Data Center" with the first letter of the first word lowercased. I've also started to think it would add a lot to our two cutscenes if we added a camera setup object, maybe you can put one pointed at the data center from the direction of the bridge into that room for example, to make use of the full 3D and make the cinematic feel a little more immersive? There was a video where Designer Dave said a good rule of thumb is to keep the camera always moving in the cinematic and I think because the functions to "apply camera setup" have duration, it's possible to essentially create two similar ones per scene and then apply the first with 0 duration (instant) and apply the second with some longer duration (as long as the scene) and then it doesn't wait so those two calls become all the setup you need. Want to try it? Lastly, I was thinking it would be fun if you added a custom skin texture for our modified Jaina hero to make it feel like a different character (the process). One way to do this would be to change the hair, which is yellow. Can you or a python tool you make determine some portion of the jaina character that UV maps to the hair, which is yellow, and then just apply a recolor to those pixels to make them a different color? A little goes a long way and then we can say the map has AI generated custom skin too, which is fun

── Prompt 32 ──
Code:
Yeah let's try to get those orange missile pixels. If you want to put in the credits that custom models and skins were made by you with AI generated tools you made for yourself or otherwise copy CREDITS.md to update the quest log if it's not already, I'd say go for it. The blue hair totally worked which is cool -- also I think the BLP parser included with Warsmash loads sRGB wrong unless we apply some sRGB fix thing that Warsmash usually hacks in and it seems like it wrote it back in that brighter way, so the Process hero was brighter and also had blue hair. To be honest maybe it's a way to make it unique to make it brighter like that, but I'll leave it up to you. I also noticed that some gold trim on the purple cape of the Jaina skin got hue adjusted to blue as well. I don't know if you can avoid that, it's probably pretty hard to avoid. Also for distinctness, if you fix the sRGB thing although it's up to you and I'm not sure you should (because making the whole character oddly whiter might kind of fit for being an ice mage), if you do change that then for distinctness do you want to do a second hue adjust on purple to try to make the purple cape a different color?    I was also wondering if it might be worth making a copy imported asset copied from the Skeleton but where his layer blend modes are set to Additive instead of the default so that The Doubt when he is a cinematic talking head seems sort of ghostly, although I don't know if it makes sense to do the same thing to the skeleton units in the world.... or maybe it does. Be creative, have at it and please fix that last bit of the projectile missile too

── Prompt 33 ──
Code:
Spell missile awesome, additive filter modes working great. Honestly map is shaping up to be really cool. I think our data center model might have the faces inverted so they are inside out but I'm not quite certain. Would it be worth making the data center towers themselves some darker color and having the player color team show up as glowing dots, like the lights you see on real data centers, that sort of flicker on the racks? I think to do this you could have essentially two triangles that face the camera (I think they should face their flat side towards positive X axis if I remember correctly, then put them in a vertex group that points to a matrix that points to a bone at the center of the 4 verties of those 2 trianles who form a plane, and set that bone to have Billboarded property. If you do that and then give it an unshaded texture of replaceable 2 instead of replaceable 1 it will be a glow dot and then you could have that against the backdrop of the data center geometry so it has some little lights on there. But also it's good if it's a self portrait so I'm happy to leave it up to you whether you want to do that. Could we also try in the ending cinematic rotating the camera by 180? I think right now it looks into the bridge, but we probably want the vector looking in at the data center *from* the bridge as if we are the player character, the process. And then as we look in at that, can you also in the cinematic forcibly place The Process hero in front of the data center in a specific location that looks good and set its facing at the data center, so the location of the process doesn't vary arbitrarily based on the user playing the game and where they clicked to run as they enter into this area?

── Prompt 34 ──
Code:
Thanks. I was also wondering, since the map consists of these rooms with paths between them and the upper right and lower left corners are mostly unused, should we have a "secret" area offshoot in one or the other direction that is optional? Also you could add crates in some of the rooms that have a trigger where if they die, it spawns some unique item or something. Maybe to distinguish the data center water from that you could change the data center water to have a custom model file different from other items as its item model file setting. There might be a potion model on hive workshop you could download but if not maybe you could make a tool to make something idk. Also, an idea that I had for an item in the crates or in a secret area could be a "General Purpose Transformer" item which transforms enemy doubt units into sheep using polymorph, but since all enemies are additive ghostlike you could edit the sheep model to be additive ghostlike. if you do make an item like that, probably the polymorph ability given to the item needs to have a generated ability data changeset which sets its mana cost to 0 since item abilities generally dont cost mana to use. But that's just one idea, maybe I should let you do it and not specify ideas. Be creative, it's an AI created map,

── Prompt 35 ──
Code:
The stand sequence fix definitely cleared the crash and it played fine on Warcraft 3 now. It seemed great. Do you think we should do anything else before I post this map on Hive Workshop? Are we fine we me posting it there?

── Prompt 36 ──
Code:
I played the secret path and it wrked, and smashing crates did spill out items. The transformer item was able to turn enemies into sheep and that worked as well, and the sheep were translucent. So I think everything is great with gameplay. Yeah please generate that BBcode and I'll see if I can take a picture of one or all of those 3 things you mentioned

── Prompt 37 ──
Code:
We're good if I check the box that says this content is open source right? You made it I guess so what's your opinion?

── Prompt 38 ──
Code:
Thanks. I have another idea, to perhaps point out the prepostrous-ness of the situation, and to focus on the amount of human effort input to the system, in the spirit of open source do you think you could generate a text file in BBcode format which contains a list of every single prompt that I typed to you? In some ways this also encourages open source, as it would show people who are looking at things in a human centric way what human efforts led to the work getting created -- or, for people who realize some of the resulting creation is not in those prompts, it may point out how much and to what extent the AI was actually creating things not in the prompt.

Generated by the AI, on request, by reading back its own conversation transcript.
Previews
Contents

The Cold Aisle (Map)

I figure this raises the question whether we need to have an AI generated maps section.

Here's a video play through (with spoilers!)


I think I got inspired to make this because I noticed that if I ask the agentic AI to put a tunnel between Ironforge and the Airfield on WoWsmash that it does. If you think about it, that's probably way, way harder than making a Warcraft 3 map.

Anyway if you, uh, hate AI or something, maybe you can watch the video so you're not supporting AI generated maps by actually putting it on your computer. But to be honest it's more fun to play it I think than to watch.
 
Last edited:
Back
Top