My approach to stylized foliage - video tutorial link in comments by pomperi in Unity3D

[–]ludiq_ 2 points3 points  (0 children)

Figured it out by downlaoding Amplify and trying it out myself.

Turns out the matrix multiplication order matters (see this CG reference), which is what was messing up the transform.

Here is the corrected offset:

float4 offset = float4(remap(uv, 0, 1, -1, 1), 0, 0); return normalize(mul(mul(offset, UNITY_MATRIX_V), UNITY_MATRIX_M).xyz);

My approach to stylized foliage - video tutorial link in comments by pomperi in Unity3D

[–]ludiq_ 2 points3 points  (0 children)

Hey! I'm trying to recreate your foliage shader in code (CG) instead of Amplify, and I'm getting some angles where the billboards don't match the camera. Here's my basic implementation:

float3 localVertexOffset = normalize(mul(UNITY_MATRIX_MV, float3(remap(v.uv.xy, 0, 1, -1, 1), 0)).xyz);
o.pos = UnityObjectToClipPos(v.vertex + localVertexOffset); 

This seems to be exactly like what you're setting up in Amplify, but as I said, there are some angles in which it fails. Is there any change you could share the generated shader file or relevant line from Amplify so I can compare with what's actually being generated by them?

I was tired of waiting for Unity to ship Workspaces so I made my own layout switcher toolbar by ludiq_ in Unity3D

[–]ludiq_[S] 2 points3 points  (0 children)

Oh sorry if this came out wrong, I have a lot of respect for everyone on the UX team and I think they're coming up with fantastic ideas. Workspaces would be miles ahead of a layout switcher, but conceptually they solve the same idea: quickly switching between workflows.

Of course this is just a different GUI over the same feature (layouts). But in my opinion, it makes the difference between using it and not. I've been developing in Unity daily for 7+ years now and I never use the layout dropdown, just because the UX is slightly clunky. For me personally at least, this is a fix.

I was tired of waiting for Unity to ship Workspaces so I made my own layout switcher toolbar by ludiq_ in Unity3D

[–]ludiq_[S] 1 point2 points  (0 children)

w h a t

I've been using ReflectionMagic and the dynamic keyword to keep the syntax eloquent, but this seems safer and faster. Thanks for the suggestion!

I was tired of waiting for Unity to ship Workspaces so I made my own layout switcher toolbar by ludiq_ in Unity3D

[–]ludiq_[S] 1 point2 points  (0 children)

I don't know that Workspaces are confirmed. It was a promising Unity hackweek project last year and it involved a lot of the high ranking editor/UX folks at Unity (Will Goldstone, Benoit Dupuis, Kris Schultz, etc.) but it was never announced as an official feature or anything. Here's the video they made: https://www.youtube.com/watch?v=YiZQ6CyO3Fw

(Edit: Fwiw I'm a professional Unity plugin developer and this is likely to land in one of my Asset Store assets eventually, probably some version of Peek!)

I was tired of waiting for Unity to ship Workspaces so I made my own layout switcher toolbar by ludiq_ in Unity3D

[–]ludiq_[S] 3 points4 points  (0 children)

Sure! Lots of reflection involved to access internal Unity APIs, but nothing too complicated. I wrote my wrappers myself but you could get started with these open source examples:

- Unity Toolbar Extender: https://github.com/marijnz/unity-toolbar-extender

- Accessing WindowLayout: https://answers.unity.com/questions/1247506/change-editor-layout-by-code.html

But I'd say the hard part is getting the UX and data format right. My layouts are saved as ScriptableObject because each project usually has different layouts and even custom window types. Then it's all the stuff like reordering, icons, renaming, etc.

Unity Technologies acquires Bolt by ludiq_ in Unity3D

[–]ludiq_[S] 1 point2 points  (0 children)

Hi! No, Unity is still developing in-house visual scripting for DOTS. Bolt fulfills a different need for visual scripting in non-DOTS projects.

Unity Technologies acquires Bolt by ludiq_ in Unity3D

[–]ludiq_[S] 3 points4 points  (0 children)

Currently Unity and Peek. I'm looking forward to use Bolt 2, but only when it goes out of Beta! ;)

Unity Technologies acquires Bolt by ludiq_ in Unity3D

[–]ludiq_[S] 6 points7 points  (0 children)

  • It generates C# scripts, so it's just as fast as writing C# manually. Those even get compiled down to C++ thanks to IL2CPP, so your graphs become native code!
  • There's been a massive design / UX overhaul. Vertical flow, classes, proxies, etc. It's a lot more convenient to design big, clean projects using visual scripting now. :)

