Lots of changes to write about here over the past several months; it didn't feel like any particular thing I did was big, but it's clear I've accumulated a good bit of backlog, so I'll take care of that here. In the future I should probably try and make sure to write about updates more often even if they're not huge.
New stuff:
- Per-character pronouns, shown on your user profile next to the other per-character info; useful for people who play characters that have different pronouns than they do
- Added more tiles to the build menu; mostly tiles that were already there in the image but just hadn't been put in the build menu yet
- New gadget type, which is an object you can push around by stepping onto the tile it occupies
- Server-side support for rectangle fill feature, as a variant of the delete feature; I'll need to figure out how to present it in the client. Technically there was already a rectangle fill, but I'm intending on having this version of it usable by everyone, not just people with a bulk building permission.
- There's a new autotiling setup that's built around 8x8 tiles (I'll probably want to make a diagram to show how the autotiling styles work?)
Options and menus:
- There's now drop-down menus for changing your status, hopefully making that feature more discoverable
- Volume slider for music
- Option to automatically deselect the chat bar after sending chat, for people more used to how chat works in more traditional games
- Tile/item editing window has been rearranged and now has a zoom button
Small tweaks and fixes:
- Lists of users and maps are now sorted alphabetically
- Only notify the user about new mail upon logging in, not mail they've already read
- Floors can now be set to display above players, just like objects could
- Syncmove will now synchronize pixel offsets in addition to tile positions
- Map tiles that point at an image that's broken or no longer exists will now show an error graphic instead of being invisible
- Lots of scripting functions have been fixed
- When music plays for the first time, there will now be a reminder in the chat log about how to stop music, and a button you can click on to do that
- Client can now warn about invalid BBCode when you attempt to send it, and let you fix it or decide to send it anyway
- BBCode can use 3-character color codes (like #0F0) in addition to 6 (#00FF00)
- I did a stress test to see what the server's resource usage is like with hundreds of users (pretty reasonable!), then made it so that a single user cannot have hundreds of simultaneous connections
- Adjusted the way permissions work for moving entities you don't own, to let you kick unwanted entities from other people out of your inventory
Website changes:
- Put a simple logo on the site using Tilemap Sans, instead of just having it be text
- Made all pages on the site link to the main page, so you can get there even if you stumble onto one of them with a search engine
- Tutorial page showing information on building, custom player graphics, and custom map tile graphics
- Help page has been reorganized a bit
All custom tilesets that used Imgur have been migrated to being stored on the user's account instead; Imgur seems to be blocking my server from accessing the site at all, which I assume is an anti-bot measure applied to DigitalOcean as a whole, and the way the terms of service are worded I don't think they really want to be used to hold game assets. I haven't touched user avatars that pointed to Imgur but I changed the site to stop recommending that people put them on there.
I tried paying for ads on FurAffinity to see if that would bring in people who might want to build or roleplay on here. I don't think that really worked; it brought in some people who did do some stuff but I think people who show up via ads have less patience for trying something out than people who check out your thing because you're actively participating in a community with them. It did lead to a situation where I actually had to ban someone, which led me to realize that the ban feature was broken for IPv6 addresses. That's been fixed.
The website used to link to a forum that is now gone, and it's been updated to link to a thread on a different forum. I don't think there's really any demand to talk about Tilemap Town on forums, but I wanted the option to be there.
The EasyRPG tileset was updated, which required a whole tricky migration setup that I think went okay? The arrangement of tiles in the image was changed to make a lot more sense, and a lot of tiles have alternate color variations they didn't previously have, or were separated into parts for more flexibility. These changes were contributed by justthepulp.
User particles
There's a feature that's been in for awhile that allows users to play short animations on the map (named "user particles"). I've expanded it a bit so that you can now use it as a way to make your avatar look like it did an animation, by letting you hide your avatar while the animation plays. You can also set it so that the animation follows you as you move. I added a command to play animations, making it a little friendlier than sending stuff with the JavaScript console, but I'd like to try giving it a menu or something. Here's some examples for the command I currently have implemented:
/userparticle 0 2 24 offset=0,-32
Display a happy expression bubble above you for a short time
/userparticle 0 24 29 offset=0,-32 anim_frames=6 anim_loops=1
Display dice rolling from 1 to 6 above you, playing twice and then stopping
/userparticle 0 4 21 random_offset=0,0,8,8 anim_frames=7 anim_loops=0
Display an explosion and smoke some random distance from your avatar that plays once and stops
/userparticle 0 10 22 anim_frames=7 duration=20
Display a blooming flower that lasts for 2 seconds
/userparticle 0 4 26 anim_frames=2 hide_me
Display a fire guy in place of your avatar
These fields are available:
- size=width,height - Measured in 16x16 units
- at=x,y - Measured in 16x16 units
- atr=x,y - Same as above, but relative to your current position
- offset=pixel_x,pixel_y - Pixel offset, similar to when you use the /offset command (can also use
o=
)
- random_offset=base_x,base_y,random_x_range,random_y_range - Similar to above, but will add or subtract a number up to the X and Y ranges provided from the X and Y bases (can also use
ro=
)
- duration=ticks - Measured in units of 0.1 seconds (can also use
d=
)
- anim_loops=integer - Number of times to loop the animation; zero means play once, 1 means play twice
- anim_frames=integer - Number of frames that are in this animation
- anim_speed=integer - Frame duration in units of 0.1 seconds
- anim_mode=integer - 0 for forwards, 1 for reverse, 2 for ping-pong, 3 for ping-pong starting in reverse
- anim_offset=integer - Animation offset; effectively a starting number for the animation tick counter
- hide_me - Don't display my avatar while this animation is playing