Jump to content
SubSpace Forum Network

Recommended Posts

Posted

The only thing confusing about those ships is that the textures look strikingly simular to the VIE textures. Other than that, it's nothing IMO.

I'm working on a Photoshop action that generates a tileset based off 1 vertical tile. I'm sure there is a much better way to generate a tileset in C or even Javascript. I know the mathematics involved with making a tileset but I don't know any programming. I hope someone that looks at my work here can figure out a much better 1 click tileset generator, or at least point me in the right direction (which language to use, which parts of the language to use and example usage to get me started) would be nice.

 

Anyways, here are the brush presets for photoshop I use to make tilesets: (use them as pencil eraser)

 

http://ssdev.hlrse.net/tileBrushes.abr

 

Here is step1 and step2 of the action to generate a tileset: (step three is still giving me some trouble but produces the rest of the tileset along with diagonals)

 

http://ssdev.hlrse.net/tileGen.atn

 

Usage: (going to make a video when I have time)

 

Make a new document with black background 256x256.

Set grid to 16 with 16 subdivisions.

Load tileGen brushes.

Draw a vertical tile at the topleft of the document.

Load and run step1 from tileGen action.

Grab eraser tool in pencil mode and utilize them to trim the edges of the tiles. (if you can't figure it out, wait for video)

Run step2.

 

Working on step3.. It's giving me a small problem that I can't quite pinpoint the cause of.

Posted
The tool in DCME fails on any tile that isn't symmetrical. No shading. Test it out for yourself.. It'd be nice to get that fixed and maybe pull it out of DCME as it's own .exe.. It seems your generator simply takes half the tile and flips it around. If it were to take the whole tile and add a few exact cuts (see brushes), duplicate, move, and layer some elements; it would create great tilesets of any style and it would be simple after that to add support of 32x32 based tilesets.
  • 3 years later...
Posted (edited)

Well Samapico, not really :/

It WORKS as in it can mirror half a tile and create a decent tileset (but with no lighting/shading). The method I use above involves no mirroring, so half the tile can be one shade while the other half is another - giving the tileset lighting effects.

 

You never used the method I use for DCME. If you watch the video's I'm sure you'll understand the geometry. It's pretty simple once you wrap your head around it. You can probably simplify it.

Edited by Aquarius
Posted (edited)

Here's an example. The red tiles on the left have shading / lighting effects. If I ran one of the vertical red tiles through DCME, it would give me a solid red block because DCME doesn't perform the geometry - it simply mirrors half of the tile. But the yellowish/greenish tiles on the right have no shading / lighting. If I ran one of the yellow vertical tiles through DCME, it would give me the same corner tiles you see here, because the yellow tiles are the exact same on both sides.

 

http://subspace-continuum.com/shading.jpg

 

 

 

 

 

This red tile below has shading, the right half of the tile is a slightly darker shade of red.

http://subspace-continuum.com/haslight.png

 

This yellowish / greenish tile below doesn't have shading. The right half is the exact same as the left half.

http://subspace-continuum.com/nolight.png

 

 

Make any sense?  :p

In my video tutorial I use a specific method that works on any vertical tile to create a tileset.

2x2, 3x3, 4x4 tilesets (four tiles make up one vertical pipe) can also be created using the method in my video.

DCME does not perform the geometric process as shown in my video, so it cannot handle shading. Or any other tile that isn't the exact same on both sides.

Edited by Aquarius
Posted

In case you wonder, this is the source of generating walltiles (well at least in the version I still have). It should be fairly straight forward what it does:
 
It flips, mirrors, rotates, then takes the |\  and \¨|  from the horizontal and vertical parts, and combine them for the corners






Sub GenerateWallTile()
    Dim i As Integer
    Dim j As Integer
    Dim srchDC As Long
    Dim myDC As Long
    
    
    picgenWallTile.Cls
    
    srchDC = pictileset.hDC
    myDC = picgenWallTile.hDC
    
    'Copy vertical tile
    BitBlt myDC, 0, TILEH * 1, TILEW, TILEH, srchDC, leftsel.Left, leftsel.Top, vbSrcCopy
    BitBlt myDC, TILEW * 2, TILEH * 1, TILEW, TILEH, srchDC, leftsel.Left, leftsel.Top, vbSrcCopy
    
    'Rotate 90
    BitBlt myDC, 0, 0, TILEW, TILEH, srchDC, leftsel.Left, leftsel.Top, vbSrcCopy
    Call RotateCW(myDC, 0, 0, TILEW)
    
    'Spread the rotated tile
    BitBlt myDC, TILEW, 0, TILEW, TILEH, myDC, 0, 0, vbSrcCopy
    BitBlt myDC, TILEW * 2, 0, TILEW, TILEH, myDC, 0, 0, vbSrcCopy
    BitBlt myDC, 0, TILEH * 2, TILEW, TILEH, myDC, 0, 0, vbSrcCopy
    BitBlt myDC, TILEW, TILEH * 2, TILEW, TILEH, myDC, 0, 0, vbSrcCopy
    BitBlt myDC, TILEW * 2, TILEH * 2, TILEW, TILEH, myDC, 0, 0, vbSrcCopy
    
    'Corners...
    'Top-left
    For i = 0 To 15
        BitBlt myDC, 0, i, i, 1, myDC, 0, TILEH + i, vbSrcCopy
    Next
    
    'Top-right
    For i = 0 To 15
        BitBlt myDC, TILEW * 2 + i, TILEH - i, 1, i, myDC, TILEW * 2 + i, TILEH * 2 - i, vbSrcCopy
    Next
    
    'Bottom-left
    For i = 0 To 15
        BitBlt myDC, i, TILEH * 2, 1, 16 - i, myDC, i, TILEH, vbSrcCopy
    Next

    'Bottom-right
    For i = 0 To 15
        BitBlt myDC, TILEW * 2 + i, TILEH * 2, 1, i, myDC, TILEW * 2 + i, TILEH, vbSrcCopy
    Next
    
    'Center...
    BitBlt myDC, TILEW, TILEH, 8, 8, myDC, TILEW * 2, TILEH * 2, vbSrcCopy
    BitBlt myDC, TILEW + 8, TILEH + 8, 8, 8, myDC, 8, 8, vbSrcCopy
    BitBlt myDC, TILEW + 8, TILEH, 8, 8, myDC, 8, TILEH * 2, vbSrcCopy
    BitBlt myDC, TILEW, TILEH + 8, 8, 8, myDC, TILEW * 2, 8, vbSrcCopy
    
    
    'T's
    'Top T  ¯|¯
    
    For i = 1 To 7
        j = 16 - 2 * i 'width to copy
        
        BitBlt myDC, TILEW + i, TILEH - i, j, 1, myDC, i, TILEH - i, vbSrcCopy
    Next
    
    'Left T |-
    
    For i = 1 To 7
        j = 16 - 2 * i 'height to copy
        
        BitBlt myDC, TILEW - i, TILEH + i, 1, j, myDC, TILEW - i, i, vbSrcCopy
    Next
    
    'Bottom T _|_
    
    For i = 1 To 7
        j = 16 - 2 * i 'height to copy
        
        BitBlt myDC, TILEW + i, TILEH * 2 - 1 + i, j, 1, myDC, i, TILEH * 2 - 1 + i, vbSrcCopy
    Next
    
    'Right T  -|
    
    For i = 1 To 7
        j = 16 - 2 * i 'height to copy
        
        BitBlt myDC, TILEW * 2 - 1 + i, TILEH + i, 1, j, myDC, TILEW * 2 - 1 + i, TILEH * 2 + i, vbSrcCopy
    Next
    
    
    'Straights...
    
    'Vertical
    BitBlt myDC, TILEW * 3, 0, 8, TILEH * 3, myDC, 0, 0, vbSrcCopy
    BitBlt myDC, TILEW * 3 + 8, 0, 8, TILEH * 3, myDC, TILEW * 2 + 8, 0, vbSrcCopy
    
    'Horizontal
    BitBlt myDC, 0, TILEH * 3, TILEW * 3, 8, myDC, 0, 0, vbSrcCopy
    BitBlt myDC, 0, TILEH * 3 + 8, TILEW * 3, 8, myDC, 0, TILEH * 2 + 8, vbSrcCopy
    
    'Single wall...
    BitBlt myDC, TILEW * 3, TILEH * 3, 8, TILEH, myDC, 0, TILEH * 3, vbSrcCopy
    BitBlt myDC, TILEW * 3 + 8, TILEH * 3, 8, TILEH, myDC, TILEW * 2 + 8, TILEH * 3, vbSrcCopy
    
    picgenWallTile.Refresh
    
End Sub

(yes I went digging into the code until I found it)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...