Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411507 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 01:12:38 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSprytile - Build 3D scenes with 2D tiles, a tool for Blender
Pages: [1] 2
Print
Author Topic: Sprytile - Build 3D scenes with 2D tiles, a tool for Blender  (Read 11807 times)
ChemiKhazi
Level 0
**



View Profile
« on: April 09, 2017, 12:19:11 AM »





Hi! I'm building an addon called Sprytile that gives Blender tools to build with 2D tilemaps in Blender.

It's heavily inspired by Crocotile, but I've been wanting to build a tool like this for years.

Sprytile is an opensource project that is already released on itch.io under a pay what you want model, so it is both free as in beer and free as in speech. It will be under continuous development and I thought it would be interesting to make a dev log for an open source project.


Background

Way way way back as an intern, when I was a fresh faced technical artist wannabe (before I local industry realities sunk in) I had built a tilemap painting script for 3DS Max after observing an artist build Animal Crossing style environments by laboriously UV mapping each face to a tile. I never took it further than that early prototype but the idea has stuck with me all this time.

Flash forward to sometime last year when I saw Crocotile in the Pixelation forums and it was all that I had wanted all this time! Except… in the intervening years I've grown very fond of Blender and I wanted those tilemap tools inside my Blender workflow.


Development

I started development in the end of October 2016 and had a functional tool around mid November. It turned out that I started work on Sprytile at a fortuitous time because support for a fast mesh raycast function had just been recently rolled into Blender.

To figure out the workflow and bugs in Sprytile, I ate my own dogfood by building the model below.


Clicky to view the model in Sketchfab

I had free time over the 2016 holidays so a lot of critical work on Sprytile was completed then. Then my actual job got hectic early in 2017 so work on Sprytile slowed quite a bit. Nice thing about doing this project on GitHub? Automatic work graphs!


I had gotten Sprytile to a level where I was confident with its functionality around the end of January, and had actually wanted to have it out for the Global Game Jam but I knew I was missing something important for Sprytile to get any traction at all. I needed docs and tutorials!

Over February and March, I was making small iterative improvements to Sprytile while wrestling with the documentation and tutorials. At first I tried jumping straight into making a video tutorial but that really did not end up well. So many wasted hours getting frustrated with myself.

What ended up working better for me was putting together a written quick start tutorial and then making the tutorial video based off that. Production of the video tutorial was still a pain and I'm not entirely happy with it especially with the sound quality and my speech, but by this time I was letting perfect become the enemy of good enough and I really wanted to get Sprytile out the door.


Release

I decided my self imposed deadline for release would be March 30. All this time I've had an itch.io page created and parked and have been pecking away at it over the course of the development.

Some things that took me a while to figure out with presentation on itch:

- If you're uploading gifs, the first frame should be an interesting image since they start out paused.
- Check how the site looks on mobile! A lot of visitors come in by mobile. Itch has a great responsive design, but test anyway.
- If you're going to use itch.io's message boards, create some topics ahead of time to set the tone and invite others to use it.

With my tutorials and page done the best I could, I made the itch.io page public and got to work promoting Sprytile.

My first stop was over to Twitter where I didn't really have a following but I figured #hashtags would help. After Twitter, I hit a few relevant subreddits to promote Sprytile there too. There was a snag with r/gamedev since links to itch.io are auto flagged by their bot but a few PMs with their helpful moderators sorted it out.

I'm not sure what I expected (not having goals set is probably bad) but the reception on the first day of release was so lukewarm it bummed me out.

Until @metkis on Twitter made a great looking render with Sprytile.

His tweet helped organically promote Sprytile on Twitter. I'm not even sure how he found Sprytile but I'm so grateful he did. It briefly made my notifications a nice mess and according to analytics, has made Twitter the greatest driver of traffic to my itch.io page.



WIP model built with Sprytile to break up the wall of text

Project Management

One great thing about making Sprytile an opensource project is the ecosystem surrounding OSS. For feature and bug tracking, I use GitHub issues. This is further augmented by waffle.io which turns GitHub issues into a nice Trello-like kanban board.

Surprisingly, GitHub has driven roughly the same amount of traffic to itch.io as my highest traffic reddit post.


Tech Support and Documentation

Technical support for users has been a mishmash of social media and github so far. It would be nice to have it centralized in GitHub issues but I understand that that's not really an attractive proposition for non technical users.

