Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Need to Pick a Game Engine

Discussion in 'Editor & General Support' started by amoeboar, Nov 30, 2015.

  1. amoeboar

    amoeboar

    Joined:
    Nov 30, 2015
    Posts:
    23
    Hi folks, I have an idea for a game and I'm trying to pick an engine to work with. I've started playing around a bit with Unreal Engine, and am also considering Unity but have not given that a spin yet. I'm looking for an engine that will allow me to achieve my goals, have decent accessibility and good community support. I'm coming from a JavaScript background and have done some experiments with WebGL and Three.js, but so far have not had much experience with game engines.

    I'd like to offer a few details of what I'm trying to create and to determine which (if either) game engine is the better option or if I might be better served by using WebGL.

    I'm making a series of interactive environments for VR platforms based on the themes of time, memories, and travel. The goal is to visit a series of real world locations and create digital environments based on my experiences there and what I find and discover. As an artist, it is really important for me that I can manipulate the appearance of things. I'm not necessarily going for photorealism, but rather I would like the ability to control objects and materials in an abstract way. Some examples of what I'd like to be able to do are: manipulate vertices on the fly, create sound reactive environments, use point cloud data to represent real world objects and then act on those vertices, create glitches and screen illusions, manipulate the hand of time and the way objects appear at a given point in time (past, present or future).

    The gameplay mechanics are still being worked on, as well as the aesthetic. But in this initial stage it's important for me to pick the tool that will meet my needs. For now, I'd like ot know if I am able to achieve the level of control over the way things appear and behave in Unity and if it is (relatively) easy for me to do so.

    In terms of some of the abstract visuals I'm going for, have a look at the following references:


    In the above video, panoramic videos are captured in the real world and used as a skybox. The directional keys are linked to video playback. This is an example of "real" image data and graphical elements to create a unique effect.


    Here we are seeing audio reactive point cloud data to make up the terrain, ascii art whales, and screen glitches. This is also a unique and interesting effect.


    Here Lidar scans are captured of the forest and represented graphically to create something beautiful.

    So far I'm seeing that both Unity and Unreal have good tutorials online, but Unity's documentation and forum support is far superior. Blueprints seems powerful but as a programmer I'm finding the visual node-based approach a bit confusing at times. Also, I'm not sure if I can create effects similar to what I referenced above using just Blueprints. I'm not sure if I would have enough access / control over the vertices and fragments. Unreal Engine seems to favor photorealism but I know that that's not what I'm going for.

    I'm just feeling confused and a bit stuck about which direction to take, and any help is appreciated.

    here's an example of what's
     
  2. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,462
    You can do that in Unity, there even quite a few assets on the Asset Store for mesh and vertex manipulation. There are some Point Cloud tools on the Asset Store as well but I haven't used any of them. I dread working with Point Clouds..

    Mega Shapes
    Point Cloud Viewer
    Vertex Painter

    I would assume you could do this sort of thing in Unreal too, so it really just boils down to preference I suppose. Especially so if you don't need a loaded Asset Store to pull from and plan on rolling your own solutions.

    Personally, I would not recommend Unreal unless you know or plan to learn C++. From what I hear, blueprints are powerful but for the stuff you're trying to do I would be a bit hesitant to rely on them completely and the only alternative to them is C++.
     
  3. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,350
    ^that point cloud viewer (its my plugin) includes basic vertex push shader example,
    moves mesh vertices away from player based on distance, could be modified to do other effects, add waving etc:
    http://pasteboard.co/2wX2CvVG.gif

    Somewhat similar scene here, although static points (point cloud viewer was used on this project)
    http://datumexplorer.universalassemblyunit.com/

    not sure if there are proper 360 video players for unity, searched for them while ago..would be interested in that also.
     
  4. amoeboar

    amoeboar

    Joined:
    Nov 30, 2015
    Posts:
    23
    mgear, thank you for jumping in! Already I'm seeing much more forum support here than on the Unreal forums. I wouldn't make my decision solely based on forum support, but it does make a difference.

    Are both links you shared links to your plugin in action? If so, you're accomplishing a lot of what I'm seeking to create. I have a few questions if you don't mind! How are the point clouds captured, especially in the wild? What is the hardware used to do things like that (seeing on your page a note about "terrestrial 3D scanner" but wondering about some specifics)? Also, is the plugin you wrote just for Unity?

    Do you have an opinion about the above: considering my goals what can I consider about working with either Unity or Unreal and what can help me decide? You are doing some of what I want to accomplish so I'm definitely looking to hear your opinions.

    The sense that I get is:
    * If I'm going to be doing any basic things or prototypes, Blueprints is a great option.
    * If I want to do more than that, Unityscript will give me more control.
    * Anything more detailed than that I probably want C++

    Am I understanding it correctly that Unityscript might be like some kind of midway point between high level prototyping and the low level C++, providing some of the power of being able to write code along with a relatively accessible entry point via mid-to-high-level scripting?

    For 360 degree video I've found it quite easy to get things up and running using Three.js (some demos below). I'm using the super easy to use Ricoh Theta which, right out of the box, outputs an equirectangular photo that can be dropped in as a skybox into any engine.

    Three.js demos:

     
    Last edited: Nov 30, 2015
  5. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,350
    Yes, those are done with the plugin.

    There's currently 2 options to display point clouds: Convert to unity meshes, or display with DX11 compute shaders.

    Capturing point clouds:
    Can be done using kinects/realsense to full industrial laser scanners (like Faro Focus 3D etc) to scan larger areas.
    Or complete solutions like http://matterport.com/ , probably google tango also..or using photogrammetry.

    Also have to filter the point clouds (otherwise its too dense / heavy, especially when using real laser scanners).
    This is usually done in external tools like Catia, MeshLab, PointTools, Faro Scene etc.

    This plugin is only for unity, havent really used unreal engine..so cannot compare.

    I'm sure could test/prototype those ideas in unity pretty fast (as in get a rough version working in less than week) and then decide what to do.
     
  6. amoeboar

    amoeboar

    Joined:
    Nov 30, 2015
    Posts:
    23
    OK mgear, thanks for the suggestion. It's pretty unlikely that i'll be able to make a quick sketch in Unity without ever having touched the engine without a bit of help. Do you think you could point me towards a few resources which might help me get on my way with what I need to know?

    I agree that this will help me test out my ideas in both engines and see which one makes the most sense for me.

    I'm still curious to hear more from people who are familiar with the engine (or even both engines) who might have some input about which might best suit my needs. I'm taking all input into consideration!
     
  7. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,462
    Not to derail but I was actually surprised there was any point cloud stuff on the store so kudos for that but I was curious to what extent other formats and positional data you can support with it. We do some pc stuff at work and I use Unity to make some of our demonstrations and simulations that aren't prerendered. Most of the pc data we've used is from Leica tools and in .ptx format (good). We also have enormous amounts of .zfs files (not as good), are these supported?

    Just kind of curious about it, we're not really big point cloud users but i want to keep us as flexible as possible.
     
  8. holliebuckets

    holliebuckets

    Moderator

    Joined:
    Oct 23, 2014
    Posts:
    496
  9. amoeboar

    amoeboar

    Joined:
    Nov 30, 2015
    Posts:
    23
    Thanks @holliebuckets, I've definitely gone through a few of those tutorials. The main thing I'm seeking is clarity on which engine is best for my needs, considering my creative and artistic goals. I mostly want opinions about the deeper-level stuff that's not typically covered in intro tutorials. Mostly, I'd like to feel confident in moving forward no matter which path I choose, and some advice from experienced Unity developers is going to help me a lot.
     
  10. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,350
    LaneFox likes this.
  11. jinumm

    jinumm

    Joined:
    Nov 26, 2015
    Posts:
    3
    thank for all the replys
     
  12. amoeboar

    amoeboar

    Joined:
    Nov 30, 2015
    Posts:
    23
    How much C++ knowledge would I need in UE4 to do the kinds of things I'm talking about here vs C# knowledge in Unity? I'm a JavaScript developer without much experience in either of those. Also, I know in UE4 that effects and complex post-processing can be tedious, and somewhat limited compared to a hand-written shader. What's the process like in Unity, and how easily can I hand-write my own shaders?
     
    Last edited: Dec 2, 2015