What are you working on? (Dec 2020)

Welcome to the monthly “What are you working on?” thread! Post pictures, gifs, videos, demos, tweets, text, anything at all, or the game!

This topic will remain open for December 2020, please feel encouraged to post!

3 Likes

Built a katana replica from a very cool action game, and made a lot of progress on my current project’s map :>


6 Likes

I made some holiday stylized pine trees.

6 Likes

I’ve been working on a component UI system utilizing CollectionService & Attributes! While attributes aren’t out, I designed a component UI system that can also fall back to checking for ValueBases.

attribute_ui

Let's nerd out

As you can see below, the code sample for this component passes a ‘component’ object which has methods & can index the component element itself with component.Frame. This allows me to put the component element & its children on the same level, making it convenient to have a standard component structure between all of the designs.

Descendants of direct children are ignored & must be reached via indexing a child, like so: component.Frame.Title. With the component, we can shorten this line with: component.Title because it’s a direct child to Frame, which is what we made the component out of.

A component can be created upon run time, or in studio if you provide a Configuration folder parented to the component. If you do not provide one ahead of time, one will be created for you. This is where attributes will be stored. If attributes are not released, we fall back to looking for a ValueObject as a child of the folder with the same name passed for the attribute.

Custom methods were created to help further streamline my own workflow. These methods are as follows:

  • :Bind() - Bind a function to the component under a specific name. This can be used later to call Interface:Fire(name,...) & pass optional parameters.
  • :Attribute() - Connect an RBXScriptSignal to either a ValueObject (if one is found) or an attribute. This fires new and old values of the attribute.
  • :Connect() - Connect a function to a specific event on a GuiObject such as MouseButton1Click & return an RBXScriptSignal.
  • :Lifecycle() - This binds a function to RenderStepped & runs the function every frame that the component element is visible.

image

Self-promoted Tweet

2 Likes

I’m experimenting a bit with different tools. Here I have a color tool which lets you paint multiple colors onto a target – they are chosen randomly. The color palette thingy supports shift to range select & ctrl to add/remove things from your selection.

4 Likes

Shared this video of an upcoming game a few days ago.

4 Likes

I made an open source avatar editor that uses AvatarEditorService. The appearance is similar to the avatar editor found within the Roblox App.

1 Like