How to create a super duper SuperTexture, and why you want to
I've been looking into ways to make maps more interesting given the games limitation of 8 ground textures per map, so I set about thinking about possible ways to add unique textures and details for my upcoming mods and maps, I had a few weird ideas I've attached at the bottom for laughs and to possibly spread ideas and find some use for it for someone!
I ended up finding a really nice way of doing it using Doodad-Decals or as I like to call them: super duper SuperTextures, Why would you want it, what is it, what can it achieve?
It should even be possible (haven't tried it just yet) to animate move/show/hide Decals during game play. So you could have the ground texture moving or fading from one texture to another, say to go from Grass to Snowfall and all sorts. Imagine lava rising and covering the lush green planes of your map, with this you could have those lush grass planes set on fire and permanently be replaced by scorched earth after the lava retracts. Note if you animated It's height position it would animate the area it affects fading in.
I did a quick test, this is all done with one single big image texture (2048x2048)
So this is all done with A single Doodad-Decal, Yes, turns out decals are pretty powerful:
Decals are normally only used for small little arrows, numbers or border lines, turns out nothing is stopping you from making them super large and high res, possibly even covering an entire map in one go.
Other bonus is they can have an alpha mask so they show thru underlaying terrain or even other underlaying Decals. And I believe in theory they can have an emissive map making them glow in the dark or even bloom with a glow. Many fancy effects should be possible once we can edit materials/shaders (which we can't do right now rule as Blizzard have not released proper import/export tools for .m3) For example if we could edit the shaders it should in theory be possible to make the floor reflective like water I think, no idea what would happen over uneven terrain.. id like to find out though! But that's just a theory. It might even be possible to animate them or do any of the fancy visual effects you see on units in the game.
They also support Normal/Bump maps so you can have roughness and bump detail painted over uniquely,
They follow the terrain perfectly, though they are limited in the height range they cover intentionally (this may even be hackable in the .m3 file)
So for example if you place a decal at the bottom of a cliff it won't affect the top of the cliff even if it overlaps. You can adjust the height of a Decal using page-up and page-down and you can see It's effects work in all 3 Dimensions. So if you duplicate the decal and place a copy in exactly the same spot but at a different height you can have it affect all heights like shown in above image. It even draws over the cliff face albeit stretched. So above example is done with 2 of the same decals that overlaps.
This should allow for painting in unique details like snow banks/drift, tracks in the mud or tracks snow, all kinda of unique texturing possibilities.
But must be careful of the file size and memory load!
Above is example showing how by changing the height of 2 decals you can make them join in the middle or have a gap of varying size:
Here the decal is lowered and it only affects terrain at that lower height forming a pool, notice the soft edges
It even works across man made cliffs:
So how do you do it?
You can start with the existing Decals the game has right now
If you are lazy and don't mind overriding the existing Decals skip to step 3
Open the DataEditor and goto Actors and search for Decal
You can then right click on that and duplicate it and check all the contents when duplicated:
You can then name it whatever you like mine is HD6Decal
Also Decals are generally small so you need to increase the Art - Scale. Increase this too high and the deal will vanish, not sure what the maximum is, I used a value of around 30 here:
You can also Scale the Decal once placed in the map using KeyPad+ and KeyPad- or by pressing Enter and entering a scale, the scale here is limited to 500% I think.
Now in order to not overwrite existing Decals you need to export the .m3 models it uses, once exported you can open them in a texteditor like notepad+ and search for '.dds' and replace any texture references with ones of your own liking. This is a bit beyond the scope of this guide for now.
Now the Decal set that comes with the beta comes with many variations
If you open up the Previewer, you can search and find the separate Decal m3 models and inspect them:
Here you can see it shows the Material uses a Diffuse Color Texture named 'Decalhazard01_Diffuse.dds' for Decal_14.m3
Knowing this you can go create your own high res texture and replace it. Or if you did earlier you can go into the exported m3 model and change the texture name to anything you like avoiding the need to override/overwrite it.
So go create a big texture can even have an alpha mask, make it 1024x1024px (can go bigger if you are brave and have good GPU) keep it to multiples of 8 in size so the size should always be divisible by 8.
Link: eliteforce2.filefront.com --- DDS_Converter;29412
Once you have the DDS, name it appropriately, if you are being lazy and overwriting then call it 'Decalhazard01_Diffuse.dds'
Then goto Starcraft Editor and click the file icon for Import:
Then goto Data menu and select Import:
Navigate to the folder you want the DDS from and only tick the file you want to import.
Also set Import Path to Assets/Textures/
The game will override any same named textures and assets it finds in your map, making It very easy to override existing models and textures without permanently replacing anything.
You must save the map for the import to work, then you should be able to select it and see an image of it on the right panel. It will laos tell you how big it is, for me a 2048x2048px DDS came out to 1mb with moderate compression and no alpha.
Assets you override or import may not refresh right away so try closing and reopening Editor or map
Goto the Terrain Editor and to Doodad Layer:
Search for your Decal:
And select it and then place it on the map
You can step thru a Doodads variations with ',' and '.' on the keyboard while you have the doodad selected in the editor, or specify it from the properties window (press enter while doodad is selected) You need to select the same variation you edited/replaced.
Once you see it, you can then adjust the scale and position.
Once you place a doodad select it and open the properties and tick on 'Ignore Placement Requirements' this will allow you to place them more freely and have them overlap.
It can be easier to make them overlap by entering the exact XY coords in the top 2 fields. Note you can also rotate Decals.
If you edit the terrain after placing a doodad it won't refresh in the editor, a simple way to refresh is to be in the doodad layer and select All with Ctrl-A then to delete, then to undo. That causes it to refresh and fit to the terrain underneath. It can make editing terrain difficult if a doodad/decal is in the way. In case you were wondering the decals do seem to update properly in game if the terrain changes, just the editor is borked.
I plan to use this extensively in my upcoming free maps and pay for mod:
Shameless Self Promotion:
If you found this helpful or inspiring please let me know and please please check out the work I am doing with StarCraft 2 and my upcoming mods and maps and ADD me or follow me!
Link: www.facebook.com --- 121119821241522
I hope to be showing more interesting tutorials and tips, graphical tricks and sparkly shazzy free bits of re-usable code in future months to come
My name is Alex or Helios or HeliosDoubleSix and I am a Designer/3D Artist
I plan to produce quality content (some free for everyone and some pay for once marketplace is out)
I would love for others to work with so feel free to contact me directly if you are interested
Technical Notes and Considerations:
Now 2048x2048 is probably going to kill some machines, older GPU's can't go over 1024, not sure what happens if it can't, maybe it explodes. Instead of one big texture I could cut it up into smaller squares and just align them. So in theory you can cover a whole map in as much or as little detail as you like. I can already think of one place that might help, if you want to make a Risk game with a big world map, currently a world map big enough to play on is impossible due to the map dimension limit, you could for example shrink the size of all units, zoom in and then rely on this texture to keep the terrain looking crisp and not blurry like it otherwise would be. No bets on how big in file size the map would be though or if it would crash some people? Theres all sorts of issues and limits and actually
Also when you create or export the 'SuperTexture' you can or should use .DDS and DDS has built in functions like various mip map levels which basically means it saves smaller resolution versions of the images, I have no idea if the game uses this at all especially when used on Mac in OPENGL mode. In theory if a computer couldn't load a 2048 pixel image it might fall back to a lower resolution, I am not sure.
When you import the Texture assets or change them you may have to quit and reopen the entire Editor to get it to refresh and update.
Older Experiments and Ideas
Some experiments I did prior from creating 5 solid color textures Cyan Magenta Yellow Black and White and mixing them together on the terrain to make a full color image covering the entire map, this does not use decals at all, and looks fruity as hell!
The color banding is from the low bit depth of the opacity masks used on terrain textures.
Decals just proved to be wiser given the fact the way it blends doesn't quite work to recreate CMYK/Full color image and it has a bit of a white edge along with the very low bitdepth/color banding AND you'd really need a custom tool to edit the masks directly and compute the image (no way you'd do it by hand) but otherwise in theory you could create a full color images across map at a lowish res. Oh and it doesn't support bump/normal maps so the surface would always be super smooth and flat looking.
More subtle example of It's colors.
My new simple map BloodBath, remake of the original BloodBath map from Starcraft 1
It's available in the game on battle.net (when It's working) under the name 'BloodBath - HD6'
I have some nice Round based system working in it too now, where by once you would normal win or lose the game resets with a violent destruction and explosions of existing units. Then repopulates the map with starting resources and gas and plops you back down to fight again. It counts the score in a basic leaderboard and whoever wins the most in 3 or 5 rounds is declared the overall Victor.
Has some issues still with the score screen but otherwise works great, and is a wonderful thing to have on small close quarters maps like this and my Sealand map.
My First map!!
The Glorious Principality of Sealand!
I couldn't make it available on battle.net as it refused to let me because of some words it didn't like that I couldn't find or fix. No doubt blizzard will fix this stupid 'adult' filter for the final game!
A very very close quarters map designed for messing about and learning with friends as we practice. When you die the game resets water rises and drowns all units and buildings making them explode, then resets and you start the game a fresh without having to reload, allows for quick sparing and learning.
Has a paddling mode:
Which looks cool as you have a lil bit of water and everything reflects in it and shimmers.
It also can transition from day to night, at night you can't see past the bushes in the middle, in the day you can see everything.
Game Resetting via a watery grave, the whole map sinks under the water as if on a pneumatic rig of some kind to cleanse a new again.
It's called Optical Flares and is quite quite good
Link: www.videocopilot.net --- opticalflares
Sadly again this helps me little (not at all) in making actual textures or art for lumen, but is cool still.
Adobe Flash, Apple iPad and iPhone, Unity3D, HTML5, FXG, Chrome and Webkit 2... where is this all heading?
Flash is Dead
Ok, no not really, but It's wounded and bleeding and to no sudden surprise to me and many others.
Apple you see has very firmly put the last nail in the coffin for Adobe Flash on the iPhone and the iPad with recent announcements.
Steve Jobs was visibly gushing at the recent iPhone OS 4.0 event, demonstrating his vision for iAds, little animated interactive adverts that don't suck, all made in HTML5, throwing round numbers like BILLIONS and 'have you ever seen anything like this before!!... I havnt'
All at the same time slightly rubbing his genitals in the face of Flash, and rightly so.
This of course followed by the announcement that the new appstore policy would most certainly exclude all Adobe Flash powered apps. *gulp*
Link: www.apple.com --- specialevent0410
My Logo for HTML5
Link: apirocks.com --- html5
Apple have been and are increasingly persuading people to use HTML5 instead of Flash. This is partly because Apple/Steve Jobs hates Adobe for being such a sloth and are no doubt internally fuming that It's taken until Adobe CS5's release (coming out soon) for them to finally use the coding frameworks Apple have strongly been advised them to use since OSX was in very first development. And partly because they don't want anything like that kind of situation ever happening on their new light weight modern mobile operating system that is the iPhone/iPad OS.
Personal disgust aside, Looking purely at the technical reasons, multitasking, battery life and low level hardware features... it makes perfect sense and over time will hugely benefit consumers. Flash on the iPad/iphone is a bit of a shitty citizen and Apple demands higher standards, I suspect they don't much like the idea of the already crammed AppStore being Flooded with quickly ported buggy slow and battery draining shovel ware. This hurts some of the genuinely good apps but if the developer is genuinely good and the app is genuinely good then they would have no trouble justifying porting it properly and re-releasing it. Anything worth doing on the AppStore is worth doing right in Apples opinion.
The reason they didn't let Adobe know that they were going to uhm ban all their efforts is likely because:
A: Apple have always said and persuaded people to USE the proper development tools to make apps and doing anything else will result in your eventual demise.
B: Apple thought it would be bloody hilarious to kick Adobe in the teeth for all the shitty lagging they did back when the Mac was struggling for support and they just floundered about with lazy stop gap measure partial ports of Photoshop right up until the release of CS5.
'Creative types don't care about technical lingo, cross-compiling or the compatibility layers.'
Link: tekkie.flashbit.net --- creatives-should-remind-apple-they-exist
And It's because they don't care they are not aware of how damaging a 2nd class citizen like Flash could be to a mobile platform if it promotes lazy coding or ports opposed to the hard work that goes into making First CLass native applications. And First class is what is needed to facilitate things like multitasking without increasing power consumption.
For every Flash developer that isn't on the iPhone it makes room for native programs and the people who code those, and that is a good thing. Even if it means people have to go out and actually learn another language or invest more effort and energy into something. No ones complaining theres lack of choice on the AppStore, if anything it needs pruning.
SproutCore SquirrelFishes and more?
And theres SproutCore
Which is what Apple actually used to produce It's very polished web apps for MobileMe with a fully featured Mail client as one example.
It has tools coming to visually build 'rich' user interfaces using all kinds of elements you'd expect for building desktop applications, buttons, panels, sliders and so on.
Link: touch.sproutcore.com --- hedwig
Adobes: FXG - Open advancement/replacement of SVG for storing animation/vector graphics in a way that doesn't suck hard
Link: www.andersblog.com --- flash_on_the_be
It's not all doom and gloom for Adobe of course, they are implementing HTML5 tools and conversion from Flash/Illustrator via Dreamweaver. And it looks pretty good too using FXG the open format they designed. They tried to use open SVG for their purposes but SVG turns out to be ass backwards so they tweaked it and improved it and called it FXG.
This is great as lets face it, no creatives were looking forwarded to creating things like Apples new iAds and animating HTML5 using a graphing calculator and a spreadsheet.
Link: www.9to5mac.com --- Flash-html5-canvas-35409730
Adobes Flash Player was one of the more impressive things Adobe have developed (the AS3 runtime engine not the horrible IDE) and It's still pretty inefficient (the graphics part) especially fullscreen on a iPad like device with limited RAM and battery, the IDE's and Tools Adobe make to edit content are generally antiquated and bloated by todays standards too, regardless of how established they are and how monumental they may have been decades ago, Adobe appear to try and get away with as little effort and work as humanly possibly when it comes to Mac support, maximize profits and cut corners, they are slow moving and dogged down by too much baggage and legacy. And they will pay dearly for this as they have visibly pissed Steve Jobs off and rightly so. Saying that though, there are still strong forces for good inside Adobe trying to change things for the better, to open up formats like .FLA and generally promote freedom and choice and interoperability all things this creative professional likes greatly.
But they are moving perhaps too slowly, we shall have to see with CS5 if they have grown enough to stay relevant
It really is time to get on board with open standards and make money from creating GREAT content creation tools, not making mediocre minimally updated content creation tools that rely on locking people into popular but closed systems for distribution.
Link: www.google.co.uk --- chrome
With my new custom icon cus the default one is a gay. Really gay
Flash was a force for good when JS execution was awful and rendering HTML was guaranteed for failure in one browser or another. But that landscape has now changed drastically thanks to Apple with Safari/open WebKit and Mozzilas Firefox and now Google with open Chrome.
And during a tough time like this what you don't need are official Adobe Evangelists spouting complete bollox and looking rather childish:
Apple Slaps Developers In The Face
I had to wipe a tear of laughter from my eye to the recent addition of:
[Adobe would like me to make it clear that the opinions below are not the official views of the company and are entirely my own.]
Yah I bet they would, you raving lunatic
It's a fair first reaction to have, but as an Adobe representative and a grown Adult you're supposed to maintain the company message not confuse matters more with your own reactionary blabbering and name calling. Plus being in that position you'd think he'd actually be required to know anything about what he's talking about. I know more than him and Adobe don't pay me anything.
'let me put aside my role as an official representative of Adobe for a moment' = you just fired yourself, you can't do that and get paid at the same time (I presume he gets paid?)
This kind of oh mummy Apples bad to me crying does nothing to help me take Adobe seriously
It's a tough world, you have to innovate to compete, not recycle, fortunately I believe this is just the idiot few at Adobe (that should be removed) and Adobe as a whole are not collectively as stupid as It's few vocal bottom dwellers.
More laughter ensues: An additional claim that "Apple has timed this purposely to hurt sales of CS5" has been redacted from Brimelow's blog entry at the request of Adobe.
Yah that basically concretes my initial conclusion that he is a massive tool. I wouldn't be surprised if the next redaction turns the site into a big blank page saying they are experiencing technical difficulties as he is forcibly dragged away screaming and sucking punctuating by him sucking his thumb.
"The primary reason for the change, say sources familiar with Apple's plans, is to support sophisticated new multitasking APIs in iPhone 4.0. The system will now be evaluating apps as they run in order to implement smart multitasking. It can't do this if apps are running within a runtime or are cross compiled with a foreign structure that doesn't behave identically to a native C/C++/Obj-C app."
"[The operating system] can't swap out resources, it can't pause some threads while allowing others to run, it can't selectively notify, etc. Apple needs full access to a properly-compiled app to do the pull off the tricks they are with this new OS," wrote one reader under the name Ktappe."
maybe he can find the guys from Adobe Dimension and Adobe Livemotion and form a support group -_-
Unity3D - a forward thinking 3D engine and toolset for creating games for Mac, PC, iPad, iPhone, Wii (and PS3 soon I think)
I do hope none of this impacts Unity3D in a negative way, these guys seem to really 'get it' and produce good tools and good solid performing code.
They seem hopeful that it won't effect them. So fingers crossed for them.
Above: The mighty Apple has seen it all before
Some people have short memories
There are many that think Steve is some kind of control freak who wants the world to revolve around his finger, well, this is maybe partially true but It's also the no.1 reason why Apples products are so unusually interesting and fun and easy and joyous to use, Apple have had a long history of throwing out the old while everyone else is still getting used to it. It has allowed them to remain nimble and grow fast where everyone else is still talking about it and showing concept images.
It's the fundamental way they work, a driving principle behind their success, sure they don't make any friends doing so, and in the past this worked to their disadvantage on many occasion but these days, with Apples power and influence (market/mind share) it doesn't really matter, as Apple now sets standards all by itself. If Apple wasn't this way there would be no reason for them to exist as we already have plenty of mediocre reactionary companies to choose from.
I remember an old Apple Keynote, where Steve jobs revelated in the thought that when Apple and Microsoft join forces they are 100% of the market and anything they decided to do IS standard. This shortly preceding Bill Gates big goofy mug filling the presentation screen to a chorus of boo's as they helped bail out Apple for their own ends.
How things have changed since then, now Apple sets the standards by itself on It's own platform with a complete end to end solution and a freakishly dominate market share.
Apple got the chance to do what they dreamed of for the Mac with the iPhone, unhindered, unrestricted.
I applaud Apple for their vision, they were given the chance to do exactly what they wanted and they TOOK IT like they always have done, but this time without any worry of backwards compatibility or having to court and ass kiss slow moving software corporations to port software.
And now everyone is fighting to make software for Apple devices, and the consumer wins big time, and the creative artist and programmer wins big time too (the good forward thinking ones who don't cry baby that their investment in Flash is dwindling)
And I say all this as someone who has 1000's of hours investment in Flash... *gulp*
Now can we have the same revolution for the Mac Desktop?
Applications that resume where you left off and resume FAST no matter what computer or device your use, preferences and documents that go where you go.
A regulated organised application store for games and tools promoting modern code and good design.
Instant content/document search from a modern metadata file system like ZFS
A Finder capable of leveraging the modern filesystem with organising and displaying all kinds of media, documents, images, photos using modern concepts of stacks and tags and other logical groupings
Resolution independent GUI for high resolution LCD displays of the future, complete with modern GUI widgets and tools for creating powerful easy to use programs around standard components.