Search Unity

Architecture // Paradigm discussion before the ECS release

Discussion in 'Data Oriented Technology Stack' started by gl33mer, Feb 18, 2018.

  1. gl33mer

    gl33mer

    Joined:
    May 24, 2010
    Posts:
    278
    It seems there is a community itch brewing. The big wait for the ECS may be irritating a common rash.

    Obviously we don't want too deep of a discussion (as ECS decisions seem to flare emotions some how) and I do recall @Joachim_Ante relaying the notion that they are open for community input.

    To the point. I've been reading Functional Programming in C# (2018) by Enrico Buonanno and listening to his talks. After playing around with Elixir and Clojure and the shifting of paradigms, etc. Since we're dealing with performance through concurrency wouldn't a functional approach make sense? eliminating some of the stumbling blocks all together,etc.

    Awaiting the new ECS and the deliberations over the decisions made.

    ** My hunch is that @Unity is not completely happy with some of the decisions yet and therefore it would make sense to hold on to it for a little while longer.
     
  2. recursive

    recursive

    Joined:
    Jul 12, 2012
    Posts:
    591
    I've thought about this.

    In a way, ECS is functional-ish in the way that each System only really has Inputs (entities that have matching components), only executes logic, and produces a transformed result. By design ECS avoids unintended side effects by forcing your logic to be granular and by making you really think about the data being processed.
     
  3. Joachim_Ante

    Joachim_Ante

    Unity Technologies

    Joined:
    Mar 16, 2005
    Posts:
    4,670
    We are very happy with the decisions we made in ECS. Still tweaking API's quite a bit to make it even nicer to use. We have a group of 10 users that are testing it and giving great feedback. so far. But we want to get it out in preview state to everyone this month.

    It's going to be in preview state and we will still change public API's significntly after we ship the first preview release. But to release it, we want to make sure we have a good set of documentation & samples at the very least.
     
  4. gl33mer

    gl33mer

    Joined:
    May 24, 2010
    Posts:
    278
    @Joachim_Ante Sounds good to me. Maybe we could have a larger group of developers who can only access the documentation & samples, knowing they're in early states?

    @recursive thanks for that. My interest in the functional paradigm has mostly been of aesthetic rather than practical reasons. I also enjoy the shifting of "ways of thinking", finding this switch to "thinking in systems" quite challenging. Been reading about ECS for years but never actually gave it a try. (the components are still mutable, right? when you say "produces a transformed result" you mean by means of update in place right?)

    I'll happily wait for the baker to be satisfied with his bread.
     
    recursive likes this.
  5. Krajca

    Krajca

    Joined:
    May 6, 2014
    Posts:
    84
    I think many of us will happily expand that pre-alfa test group :)
     
    Lurking-Ninja and dreamerflyer like this.
  6. dreamerflyer

    dreamerflyer

    Joined:
    Jun 11, 2011
    Posts:
    901
    +1
     
  7. recursive

    recursive

    Joined:
    Jul 12, 2012
    Posts:
    591
    By produces a transformed result, it will either add/remove/modify components, and not necessarily on its own inputs. It's not strictly functional in the mutable/immutable dept, but it can be architected as such via entities or components that act as "requests" to mutate state on other entities components only at beginning/end of frame.
     
  8. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,444
    I think this is a part of Unity that will become criminally under utilised without proper support materials and docs.
     
    AlanMattano likes this.