What are you working on currently? (2019)

Auto-generated gadget thumbnails with outlines :smiley:

8 Likes

Auto generated? You mean viewportframes :thinking:

Yes using viewportframes that are overlaid on each other

2 Likes

Day 2 of sculpting dragon boi.

7 Likes

A game where you build an airship type thing and fight other players with it. Here’s what I have so far:

17 Likes

I recently released the second Friday Update for Blox. There wasn’t much new content (it was more bugfixes and performance) but there was diamond blocks. So, of course:

(also, did someone change how image sizing works? I don’t like the new behaviour; please revert)

5 Likes

Made a simple, but cool steam whistle for my showcase! It plays at random times every 20 to 80 seconds.

12 Likes

Is it me or does it sound like someone blowing very softly into a flute?

1 Like

It sounds like that only because it’s difficult for computer speakers to pump out 90 db

1 Like

Day 3 of sculpting dragoon boi.

Need to do some work on the hands to make them less human, but its getting there! Soon I can move onto sculpting armors ^w^

4 Likes

Soon™, again. I think the text plugin I’m working on is pretty much done.

23 Likes

Thank you XAXA, very cool!

In all seriousness, this seems very cool. I really like all these plugins you’re making. It makes developing easier for everyone :smiley:

Didn’t you make a text plugin before though? Not complaining or anything but I’m just asking.

Yep. This one:

This is a remake of that one.

3 Likes

Amnesia vibes, can’t wait to see how it turns out :sunglasses:

2 Likes

Added in a new line for my little simulation.
Also, here’s the current map so far:


Key
White = Starting point of line
Black = Line
Red = Ending point of line

You can check it out here: https://www.roblox.com/games/3256179201/Subway-Simulation

1 Like

This will be very helpful in the future. Nice work.

1 Like

Since I had to re-install all of my Studio plugins, I figured I’d remake my old ones to make them more usable and efficient. First one is Script Template Manager, and it lets you set what the default script contents are. You can also enable/disable it, and all settings persist between Studio sessions. I also finally figured out how to auto-fill the creation date, which will save a lot of time in the future.
ScriptTemplateEditor
If I come back to this in the future I’d like to add more autofill options (username, game name, etc.) and seperate templates for server/local scripts and module scripts.

5 Likes

Been working on a pure Lua raycaster for Blox which operates directly on the block data. Compared to the old method of using FindPartOnRay, this fixes so many issues and edge cases and runs much smoother. It also makes the code much cleaner and makes raycasts possible on the server, since parts are only generated on the client side for performance.

Blocks now have bounding boxes separate from their rendered models:
image

Half slabs are now outlined correctly, and they behave as expected, letting you place slabs on the side of slabs, and properly place blocks on top of slabs:
image

Most importantly, placing blocks through liquids now works perfectly, whereas before it was almost unpredictable:

export2%20(2)

The best part is how simple the code is! Here’s the snippet doing that raycasting, pasted without changes:

local position, block, normal, hit = Raycast:cast(Placer.clientWorld, origin, direction, Placer.blockHitDistance)

No raycasting multiple times or converting between block and stud units, just one call! This will make everything so much easier to build in the future, from detecting noclip in the entity system to tracing explosions with TNT. Of course, this will all get even faster with the new Lua VM, so hype :smile:

12 Likes

Is it faster than Roblox raycasts? And what edge cases do you fix?

Performance is really good with the new system since it’s specifically aimed at voxel worlds where the bounding boxes for every block are AABBs.

The algorithm traverses the voxels in the order which the ray intersects them, starting at the voxel containing the origin point and moving forward. If the block is ‘targetable’ (a property of blocks used to control whether they can be targeted by raycasts) and has a bounding AABB, it performs a Ray-AABB intersection test, and if successful, returns the voxel position, block ID, surface normal and precise hit location at the point on the ray where the intersection occurred. Since all these operations can be performed very quickly, with minimal allocations, the raycasting can perform anywhere from a bit faster to miles faster, in most typical cases running under 10 ms (correction: 0.07 ms, which is well under 10 ms). It still performed really well, even when the distance from origin to hit point was in the tens of thousands:

With the added benefits of server-side raycasting without generating instances, more natural fit with the rest of the API and precise control over how special cases are handled (e.g. if you’re stuck in a block, you want to break the one you’re in rather than the one you’re looking at), and with the future performance boost from the new Lua VM, it’s a no-brainer :stuck_out_tongue:

4 Likes