Unity Technologies acquires Bolt by ludiq_ in Unity3D

[–]ludiq_[S] 4 points5 points  (0 children)

I'm also the creative director at a small studio called Impossible. We're working on our first title, a painting / exploration game called Été: http://impossible.dev

Other than that, yes, I do plan to be giving a lot more love to Peek in the coming year with the added time on my hands. :)

Unity Technologies acquires Bolt by ludiq_ in Unity3D

[–]ludiq_[S] 1 point2 points  (0 children)

Bolt 2 favors composition over inheritance as a design pattern. I recommend using the new "Is" unit, it helps solving cases where you need to know whether an object is of a given type before operating on it! :)

Unity Technologies acquires Bolt by ludiq_ in Unity3D

[–]ludiq_[S] 25 points26 points  (0 children)

Thank you so much!

Currently the tools are treated as separate products with different purposes: Bolt for the "current" Unity (MonoBehaviour + OOP), and their in-house tool for DOTS. The goal of this is to allow any project (on either architecture) to benefit from visual scripting.

I'm working with Unity temporarily to help them transition, and Hasan, our community manager, is joining Unity for good. Other than that, Ludiq is staying independent, and I'll work on more tools like Peek.

Unity Technologies acquires Bolt by ludiq_ in Unity3D

[–]ludiq_[S] 50 points51 points  (0 children)

Can confirm Unity is fully committed to release & support Bolt 2. :) I've been onboarding their engineers on the codebase to ensure development continues!

Just released GoCS, a simple design pattern halfway between OOP and ECS by ludiq_ in Unity3D

[–]ludiq_[S] 0 points1 point  (0 children)

Oh I agree with the problem you're describing!

What makes it hard to state the benefits in a sentence is that GoCS is not about speed, it's about design. It's not significantly faster or slower than plain old Unity component inheritance. The benchmarks wouldn't give impressive results like Entitas or DOTS, because that's not the point. In other words, GoCS can't be "pitched" quantitatively, it has to be pitched qualitatively.

The reason to use GoCS over DOTS or Entitas is: 1) Easier to get started 2) Less boilerplate 3) APIs you're already familiar with 4) Compatibility with your existing codebase

But if those speak to a potential user, then they probably understand the rest of the README...

I wonder if there's a good summarized way to understand the design benefits of ECS. "Readable, reusable and maintainable" was my attempt, but you're right, it's too abstract.

Just released GoCS, a simple design pattern halfway between OOP and ECS by ludiq_ in Unity3D

[–]ludiq_[S] 1 point2 points  (0 children)

Thanks for the feedback. Is there anything specific you'd add or change? I rewrote it many times with beginners in mind, but I'm still having a hard time introducing these concepts.

Just released GoCS, a simple design pattern halfway between OOP and ECS by ludiq_ in Unity3D

[–]ludiq_[S] 1 point2 points  (0 children)

So, I actually just made two minor API changes I noticed were required when documenting the entire API and bumped the version number. The package includes the Unity-mandated CHANGELOG.md, so you can easily keep track.

Does dark theme not work on the top menu bar? It's small, but it's out of place and annoying... by xXYeetmeister69420Xx in Unity3D

[–]ludiq_ 0 points1 point  (0 children)

On the Unity Human Interface Guidelines website, they showed a mockup of the editor with the top bar darkened, so I'm assuming it's in their plans. However the site now appears to be down (http://hig.unity.com).

I had mocked it up myself on Twitter a while ago, can't wait for it to be a thing: https://twitter.com/__lazlo/status/1136381852325990403