Sign in to follow this  
Vanz

Unity Unity Engine

Recommended Posts

Anyone use the Unity Engine much, any cons or issues?

 

Been playing around with and it seems pretty cool... I'm into making a 2d physics type game to run in Windows Store and work on Surface Pro and RT. Want my game to be like the game "Cut the Rope" in terms of nice clean and smooth moving graphics and object movements defined by real world physics, but my concept is totally different.

 

At this point I'm thinking of using Unity to export the c++ code after I get the sprites moving smoothly, mouse, sound and the touch portion working. Then continue on in c++. So basically use Unity to create a Windows Store compatible template with smooth graphics and all the input/outputs then jump back to c++ for all the rest...

 

At any rate would be interested in your experience and comments...

 

Thanks,,

 

Vanz

Share this post


Link to post
Share on other sites

I don't think you will be able to use Unity quite in the way you intend.  As far the game concept, it can handle it.  I think GameMaker Studio would be a better fit though considering it is more meant for 2d games, whereas Unity has some overhead for 3d which is a waste for most 2d games, with exceptions of course.

 

The problem is that with both of these engines, the software expects to be there from beginning to end.  You don't "export" a C++ project that you finish, rather you finish the project in said software and then export it as is, with the help of some outside software more often than not, like XCode for Mac/iOS, Eclipse for Android(or just the Java SDK, etc...).  Windows software also has it's things you need, though in some cases, you don't exactly need it because the games are actually "runners" or "players" with your whole game and data outside of the executable.  This varies of course with the engine, and even the settings in the engine.  For example GM Studio has both the "runner" setup, which works on windows without needing anything else as it already comes with the executable code compiled.  You can also use the "compiler" which has a dependency on Visual Studio, but then gets fully compiled instead of interpreted with a runner.  In any of these cases, you don't end up with C++ that you compile yourself, so it won't work the way you are expecting.

 

There is nothing to stop you from coding things from scratch yourself, and you would end up with the most control that way.  But, you sacrifice the easy portability that both Unity and GM Studio give you.

Share this post


Link to post
Share on other sites

Unity just recently added full 2d support:

 

http://unity3d.com/unity/whats-new

 

When I choose "Build and Run" under Windows Store Apps I can select "D3D11 C++ solution" and get a full solution file that I can pull up and edit in VS 2013, haven't looked at it closely though, could be a completely garbled mess...

Edited by Vanz

Share this post


Link to post
Share on other sites

Unity just recently added full 2d support:

 

http://unity3d.com/unity/whats-new

 

When I choose rph_"Build and Run" under Windows Store Apps I can select "D3D11 C++ solution" and get a full solution file that I can pull up and edit in VS 2013, haven't looked at it closely though, could be a completely garbled mess...

 

Hmmm, the 2d support doesn't mean that they remove the overhead from the 3d side of things, rather it at the moment is kind of a tacked on thing.  It may get better eventually, but for 2d, GMStudio is still much better if you don't need the 3d stuff.

 

About the C++ project, that is news to me.  My question then would be though, how much of the engine gets output to that C++ project?  I would assume you don't have any access to the internals to the Unity Engine itself, rather they would be gettin gcalled externally though precompiled files(like DLLS).  Also, Unity sells a separate source license to the engine, so it wouldn't make much sense to allow the source to so easily be used.

 

I think that the purpose of this C++ project is to allow you to compile the game, but probably not for modifying afterwards, rather just to compile.  It may be that instead of trying to call the compiler etc... themselves, they spit out a project and make you compile it.  That doesn't mean that the project is very easily modifiable.  For example, the normal exports spit out a "runner" executable, and every class(script, etc...) gets put into a "Mono DLL" of sorts.  It may be something similar happening here.  On the other hand, I could be completely wrong.

 

In any case, I would also think that by using the C++ to finish the project(as in not just compile, but actually program) the game would be a waste.  The point of using Unity for many people is the ease of development, for a single platform, and moreso for multiple platforms.  By editing the C++ project(assuming I'm wrong about the above paragraph), you are losing that benefit.  Also, you wouldn't be able to use those changes on other platforms later if you wished to port.  Unity(and GMStudio) make things so easy to port to different platforms, that you really wouldn't want to lose that, even if you don't plan on using the other exports now, as you never know how successful your game could be.

Share this post


Link to post
Share on other sites

Yes, I believe you are right on both accounts kburkhart84, I think I'm just being stubborn about wanting to use what I am more familiar with. If I use a game engine I should stick to it 100%, I'm just worried I'll get to a point and there will be an error in the engine or something I can't over come using the engine where as coding with c++ I feel like I can overcome almost any obstacle. 

 

Looking more closely at the solution file your right just dll's...

 

I'll take a closer look at GMStudio per your recommendation, I just though Unity had a bigger user base and was more established even though it wasn't focused on 2d...

Share this post


Link to post
Share on other sites

Some of our members are currently sharing a few thoughts about Unity -- and specifically the latest release -- in this topic.

 


What decent games were made using game maker studio?

Legend of Fae, Serious Sam: The Random Encounter, and many others.  It's a lot more capable than many people give it credit for.

 

:)

