Skip to content

rfc00001 automatic generation of faction decals

jpgerdeman edited this page Jul 24, 2012 · 4 revisions

#RFC 00001 - Automatic Generation of Faction Decals ##Overview Create faction specific decals by automatically inserting faction symbols into plain "suits".

Basically an armor like the following can be used to generate n more decals, wehere n is the number of factions.

=> or

##Motivation Counting 16+ faction logos (n) and a vast array of possible torsos (m), ranging from knight to varsity Jacket, we're faced creating n*m images.

While creating these n*m images once is possible, maintaining them to keep up with improvements in the torso or logo design will be troublesome. Each improvement in a torso design will require to recreate n images and each logo correction will require m new images.

##Proposal Every factionable "suit"-decal will be put into a special directory faction-base . These svg images will have to define a rectangular area. This area will have the id "logo-box" attributed to it.

<rect
   id="logo-box"
   width="15.786813"
   height="11.113086"
   x="-40.297916"
   y="1.5655639"
   />

An XSL-Transformation now only has to scale the logo and place it in "logo-box"'s center. Afterwards it deletes "logo-box" and saves the newly created svg as "factionname/name_of_suit".

The rectangular area is chosen because it is easy to determine its bounding box. Placing a logo in it is simply a metter of proportionally scaling it to fit either height or width and centering it in the box. ##Limitations The proposal as it stands is limited. Logos will fill out the logo-box not the most ideal space. Compare the following images. The left one fills the bounding box, while the right one fills it more fitting with regards to the logo itself.

This could be remedied by not limiting ourselves to a rectangular shape. On the other hand this would dramatically increase the complexety of any XSL-Script as well as the complexety involved in creating such a "suit".

Another limitation is design. The factions not only feature different symbols. They also differ in colors and in aesthetics. The replacement of colors could be handled as well by mapping colors, something like:

<msd:factioncolors>
	<faction type="bat">
		<source>light grey</source><target>dark grey</target>
		<source>dark yellow</source><target>bright red</target>
	</faction>
</msd>

A decal could then start to look something like:

While this is a vast improvement it still not solve the aesthetics. The boars seem to favor spikes and bolts. The Bears seem a lot more rugged. ...

##Comments:

jpgerdeman:

  • Do we really need to maintain decals?
  • In spite of its limitations, this actually might prove useful. => We should review this again later.

nickab:

I think there are two possible ways to deal with factions:

  • Generate by user request
  • Auto-generate after commit (with something like continues build server)

Personally I do prefer first variant. We can set-up special folder where torso templates (with logo placeholders) will be placed. Then we can build github page that contains javascript which allows visitor to select torso template and symbol (logo) from list of available designs, replace torso colors from list of predefined values and export resulting SVG. So we don't have to generate and keep lots of faction torsos which might not be used, but end user still gets easy to use way to generate which ever design he won't combining torso, logo and colors. So basically for the second solution we need:

  • Special folder to keep torso templates. Or text file listing all available torsos (containing paths to raw SVG)
  • Text file containing list of all logos available (containing paths to raw SVG)
  • List of colors
  • Github page with JavaScript which will list all torso, logo and color options based on above files, and replace tags inside SVG

jpgerdeman:

The continuous generation still holds some appeal, but I don't think it is a method to create good high quality decals :/. Just creating them when a user requests them seems more feasible and easier to maintain on the long run. If we have everything in place it's a matter of minutes to just create one by hand.

OtOH I really like the idea of a paperdoll type applet. Do you have any experience with that?