Jump to content


Photo

Lionheart-Extracting the Maps


  • Please log in to reply
118 replies to this topic

#21 -Guest-

-Guest-
  • Guest

Posted 13 April 2008 - 12:24 AM

When I use your sample WeiDU converter, I get a diagonal line through the mini-map - a result of the inserted bytes. I've fixed this locally, by inserting the bytes on the right hand side of the map, at the end of each row.

Header (28 bytes)
Offset  Size  Description
0x00	2	 Signature (1032)
0x06	2	 Width in pixels (portraits = 90, areas = 779)
0x08	2	 Height in pixels (portraits = 111, areas = 330)
0x0a	2	 Unknown (variably 0, 1182, 1565, 2624, 3711, etc.)
0x0c	2	 Unknown (64 or 68)
0x10	4	 Data size (areas = 515496-514140 = 1356/54C)
0x24	4	 Data size (redundant)
0x28	x	 Image data (where x = Data size)
y	   z	 Index data? (where y = file size - (data size + 28)

I'm not sure this is entirely correct. It seems that not all FRM16 files have data starting at 0x28. Also, the first two pixels sometimes seems to be repeated.
Presumably the maps themselves are stored in the WAY files, though I've not made much progress - there seems to be a lot of repeated data in them.

#22 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 14 April 2008 - 12:31 AM

Huh. I thought I fixed the pixel slant as of this post, and the WeiDU converter should have that too. Check to make sure there's the FOR routine with the INSERT_BYTES 2 in it. I ran this in batch on all the mini-maps and it converted them all fine. All I had to do was flip them and they look like the ones I posted (in fact, they are the ones I posted).

Now the portraits and textures and "intermediate maps" turned out garbage like I said... maybe you used it on one of those? If not, can you post the file you tried it on?

And yeah, the .way files may store the data, though I'm wondering if they store creature locations etc. They are definitely not compressed and look more like overlays. Maybe Lionheart uses tilesets or something like BG2. I don't think the map data would be hardcoded in the .exe which is about the same size as for BG2 (3.4mb).

Edit: Oh, the format description is only accurate (AFAIK) for the mini-map frm16s, not all frm16s. Most of them don't look like they have data starting at 0x28 because the files are padded with empty zeros for black area, which I've cropped out in some of my maps. They are all 779x330 but rarely take up that whole size.

Edited by Miloch, 14 April 2008 - 12:35 AM.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#23 Isaya

Isaya
  • Modder
  • 294 posts

Posted 14 April 2008 - 08:44 AM

Maybe you found that information before but I'll give it anyway.

When I made a search on the FRM16 file type, I found this link to a Reflexive forum.

File formats and their uses in Reflexive games

At Reflexive, our artists save all their images as .TGA files. These get converted into .FRM file for still images or .SEQ files for a sequence of images that make an animation. These SEQ and FRM files get imbedded into the DATA.DAT file. Data.dat is like an zip archive. It has many files all stored in one file. In contains many sound effects files in .WAV and .OGG format and many images and sequences in .FRM and .SEQ format. The .FRM format uses JPEG compression to make the images very small but it is not the same as a .JPG file because it has some extra information that is copied from the .TGA file and can not be stored in a standard .JPG file. For example, all the images have alpha channels. This controls the opacity of each pixel allowing some pixels to be transparent (not drawn at all), some opaque, and some translucent (partially see through). TGA images support this type of 32 bit data with 24 bits for RGB colors and 8 bits for alpha channels. But TGA images are very large. A .JPG image compress the RGB very well but doesn�t store the Alpha channel. So we use our own proprietary format to store all 32 bits per pixel form a .TGA and save it using JPEG style compression into our own .FRM files (or .SEQ for many images stored in one file).

Those .SEQ and .FRM file are what get shipped with the game in the data.dat file. But what most people notice is the .SEQ16 and .FRM16 files in the cache folder. Those file are not actually shipped with the game. They are created at run time. If you delete them the game will still work. JPEG data takes some time to decompress so the game speeds things up by saving a decompressed version of every .FRM file it loads. So the next time it has to load an image, rather than loading an decompressing the FRM file, it can just load the FRM16 file that has everything already decompressed.

If you wanted to make your own images for the game you would not need to create a FRM16 or SEQ16 file. Those are just cache files. You really want to create .SEQ and .FRM file.

Although the game, Ricochet, is different, it is from the same company (Reflexive), they have the same company logo and they mention Lionheart somewhere on their site. So you can hope this information is true as well for Lionheart.

They don't provide details about the file formats but that post may clarify the content of the FRM16 files.

#24 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 14 April 2008 - 01:48 PM

Maybe you found that information before but I'll give it anyway.

When I made a search on the FRM16 file type, I found this link to a Reflexive forum.

Thanks - that is interesting stuff - I hadn't seen it before. Maybe I will try to tweak my converter to output to TGA format instead of BMP. It makes a little more sense with the extra index data. But the FRM16 files will still be just the minimaps (and portraits, textures, etc.). Still need to find how the large maps are stored. There are no FRM files as that link describes. I looked at Ricochet Xtreme (which is included with Lionheart) which is similar but slightly different - it does have FRM16 files though. Also there are JPGs in Ricochet but I can't find any in Lionheart.

I used the .rar trick leahnkain described and got loads more data than originally. It has some minimal spec information which seems to indicate the level frm16s are "AutoMaps" and the .way files are "WayPoints". The latter might be something like a search map. I also extracted a bunch of .zax files for each level. These look like .xml or .ini files if you open them in a text editor, and seem to describe all the properties of each area, including elevations, light overlay and fog of war maps. However, it still doesn't look like it contains the actual image data for the areas so we still need to figure that out. I'll paste the contents of an "empty scratch map" .zax file and attach an archive with more, including the .zax for the Temple District and a small house inside it. Eventually we will figure this out with enough people looking at it.
CLayerSaveData
{
	Custom Map Properties=
	Music Mix=CMusicMixerData
	{
		Num Seconds To Switch=5
		Full Mix Song=Main Menu/Main Menu.ogg
		Med Mix Song=Main Menu/Main Menu.ogg
		Ambiant Song=Main Menu/Main Menu.ogg
	}
	Width=4097
	Height=960
	Action Queue=CActionQueue
	{
		Items=Array
		{
			Item Count=0
		}
	}
	Suggested Num Players=4
	Max Players=No Limit
	Default Game Type=QuestMode
	Allowable Games=
	Has Begin Been Called=0
	Map Description=No Description Entered
	First Fire Action=
	First Load Action=
	Environment Type=Padded Cell
	Rolloff=5
	Environment Size=7.5
	View Position=65.000000,210.000000
	Int View Position=65,210
	Partial File Name=Empty Scratch map
	Team Info=Array
	{
		Item Count=1
		Team Info=CTeamInfo
		{
			Spawn Point Name=start here
			Re-Spawn Point Name=
			Model Type=!Unknown Model
		}
	}
	Ambient Sounds=Array
	{
		Item Count=0
	}
	Shake Time=0
	Max Shake Time=0
	Pixels To Shake=CLengthEnvelope
	{
		Start Value=0
		End Value=0
		Speed=0
		Ending Behavior=Stop at end
		Current Value=0
		Using Start=1
		Direction=1
	}
	Last Shake Delta=0.000000,0.000000
	Active Paths=
	Path Data=CWayPointMap
	{
		MinDistBetweenWayPoints=20
		MaxDistToConnect=39
	}
	Monitor=CUpdateMonitorList
	{
		Monitor List=Array
		{
			Item Count=0
		}
	}
	Disable AutoMap=0
	Left AutoMap Clipping=Left UnClipped
	Top AutoMap Clipping=Top UnClipped
	Right AutoMap Clipping=Right UnClipped
	Bottom AutoMap Clipping=Bottom UnClipped
	AutoMap X Offset=0
	AutoMap X Scale=0
	AutoMap Y Offset=0
	AutoMap Y Scale=0
	Tree List=CSortList2D
	{
		Level Part=CEntityBase
		{
			Name=Start Here
			Child List=
			Visible=0
			Collideable=1
			Half Height=0
			Full Height=1
			Tries To Collide=0
			Has Hit Points=0
			Stationary=1
			Active=1
			Is Temporarily Excluded=0
			Is Marked For Deletion=0
			Activity=Array
			{
				Item Count=1
				Activity=CSpawnPointAI
				{
					Marked For Deletion=0
					Broadcaster=
					Spawn Action=CSeriesAction
					{
						Action=Array
						{
							Item Count=2
							Action=
							Action=
						}
						When Done=Repeat Last Action
						Require Success To Advance=1
						Next Action Index=0
					}
					Set Facing Angle=0
					Facing Angle=180
				}
			}
			Category=
			Team Number=Nutral
			Used In=QuestMode
			Current Target=
			Broadcaster=
			Model=Editor/Spawn Point
			Position X=251
			Position Y=282
			Rendering Height=0
			Rendering Height Float=0
			Cur Sequence=Idle
		}
	}
	Plasma Ground=CPlasmaTileMap
	{
		Blending=1.27591e+010
		Num Textures=0
		Elevations Row 0=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 1=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 2=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 3=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 4=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 5=0000008E8E8E8E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 6=0000008E0000008E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 7=0000008E8E8E8E8E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 8=000000008E8E8E8E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 9=000000008E8E8E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 10=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 11=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 12=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 13=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Elevations Row 14=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Light Overlay Row 0=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 1=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 2=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 3=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 4=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 5=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 6=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 7=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 8=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 9=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 10=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 11=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 12=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 13=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Light Overlay Row 14=808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
		Fog Of War 3 Row 0=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 1=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 2=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 3=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 4=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 5=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 6=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 7=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 8=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 9=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 10=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 11=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 12=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 13=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
		Fog Of War 3 Row 14=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
	}
}
Attached File  zaxdata.rar   59.98K   342 downloads

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#25 leahnkain

leahnkain
  • Modder
  • 8437 posts

Donator

Posted 18 April 2008 - 06:11 AM

So far, I have had no luck. Has anyone been able to figure out more?

Edited by leahnkain, 18 April 2008 - 06:12 AM.

Longing for the old pen and paper modules of the 70's and 80's. Experience AD&D's greatest adventures using the infinity engine: Visit our homepage at http://classicadventuresmod.com/


#26 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 01 May 2008 - 09:26 AM

I haven't had a chance to look at this, but I did notice the .mdl16 files might shed some light. They seem to represent some of the static objects on the maps, but I don't know if any of them make up the maps themselves, it's possible. I was hoping a guru would've figured something out by now though :(.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#27 leahnkain

leahnkain
  • Modder
  • 8437 posts

Donator

Posted 03 May 2008 - 08:32 AM

I still haven't given up, but I have had no luck so far. Anyone's help would be great.

Longing for the old pen and paper modules of the 70's and 80's. Experience AD&D's greatest adventures using the infinity engine: Visit our homepage at http://classicadventuresmod.com/


#28 leahnkain

leahnkain
  • Modder
  • 8437 posts

Donator

Posted 11 May 2008 - 02:57 AM

Anyones help is welcome. This will benefit a lot of mods.

Longing for the old pen and paper modules of the 70's and 80's. Experience AD&D's greatest adventures using the infinity engine: Visit our homepage at http://classicadventuresmod.com/


#29 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 18 May 2008 - 04:23 AM

Ok, I took a break from modding to look at this again. Amazing what a fresh perspective can do. I think I have at least a vague idea of what all the area-related files are. That doesn't mean I understand all the formats completely, just their potential uses.

FRM16 files are 2D graphics used for various purposes - portraits, minimaps, textures, etc. They are similar to TGA (Targa) graphics and can be converted to bitmaps, though each type of frm16 seems to differ slightly. The minimaps are like MOS files in IE. The textures are somewhat like TIS files, only without the overlays (which are mdl16 files).

MDL16 files are "3D" graphics used for overlay models like houses, buildings, trees, creatures, items, etc. I suspect they can be seen from different aspects depending on how you place them, how many frames are in the model, etc. These are probably somewhat similar to BAMs in IE.

SEQ16 files are simple animations, largely for GUI elements like cursors it seems. These are probably like animated GIFs. They don't seem to factor in the area files themselves.

WAY files are "waypoint" definitions for area maps. I suspect this is somewhat like a WED file in IE and/or a search map.

ZAX files contain the map definitions (sounds, models, properties). This file specifies where to place various graphic elements on the map, but not any actual graphics. For example, in Temple District.zax, it indicates there is a Cathedral model (mdl16) at X35, Y878 on the map. It does the same for trees, houses, walls and so on. Toward the end of file is a list of background frm16 textures (grass, water, etc.). However, this is not like a BG tileset since it is just the texture without the overlaying models. Also near the end of the file is a height map (elevations) and light map (light overlay). This is somewhat like an ARE file in IE.

Basically, to translate the big maps, we'd have to figure out the mdl16 format. Then we'd have to come up with some sort of automated routine that would be able to place the multitude of mdl16s overlays and frm16 underlays on a larger map as defined by the zax file. And although I could conceivably figure out former the same way I hacked the frm16 minimaps, it's way beyond my skill to handle the latter. That would probably require some sort of automated tool the likes of DLTCEP or NI.

So there are two options here. One is you could just decide to go the screenshot route. As much of a pain as it is, it might be quicker in the short run, especially if you can enable some sort of cheat or other means of clearing/exploring the whole map so you can get decent screenshots of it. I haven't played or looked into Lionheart enough to know if you can do that.

The second option is to keep trying to recruit the skill (particularly the programming skill) required for the automated conversion. In the long run, this would facilitate conversion of any number of maps, possibly including all the related data like search maps, wall groups and so on. But it'd need someone who knows a programming language like Java or C++ (which is what NI and DLTCEP are written in).

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#30 leahnkain

leahnkain
  • Modder
  • 8437 posts

Donator

Posted 19 May 2008 - 07:37 AM

Hopefully someone can help out. These maps are truly a great asset to all modding teams.

Longing for the old pen and paper modules of the 70's and 80's. Experience AD&D's greatest adventures using the infinity engine: Visit our homepage at http://classicadventuresmod.com/


#31 jcompton

jcompton
  • Modder
  • 492 posts

Posted 19 May 2008 - 08:27 AM

This is interesting, but I have to wonder if the effort isn't being misdirected.

One of the few pleasant surprises I had seeking talent for The Broken Hourglass was how many 3D artists out there are capable of doing competent-to-great work on isometric areas. It is not an alien concept to most 3D artists the way that creating sprites is. So a comparatively large group of people out there who can do this stuff and create good results.

What's always been brutal beyond belief is the process of getting markup data into the Infinity engine--occlusions, doors, trigger regions, etc. And that's been one of the key things that has strangled new area development.

Rather than working out ways to translate from Lionheart's markup data to the Infinity Engine's markup data, you might do better for everyone by coming up with more sensible ways for people to import that data for brand-new areas. Technology like Triangle makes it feasible to do (sort of) automated import of silhouette renders to create occlusions (wallgroups), as one example. (Trivia note: Bioware and Interplay didn't have automated tools--but they did have budgets sufficiently large to just pay sad souls to sit around doing nothing but polygon tracing for months on end.)

By focusing on ways to take 3DS/Lightwave/Maya/whatever output (which is in "known formats") and converting it to IE (another "known format"), you both skip the screwing around with Lionheart unknowns bit, and make it easier for people to create new areas.

#32 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 19 May 2008 - 11:08 AM

One of the few pleasant surprises I had seeking talent for The Broken Hourglass was how many 3D artists out there are capable of doing competent-to-great work on isometric areas.

Well, sure, if you're willing to pay them, that might be different. But lately here, simple area art requests go unheeded for months - even requests just to edit small areas - and that's just the map, not the markup data. Maybe all the erstwhile IE area artists are working on TBH. Maybe they're making WoW mods. But if they're around these forums, they're lurking pretty deeply.

DLTCEP actually does a decent job with the area markup data. Yes, it's still time-consuming, it could be improved, and a new tool with more automation would be welcome, but it's better than the alternative. I'm not even sure what the alternative is - I couldn't imagine doing it with NI. At least DLTCEP gives you a visual representation of the area.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#33 jcompton

jcompton
  • Modder
  • 492 posts

Posted 19 May 2008 - 11:38 AM

Well, sure, if you're willing to pay them, that might be different. But lately here, simple area art requests go unheeded for months - even requests just to edit small areas - and that's just the map, not the markup data. Maybe all the erstwhile IE area artists are working on TBH. Maybe they're making WoW mods. But if they're around these forums, they're lurking pretty deeply.


Oh, you'd have to expand the search radius for certain, but you can start to tap the pretty wide universe of "people who know how to create landscapes in Maya/3DS/Lightwave and will do so for free/portfolio material/just to be involved in a game." I assert that anybody you can find around the existing Infinity mod scene is already far too aware of all the reasons their area will probably end up never being used correctly to want to bother, or is actually a softcore porn writer masquerading as a 3D artist. Indie gamer and FPS mod sites have a much lower pornographer-to-artist ratio.

In short, with better tools, you start to actually introduce the possibility of getting people to create areas who do not otherwise have to be well-versed in the minute insane details of Infinity Engine operation--and that would be a good thing if your goal is in fact to have lots of new areas available to you.

DLTCEP actually does a decent job with the area markup data. Yes, it's still time-consuming, it could be improved, and a new tool with more automation would be welcome, but it's better than the alternative.


Yes, I know that DLTCEP for area creation is better than being beaten with a bag full of sharp rocks, but it's still nowhere near an automated approach and relies far too much on "draw this polygon, and draw it correctly, in the right shape and sequence, etc. etc." to make serious area creation feasible for anybody but the truly dedicated--and they're all burned out now.

I'm not even sure what the alternative is - I couldn't imagine doing it with NI. At least DLTCEP gives you a visual representation of the area.


I'd be willing to discuss and potentially share some of our code with someone serious and qualified to do something with it. (Ocaml alert.)

Edited by jcompton, 19 May 2008 - 11:40 AM.


#34 leahnkain

leahnkain
  • Modder
  • 8437 posts

Donator

Posted 19 May 2008 - 03:15 PM

If you look through the art request you will see that Classic Adventures has had little luck with people offering to help us with maps. We would love a 3d artist to help us but I know it is an impossible dream. Sir Kill has be the only one to offer us any real help in this area. Tha main reason why I am hoping to get these maps is it will save everyone a lot of time and effort. I have made a city the same size as BG, I know how much work it is. Not many people will do this for free. if you know of anyone who wants to help that would be great. jcompton, if you try CA, you will see that we are trying to make a whole new world for the players to mod in. We would love to hear your feedback.

Longing for the old pen and paper modules of the 70's and 80's. Experience AD&D's greatest adventures using the infinity engine: Visit our homepage at http://classicadventuresmod.com/


#35 jcompton

jcompton
  • Modder
  • 492 posts

Posted 19 May 2008 - 05:14 PM

If you look through the art request you will see that Classic Adventures has had little luck with people offering to help us with maps. We would love a 3d artist to help us but I know it is an impossible dream.


As I said, you'd have to go outside the IE modding sites to get the artists--which, although they look big, simply don't attract the type of talent you need for area creation anymore because in years and years of modding, it's always been so brutally difficult to wire up areas. (As a secondary issue, it's rather inconvenient to introduce new worldmap locations, but I guess for TC-type mods that's less of a concern.)

The indie gamer, student, IGDA, and FPS mod sites are absolutely overflowing with people who can do landscape rendering.

But my argument is that you need to also include the extra incentive that their work is likely to actually end up being used, and you'll need better, more automated tools in order to get there--because manually wiring up areas just drives people nuts. Automating the occlusion (wallgroup) process would be a really major step in that direction. With the right tools, a lot of pain can be taken out of the process.

Actually, it occurs that our bmp2polylist process could be adapted by someone willing to just write an XML->WED parser, you probably wouldn't even need to touch the ocaml code, just use our existing executables which interact with Triangle.

But it's not up to me, I don't personally have enough of a stake in IE area creation to push this. Just telling you the opportunities I see.

#36 -S-K-

-S-K-
  • Guest

Posted 21 May 2008 - 09:34 AM

capable of doing competent-to-great work on isometric areas

really? you should post some of those pics when you get to updating the site

brutal beyond belief is the process of getting markup data

oh? that is the hard part?

#37 jcompton

jcompton
  • Modder
  • 492 posts

Posted 21 May 2008 - 11:04 AM

oh? that is the hard part?


This isn't a straight value judgment that "drawing convex polygons and aligning door tiles is harder than staging good landscapes in 3DS." But it is the part of the process which is the one most meaningfully holding back area creation--because, yes, you can find more people willing and able to stage good landscapes than to painstakingly and accurately trace convex polygons.

Edited by jcompton, 21 May 2008 - 11:04 AM.


#38 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 22 May 2008 - 03:57 AM

One of the reasons I started looking at this was I thought Lionheart had some great area art, but suffered from gameplay and engine issues. So the prospect of seeing the maps in the BG2 engine was an enticing one.

Having said that, I'm sure we'd all like to see brand new areas as well - jcompton makes a good point about looking elsewhere. I'm not really connected to online art communities, so I'm not sure where you'd start looking, but maybe he or others here would have suggestions. The IGDA is a paid-membership organisation and not exactly cheap for your average hobbyists who don't do this for money, but you can get a free account there (no access to member profiles though).

Actually, it occurs that our bmp2polylist process could be adapted by someone willing to just write an XML->WED parser, you probably wouldn't even need to touch the ocaml code, just use our existing executables which interact with Triangle.

You scared me a bit with the OCaml alert, but if it's just an XML>WED parser, it might be worth looking into. Whether CA gets areas from elsewhere or finds people to draw fresh ones, they'll still have to do the dirty work.

Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#39 jcompton

jcompton
  • Modder
  • 492 posts

Posted 22 May 2008 - 06:01 AM

I'm not really connected to online art communities, so I'm not sure where you'd start looking, but maybe he or others here would have suggestions.


There are tons, but I'd suggest beginning with these:

http://forums.indiegamer.com/
http://forums.cgsociety.org/

You scared me a bit with the OCaml alert, but if it's just an XML>WED parser, it might be worth looking into. Whether CA gets areas from elsewhere or finds people to draw fresh ones, they'll still have to do the dirty work.


If you wanted to customize the output in any way it would result in an Ocaml alert, but if you can work with this (and yes, the fractional value is intentional, so your importer would have to deal with rounding it off) then we can talk. bmp2polylist has a second output mode in which every object is exported as a separate xml file (distinguished with the upper-left bounding box coord in the filename), instead of commingled as they are here, if that makes any difference. I have attached a representative map and its bmp2polylist output to this message.

<xml>
<!-- automatically generated by WeiNGINE's optpolylist -->
<p>
  <v x="716" y="434"/>
  <v x="689" y="455"/>
  <v x="665" y="380"/>
</p>
<p>
  <v x="440" y="639"/>
  <v x="420" y="654.5"/>
  <v x="417" y="656"/>
  <v x="341" y="620"/>
</p>
.
.
.
</xml>

Attached Images

  • TAVERN_V1_occlusion_walls1.png

Attached Files


Edited by jcompton, 22 May 2008 - 06:51 AM.


#40 Avenger_teambg

Avenger_teambg
  • Member
  • 604 posts

Posted 23 May 2008 - 04:58 AM

dltcep doesn't rely on dexterity like ietme. You can modify/insert/delete vertices of a polygon, you can shift it around.
If there are ideas for automating some process, even importing some 3d designer format, i can try it.
Avenger