I’m currently evaluating development platforms for an upcoming web project. We need to build something like a simplified second-life with a client-side .exe connected to game servers. USers can explore the environment and maybe eventually interact with other users.
One key thing in the application design is that we need to build certain functions in to the application. These include but are not limited to a chat utility, a web browser, a text editor, an mo3 player.
These utilities must exist WITHIN the 3D environement. We cannot jump out to an external app.
Therefore, we would need to take an open source browser (say, Mozilla) and wrap iyt insite our application. Likewise, we would build a text editor in code tec.
Can Unity wrap/incorporate ideas such as the above?
You can do an music player which streams ogg files fairly easily. You can write a chat program in the web player using the Network API we provide.
Theoretically you could also write an html renderer from scratch in C# but i think doing this would be an excessively large amount of work, probably beyond what you want to do. It is quite possible to write a text editor though.
Also you might want to contact david@otee.dk and request further information in regards to contracting us to develop such components for the web player.
True, I don’t fancy building a full web browser from scratch. The idea would be to bundle an existing engine into the executable.
I gather then that Unity, while powerful and flexible, is very much self-contained and lacks facilities to link to external resources? If I’m looking for an extensible solution, Unity might not be the one?
We’ll have a furthe rlook in any case as it would be nice to work on Macs and the performance of the demos looks very good.
What about looking at it the other way: Is it possible to save out a Unity application in such as way as it could be used in a project built in, say, C++. That is to say, use the Unity project as an external resource?
I’m confused by your language and whether you’re looking to make a browser-based game or an executable game:
“I’m currently evaluating development platforms for an upcoming web project. We need to build something like a simplified second-life with a client-side .exe connected to game servers.”
“The idea would be to bundle an existing engine into the executable.”
“Is it possible to save out a Unity application in such as way as it could be used in a project built in, say, C++.”
I’m personally a bit confused and wonder, is this going to be a web-project or an executable? The answer to that question significantly changes the response. And notably, both Joachim’s answer above and David’s answer via email were based on this being a web project played in the browser using the Unity Web Player. But now I get the feeling, at least enough to confuse me, that you might actually be discussing an executable instead.
If you’re talking about a web project, that plays in the browser using the Unity Web Player, then yes you could say it’s “self contained” as it can’t link against external local assets/libraries. If you choose to distribute the game itself as a stand-alone executable/application, then you most certainly can link against external assets/libraries (you’ll need Unity Pro).
As to your last question, can you load and play Unity content within another app (like one written in C++)? Yes. Think about it this way, browsers are just applications written in C/C++ that load arbitrary plugins/ActiveX controls, you could do the same if you’d like. But at that rate I don’t see why that would be necessary, why not just use Unity Pro, create an executable and link against external assets/libraries as needed as that’s entirely supported.
I hope the above helps, if you have more questions then please let us know, we’re here to help.
Sorry about confusing language. The concept is for a stand-alone application that derives most of it’s content from or over the web. The application is to have an immersive 3D interface, hence the interest in Unity. (the quality of the demos is most impressive).
We will not be presenting the application in a browser at any time. Instead, we wish to render web pages within the application. Obviously not wishing to re-invent the wheel, my question went to the possibility of integrating an exsiting browser engine within a Unity application.
I think from the answers above, I need to investigate Unity Pro some more. Initial impressions of the engine from my first persual of the Unity website led me to understand that the product was limited to being something of a precompiled executable that could be scripted. I think I understand now that it can be more than this.
In any case, I have downloaded the trial version an look forward to playing!
@Tom
You say;
“But at that rate I don’t see why that would be necessary, why not just use Unity Pro, create an executable and link against external assets/libraries as needed as that’s entirely supported.”
I popbably need to read the docs in moire detail but could you expand on this a little in the context of cross-platform delivery? Even though I would develop on a Mac, I can link against windows libaries and build a windows .exe, right? Can Unity also handle mac/pc builds of the same application where such libaries would obviously be platform specific and perhaps quite different?
Sorry about all the noob questions. You patience and help is appreciated.
In short, when you develop a plugin, it’s your task to build it for the platforms you want; and then put a .bundle file (OS X) or .dll file (Windows) inside your project folder. When building a game, Unity will include the right one as a plugin and at runtime will use it.
I was up until well after 4.00 AM this morning reading docs, browsing demos and generally familiarising myself with Unity. It’s pretty exciting stuff! Now all I need to do is sell the concept of Mac based development internally!
Anyhow, I’m sure you will appreciate how overwhelming it can be to try to take in everything on a new topic in one go. In oparticular, it’s often difficult to find the answers you need in a welath of materials such as exist here. I appreciate everyone who assisted me in dealing with my preliminary queries and ensuring I stuck with it to see what a good solution Unity might be for me.