Share this post


Link to post
Share on other sites

Some of our members are currently sharing a few thoughts about Unity -- and specifically the latest release -- in this topic.

 

 

 


What decent games were made using game maker studio?

Legend of Fae, Serious Sam: The Random Encounter, and many others.  It's a lot more capable than many people give it credit for.

 

smile.png

 

Yes many others.  Check out the yoyogames showcase.  I love the look of Bullet Bros, which is on the first page right now.  You could also look at youtube's 100 gamemaker games in 10 minutes, though many of those that show are crap and/or are old.

 

You can look on the app store and google play store for the publisher Yoyogames, and you will see the games they made in house with earlier versions of GMStudio.  Some of them are pretty good, though none of them are all that complicated.

 

I actually agree that in some ways Unity has advantages.  For example, if you ever want to make the jump to 3d, you have already learned the IDE and plenty of the engine itself.  With GMStudio, the 3d is like the 2d in Unity, a sort of tacked on thing that doesn't do much.  It has gotten better, especially since they added shaders to the pipeline, which are usable in 3d as well as 2d, but since we don't have lower level access we can only do so much with the 3d side in GMStudio, and it isn't even a speed/performance issue at all anymore.

Share this post


Link to post
Share on other sites

I've been using Unity for a couple of games and I can't really complain. Sure, the more advanced stuff you want to do, the better the chance you have to make it yourself instead of relying on stuff Unity provides.

 

If you can make it in Unity (and get it to work like you want to) and it prevents you from the hassle of creating certain (time consuming) systems, than simply do it, No normal consumer will care if you make it in Gamemaker, unity or your own engine, as long as the game works as it should.

 

Regarding the 2D/3D overhead. Sure, it will very likely have some overhead, but unless you are really doing something wrong it's not going to make any difference. Once again, nobody will care if your game runs at 1000 fps in Gamemaker or 500 in Unity. People only care when it becomes obvious in your game (exceptions always there).

 

That being said. Make it in whatever engine you can work most efficient in and can do most of the things you want it to do. Gamemaker, Unity, Cryengine. If it works, it works, in the end it's the game that matters! :)

Share this post


Link to post
Share on other sites


I'm just worried I'll get to a point and there will be an error in the engine or something I can't over come using the engine where as coding with c++ I feel like I can overcome almost any obstacle.

 

I totally sympathize with this attitude.  Just keep in mind the following:  You will pay dearly for this flexibility.  Mostly by burning a lot of time, but sometimes by burning out as a further consequence, never finishing a project because progress is too slow and discouraging.

 

With a mature tool like Unity, it usually turns out that even when you do run into a roadblock, there's almost always a sufficiently acceptable way to work around the problem, many times more than one way.  It may feel dirty; it may take a few days to work out.  But the time spent will usually be much smaller than the time saved by not doing the whole engine yourself just maintain flexibility.

 

My personal plan for the next year is to do a lot of rapid prototyping using whatever tools are most natural.  Unity will be on the top of that list.  When I hit upon game mechanics that I think are worthy of refinement, I ought to be able to assess more effectively whether or not the tool I used will be sufficient for final development.  And in the worst case, I always maintain the flexibility of being able to scrap the prototype code and pick a different engine or write my own if it seems like the best option.  But I don't want to commit myself to that high price until I have determined that it is warranted.

Share this post


Link to post
Share on other sites

For a cut-the-rope style game, GameMaker is probably the best style of game engine.

 

For a side scroller type game, Unity's 2D shows a lot of promise. You may or may not choose it after looking closely, but that is up to you.

 

They are right that the engine is still fundamentally 3D. The 2D is just a view along the Z axis, plus tools for sprites, sprite sheets, and sprite-based animations. The interesting thing about it is that the 2D and 3D components can live together. So if you want to throw a 3D thing into a sprite-based world you can do that. 

Share this post


Link to post
Share on other sites

Another engine you might like to try out is Stencyl.  Created for flash games, but has broadened it's scope now that flash is losing most of it's market support.

 

I haven't used Game Maker - but Unity and Stencyl are my top 2 of those that I have used.

Share this post


Link to post
Share on other sites

If you're in doubt about a solution (in this case, Unity), don't rush and try to make your dream project with it.

Make a smaller, easier project (like a clone of some classic game) for you to learn about the engine and see if it meets your needs.

Share this post


Link to post
Share on other sites

I've used Unity for a couple projects.  The pro's to Unity are pretty obvious and have been listed en masse by the above people.  Here are the cons, as I've seen them.

 

 

--NavMesh's and NavAgents are unavailable in the free edition.  This means it's up to you to code your own pathfinding in a 3D environment.

--Point lights are a bit awkward.  If I put a point light up in a building, I can see it illuminate the ground outside the building for some reason.

--Dynamic shadows only available via one directional light in the free version.