I've fixed a couple of egregious bugs and low hanging fruit features since release based on user feedback so support is working at least.

To make it easier to keep the addon up to date, I've also implemented an opensource blender update system.

Some of the interactions I've had with users also reinforced the importance of good documentation and tutorials and where my current ones are lacking. For example, the GameFromScratch YouTube channel covered Sprytile and started out as an even better tutorial video than my own until later when my documentation clearly failed the user.





Future Feature Development

From my own personal use of Sprytile, I already have some ideas for tools that would speed up the process of building with tile maps. But with Sprytile's release, feature development now needs to be balanced between writing docs/tutorials, bug fixes, and features that users want. The highest priority for now is to implement other tile map editor tools before the more specialized features that I have in mind.

Development has been relatively speedy since release but I suspect that's just momentum, I probably can't keep up this pace for the entire cycle. Sprytile is a side project that I work on after actual job and over the weekends.

I'm not sure when I would consider Sprytile complete but I'm very excited to see what people can make with it!


So this post turned longer than I expected. Anyway, feel free to ask questions or give feedback on Sprytile if you do use it.

Hopefully my next dev log updates won't run this long next time.
« Last Edit: April 15, 2017, 09:01:04 AM by ChemiKhazi » Logged

kodle
Level 0
*


Game dev


View Profile WWW
« Reply #1 on: April 09, 2017, 12:30:03 AM »

Wow! It's cool  Gomez
Logged
ChemiKhazi
Level 0
**



View Profile
« Reply #2 on: April 12, 2017, 10:47:00 AM »

For the past week downloads and page views have flattened out, which signals to me that I need to up my promotional game.

With Ludum Dare 38 coming up, I feel like Sprytile would be a good thing to promote on there since its a natural fit. So far, I've made an attempt at promoting Sprytile on Twitter with a #LDJAM slant. I have yet to decide if I will be participating in LD38, me and solo game jams have a not so great history.

Another avenue I want to explore for promotion is to find sites or youtube channels that might be interested in covering Sprytile. Being primarily a programmer, I'm not knowledgeable as to where artists go for art tool news so this might be something I'll have to tackle after some research.



Feature wise, work is going relatively slow with this summer heat sapping my will to work, resulting in having less time to work on Sprytile after the actual job. Currently I'm working on a flood fill function, since the functionality required for that nicely builds up to another tool.

However, now I'm faced with UI decisions which would invalidate the existing documentation, making it a harder sell to LD jammers if the documentation doesn't actually help them.

The UI change I have in mind would be superior to what I'm currently doing, especially given the constraints of Blender's UI system. I'll probably put off the major change for a later time since I now have that target for Ludum Dare.
Logged

Thaumaturge
Level 10
*****



View Profile WWW
« Reply #3 on: April 12, 2017, 11:42:48 AM »

This looks rather interesting... (Indeed, I'd puzzled a little over how to create tiling environments in Blender; while I think that I have a solution, this tool that you've made looks to be worth investigating, I think.)

Forgive me if this is mentioned somewhere above (I'll confess that I didn't fully read the thread, I believe. ^^; ), but I have a question, if I may: The thread-title refers to this as a "2D Tilemap editing tool", but the models shown above, and the animated GIF, seem to indicate that it works three-dimensionally. In what way is it "2D"? Is there some limitation to it?
Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #4 on: April 12, 2017, 12:35:13 PM »

The 2D tilemaps are just a reference to the texture style. Maybe the thread title needs a rethink. Thanks!
Logged

Thaumaturge
Level 10
*****



View Profile WWW
« Reply #5 on: April 12, 2017, 12:41:27 PM »

Ah, I see! Thank you for clarifying. ^_^

So, in that case, does it only work with that style, or can it make use of materials that apply normal maps?
Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #6 on: April 13, 2017, 01:19:25 AM »

The workflow of the tool is currently optimized for pixel art style textures, but if you know what you're doing with Blender there is no reason Sprytile can't be used to build scenes with materials with normal maps.

The great thing about having this tool in Blender is having the freedom to use your own workflow after building the mesh with Sprytile.
Logged

Thaumaturge
Level 10
*****



View Profile WWW
« Reply #7 on: April 13, 2017, 11:00:57 AM »

Iiinteresting. I may well try this out, then! Thanks! ^_^
Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #8 on: April 14, 2017, 09:47:04 PM »


Sprytile now has a fill tool! Still not making much headway with promoting Sprytile though.
Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #9 on: April 14, 2017, 10:47:02 PM »

