Home General Discussion

Making games in unity

polycounter lvl 14
Offline / Send Message
DrunkShaman polycounter lvl 14
Greetings;

First of all; The reason for me to ask this question is because according to the communities/ forums, that I go to, debate upon the part where if one is planning to make games on ready-made game engines and / or using C# instead of C++ for game development. The debate runs further on where the members enforce one to create their own game engines using C++. While that is all good and kind of make sense, in my previous thread which was relevant to the same sort of discussion one of the members stated "you can do that in unity."

Leads me to ask this obvious question(s) / requesting a suggestion:

Would you (if you chose to, ) start making small games ( possibly for phones and PC) while being an independent "game developer," using Unity?

If so; Would you recommend one to use it until he/she have a better foundation for traditional way of doing things for example: Work on their own game engine using C++, or stick to Unity?

Replies

  • sprunghunt
    Offline / Send Message
    sprunghunt polycounter
    Unless you have a large team and lots of funding you just won't be able to match the convenience of using a 3rd party engine. Especially when it comes to how the art looks.

    However I do know a few programmers who have turned indie and made their own custom engines. It's usually been because the game they're making is specialized in scope in a particular way.

    Because of this I feel that the best option is to think about making your game in a 3rd party engine first (unreal, Unity etc) and then, only if there's something really special you need, look at creating your own engine.
  • [Deleted User]
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    Nitewalkr wrote: »
    The debate runs further on where the members enforce one to create their own game engines using C++.
    I think that you should change forums... seriously.
    Nitewalkr wrote: »
    If so; Would you recommend one to use it until he/she have a better foundation for traditional way of doing things for example: Work on their own game engine using C++, or stick to Unity?

    Making engine is a fulltime job. You get payed for it. You will have no time to make games if you go this "traditional way".
    You can extend existing engines, but writing one from scratch == years, light years before you will make a game in it.

    Go Unity or UE4 and learn how to extend those engines if you need, that's a traditional way. Not writing you own custom engine.
  • kanga
    Offline / Send Message
    kanga quad damage
    Unity is a great engine/editor. Its developing fast and I dont think you could ever get tired of it. Not sure I understand the part about making your own game without an editor. Does it mean if you code everything yourself you walk with clanging sounds and wear iron under-trousers?
  • Zephiris
    Offline / Send Message
    Zephiris polygon
    There are very few reasons(if any) to build your own engine when you can so easily and cheaply(or even free) access tools like UE or Unity that have years of work put into them.
    You'd have to have some very specific needs for that to make sense nowdays, really.

    Unity is great, especially for starting out, I'd definitely recommend it. It's probably the fastest way to get started.

    You may want to take a look at both Unity and UE and see which one fits your needs better though.
  • NegevPro
    Offline / Send Message
    NegevPro polycounter lvl 4
    If your goal is to build a game as fast as possible then you will probably be better off using an existing engine. There's still plenty of reasons to write your own engine: you'll have full control of how everything works in the background, you won't have to pay any royalties to third parties, you will fully understand how each and every piece of the engine works together, any bugs will get fixed in the time it takes you to fix them, you will obtain a crazy amount of programming and gamedev knowledge, etc.

    While most people might not have any need for a lot of the benefits provided by making an engine yourself, the amount of knowledge you gain by making an engine is quite valuable and will probably change the way you attempt any kind of future gamedev problems.

    For beginners, I think a good path to take would be to start out writing higher level code by making a game in an engine like Unity (or doing non-gamedev projects), then slowly work your way to lower level code. In the past, people had to write their own engines out of necessity which meant a huge learning curve for learning game programming, but that isn't the case anymore.
  • DrunkShaman
    Offline / Send Message
    DrunkShaman polycounter lvl 14
    NegevPro wrote: »
    If your goal is to build a game as fast as possible then you will probably be better off using an existing engine. There's still plenty of reasons to write your own engine: you'll have full control of how everything works in the background, you won't have to pay any royalties to third parties, you will fully understand how each and every piece of the engine works together, any bugs will get fixed in the time it takes you to fix them, you will obtain a crazy amount of programming and gamedev knowledge, etc.

    While most people might not have any need for a lot of the benefits provided by making an engine yourself, the amount of knowledge you gain by making an engine is quite valuable and will probably change the way you attempt any kind of future gamedev problems.

    For beginners, I think a good path to take would be to start out writing higher level code by making a game in an engine like Unity (or doing non-gamedev projects), then slowly work your way to lower level code. In the past, people had to write their own engines out of necessity which meant a huge learning curve for learning game programming, but that isn't the case anymore.

    Currently I am doing both actually; Practicing code in C++ and Java, while studying how C# works in Unity. The problem is, it has been a long time and I have yet to make myself known for what I really want to do in this industry, but based on my tight schedule, I cant really focus on much until / unless I am fully involved in game development. I get more coding time in my hand if I get involved.

    Your suggestion is relevant and that is exactly what I thought, but I also thought a lot of coders hate those who cut corners, so I asked this question anyways.
  • GarageBay9
    Offline / Send Message
    GarageBay9 polycounter lvl 13
    mantragora wrote: »
    I think that you should change forums... seriously.



    Making engine is a fulltime job. You get payed for it. You will have no time to make games if you go this "traditional way".
    You can extend existing engines, but writing one from scratch == years, light years before you will make a game in it.

    Go Unity or UE4 and learn how to extend those engines if you need, that's a traditional way. Not writing you own custom engine.

    All of /\ this.

    We stopped writing new game engines from scratch every time we wanted to make a game TWENTY YEARS AGO. Anybody who is hung up on that either has something to prove to everybody who isn't interested anyway, or they're really stuck in a bygone era.
  • kanga
    Offline / Send Message
    kanga quad damage
    If your goal is to build a game as fast as possible then you will probably be better off using an existing engine. There's still plenty of reasons to write your own engine: you'll have full control of how everything works in the background, you won't have to pay any royalties to third parties, you will fully understand how each and every piece of the engine works together, any bugs will get fixed in the time it takes you to fix them, you will obtain a crazy amount of programming and gamedev knowledge, etc.
    This sounds reasonable. I dont know much about coding, I only do it when I have to but, maybe you could take an opensource engine and add to it. Would that teach you more?
  • NegevPro
    Offline / Send Message
    NegevPro polycounter lvl 4
    Nitewalkr wrote: »
    Currently I am doing both actually; Practicing code in C++ and Java, while studying how C# works in Unity. The problem is, it has been a long time and I have yet to make myself known for what I really want to do in this industry, but based on my tight schedule, I cant really focus on much until / unless I am fully involved in game development. I get more coding time in my hand if I get involved.

    Your suggestion is relevant and that is exactly what I thought, but I also thought a lot of coders hate those who cut corners, so I asked this question anyways.

    I wouldn't consider not writing your own engine as "cutting corners" although I've seen some arrogant programmers make ridiculous claims like that. At the end of the day, you should take steps to move towards your ideal job. If you want to develop or improve a game engine, then learning how one works is an important step of the process. Similarly, if writing gameplay code is your dream, then learn how to efficiently write gameplay code.

    Re-inventing the wheel every time you work on a project won't get you closer to completion. If an engine like Unity does every thing you need it to and the cons of the engine can be dealt with, then there's no reason not to choose it over making your own tool unless you want to do a learning exercise.
    kanga wrote: »
    This sounds reasonable. I dont know much about coding, I only do it when I have to but, maybe you could take an opensource engine and add to it. Would that teach you more?
    Contributing to any open source project is a great learning experience because before you can add to it, you need to understand a lot about how the project works beforehand.

    I'm not saying that everybody should write an engine from scratch, but if nobody tried writing a game engine in order to push themselves as a programmer, then it is quite likely that we wouldn't have awesome tools like Unity and Unreal Engine in the same level of quality that they are today. Also, if somebody does choose to write their own engine, it would be important to realize the actual scope of the project. Making a game engine is a lot of work, but it's not like every game engine has to have the same amount of features and polish that Unity or Unreal Engine has.
  • Shrike
    Offline / Send Message
    Shrike interpolator
    Use an existing engine. Building your own makes no sense at all in 99.9% of the cases, unless your goal is to waste a lot of time and money to have a inferior engine as a result and be able to start working on your game months later than planned.
    Insisting on building your own engine is a Ego thing, nothing more. Thats not the voice of reason.

    Programming language does not matter, I write in game maker script and its more than enough to
    get a game with lots of features running, and its like 1/3 of C#. Don't go with C++ if you don't have to. Nobody cares how you build
    it, get something working at all, thats more than hard enough.
  • Alemja
    Offline / Send Message
    Alemja hero character
    I have a little bit of experience working on an indie title with a graphic programmer. Pretty much his entire job revolves around making an engine do stuff and on his spare time he built one from scratch. I got on board to make art for the indie title a few years ago and by that point he had been working on it for 3+ years, I still do art for it from time to time and he still works on it to this day since he's going for realism with the lighting and all that. Graphics programmers, or people who do similar things are probably the only ones I would recommend doing these sort of things from scratch since that's what they do and it is about the equivalent of making portfolio art pieces on your spare time.

    Point being that making an engine is a huge undertaking, especially if you are trying to go for the look that UE4 or Unity can achieve. Those projects also have tons of people (don't know the exact number of either) working on them as a full time job, there is no way a single person can do it in a reasonable amount of time.

    If you want to make a game, especially one that is a solo man project, play to your strengths. I great quote I heard just yesterday about indie development: "Start where you are, use what you have, do what you can"
  • Target_Renegade
    Offline / Send Message
    Target_Renegade polycounter lvl 11
    I tend to look at it like this: if you have all of the frameworks and libraries available to you, to make the game you want to make, do it. So much easier nowadays, I mean this in a obj-c memory concerned way. There's no way you can;'t make the game you want to make. Plus, lots of source / high end programmers are instructing and educating people for free.
  • DEElekgolo
    Offline / Send Message
    DEElekgolo interpolator
    These days making an engine usually meals pulling together a bunch of libraries and making sure they all play nice with each other unless you're writing those parts yourself as well. From personal experience though the from-scratch make-my-own-engine route is more educational than it is "productive" to making a game. I learned a lot from my small engine projects but in the end I'd spend more time making an actual game if I used UE4 than if I was still worrying about getting fonts to properly render out or getting a virtual file system working. I learn a hell of a lot about computer science and such by touching all the topics involved in designing and making an engine but the actual game will keep getting pushed back or juggled in parallel to making the engine. Maybe it's just me being impatient but most of the time when I see teams of people roll a new engine it's usually because their target platform involves some kind of console that merits them getting into the grit of the environment due to some aspiring demand(unless some pre-made engine supports that console as well in which case they just gotta re-flavor a few things for the console and ship).

    An engine is something that huge teams of people take on. For just one person to make an engine on their own is going to take years and probably isn't much worth the "I made it from scratch!" bragging rights.
    Cavestory was written from scratch and it took him 5 years to make the engine and the game. Things are different now and you can probably do it even faster but if you really want to dive in and just design a game then use a pre-made engine or poke around at some other open source ones if you need too(UE4 is open-source fyi). UE4 and Unity provide you with a platform when you mostly just have to worry about iterating your design.
Sign In or Register to comment.