--MecAnim system is a little touchy, in my limited experiences with it.  Your 3d models and armatures have to be correctly positioned for it to recognize them when importing.

 

 

Now... ask  yourself, how many of these cons even apply to the game project you're about to do?

Share this post


Link to post
Share on other sites

I've used Unity for a couple projects.  The pro's to Unity are pretty obvious and have been listed en masse by the above people.  Here are the cons, as I've seen them.

 

 

--NavMesh's and NavAgents are unavailable in the free edition.  This means it's up to you to code your own pathfinding in a 3D environment.

--Point lights are a bit awkward.  If I put a point light up in a building, I can see it illuminate the ground outside the building for some reason.

--Dynamic shadows only available via one directional light in the free version.

--MecAnim system is a little touchy, in my limited experiences with it.  Your 3d models and armatures have to be correctly positioned for it to recognize them when importing.

 

 

Now... ask  yourself, how many of these cons even apply to the game project you're about to do?

 

The point light problem is directly related to the lack of dynamic shadows, you need to bake it to a lightmap for it to be blocked by geometry.

Share this post


Link to post
Share on other sites

For many years, my colleagues and I scoffed at the Unity engine in favor of Torque because Torque gave us source access.

 

The physics engine was giving us crap? Code dive, debug, fix it.

 

Oh, one of their undocumented API calls is failing/you don't know what it does? Just look at the source and figure it out.

 

Granted Unity has a lot more documentation and a great deal of support, you still don't GET the source unless you pay quite a hefty fee. And it's still bugs me to this very day (Even though we've since switched to Unity)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Announcements

  • Forum Statistics

    • Total Topics
      628345
    • Total Posts
      2982200
  • Similar Content

    • By Afambus
      Hello,
      I have a full experienced team that looking for a composer and another 3d designer, im expecting as much from you there are other people in this server that can help you we have a determined team, we have done many things in our game there is more information in the discord about everyone and there skills there region and about the game, if you join the discord pm asap
      https://discord.gg/b2teN3m
    • By BAG Labs
      Mobile SoS

      Platform: Android
      Genre: Board
      Link: Google Play
       
      This games sharpen memory and test your strategies to place S-O-S pattern within time limit and serve 3 difficulties as Easy, Normal, and Hard.

      Goals of the game is to put S-O-S words in patterns (Horizontal, Vertical, and Diagonal) alternately with enemy.
       
      Features:
      Single Player Multiplayer Achievements Leaderboards  
       
      Screenshot:

       

       

       
      Link: Google Play
       
      Please help us improve this game with review
    • By abarnes
      Hello!
      I am a game development student in my second year of a three year program and I would like to start building my portfolio. I was thinking of creating some games to show what I can do to potential employers since I wont have any work related experience when I graduate. But as I'm sure you all know there are tons of ways to approach developing/designing a game and I'm curious if anyone had any insight as to any "standards" that come with this? Is it okay to use game engines like Unity, Unreal, Game Maker etc? Or would it be better to make a game from scratch to better show case your skills? Any and all advice will be greatly appreciated!
    • By Hilster
      Hello 2D Artists,
      I've started making a 2D Puzzle Adventure game for mobile and I'm looking for someone who would want in on creating assets for the game. The core of the programming is pretty much complete, you can walk within the grid laid out and push boxes, when there is an object on top of a pressure pad it will activate the linked objects or if there is one object with multiple linked pressure pads it requires you to activate all points for the object to become active. 

      The level iteration for the game is quick and simple, a Photoshop file that is made of individual pixels that represents objects is put into the game and it creates the level out of those pixels with the assigned objects.
      The objects that need sprites created so far is the character, box, pressure pad, door, trap door, the walls, the stairs and the tiled background.
      I intend to add more objects so the amount I'd like to add will be extended.
      My motivations for posting here is to have something that looks nice to be able to display on my portfolio, so if you're looking for a working game that you can place your art into and improve the look of your portfolio then we're in business.
      Please reply with a few past examples of your art below and I'll be in touch!
    • By thefollower
      Hi
      I have set up my TcpClient to connect to my server and that works fine. But i am a bit confused how i read messages from the network stream with it continuously running via async, without ever closing the connection ?
      My TcpClient Manager class has:
       
      public async Task<bool> Connect(string address, int port) { try { await _tcpClient.ConnectAsync(address, port); IsConnected = true; return true; } catch(Exception e) { Debug.Log(e); return false; } } public async Task<int> Read(byte[] readBuffer) { if (!IsConnected) return -1; using (var networkStream = _tcpClient.GetStream()) { try { var bytesRead = await networkStream.ReadAsync(readBuffer, 0, readBuffer.Length); return bytesRead; } catch (Exception e) { Debug.Log(e); IsConnected = false; return -1; } } }  
      So i thought to just run a co-routine and call Read constantly to get the most recent message, but that doesn't make much sense to me since a co-routine would be blocked with the await. How is this actually done? The MS Docs don't have very good Async examples with the TcpClient class so i don't know fully get how to keep calling Read correctly.
  • Popular Now