Jump to content
  • Advertisement
Sign in to follow this  
larsbutler

Unity Unity vs. a more "lean" game engine

This topic is 983 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi there, it's been a while since I've posted.

 

I'm looking to start a new game project. I've been developing software for a long time, and I recently started learning some 3d game programming (through a university class) with jMonkeyEngine. It's going great! I'm getting more and more comfortable with 3d programming. I still have a ton to learn, but after spending just a few days playing around with jMonkeyEngine, I'm getting the feel for it.

 

The person I'm collaborating with is an artist (2d, 3d, textures, models, level design, etc.). We're trying to find the right tools for our first project, which will be a 3d game with some simple mechanics. He's played around with Unity in the past, and suggested that I check it out. I'm on the fence, to be honest. I'm a software developer at my day job. I like things to be lean, clean, and minimal. I code in vim mostly. I avoid IDEs like the plague, except in the case of Java, which makes my fingers hurt if I don't have some good code completion. ;) jMonkeyEngine appeals to me because I can just start writing code. Every time I've tried to dig into Unity in the past, I never could grok what is going on; it just seems like a lot of magic. It seems bloated and verbose, and the everything seems very tightly coupled together: level design, game objects, and game "scripts" all just thrown into one massive GUI. I found it noisy and unreadable. Despite all of the good things people say about Unity, I honestly just don't have a good first impression of it.

 

On the other hand, because everything is integrated, there's no need to figure out how to handle asset pipelines, level design/building, etc. (With JME, for example, I would have to figure all of that stuff out for myself, and maybe even build custom tools just to put everything together.) So already I can see some tradeoffs. In Unity, I/we could build our levels by basically just dragging things around in the graphical editor. With JME, I'd have to either a) find a secondary tool to help me model the levels, b) write my own editor (not ideal), or c) just do everything in code (also not ideal).

 

So finally to my questions: To those who have experience with Unity, is my initial impression at all accurate? To the veteran programmers out there, what's your opinion of Unity, especially in terms of its programming approach? If I go the "leaner" route (even with a "batteries include" engine like JME), am I going to have to end up writing all of the stuff that's "missing" (which Unity already has)?

 

I understand that the use of tools and the approach different people take is highly subjective. I'm really interested to hear peoples' experiences and opinions on this.

 

Sorry for the long-winded post. I appreciate any feedback! =)

 

Cheers,

-Lars

Share this post


Link to post
Share on other sites
Advertisement

Unity handles lower level stuff for you (Importing animations, cutting spreadsheets, importing sound) allowing you to focus on your game.

 

You can either use Unity, and focus on your game, or use another program, and have something more tailored to your needs.

Share this post


Link to post
Share on other sites

I've used unity since version 2, so I'm pretty familiar with it. I'd say your first impression is correct, but possibly you may be missing alot of its perks.

 

Overall, I like unity, but as I've become a more advanced programmer, I find it more constraining. I was mostly drawn to it because I started as an artist with some programming skills. It really enables you to get art assets working quickly. You can have a functional 'game' working with a handfull of assets and simple scripts. However, if you do anything that goes "against the grain" and you're trying to do something unity wasn't designed to do, it becomes more of a hassle to deal with.

 

If you're doing anything suffeciently advanced or against the grain, unity ends up being a bloated IDE with auto re-targeting. It's hard to say whether that will be the case with any given game though, unless you know Unity's capabilities and constraints.

 

If you decide to opt-out of using unity's phyics, level-design pipeline, animation, and rendering/materials, then you're better off using something else. If you're only ignoring 1 or 2 of those, it's probably better to stick with unity.

Share this post


Link to post
Share on other sites

I've used unity since version 2, so I'm pretty familiar with it. I'd say your first impression is correct, but possibly you may be missing alot of its perks.

 

Overall, I like unity, but as I've become a more advanced programmer, I find it more constraining. I was mostly drawn to it because I started as an artist with some programming skills. It really enables you to get art assets working quickly. You can have a functional 'game' working with a handfull of assets and simple scripts. However, if you do anything that goes "against the grain" and you're trying to do something unity wasn't designed to do, it becomes more of a hassle to deal with.

 

If you're doing anything suffeciently advanced or against the grain, unity ends up being a bloated IDE with auto re-targeting. It's hard to say whether that will be the case with any given game though, unless you know Unity's capabilities and constraints.

 

If you decide to opt-out of using unity's phyics, level-design pipeline, animation, and rendering/materials, then you're better off using something else. If you're only ignoring 1 or 2 of those, it's probably better to stick with unity.

Gonna take over OP's thread for a second (Sorry!).

What would be an example of "something else"?

Share this post


Link to post
Share on other sites
There are many game engines other than Unity. Some are little-more than frameworks that try to give you some extra game-centered features, others are full-blown engines that are ready to run at the beginning.

All of them offer tradeoffs. You use their system and do things according to their patterns. This comes with the consequences that their patterns may not be the best fit for your game, and pairs nicely with "not invented here" syndrome.

Bigger systems tend to come with more features. Many of those features are powerful tools or emerging technologies, or valuable to different size teams, which you may or many not use. If you use it, you call it a feature. If you don't use it, you call it bloat.

Using an engine means you save yourself many work-years of work for building and debugging and integrating the features. That is, unless it is a feature that you don't use, then you consider it a waste and bloat and useless to you.

You also get an ecosystem of experienced developers who can help you, although the size of that ecosystem varies by system.

Share this post


Link to post
Share on other sites

I do most of my hobby game dev in C++, ranging from writing low level engine stuff to using existing engines. The first time I started up Unity I was like dude...? Where the hell is my main? Where do I start typing!? After a short while I got the hang of it and now it's my go to game engine when I need to whip out a game in a few days for a competition or something similar. It's nice for things I don't what to think about much, but I'm also a stickler for control so I only use it for small time stuff.

 

I wouldn't worry too much about your first impression. There's an easy way for you too find out: just make a simple game in Unity, finish it and then look back and reflect. It doesn't have to take long, you could probably do it in a weekend.

Share this post


Link to post
Share on other sites


Gonna take over OP's thread for a second (Sorry!).
What would be an example of "something else"?

 

I'd say either Unreal, or one of the other open source "engines" (libraries) that are available. If you've got the skills, I guess you could do some sort of custom engine too, although it seems unnecessecary to reinvent the wheel. It would probably be better to start out with a game-centric library and expand upon it.

 

I think that unless you're doing something very high-end, or something really strange, unity is workable. The exception here might be if you're doing something that requires a specific type of system that unity doesn't have - such as dynamic-ish water effects or wind or some other physics-related sytem. Even then, it may be possible to modify unity to work with a seperate physics system.

Share this post


Link to post
Share on other sites

Unreal

I don't think Unreal is going to be any less alien than Unity, to be honest.

You trade the "Unity way of doing things" for the "Unreal way of doing things", which is equally arcane on first acquaintance, and I'd say Unreal has a steeper learning curve.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!