1 registered members (AndrewAMD),
1,244
guests, and 3
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Unity is a dic*
[Re: JibbSmart]
#383385
09/19/11 20:51
09/19/11 20:51
|
Joined: Nov 2004
Posts: 7,121 Potsdam, Brandenburg, Germany
Machinery_Frank
Senior Expert
|
Senior Expert
Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
|
Yeah, potato similes are great and all, but my problem here is this: is component-based programming simply a different style of programming in current languages, or is it an alternative syntactic sugar to classes that relies on it being written in particular "component based" languages? Actually it is both. But you don't need a special language for that. In Delphi as an example it is similar to a class but you need a few additional data. You need an icon to represent the component in the component palette as an example. I bought many components. It can be a library of internet functions, it can be a complete word processor or just a zip compression component including reading and writing to files. These components have to work indepentently to fit to each project. So they are some kind of an independent package of a single class or even of a complete program containing many classes or no class at all, except the component wrapper class. So a component is an external addition to extend the functionality of your software. Game developers often use very small components to even extend single classes while other developers try to use complex components to design a complete software architecture from it, sometimes even for drag and drop programming with the help of a visual editor.
Models, Textures and Games from Dexsoft
|
|
|
Re: Unity is a dic*
[Re: Machinery_Frank]
#383391
09/19/11 21:50
09/19/11 21:50
|
Joined: Apr 2008
Posts: 2,488
ratchet
Expert
|
Expert
Joined: Apr 2008
Posts: 2,488
|
in fact in Unity you can go full programming using C# also. There are at least two plugin products made by programmers for Unity allowing to make a game using visual components (somewhat like the old Virtools). It's sepcailly destined to pure 3D artits i think, and there are people asking and buying them ... So ... In Unity i've seen a comment forpm a 3D artists having very little programming skills, but enought to do some basic things. He said, if it wasn't Unity pre made templates (third person cameras, collisions controller etc ...) he would never had done so fast it's game to sell it on Apple Store. In fact Unity is very versatile, allowing 3D artist to produce something fast , and programmers to go deep ! Just my point of view But i find their mobile licensing too much expensive for the pro version : Android or Iphone each Pro license asks a lot fo money. Compared to that Shiva 3D offers Iphone and Android support for one license cost only !
|
|
|
Re: Unity is a dic*
[Re: lostclimate]
#383404
09/20/11 06:29
09/20/11 06:29
|
Joined: Nov 2004
Posts: 7,121 Potsdam, Brandenburg, Germany
Machinery_Frank
Senior Expert
|
Senior Expert
Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
|
To explain a bit better the original meaning of compoments in the software industry we also should look back to what Microsoft did with this approach: "Component Object Model (COM) is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages. The term COM is often used in the Microsoft software development industry as an umbrella term that encompasses the OLE, OLE Automation, ActiveX, COM+ and DCOM technologies." Just like I already wrote above, it is an external addition to your software and can be written in any language. So I could use an ActiveX in my Delphi program written in C++. I just need a little wrapper around it to define the interface. You will find similar approaches when you look at component based programming like here: http://en.wikipedia.org/wiki/Component-based_software_engineeringWeb services and service oriented architecture (SOA) are built that way. In game engines like Vision 3d or Unity it has a lot of advantages as well. So you can add components via their visual editors to any game object. That way you can add functionality like physics, triggers or just a blob shadow via simple drag and drop. So it is again an external addition for an object. The additional functionality is not built in these objects or classes. So these classes are smaller. Not every game object class has to come with complete physics built in. But the syntax to adress the attached components needs a few more words as when you just adress a built in class. This is what beginners especially in this forum complain about most of the time.
Models, Textures and Games from Dexsoft
|
|
|
Re: Unity is a dic*
[Re: JibbSmart]
#383436
09/20/11 14:26
09/20/11 14:26
|
Joined: Oct 2006
Posts: 1,245
AlbertoT
Serious User
|
Serious User
Joined: Oct 2006
Posts: 1,245
|
But I think I still don't understand Unity, or perhaps I don't understand you properly. Perhaps I just don't understand components.
For a professional explanation of components , see the article My naive game related explanation is the following Generally speaking, the key difference between a traditional and a components based engine is ,the following : a) Traditional engine It supplies a set of "concrete" classes focused on "entities" such as : Camera, Light, Character , Mesh etc Each class includes methods which are class related You write cam.SetRotation() and stone.SetRotation() whereas cam is an object of Camera and stone is an object of Mesh The former method is a pitch / jaw/ roll rotation while the latter may be a rotation about x,y,z axis b) Component engine It supplies a set of "Abstracted" classes focused on "functionalities " such as : Transform, Animation, Collision You must write a script (s)( component(s) ) which you attach to the entities in the scene The methods must be as generic as possible since you dont know in advance what kind of entity they will be attached to About Unity A pure component based engine is a nightmare , try for example Torque X ( not to be confused with Torque3d) Unity is an hybrid to make the engine more user friendly Camera is a very common entity so it is handled separately Every entity in the scene has a position, a shape etc thus the class Transform has been added by default You dont have neither to instance the classes nor to link the component / methods to the entities Unity makes the job for you
|
|
|
Re: Unity is a dic*
[Re: AlbertoT]
#383439
09/20/11 14:34
09/20/11 14:34
|
Joined: Mar 2006
Posts: 3,538 WA, Australia
JibbSmart
Expert
|
Expert
Joined: Mar 2006
Posts: 3,538
WA, Australia
|
Yes, thanks guys. I believe I understand since Enduriel's very concise response and the excellent article he referred to.
AlbertoT, I see what you mean now -- how even though the components do have methods, they are stateless and manipulate data stored in the Camera itself.
I can see usefulness in components, and can see myself adopting a similar paradigm in future (obviously when using languages other than Lite-C), but probably wouldn't go so far as to use the "generic data bucket" implementation, and instead let each component/sub-object store its own relevant data.
Jibb
Formerly known as JulzMighty. I made KarBOOM!
|
|
|
Re: Unity is a dic*
[Re: HeelX]
#383498
09/21/11 07:47
09/21/11 07:47
|
Joined: Oct 2006
Posts: 1,245
AlbertoT
Serious User
|
Serious User
Joined: Oct 2006
Posts: 1,245
|
I feel akward. I just installed Unity. I even registered at their forums. Thanks guys, thanks If for awkward you mean "confused" or "worried" or "disppointed" well I am partially with you I have alwayes been amazed to read that Unity is supposed to be a user friendly engine, for artists WHATTTTTTTT.........? First of all component based engines are, in general , less intuitive than traditional ones , moreover Unity,in the attempt to smooth the intricacies of components, made it even more confused It seems a paradox, but the point is that it is hard to grasp exactly what happen...behind the curtain Sometime you must simply follow the instruction I have never been confortable with this , since the old school days
|
|
|
|