• Register
RSS My Blogs

If you already programmed in COM, feel free to skip the article. Yep. Nothing interesting for you here.

If you're a coder that has some experience with previous game engines but you're new to Unity, then read on.

So. Two programs and a technology for software development. And a picture:COM object and interfaces

That's a COM object. Our target is "Outer Object". It imlements several interfaces, the circles labeled A, B ...

In terms of inheritance, you could do that by deriving the class describing. Now of course, there are some problems when all them interface implement a function with the same signature, say void Update(): which Update() should be called in your case? The one from A? Or B? Or C? I personally don't like C, as a vitamin at least it is sour.

This is where COM ... comes in place. In COM, if you want to implement an interface on an object, you'll get a new instance of a class. That means that somehow, in your objects, you'll have at least three class instances, one that implements the functionality of A, one for B, well, you get the point.

Why the frowned face? Oh, stupid me, I forgot something: from now on, your object is no longer an instance of one class. No. That's gone. Think of it as a collection of classes, each working together to provide functionality for one object.

Now I can hear you saying: "But what if I need to use functionality from Interface A in the implementation of Interface B? How can I reach one functionality from the other?"

In all technologies that implement an object modeling mechanism (yep, that's the OM from COM), there will always be a mechanism to go from one interface to the other. In COM, it is called "QueryInterface". In Unity, you GetComponent.

Now it makes sense. This is why the First Person Controller prefab in Unity looks like this:

Unity's fps controller



You'll see that I underlined two components (get used to the term if you plan to use Unity). If you double click them, you'll end up looking at some C# code. Each of the scripts describe a class, each having a Start() and Update() function. Several components, working to define one object.
And here's another thing about COM: you can re-use components:

camera



The Mouse Look script is the shared component here.

That's it. Don't say I didn't warn you, if you know COM this was not a surprise.

Start a group Groups
2D Games

2D Games

210 members Fans & Clans

They are places where "Z axis" does not exist, only YX reign, the word is unknown 3D, games are simple but should be played, many of them will make us...

Desura

Desura

10,065 members Entertainment & Press

Desura is a community driven digital distribution service for gamers, putting the best games, mods and downloadable content from developers at gamers...

Post comment Comments  (0 - 10 of 28)
x-M-x
x-M-x - - 4 comments

Hey Herr,

any future AVP2 mods/packs in the works?

xD

x-M-x

Reply Good karma Bad karma+1 vote
TheKingKenny
TheKingKenny - - 7 comments

Hey Herr,

Still working on AvP2?

Reply Good karma Bad karma+1 vote
Oleomingus
Oleomingus - - 208 comments

Thank you for tracking our game - "somewhere"
we really appreciate the interest.

Reply Good karma Bad karma+1 vote
IrrSoft
IrrSoft - - 312 comments

Thank you for tracking our game (3:00 am Dead Time). Remember that the new trailer will be available very soon as well as the first playable beta (for the funders, starting from 5 dollars).
Thanks for your support!

Reply Good karma Bad karma+1 vote
JamoGames
JamoGames - - 61 comments

Hi there Alex,
Thanks for following Amp, Watts & Circuit! The full game is out now, you can grab yourself a copy here - Indievania.com
Thanks for supporting the game, I would love to hear what you think of the full version, and what you would like to see in future updates. Feel free to come chat to me about any ideas that you might have! It is built in Unity too so that might be of interest to you!
Thanks,
James Biddulph

Reply Good karma Bad karma+1 vote
dreamtail
dreamtail - - 14 comments

I haz one thing to say Herr CODE!!!!!!!!

Reply Good karma Bad karma+1 vote
exaltstudios
exaltstudios - - 140 comments

Thanks for tracking my game Silas!

Reply Good karma Bad karma+1 vote
haxorfox
haxorfox - - 66 comments

I heard you are no longer updating Savior patch for AVP2, is this true?

Reply Good karma Bad karma+1 vote
Herr_Alien Creator
Herr_Alien - - 342 comments

That's right. The game doesn't require an independent master server, it relies on Gamespy now. That, and the fact that we released the code to the public means that we're no longer needed. In a good way :) .

Reply Good karma+1 vote
shabazzster
shabazzster - - 26 comments

Okay and how can I implant this in my game? would i be able to use it to display say, a scene within a scene somewhere within a game to provoke more storyline information?

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X