A quick and admittedly sloppy 10 minute speed modelling video I threw together




« Last Edit: April 15, 2017, 08:17:59 AM by ChemiKhazi » Logged

Zireael
Level 4
****


View Profile
« Reply #10 on: April 14, 2017, 11:12:12 PM »

Uh, the video doesn't show, and I would have liked to see it. Will definitely give the tool a try next time I attempt Blender! (The Blender interface sucks on a laptop :/)
Logged
-Ross
Level 1
*


View Profile WWW
« Reply #11 on: April 15, 2017, 03:59:10 AM »

Uh, the video doesn't show, and I would have liked to see it. Will definitely give the tool a try next time I attempt Blender! (The Blender interface sucks on a laptop :/)

I don't know what browser you're using, but my Firefox likes to block the embedded videos here unless I click the lock icon next to the url and tell it not to. And the forum automatically embeds youtube links. Here's a tinyurl link to the video: https://tinyurl.com/sloppysprytile
Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #12 on: April 15, 2017, 08:20:17 AM »

Oh. Weird, had to post that on mobile so didn't check if the video showed up. Maybe the youtube shortlink doesn't work with the forum software.

In other youtube videos, I just watched this GDC talk on Open Source projects and will definitely be taking some advice from it.



Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #13 on: April 16, 2017, 04:53:32 AM »

I had my first open source contribution! I'm glad I had watched that video earlier, I feel like it put me in the right mindset to accept the help. Just released a new version that includes the contributor bug fix as well as another highly annoying but not quite show stopping bug.
Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #14 on: April 19, 2017, 10:19:15 AM »

Slowly but surely Sprytile's usability has been improving. A lot of the improvement has been driven by user feedback, which feels pretty great. It pushed me to figure out how to implement something I've always wanted since starting the project but couldn't figure out how until now.

Downloads on itch.io have just broken 1000, so that's a nice milestone.

I don't seem to be getting much traction promoting Sprytile through the LDJAM hashtag, but it seems to have gotten the attention of some other 3D focused sites which is driving traffic somewhat.

Right now, I'm considering if its worth the effort to try to get another video tutorial out before Ludum Dare starts. I feel like enough has changed with Sprytile that it would be good to put out another video for it but the deadline on that would be kind of silly.
Logged

Indiana-Jonas
Level 0
***



View Profile WWW
« Reply #15 on: April 19, 2017, 11:36:12 AM »

This looks very useful, I'd love to use it. Could be very helpful on my current game. I will remember this and try it out next time I build more environments!
Logged

Ninety
Level 1
*


turnip boy


View Profile
« Reply #16 on: April 19, 2017, 09:58:52 PM »

Fantastic tool, and far more intuitive than Crocotile in my opinion. Integrating into the Blender workflow is nice too.

Any idea why I might be getting these artefacts/lines at the edges of tiles? They appear to be slight overlaps with other tiles, but they stay present even when exporting the object into Unity. Mipmapping is turned off, but I feel like I might have missed something obvious.



Logged

ChemiKhazi
Level 0
**



View Profile
« Reply #17 on: April 19, 2017, 10:07:26 PM »

Thanks for checking it out, Ninety! Those beach tiles look good. The fuzziness of the textures make me suspect the filter mode isn't set to Point. I have plans to add support for filtered and mipmapped textures but I'm not sure when that will be.

The aesthetics of Interaction Boy looks really great, will be following along.
Logged

Ninety
Level 1
*


turnip boy


View Profile
« Reply #18 on: April 19, 2017, 10:44:54 PM »

Thanks for the quick reply. Unfortunately the texture's definitely point mode. Turning off anisotropic filtering fixed the problem in Blender, however it persists in Unity. I've imported .blend, .fbx and .obj, same result. The only fix I've found is to switch to deferred rendering, which appears to fix the problem:

Logged

Schrompf
Level 9
****

C++ professional, game dev sparetime


View Profile WWW
« Reply #19 on: April 20, 2017, 12:11:05 AM »

I'd guess Unity does not import the filtering settings. And I'm pretty sure that .fbx and .obj can't even store those. The picture you posted obviously used point filtering. I wonder what the connection to Deferred Rendering is.

The tool looks mighty useful! I'm not a fan of Blender, but I love the 3D-tiled art style. I'll try it some day for a GameJam.
Logged

Snake World, multiplayer worm eats stuff and grows DevLog
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic