Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

OpenGL vs. Unity for developing android games?

Discussion in 'General Discussion' started by iSmart, Sep 23, 2014.

  1. iSmart

    iSmart

    Joined:
    Sep 23, 2014
    Posts:
    43
    Hello gamers,

    I know it might be some ridiculous question to ask it in Unity forums, but trust me it's not!
    My question is to get high performance, no limitation, ease of use, no effort, supported globally, and high quality graphics for android mobile games, which it's better, to develop an android games using Open Graphics Library (OpenGL) and developing the game in a native manner (Java) or developing using Unity 3d engine?

    I am looking for the performance and the quality of the games as the top requirements. To get a job in the industry which the one is on the demand?

    For now i am targeting 2D games, but later of course 3D will be involved.

    I am looking for answers and advises from experts in this field, newbies please set down side by side and wait for the right person to answer my questions.

    Regards,
    Abdulrahman
     
  2. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,064
    Unity3D is ideal if you want to easily have your application run across multiple platforms. Requirements for Android are pretty low. It only needs OS 2.3.1 or later, an ARM v7 (Cortex) processor, and OpenGL ES 2.0 or later.

    There has been some occasional mention of Android x86 support in the works, but right now it only supports ARM.
     
    Last edited: Sep 23, 2014
  3. iSmart

    iSmart

    Joined:
    Sep 23, 2014
    Posts:
    43
    My question, as a mobile game developer which it's better for a better mobile games future? i mean what other common 2D or 3D mobile games brands require from the developers ( To develop through Java normally or developing through an engine like Unity? ) Of course every game engine has it's own limitations. So which approach will be better?

    Thanks
     
  4. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,064
    Yeah I realized I misread your question and put up a new answer.
     
  5. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,398
    There isn't a "better"; it depends on what you want to do. I see you mentioned "ease of use", which rules out native code, and "no effort", which rules out everything.

    --Eric
     
    carking1996 likes this.
  6. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,064
    Both are in demand.
     
  7. iSmart

    iSmart

    Joined:
    Sep 23, 2014
    Posts:
    43
    Well, Eric. All what i need is to build android mobile games that can get good fund. A game which it's graphics looks great, a game like some of Rovio 2D games (Angry Birds for example ) or Rayman Jungle Run. Now both we know i can create a game like this using an engine like Unity or creating it using Java normally, but which one will get better results?

    And by the way, i mentioned "without effort" not meaning what you understood, i am saying building it without needing to build it from the ground/scratch.

    Thanks for advices Ryiah, i appreciate this a lot. I am looking for an approach that will get me an internship in this field and job later. But for now i guess i'll stick into this engine.
     
  8. Deon-Cadme

    Deon-Cadme

    Joined:
    Sep 10, 2013
    Posts:
    288
    Hi, your questions makes it painfully obvious that you are new to this so lets just start with something reasonable. Finishing your first few projects. That will be hard enough and I'd bet that you hit enough problems to come here for more task specific help before it is finished.

    high performance - You want to get as close as possible to the hardware but that also require more case by case solutions. I've seen research papers in this area that still makes my head spin after many years of programming. There is always another rock left unturned in this topic.
    no limitation - There is always limitations. An experienced developer just knows how to solve many of them and which problems that are to expensive to solve. Some dedicate half their life solving a specific problem for the benefit of the others :)
    ease of use - We all dream about that one but no engine, language or technique is an island. All got its benefits and drawbacks so get your swimwear ready.
    supported globally - Babelfish, there are different languages with different advantages... and drawbacks.
    high quality graphics - Stationary computers beat consoles, consoles beat smartphones and smartphones beat calculators. Graphics isn't even the most important thing, that is just icing on the cake. You should instead aim for fun and interesting game mechanics.

    To get a job in the industry... get a degree from University from one of the fields within games development, practice patience and humility because developers work together and they don't got time with overconfidence. Also, make sure that you practice your chosen field of game development day and night if you want to get into a AAA studio. The entrance level is increasing every year and remember that there is always someone out there that is better then you.

    The best recommendation of all, work on things that you want to work on in the future and make sure that you have fun at the same time.

    Start with Unity, it is a good place to grow. It is simple compared to other engines when you get the hang of how it is working, C# is a bit easier then C++ but you should learn the second language if you want to get in to the big studios as a programmer.
    Pen and paper + Wacom tablet and photoshop is your best friends if you want to become a concept artist.
    Blender is a good and free 3D program to get started with, Maya/3D Studio is the next level if you want to become a professional 3D artist and should be combined with Zbrush and many other programs. There is honestly so many programs that artists use in the industry that I cannot count all of them on top of my head.
    Level Designer - Make levels and mods in Unreal Engine, Unity or other game engines.
    Game designer - This one is difficult, make sure that you understand games, learn the basics in all fields of development and learn more about everything in life. We will know if you are a candidate or not but this one is probably the most difficult profession to target in the industry.
    There are also many other fields that you can target, some require unconventional studies at university.
     
    carking1996, iSmart and angrypenguin like this.
  9. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
    Well asking for which one yields better results the answer is both can do the 100% same result if you master everything and time has no value. Difference is that Unity does a lot for you while with Java and no extensions means you need to everything yourself, frame animation system, spritesheet management etc.
     
  10. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    2,980
    It will be easier for you to build your game in an engine like Unity. OpenGL is just a rendering layer. OpenGL is not an engine. So if you go the route where you build a game using Java and OpenGL, then you will need to build your own engine. It is certainly not an impossible task, but it would be a waste of your time if building a game is your main goal.
     
  11. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    It's quite enlightening to build your own engine on top of OpenGL, that is, you quickly find out how much Unity does behind your back (In a good way, not your old middle school gossip), and will start to appreciate it more.
     
  12. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,500
    That's not a feature of any engine, rendering API, program language or other tool you might use. It's a thing that you have to do yourself, using those tools.

    Before you can even begin to seriously think about making cash, you need to first learn the craft. Many, many people learn the craft and don't ever draw a dime from it, so you should be well aware of (ie: research for yourself) the income that most developers get from their games. Then, consider that the people you could find information on are those who have some level of skill and experience significantly higher than a newcomer, so you'll have to invest into yourself and your capabilities before you can join their ranks.

    I don't want to turn you away, but I would feel negligent to let you sally forth with the idea that you're jumping into mobile game dev primarily for coin. Do it out of passion, existing skill, interest, because it's fun, to learn a new skill... but if you're here for money there's a good chance you'd be better off applying for jobs.

    Here's an exercise: Pick 10 paid apps that aren't in the top charts and find out how many downloads they've got. From that, estimate how much money they made.
     
    Cogent and Kogar like this.
  13. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Was going to reply with lots of advice but I think OP isn't remotely at the point where I could help, so my reply will have to be "finish a simple game first."
     
    carking1996 and iSmart like this.
  14. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,033
    And Java and any of the popular engines. I'd think C++ games are the minority, actually. It's just simpler to go with a dedicated 2D engine for many of the types of games people shotgun-blast out there ;)

    That's your fault ;)

    (I'd suck just as much, for the record)

    And SpriteKit and a map editor and a physics engine and oodles more! Xcode is basically a very tempting, feature-complete 2D game development toolkit. But you'd still be limited to one platform.
     
  15. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,398
    As I recall, Unity has some pretty hard-core assembly optimizations on iOS, so not being able to equal its performance is not actually that surprising.

    --Eric
     
  16. iSmart

    iSmart

    Joined:
    Sep 23, 2014
    Posts:
    43
    Thanks for those advises, however i am a Java programmer right now ( developing native android applications ). I just started learning Unity before a week, it's fun somehow which it's a positive point.

    I've a question for you regarding all what you just wrote, game designing means graphic designing for the game or designing level of a game? or it's related to game programming field too?


    I am not thinking in a business way as you think, i am thinking about a secured future for this field of programming. As i mentioned above in this reply, i am an android application developer, i just love to do things that matter :), a proven for that, you can see my android application (Guru) which help students and intellectuals around the world without needing to pay any fees!: https://play.google.com/store/apps/details?id=com.app.guru

    So, i am really interested in this field more than you expect, games are my main goals to develop from ages. But i just want to know where to put my foots before falling in any troubles.

    Thanks again for your help.


    I've already started building a 2D game using Unity before i started this thread, once it's up, i'll be waiting for your help after publishing it :)


    Does it have those optimizations for Android too?
     
    Last edited: Sep 24, 2014
  17. Graham-Dunnett

    Graham-Dunnett

    Unity Technologies

    Joined:
    Jun 2, 2009
    Posts:
    4,287
    See the Unite 2014 Wrap-Up blog. We're entered an agreement with Intel to support x86 Android devices.
     
    iSmart and Ryiah like this.
  18. Graham-Dunnett

    Graham-Dunnett

    Unity Technologies

    Joined:
    Jun 2, 2009
    Posts:
    4,287
    So, what I'll say is:

    1. Where will you get your artwork from? Do you need to write an FBX importer? Do you need to write a PSD importer?
    2. What lighting model will you support? Will you need a light mapping solution? Where do the shaders come from?
    3. Are you going to implement your own occlusion culling?
    4. Are you going to need any physics? Where will your collision detection routines come from?
    5. Animation? You going to write your own system for that?
    6. Guess you'll write your own audio system.
    7. How much time will you spend writing your engine and editor, vs writing your game?
    8. Oh, what kind of editor will you create?

    Obviously you'll learn a great deal about how games are created. If Unity is not for you that's cool.
     
    Meltdown, roojerry and Ostwind like this.
  19. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,500
    Haha, that does seem a little biased, there, Graham. For instance...

    Why would he do that? There's perfectly good audio solutions available for little or no cost, such as FMOD which is free for projects with <$100k budget. Yes, it still needs integration, and that's not trivial, but that's far from writing the solution for yourself.

    Same applies for physics and many other major engine components.

    Occlusion culling and lighting systems are also things that might not even be needed, depending on the style of game. I've certainly made stuff where either or both of those things hasn't been a requirement. Same deal with even an Editor, depending on the game he wants to make. (Indeed, if someone wants to learn to do stuff from scratch I'd recommend starting with a game, not an engine.)

    As a learning experience I recommend everyone has a go at making something from scratch, or near to. Even if that just means finding and assembling existing libraries you'll learn a lot about what they do and how they work, what the contribute to the game/engine as a whole, engine/low-level design issues, reusability, what you're actually making your computer do when make trivial-looking high-level calls, etc. etc.
     
    Ryiah likes this.
  20. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,064
    You make it sound like all of those are absolute requirements for developing a game. Those may certainly be necessary for creating a game engine on par with Unity, but they aren't strictly necessary for a game.
     
  21. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,066
    Actually the list is pretty spot on. And the parts that are optional (e.g. Physics) are a question mark.
     
  22. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,064
    Which means practically every entry is completely optional.
     
    angrypenguin likes this.
  23. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,066
    Don't be a dope :) You know what I meant.
     
  24. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,500
    That was my instant reaction, too. ;)
     
  25. Deon-Cadme

    Deon-Cadme

    Joined:
    Sep 10, 2013
    Posts:
    288
    Nope, game designer is a separate profession within the games industry. At the top of a AAA game project is typically the company is the project manager and the creative director. They are the big bad bosses, the project manager overlooks schedules and other boring stuff like that while the creative director makes the big, broad decisions about what the game will be at the end, is it a FPS or RPG? Scifi or Fantasy? He makes the big decisions (often based on marketing research) but ends there and leaves the rest up to the game design department while he spends more time being the face of the project.
    The game designers actually define what the game will be, they are the spiders in the web that define the list of weapons that will appear in call of duty, tweak their values, shoots artists that try add rainbow ponies into the game, they overlook schedules, mediate when different departments start fighting and much much more... the required skillset for a really good designer is reaaaaaally long. Some are born for it but most work their way up through companies to that position while learning a bit of everything in games development.

    Level Design is also a separate department. It is their work to take the artwork, npcs and systems that programmers develop and add them to the world based on the instructions that they are given from the game designers.

    Graphics designers are typically not a term used much within the games industry. It happens that some studios got a person with that title but it can literally mean anything between heaven and earth.

    There are many other departments in a games studio... to late right now to make a list about it but I think the last one I managed to write with the most important specializations ended up at 30-40 points... x) Yeah, there are many positions and most of them got juniors, regulars, seniors, leads and occasional managers as well... the structure is not that simple to understand unless you have been there.

    I see and understand your aim a bit better now... game development is the equal to F1 racing... it is the most extreme path you can take but it is not only engineering, it is also an artistic craft that requires a certain feeling for what you do and a burning passion that keeps you alive during the long nights.

    I humbly think that Unity is the best place to start and stay for a beginner for the next few years. I don't know how much knowledge you got and if you intend to spread into arts as well but get ready for a veeeeeeery long journey.

    A good idea might be if you Google and read up on the different professions/specializations in the games industry. Then ask yourself what you want to learn in-depth and what you want to leave to someone else :)

    Another good idea is to start picking up books on the topic of game design... the game rules, systems etc can be a lot more complicated then you think while playing a game. Game design information also tend to brush over knowledge from other specializations and that might help you dive deeper into those areas as well...

    Unity makes some optimization for Android in the background when you publish a project but I am thinking on well written code that runs fast when I use that word. It is a specialization on its own within programming and AAA studious typically got a few people that specialize in optimizing code all day long... yeah... and they can specialize in optimizing graphics code, shaders, game logic code etc xD
     
  26. kaiyum

    kaiyum

    Joined:
    Nov 25, 2012
    Posts:
    686
  27. iSmart

    iSmart

    Joined:
    Sep 23, 2014
    Posts:
    43
  28. Graham-Dunnett

    Graham-Dunnett

    Unity Technologies

    Joined:
    Jun 2, 2009
    Posts:
    4,287
    Obviously they are not Unity related, they are technical documents from the hardware manufacturers. If you want to create your own game from scratch the more you can learn about the hardware (CPUs and GPUs) the more likely it is you'll design your game to get the best from them.
     
    iSmart, angrypenguin and kaiyum like this.
  29. iSmart

    iSmart

    Joined:
    Sep 23, 2014
    Posts:
    43
    Graham would you please guide me to good video/books tutorials related to Unity 2D platform, i have already watched the videos in "Learn" section,and also i have a look at the documentation. But looking for more examples (either paid or nonpaid).

    Thanks
     
    Last edited: Sep 27, 2014
  30. Cogent

    Cogent

    Joined:
    May 14, 2013
    Posts:
    356
    This is the most helpful reply possible and the only reply absolutely necessary.

    OP will learn more from accomplishing, no, attempting this than anything else.
     
  31. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,797
    If you want to make games, use Unity, if you want to make a game engine, then make a game engine :)
     
  32. iSmart

    iSmart

    Joined:
    Sep 23, 2014
    Posts:
    43
    I think you should say "If you want to make an engine, learn OpenGL"
     
    Meltdown likes this.
  33. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,500
    Alas, OpenGL is neither the only thing you need to know nor the only option in its area.
     
    kaiyum likes this.
  34. kaiyum

    kaiyum

    Joined:
    Nov 25, 2012
    Posts:
    686
    Unless u think of a very boring odd just a renderer rather than a game ENGINE ;)