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

Is Unity helping or hurting programmers?

Discussion in 'General Discussion' started by DexRobinson, Jul 21, 2014.

  1. 3agle

    3agle

    Joined:
    Jul 9, 2012
    Posts:
    508
    You can't just pick and choose where a conversation goes, buddy.
    You made a statement that a lot of people disagree with, you can't expect people not to respond to it.
    Perhaps you should stick to the topic at hand, instead.
     
    der_r likes this.
  2. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    I am sticking to the topic... the topic is about making video games in relation to using or not using programming. Arguably adding in scripting as a form of programming.
     
    Last edited: Aug 8, 2014
  3. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    For the record, I worked at Gameloft and contributed to their internal tools, libraries, games and engines. And the reason why mostly studios prefer to roll their own engine is because most of the time they have specific needs that a general purpose engine doesn't offers or would simply be too much for their needs (even Unity could probably be too much when you just need a small rendering engine and so on). Lots of people I've worked with don't really care to write stuff from scratch and want to keep control of such things (I'm btw one of those guys). Engines licenses also cost a lot of money to studios. Plus the fact that it takes a huge amount of time to learn engines/tools (specially those who are very complex). Also the fact that lots of established studios already have their inner workflow and in-house tech they constantly improves and are very comfortable with.
    But that doesn't mean every big studio is like that. A bunch of big companies does infact work with UnrealEngine, CryEngine, etc. It's part of their workflow, they got experienced leads that hows the ins and outs of those tools.
    Either are bad.
     
  4. 3agle

    3agle

    Joined:
    Jul 9, 2012
    Posts:
    508
    You seem like a very argumentative fellow, and I suggest you take a little breather before assuming every post that quotes you is a personal attack.

    As for what you believe the thread is about, I think you should read the original post again, as it is clearly about the transference of external programming knowledge to Unity programming, not whether or not you should use programming to make games.
     
  5. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Pretty funny stuff.

    To prevent myself from falling for the troll bait you two want to give, I will eliminate myself from this ridiculous new topic and place you two on ignore so hopefully we can get back on topic.

    *crosses fingers*

    TOPIC: Unity helping or hurting programmers? Managed Languages & Programming Video Games.
     
    Last edited: Aug 8, 2014
  6. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    This is very true, and what I have learned while using Unity. It is also the reason why I don't know if I will be using Unity again after I release my current game.

    This. A thousand times over: This.

    I would never suggest a game engine like Unity to anyone who didn't already have Unity experience. Unless their game fit very well with Unity. Mind you, I never talk about 3D and am always thinking exclusively about 2D games.


    Those are some GREAT points, @tatoforever.
    Great enough for me to agree that those are some of the best reasons as to why Unity is hurting programmers.
     
  7. minionnz

    minionnz

    Joined:
    Jan 29, 2013
    Posts:
    391
    Not sure why this thread devolved into an pointless (but entertaining) argument about programming vs non-programming, but I'm going to try to stick to the topic :)

    @Carter - You seem sure that Unity is hurting programmers. From the original post, I took the word "hurting" to mean the ability to transfer skills/knowledge from one area of programming (ie: video game development) to another, but I have the feeling you are looking at it from another angle? I'm not 100% sure I understand what you are getting at.

    Over the past five years, I have been working on web applications full-time and I haven't even touched a line of Windows programming. Does this mean I've forgotten how to write Windows applications? Not at all. While it may hurt my chances of getting a job focusing on that area, I still remember how to write a Windows app. Areas that are a little fuzzy might require a bit of Googling, but it'll come back very quickly.

    I don't think Unity hurts programmers at all. All the concepts and design patterns used when developing a game for Unity apply to traditional software programming. The workflow is a little different, but programmers switch between different tools/platforms all the time.

    If you start programming with Unity, learn C#. Once you learn the language, how references work, various traditional design patterns (which apply to Unity just as much as any other type of app), you'll be pretty much ready to work on any type of C# app.
    Of course, you'll have to learn other markup languages (WPF for Windows, HTML/JavaScript/CSS for web etc), but that is not the fault of Unity.
     
  8. Deleted User

    Deleted User

    Guest

    Concepts are the same no matter what engine you use or programming language you use, it's a means to an end goal. I've built or played around building engines in C++ / Java / C# and use LUA / C quite often.

    I'd say limiting yourself to one engine has a bigger impact, it's good to reach out and experiment. You'll come back with a greater understanding of the bigger picture. Not just accept what X engine says it should be like..
     
    zombiegorilla and Ryiah like this.
  9. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773

    You're right,
    I should clarify that it hurts newbie programmers, amateur programmers, and would-be programmers. It probably doesn't hurt programmers with years of experience in game development who already know how to build their own engine and the nuances of making games from scratch. For some reason I had it in my mind that most people who use Unity are newbies or amateurs, and thus it hurts a lot of people. I forgot a lot of professionals use it now.

    I am entirely sure, because I know from experience. Many years ago when I was just learning to program, I actually used Unity for 3 months. I briefly learned some programming and game dev basics before using Unity, but after Unity I learned significantly more (by significantly, I mean almost entirely. I mean going from newbie to being able to program anything I want).
    During those 3 months using Unity, I learned very, very little. (If you exclude learning Unity itself, which is the very reason I returned to use Unity because I already knew how to use it which is nice that those 3 months were not entirely wasted). I could argue with myself and claim I learned a few things in those 3 months, but honestly it wasn't much at all. I learned more in one day of real programming than I learned in 3 months of making games with Unity and scripting.

    I look back on it now, and it's quite frustrating to know that I wasted 3 months with next to nothing to gain for it. One could argue I gained the ability to jump in immediately to use Unity now once I returned to it years later, but to be honest I'd have been perfectly fine not using Unity and building my own engine from scratch. I took back up Unity because I already knew how it worked very well, knew enough to figure out I could use C# code without Monobehaviour and simply use Unity to render and receive input, and most of all I incorrectly thought my current game would be simple (I changed it during the prototyping process, and it became a bit more complex than I thought it would be). I have mixed feelings about the Asset store, just as I do with Unity.

    In the end, I kindof regret using Unity even now, simply because I could have learned so much more and gained so much experience making my own engine. Even if it was at the cost of extra time in development, it would have been a lot easier for me to do things "my way" using my thought processes than to struggle to understand not only Unity's way, but also every unique asset developer's way. For me, Unity brings in many negatives of working with a team (learning their way, their perspective, understanding their mindset, sifting through their code, etc.), with a lot less positives than having a real team (I worked alone for a lot of the project so far, and still do nearly all of the work for the moment). I still appreciate the time I've saved while using Unity though, and its strengths. It is important to note that for me developing games by programming my own engine is a fun and fulfilling experience. Even the dull parts. Working with Unity is not as fun and nowhere near as fulfilling. Unity actually makes me miss programming. There's something about seeing your own code come alive that is so fulfilling and thrilling.

    I am not dissing on Unity, and in no way am saying this is a negative aspect to it or that it's their fault. Unity is a tool, just like any other game engine, framework, or graphics library. It has its strengths and its weaknesses (alongside its bugs), and I am not against using Unity for specific titles or games. It's just that most of my projects are not the usual type of game, so Unity is less fit for them. Also, if I worked in 3D I would change my mind completely. I am purely a 2D dev. I say all this with the context that Unity's 2D features are a bit lacking in the polish department.

    I just understand why most people choose to roll their own engine. At least, those with experience who know the negatives of using someone else's engine or code. You know what Unity is nice at though? Making tools for games made from scratch. It's pretty awesome for making game tools.
     
    Last edited: Aug 9, 2014
    dogzerx2 likes this.
  10. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Just to note, this is the only thing I completely disagree with 100%.

    Concepts and design patterns with Unity are very, very different than even in most engines, let alone in games from scratch. Unity even focuses on component-based rather than object-oriented programming. The whole GameObject : Component relationship combined with the Unity (visual) Editor is pretty unique too. It's not just about delcaring GameObjects, but using a visual editor to make Scenes.

    I mean, comparing games from scratch to Unity is pretty crazy IMO. You have to create your own gameobject class from scratch, if you even need one. In Unity, everything is a GameObject. Even an empty parent object which simply groups other objects in a scene. Oh, and then there's those scenes. They're not exactly the same as game states commonly taught in most books. It's pretty different. So much so, I'd say entirely different even if your game from scratch uses a component based design.

    The concepts and design only transfer back and forth if you develop your own game engine very similar to the way Unity handles things. At that point, why not just use Unity.
     
    Last edited: Aug 9, 2014
    dogzerx2 likes this.
  11. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,617
    But it's not. Component-oriented and Object oriented first of all aren't mutually exclusive, so it's not a case of one instead of the other.

    Secondly, Unity's GameObject/Component design is actually pretty textbook (for instance, it's one of many high level approaches covered in the book Game Engine Architecture by Jason Gregory), and not just of game engines - I remember back at university having a bunch of classes and tutes covering the exact same style of software development, and that was well before Unity was even a thing and in a completely different language and environment.

    I think in that regard Unity does potentially teach some bad habits to beginners, for example the whole "just make everything public to get it in the Inspector" thing more or less throwing any good practice about data encapsulation out the window despite the fact that [SerializeField] is a best-of-both-worlds solution. Having said that, I totally understand that Unity isn't trying to teach people to be programmers in their documentation - they're trying to enable people to get up and going with their tool as quickly as possible.
     
    xVergilx and Ryiah like this.
  12. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    I editing that part to mention the Unity Editor. That visual aspect is what makes it pretty unique.
    I had that in mind when I was typing that out, and before reading your post edited it after realizing how it sounded.

    It's not just simply calling a gameobject class and adding components to it. Unity is primarily a visual game engine where you use a GUI to create GameObjects, add components, declare variables (which take precedence over the script's default value), etc. You even use empty GameObjects to organize real GameObjects in a Scene. A bit silly, but that's how it is done.

    To say it is pretty textbook would mean everyone who uses a component design also makes their own visual scene editor. Unity3D as a 2D game engine is also very unique, seeing as how it's actually a 3D engine with 2D features.

    I've never seen a 2D engine like Unity.

    You also might want to check out this:

    http://en.wikipedia.org/wiki/Compon...#Differences_from_object-oriented_programming

    Your perspective is just your opinion, and apparently one open to debate. Acting as if they are always used together or extremely common will just confuse those reading your post even more.

    Not everyone uses a component based design, and some people use other designs instead.

    ^ Implies that some do consider the different strategies competitors.

    Saying they aren't mutually exclusive is a moot point. They are indeed different. No sense in confusing people, and those who do not use component designs do things differently than one who does. That is not debatable. So what if they aren't mutually exclusive? Unity focuses on a component-based approach, while many other resources do not. That is difference enough to justify saying Unity is different. You know.... that and the hundreds of other things that sets Unity apart from games made from scratch.
     
    Last edited: Aug 9, 2014
    dogzerx2 likes this.
  13. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    What would the alternative approach to using empty GameObjects be?

    Which kind of object-oriented approach does not work in Unity?
     
  14. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Just an Object, or absolutely nothing at all. A transform is not needed for what is basically a folder. Neither is an Object needed. It's a visual editor, a way to represent an interface on your monitor. Grouping GameObjects or indenting them in the Hierarchy doesn't require GameObjects or Transforms.

    The fact most people use empty GameObjects as a type of "folder" to group real GameObjects is just silly. The GUI should just allow grouping and indenting. You wouldn't even have to parent GameObjects if all you were doing it for was to group them to make the hierarchy interface more readable.

    I'll answer your odd question with another odd question:



    What does this have to do with anything? You can do things pretty much any way you want. Still irrelevant. Unity likes you to do things the way Unity likes. You can bypass that entirely if you'd like, but it wouldn't make as much sense as just going with the flow.

    If you use a game engine which uses a component based design, you can not use components if you'd like. That means you are doing things in a different way. I'm not sure why everyone thinks different equates to mutually exclusive or not compatible.

    If you wanted, you could create every individual scene with an entirely different approach.
     
  15. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    Every 3d application uses nesting of objects which inherit the position, rotation and scale of the parent object. You would introduce lots of trouble if not every game object had a transform and lots of special rules would be needed to compute the position, rotation and scale of individual objects. This would make it more complex for users to learn Unity and as such it doesn't really make sense in my opinion.

    I have no idea what you want to say. I read it multiple times, but I am not getting the point.
     
  16. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    198
    Hindsight really isn't 20/20, the landscape changes as you traverse it. You might look back on your time in Unity and think its a waste but your probably forgetting critical details that made that time important. You might think you could've gotten from A to C directly but sometimes going through B is important for more other reasons that don't usually register for left brained folk. As engineers we are often susceptible to being overly pragmatic and this can be a flaw when it comes to human interaction. You are not a computer, the other half of your brain is anything but linearly logical.

    I would argue that perhaps your time in Unity wasn't a waste. It associated something that can be rather dry and mono-tonal to some, programming, with something that is fun, creative and engaging ,games. Do not underestimate how important that may just be for your own sense of passion in this field! If you didn't have unity and you had to roll your own engine the task might have been too daunting, you would have made far less progress in a given period of time toward what ever game creation goal you had. Even if your point that Unity in the long run isn't the proper path toward becoming a carrier software engineer was valid in terms of precise skill acquisition (and I am not convinced of this). It wouldn't matter, you can't say for sure that you would even be here arguing the point if playing with Unity hadn't set the fire in the first place. Don't oversimplify the equation by eliminating the irrational terms.

    That said you might have point that Unity can teach practices that would be otherwise against "best practice" paradigms in most other situations, but so what. Software development is a constantly evolving field and those same paradigms change all the time. You are going to have to learn new good habits and and unlearn old bad habits all the time, just get used to it. I am willing to bet that by dealing with programming as it applies to game development you probably learned some things that you are taking for granted. You probably know know a lot more about racing conditions and optimization than most web developers.

    I actually think that Unity is a fantastic tool to learn software development on because of the fact that you can do things so quickly and get immediate feedback. It's fun, it's engaging and in my opinion those things make a fantastic foundation for a future carrier in this business.
     
    Last edited: Aug 9, 2014
    dogzerx2 and (deleted member) like this.
  17. Deleted User

    Deleted User

    Guest

    Unity's only limitations as a software tool is what Unity decide we can't have access to, apart from that it's the same old extremley complicated engine built just like every other which at the heart is DX or OpenGL renderer.

    I've seen a lot of people who won't really dig into Unity, I've tried all sorts adding post lighting. Adding siggraph rendering pipeline upgrades via plugins and shaders can be pretty hardcore at time.

    If you really want to know how to use Unity properly, it's the same beast as any other and with the lack of material editors etc. in a lot of cases you can make it can be more complicated to use than others.

    On a side note I wish they'd drop shaderlab, I much prefer just using GLSL (Yes I know you can to "a certain extent"). Documentation on more bespoke solutions (which is same principles but different naming conventions) is lacking.

    At some point though as you said it's just getting silly, you're using an engine to abstract from having to make your own engine.

    If you truly know how to extend API's and cover everything Unity has to offer, then no it doesn't harm anyone. The issue "well it's not an issue as such, this is what I love about it the most" is you can circumvent a lot of actually having to do the work yourself.

    Also I agree with everything you say.
     
  18. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Um, an empty GameObject with a Transform of 0,0,0 is literally just a way to organize real gameobjects, when people use it that way.

    I am not saying to get rid of the parent/child relationship. I am talking about organizing how things are viewed in the Hierarchy by allowing grouping like any program. Sometimes you need to organize information for YOU, not for the game. The game doesn't need to know how you organize the look of the hierarchy interface.
     
  19. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    There is no point to the funny image. It was used to communicate how I believe the question you asked is irrelevant to the discussion, and I don't understand why you asked it. I always use images to lighten the mood and to entertain myself and others.
     
  20. Deleted User

    Deleted User

    Guest

    If were talking about dropping an empty gameobject in a scene then attaching scripts, it's nothing to do with organisation really. It's an Init method, you need to be able to execute your scripts somehow and the same goes for C++ in UE4 just the way about it is slightly different.
     
  21. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    I'm talking about using empty gameobjects to organize real gameobjects which have a use. A lot of tutorials teach people to use empty gameobjects almost like "folders", to organize gameobjects into groups in the Hierarchy.

    Sometimes these have a function themselves and are used to enable/disable or find components in children. Sometimes they are used just to organize the interface. The latter is what I'm talking about. Not the former.
     
  22. Deleted User

    Deleted User

    Guest

    Yeah nesting gameobjects to clear your shiz up, that's fine what's that got to do with coding?
     
  23. NomadKing

    NomadKing

    Joined:
    Feb 11, 2010
    Posts:
    1,461
    I think in the case of empty GameObjects, they just decided that a wasted transform was the lesser evil when compared to having to visually clarify what was an GameObject with children and additional behaviour (transforming as one), vs what was a Folder which just organised things visually and had no additional behaviour.

    In essence, it's a couple of transforms vs cleaner design, so I can see why they went the way they did.
     
  24. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    I honestly forgot. It was a minor comment I made and one guy quoted it and talked about it?

    I was just about to say "What does this even have to do with the topic?" Wondering how it got to that, lol.
     
  25. Deleted User

    Deleted User

    Guest

    Lol I have a tendancy to only read parts of a thread or I'd never get anything done :D.. Funny how things turn out when you're discussing one thing though.

    I don't think Unity hurts programmers if you want to delve deep into how it all actually works, but it gives you the option to be lazy in a lot of ways which as shown from some games isn't ideal.

    You just have to set yourself high standards and do what it takes to achieve it IMO.
     
    CarterG81 likes this.
  26. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    You can organize them for you even if there is a transform. Nothing prevents you from that. I don't see how that should be harmful or how it may have a negative impact on workflows or anything else.
     
  27. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    Instead of saying that I misunderstood what you wanted to express, you are making fun of me. Thanks for the respect!
     
  28. SmellyDogs

    SmellyDogs

    Joined:
    Jul 16, 2013
    Posts:
    387
    Answer: Chicken nuggets do not belong. Every other item is edible.
     
    Deleted User likes this.
  29. minionnz

    minionnz

    Joined:
    Jan 29, 2013
    Posts:
    391
    Ok firstly, Unity may have adopted a component-driven approach to development but it's still valid OO. I think what angrypenguin was getting at is that the component-driven aspect is nothing negative and doesn't prevent proper OO programming (as your comment before seemed to imply -whether or not that was intentional).
    You can still subclass, use interfaces and everything else that you would normally do in any other OO application.

    The using gameobjects as folders thing is annoying - but it's something Unity know about and I think they are looking into a way to work around it. I believe that they've left it that way for performance/optimization purposes.

    As for having to subclass from GameObject Component - You don't have to. You can create other classes that inherit from Object if you wanted, it's only stuff that is added to a scene that is needed to be a GameObject. And this is much the same in most types of C# applications:
    1 - Want to create a control for Winforms? Subclass from Control, then use the visual designer to place it on your form.
    2 - Want to create a control for ASP.NET? Same as above.
    3 - ASP.NET MVC - Slightly different approach, but you are still subclassing Controllers and working with a visual markup language (ie HTML)

    When working with most libraries, you'd generally need to inherit from a base class if you wanted to add your own code to it. I don't see anything unusual about the way Unity have designed things (apart from the magic methods, but that's been argued to death already).
     
  30. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,617
    Well, no, it still doesn't. I mentioned working with Component-oriented stuff back in university, and the stuff we worked with there had an editor reasonably similar to Unity's. It wasn't for editing a 3D scene, but there was still a thing very much like the Inspector and the Hierarchy, there was an equivalent to the Project view, there was an output console... the main difference was that its equivalent of the Scene view was instead for general object configuration and event passing (kind of visual programming with the available components).

    Dragging this back to the topic, Unity isn't "hurting" programmers by getting them to work with this style of development. It's not unique to Unity.
     
  31. Ocid

    Ocid

    Joined:
    Feb 9, 2011
    Posts:
    476
    Dwarf Fortress has an interface a poor one but it still has an interface if it didn't you wouldn't even be able to play it. Thats where 3rd party mods and utilities come into play. Honestly though once you get used to it its not that bad but it certainly could use some improvement.

    Also design is required. Good games having serious flaws only speaks how well it was designed rather than the lack thereof.

    Your game better not have any flaws or you just threw design out the window.
     
  32. Deleted User

    Deleted User

    Guest

    Even though i don't think software monopolization is a good thing at all (and luckily in the realm of game dev technology, even though Unity is the winner, we have plenty of options), this statement is actually amazing.

    Yes, it only hurts your programming skills depending on the context. Most AAA studios use in-house engines, therefore, we feel the pressure (i do anyway) of missing out by not learning something more from scratch-y.

    However, there's something we should consider. On AAA studios, especially those with very specialized roles (either in programming or in the many diverse areas of game development), they also use a game engine.

    So for instance a gameplay programmer at CD Projekt would use a game engine anyway. Yes, it might use C++ as its scripting language (or Lua, who knows), but it's still many layers of abstraction.

    Even in Epic, the Unreal Engine has the quality that it was actually conceived to make the games within a studio. That's pretty unique, because the interest of Epic is still making games, rather than an engine. So guess what do gameplay programmers use there?

    At Naughty Dog for example, i think those who script gameplay are actually the game designers, and i think they use some Lisp (Uh la la), while the roles of programming are in charge of things like graphics and tools.

    So, basically, yeah, your statement is pretty impressive, on a philosophical standpoint, or is it a sociological one?
     
  33. halley

    halley

    Joined:
    Aug 26, 2013
    Posts:
    2,367
    What is up with all these necro-posts all of a sudden? Five years ago, everyone ran out of things to say.
     
  34. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,084
    I'm pretty sure the person they're replying to hasn't even been on the forums in 5 years.
     
  35. jeango

    jeango

    Joined:
    Dec 19, 2012
    Posts:
    109
    We got google to thank for that... apparently, date of publication is the least important parameter in google search result scoring. I always have to filter "last Month" or "last year" to get relevant search results
     
    dogzerx2, Ryiah, Ony and 1 other person like this.
  36. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    Why cant we sort the hits by date?
     
  37. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Showed up. Read title in "recent posts". Gonna share my opinion.

    Unity is helping us.

    Peace.
     
    Flurgle and jeango like this.
  38. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Relevant lecture

     
    MD_Reptile likes this.
  39. jeango

    jeango

    Joined:
    Dec 19, 2012
    Posts:
    109
    I'm pretty sure there's not too many people around who can write a line of assembly code. Heck I have a masters degree in computer science and we barely brushed the subject in 1st year with a pseudo assembly language just to understand the basics of registries allocation
     
    MD_Reptile likes this.
  40. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Might be a necro but it's doing no harm and people are happy so I'll leave it.
     
    dogzerx2, Ruberta, CarterG81 and 2 others like this.
  41. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    Plus the maintainabiliy of a system written in ASM is near zero
     
  42. XCPU

    XCPU

    Joined:
    Nov 5, 2017
    Posts:
    145
    Wrote lots of assembly and optimizing C++ using assembly. Maintaining it is no different than any other language.
    C/C++ is the closest you'll ever get to asm, code is line for line.
    Most all compilers have an option to output the asm of each line of C/C++, optimize and insert back in. FUN! :)
     
  43. TheSniperFan

    TheSniperFan

    Joined:
    Jul 18, 2013
    Posts:
    712
    I found that Unity is a double-edged sword. Sure, its ease-of-use and big community help beginners get their foot in the door, but some time ago I applied at a studio that uses Unity and they told me some interesting things about the "Unity game programmers" who apply. ("Unity game programmer" = people whose software development knowledge is more or less limited to only Unity).
    I didn't take the job, but they told me the reason they wanted me specifically is because I'm not a Unity game programmer. The experience they've made with those people was quite negative. They told me those people have little to no technical understanding, a very narrow field of expertise (if you can even call it that) and as a result are inflexible and just flat-out bad programmers.
    None of that surprises me, because if you think about it, how could it be any different? Software development is an insanely wide field. It covers so many areas, no one person can be an expert in all of them, because there is a lot of specialized knowledge in many. If all you know is Unity, you're at best knowledgeable in "gameplay logic programming", which is only one of the many facets of game programming, which itself is only a field of the wider area of soft real time application development, which is only a part of real time application development, which is one area software development that covers a lot of different things. Even your knowledge in C# will be limited, because you'll know C# through the lens of one specific tool with its own workflow and its own API with its own quirks.

    So I guess what I'm saying is that if you want to go beyond that, whether it's for professional reasons, to take your hobby to the next level or whether you just want to improve your skills for the sake of it, you should branch out. You pretty much have to.
     
    MD_Reptile and CarterG81 like this.
  44. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Not sure what "unity game programmer" is. I think they mean "someone with no experience" since programming in Unity is C#

    Basically there's no such thing as a "Unity game programmer", only good or bad C# programmers.

    And this is absolutely huge as an industry of professionals.
     
    Ryiah, CarterG81 and Rotary-Heart like this.
  45. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    Would you call this maintainable?

    https://github.com/id-Software/DOOM

    And its not even ASM its C, which is pretty close
     
  46. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Game programming is so different from (most) enterprise programming. If anything, Unity is a great way to transition between the two.
     
  47. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    We are two software architects that have written a game with a domain similar to what we would have written at our dayjobs.
     
  48. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    What do you do at work? I'm a software engineer working on ETL microservices and Unity/game programming looks nothing at all like what I do day-to-day.

    Edited to clarify.
     
  49. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Unless we "prevent the end of the world" then this is the future for everyone. The longer we go without resolving this issue, the more high level software stacks on itself, the more the dinosaurs die out, and the more all you're left with are these "unity programmers", but for all software.

    It's honestly quite a bit scary. I may have to teach my children how to be competent programmers just because there may be so few left when they become old. In fact, this kindof makes me reconsider the whole "teach people" thing. I always wanted to make a single website with thorough resources for game developers to learn more readily, and taking this into consideration may push me to eventually do this if I ever get the resources (money). It's always been a debate of my priorities, but the future can be bleak if we enter a "darkest timeline" in so many different areas of the world - especially technological collapse.
     
  50. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    I'm a consultant, system architect, currently working on a insurance company, Azure service fabric actors as the platform. Not saying the tech is exactly the same, but we use the same principals, SOLID etc