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

Game Development should be easier than this

Discussion in 'General Discussion' started by imaginaryhuman, Dec 29, 2014.

  1. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Ok so I come from a background in programming and am a fairly good programmer, but over time I've realized my heart is not in the programming side of things, more in the artistic side. I would rather be an artist who can express ideas quickly without having to concern myself with HOW something is made possible. I would like the functionality of the game to work in a very easy, very high level way, without having to think about programming, variables, unity API's, or having to accommodate the way the lower level wants to work. I would like to stay rooted in the artistic expression without all the `gubbins` of building the scripts. Every time I realize I will need to write some script to make something happen, my heart sinks and I get frustrated. It is not that I don't know how to write the script - been there done that - I just don't enjoy it. It takes so much time and is such a complicated, intellectual process.

    So I started to look to higher level tools, and some are better than others, but generally they provide one piece of the puzzle and have to be used with other incompatible pieces, which then need to be glued together with script. I gravitated towards `visual programming` tools in hopes maybe they `help` cut out some of the pain. Most of them claim to require `no programming`, which is BS, because most of them are simply another representation of quite a low-level piece of scripted logic. Having to even deal with variables, function names, and all these other `programmery` concepts, is just a chore. Most of the visual tools (e.g. on the asset store), including the most popular ones, wrap the basic elements of the Unity API and call it `visual`, adding perhaps a handful of higher level modular pieces to do very simple things. But even these modules are a bit too low level for what I have in mind.

    When I'm designing or in a creative flow, I may just want `a door` which the player can operate. And so I'd like there to just be a simple `door` behavior with perhaps a few basic customizations, which you plug some visual asset into and it simply works. You open it, you close it. You don't ever have to program the dam thing. Or how about an elevator - you just throw an elevator component on an object and perhaps drop a couple of gameobjects onto it for presentation, set a simple speed value or something in a GUI, and hey presto. Or maybe I want an explosion, so I just dump an explosion component on a spritesheet or something and the thing just explodes on command. I'm talking about very very high level `artistic choices` where I can get the thing to WORK in a matter of seconds, without having to program or even know anything about programming. I mean, games have enough elements in common, you'd think this should be a lot easier than having to `build a graph` or `hook up nodes` or write several lines of script (or more) just to get some basic stuff to happen.

    So anyway, I guess I'm just complaining, but I'd really like to see some library of `game elements` or components which `operate` basic common game stuff, without having to script or code or drag lines between stupid boxes. I know playmaker has `actions` similar to some other tools, and that those actions are a step toward this (simple gui with easy controls to slightly customize the action)... but they are still too low level in a lot of cases. I don't want actions like `set variable`, `tween integer` or whatever, I want an action like `make the door work`, `teleporter`, `pile of boulders that falls when you get close`, `power up that appears when nearby`, or whatever... Just really simple game elements.

    I guess I probably will have to go ahead and buy PlayMaker because it seems to be the easiest system out there at the moment. But I really wish there was a much simpler NO PROGRAMMING WHATSOEVER higher level system - not just for beginners, but just to make my life easier and development quicker. I don't care about being a `programmer snob` who simply insists on having to do something in code, just because they can. Programming is a pain.

    I just got done playing Portal 2... it has a pretty simple level editor for custom levels... simple building blocks... you add a teleporter, you add a switch, you add a door, you hook up the door to the switch, bla bla bla.. very quick and easy. Not that I want to get into modding or making levels for existing games, I want to realize my own visions of a game but make it function with the least effort.
     
    Last edited: Dec 29, 2014
    BrandyStarbrite and Ony like this.
  2. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Wow man. And here I am on the opposite extreme. I just want to get out of the Unity Editor as fast as I can and get to making the game. Just knocking out code. Unity is already quite visually / artist oriented I think. It surely doesn't seem programmer oriented at least not compared to anything I have used before. In fact it took some effort just to get into a pure programmer mode workflow.

    You may want to ask some of these people who are knocking out games saying it is their first game ever... how they are doing it. Every week some beginner developer with no previous experience releases a game and announces it on the Showcase. Usually several in fact. Maybe they have found some way to get rid of most of the programming? Or maybe they are super fast learners? Can't hurt to ask.
     
    IcyPeak and carking1996 like this.
  3. Zurusona-Kitsune

    Zurusona-Kitsune

    Joined:
    Mar 11, 2012
    Posts:
    94
    there is playmaker which apparently make the programming side much simpler.
    I haven't tried the tool myself but I see it has quite a lot of positive reviews.

    Should making game be simpler though. I don't think it should because we've seen an affluent of wannabe game maker that release games barely made in a few hours that just isn't worth the money.

    Strangely the easier it is to make a game, the lower quality the games released are, though there are exceptions.

    Also having the ability to code ourselves means we can make tools or shaders that don't exist.
     
    GarBenjamin likes this.
  4. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,613
    I think what you need is 'a programmer who works for you.'

    Take the door example. You want a generic door building-block, right? So here's some questions I need to consider if I'm going to create a generic door building-block:
    • Should it be possible to lock the door?
    • Should the door respond to a force exerted on it, or should you have to explicitly interact with it to make it open/close? Or should it open automatically when the player approaches?
    • What should it do when something is in the way of the door's movement?
    • Can the door be blown off its hinges?
    • What if the door isn't just a simple swing-on-a-hinge affair but has a complex locking/unlocking mechanism?
    • Can AI characters open and close the door?
    • Can the door be opened/closed from scripts?
    • Does whether the door is open or closed need to be recorded into saved games?
    • Is a door always vertical?
    • If the door can be locked, is it locked/unlocked by the player, or by NPCs, or by script? How are keys paired to doors?
    • How should characters treat the door if it is half-open?
    • How should scripts treat the door if it is half-open?
    • How should the door be loaded/saved when it is in a half-open state?
    • If the door is physics-driven, should its angular velocity be included in saved games?
    I guarantee you that whatever the answers are for your game, they'll be different for somebody else's. So the generic building block suddenly needs to support multiple answers to all these questions. And before long you're back at something which is just as complex - if not more complex - than programming.

    Portal 2 has a simple level editor because the designers told the programmers what high-level concepts they needed and the programmers implemented that, filling in the 'detail' where they weren't given it. And they gave the result to the designers, who asked them for changes, and so on, until they arrived at a set of entities which made it easy to build Portal 2. Those same entities don't make it easy to build Gears of War, or Rollercoaster Tycoon, or Skyrim, or Cut the Rope.

    You want to be scripting, I think, not programming. And that's fine, but one cannot script until one has the system-level features in place that the script is going to control. Someone's got to build those systems.
     
    Cogent, LaneFox, Steve-Tack and 12 others like this.
  5. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    I let this feeling stop me for a long time from doing anything with Unity. I see games and they all seem to have the same stuff, so it makes sense that the same stuff should be 99% already programmed and waiting for me to use it. Like the poster before be wrote, though, there's too many possibilities. The ability to imagine something and the ability to make it happen are vastly different, and what separates them are the details... programming deals with the details. So you really hate thinking about the details.
     
  6. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    612
    It sounds to me that you're approaching your game in an un-planned and un-focused way. You're developing your game and designing stuff in Unity, then you realize you need something so everything grinds to a halt until you can finish programming it. Then you continue designing, then you find you need something else and everything grinds to a halt again, and so on...
    Well don't do that! It's slow, frustrating, and inefficient. Figure out all the components you need, and make a list of them. That's what a Game Design Document is for. You shouldn't be suddenly realizing you need to program something, that should have already been figured out ahead of time. Program all the things in the GDD, do nothing but programming those things, forget about everything else. When you're done, you have your high level system. Now you can switch hats and be a high-level designer. Minimize the number of times you have to switch between designer mode and programmer mode.

    Otherwise you're not using Unity properly. Specifically, you aren't properly leveraging the Unity prefab and component system. That system exists specifically to make it easy for developers to create their own high level systems within the framework that is Unity. Program a door the way you want it once and save it as a prefab. Now drag/drop into scene whenever you need it--doesn't get much more high level than that.
    In other words, develop a subengine for Unity--a library of commonly used objects and tools you can use to build your games however you want.
     
  7. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    8,952
    Game programming is easier than it ever has been, thanks to tools like unity. So easy that hundreds of games are released a day.
     
  8. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    As superpig showcases so well then there is really no way to make a high level system to fit all games. Too many options.

    But as Jingle Fett says, it is all about designing the system properly from the get go so you don't have to switch role all the time. I have for example created a component based system for one of my games weapon system. Each component work on its own and are not dependent on the others (only on one super component). We have around 30 components for the system now. We have not needed to add more code to the system for months because its so easy for the designers to just drag components on to a weapon, set the variables and then test new weapons. Saves so much time in the end with such systems.
     
  9. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    All good and valid points, I appreciate the feedback. Yes game programming is MUCH easier thanks to Unity, compared to having to write all kinds of systems and engine parts in previous languages. But that doesn't mean it is as easy as it could be.

    I do like the idea of hiring a person to do the programming... in the USA what is involved in that, do you need to get an accountant involved to create a contract or fill out certain tax forms etc? I am an LLC business already but have never hired anyone.

    Regarding higher level tools equating to `lack of flexibility`, this is a common perception but it's not true. You can still yield quite a lot of versatility from a high-level interface which can hide a lot of programming. Obviously you won't get the same flexibility as raw programming but maybe you can sacrifice a bit of control to make things less painful?

    I understand about prefabs and re-using of components etc.

    You do have a point on the GDD.. I have not made one, partly because it seems to suck the life out of enjoying it. Once the GDD is ready, it seems then all that's left is `work`? And programming. And more programming. I do not want to program. That's what my entire post is about.

    Anyway. I went ahead and bought Playmaker. I know it will not provide the high level that I want but it should at least save some time.

    Doesn't anyone see the merit in my suggestion, which is that you can very quickly get basic functionality working without having to do any programming/scripting? I know you can set up those components/prefabs yourself, but you still have to set them up in the first place. Would be great not to have to. I guess I'm looking for a totally WYSIWYG kind of tool, game editor, and less of a development platform?
     
  10. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    10,962
    Ummm....
    Make up your mind? :p

    I also disagree with the title. "Should"? Why should it be easier? I understand why you would want it to be, but why should it?

    And in any case, coding isn't even the hard part. It's stumbling upon weird behaviours and finding bugs and having to do workarounds. For example, I spent a lot time learning about tangent space bases that different programs use, that I wish I had spent on something else and it's all because engines and 3d programs can't agree on one way to calculate tangents.
     
    shaderop likes this.
  11. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,613
    If you're going to bring them on as an employee then yeah you probably need to talk to your accountant. If you're just going to hire them as a contractor then I think it's simpler - just one business buying a service from another. IANAL, IANAA, etc...

    Yeah but that's always the tradeoff, and you sacrifice more and more flexibility the higher you go. Consider that you're talking about building a layer on top of Unity; but Unity already has a ravening horde of requests for more extension points, more features, more things being exposed, and so on. We abstract the really low-level details away - you think you hate programming now, imagine how much you'd hate it if you had to parse FBX files yourself or write hundreds of lines of Direct3D initialization code just to get a blank screen - but in doing so we do make certain assumptions and those assumptions turn out not to hold for everyone.

    I absolutely see the merit of it; I just think it's a very difficult thing to achieve, because blending ease-of-use with power and flexibility is a hard problem requiring a ton of creativity, and you can't just sit down and 'make it happen.' Again, consider Unity itself as an example; compared to the tools that came before it, it has insane levels of both ease-of-use and power, but that wasn't because Joachim just drank a ton of Red Bull. It's more about the specific ideas and creative decisions taken in its design - the decision to be tool-focused, the decision to use a component-based approach, and so on.

    I'd say every non-trivial game project should be looking to build itself on top of a 'WYSIWYG game editor' of sorts; the issue is just that you usually have to build the game editor yourself as well. But maybe that's where hiring somebody else to help you would pay off.
     
    Ony and Jingle-Fett like this.
  12. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I got playmaker recently just so I can use custom actions I've written myself but organize them visually when I'm feeling lazy / artsy. It's like making a static utility class that you keep in every project. It also makes animation with timing / cutscenes a dream. As someone with a programmer background who bought it, I can say it's definitely worth it even if it's no longer on sale.

    I don't think it gets easier than playmaker. @imaginaryhuman after you get into it, it's pretty much exactly what you described in the last few bits of your post. It has enough in it to get pretty far in a project without touching any code, but when you do decide to code your own actions you can put them in your playmaker actions folder and move them between projects.

    Although to clarify - you can put those actions where ever you want. They'll show up in the play maker action browser as long as they have the right namespace and extend FsmStateAction. If I made a really project specific custom action, I'll keep a custom actions folder in that project's resources folder.
     
    Ony likes this.
  13. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    My main problem is thinking so far outside the box that off-the-shelf tools (even Unity itself) can't do what I need it to without resorting to custom programming. I can't get into a `make something that Unity is good at` mindset. I can only come up with `this would be awesome, if it were possible`. So it's partly that Unity isn't the right tool for the job, but in comparison to other tools, it's still the best option.

    I did just buy playmaker but I'm already finding that what I want to do can't be done with it. So now I'm going to have to drudge through documentation and learn api nonsense and exactly how specifically to write a 'custom action' in order to patch it to do what I need it to. So then that becomes annoying, and I might as well have written normal code in the first place. Any of the `visions` that I have of what would make a really awesome, `work of art` game, end up being almost impossible to implement without just doing a tonne of coding. There are also performance issues with Unity when you try to step outside 'what its designed for'... like how to have a few hundred rigid bodies working at a smooth framerate on an 5th generation iPad, which I've found is impossible, so now I'm going to have to hack together my own movement system as well just to get it to run smoothly.
     
  14. Khyrid

    Khyrid

    Joined:
    Oct 8, 2010
    Posts:
    1,790
    Maybe you should just do modding.
     
    Ony likes this.
  15. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    The system I would like to have is one where I can think of any kind of object or scene I want, enter it into a text box, style it, click generate and presto instant graphics.

    Basically in the text box I might type [tree] and then in a dropdown I select 2D Sideview Realistic (not to be confused with photorealistic or photograph) and then I enter 128 x 256 as the dimensions. Click GENERATE and presto I see a tree. Hmm. Wrong color. I need to add that to the criteria. Click. No. Click. Hmm. Click. Not bad!

    We all have our dreams.
     
    Jingle-Fett and Ony like this.
  16. shaderop

    shaderop

    Joined:
    Nov 24, 2010
    Posts:
    942
    This has been done before in Enterprise Resource Planning (ERP) software. These system rarely require programming. Just tons and tons of configuration. So instead of a programmer you'll get yourself a consultant in a suit who charges a king's ransom because he or she knows which switches to flip and which tables to fill.

    If you want to have less programming then you'll either have to live with less flexibility or accept more complexity in configuring whatever pre-built components you'll be using. Add enough complexity to the components and programming will quickly become a lot more attractive.
     
    Cogent and Ony like this.
  17. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,555
    Playmaker is easy to learn and all, but I'm pretty skeptical on how good - or profitable - of a game can be made with it without writing any code at all. I think Universe is probably a much more powerful similar plugin that doesn't get its due. Playmaker performance also doesn't seem to be very good if you have a lot of FSM's in a Scene. I personally only use it for cut scene type stuff where it seems to excel. For enemy AI, RAIN and Behavior Designer seem to be much faster to me.

    Now having said that, you can get TONS of built in behavior without writing any code from our two plugins: Core GameKit and Master Audio. They work in conjunction with Playmaker if you like, but you don't necessarily need it. These assets were created with non-coders in mind.

    Also, if you want much easier game making, you could always switch to Game Salad or something. That does of course limit you to less possibilities, but it's pretty fast.
     
    Jingle-Fett likes this.
  18. Tanel

    Tanel

    Joined:
    Aug 31, 2011
    Posts:
    508
    Hmm, if your ideas are so far out of the box, how could anyone designing a generic system on top of Unity anticipate them anyway?

    Maybe shell out 20$ for UE4 and see how Blueprints fare for you?
     
  19. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    I'm amazed that Unity have not made steps to create something like Blueprints or asked the community for what Game Widgets they need above the standard ones.

    Or could they analyse data from the millions of developers that use Unity and map out what are the most common things they make. I often find myself writing or cutting and pasting the same or very similar code from project to project.

    Or what if along with Prefabs Unity has a prefab library system where you could store and retrieve often used components/gadgets and share/sell/trade gadgets you have made. I know there is the asset store but that's a bit 'clunky' and does not match the concept of a Library system where you can store your own commonly used prefabs and code between projects.

    But if they added a cloud storage or local storage feature to the asset store then people could store their own, share and sell assets.

    I also think that coding in Unity could be made easier, they could integrate a code editor, provide an extensible code templates system or snippets for commonly used code. e.g.

    Create C# code -> Default: Update, Start
    -> OnCollision: OnCollisionEnter(), OnCollisionStay(), OnCollisionExit()
    -> OnTrigger: Ditto

    Then developers could build up their own or again share code templates for commonly used tasks.

    In theory if Unity could harness the data from it's community it could build up a whole toolset of components, templates, frameworks and features that would make working with Unity faster, simpler and smarter.

    I would love to be able to drag and drop a code widget into a Unity scene and for it to generate a game object, create adding any requires components and then have a code interface view of objects in the scene and be able to link up the relevant ones using a ui node based system. Ideally one where if I click on an object and and select link To objects that don't have a matching interface element fade back.

    But a Blueprints style UI that would actually generate code and be generated from code would be an amazing tool, and combined with a library system where people can share/rate/buy/trade/sell widgets and code I think it would really turn Unity into a best of breed game development platform.

    Oh yeah and frameworks or templates, yes games change and each one is different but if Unity included frameworks and/or templates so people could start out with a platforming/FPS/RTS/Runner/ <Insert Most Common Game Styles Here> that could be selected from the beginning think of the time people would save.

    In effect a template/framework would just be a minimalist art version of their best tutorials games.

    Also frameworks could exist in the library and be changed adapted and improved, bought, traded and sold.

    And they could use challenges with prizes so the community build and rate the best templates/widgets and frameworks!
     
  20. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    Dang that's a 100 chapter book haha
     
  21. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Summary How to Improve Unity -
    • Blueprint style code generation system with blueprints generated from code!
    • Code/Prefab/Asset Library to store users assets between projects and with an ability to share/sell (Think personal asset store/cloud/local with community features).
    • Frameworks - Untextured best practice examples of game genres e.g. Platformer, Shooter, ect. As starting projects.
    • Templates - Quickly start coding or 'blueprints' with templates for commonly used or user defined code.
    And Questionnaires to get feedback on what gadgets, templates, frameworks the community want and then challenges (with prizes) to get the talented members of the community to provide them!

    With a good approach the templates and frameworks could allow for a solid platform allowing developers and designers to build better games faster e.g. MMO Framework! ;)
     
  22. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Based on all of the games flooding the markets I think it all needs to be harder not easier. The day when people can click a button Build Skyrim Clone #1763 will be a sad day indeed.
     
    sootie8 and HemiMG like this.
  23. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    But think about how Unity adopted a standard PBR shader system in Unity 5. A possibly complex problem where features could be turned on or off as desired and only the relevant shader code is generated.

    So Our Standard Unity Door Gadget would need to provide the following options:
    • A Lock Prevents Opening of Door -> Adds a boolean isLocked field and logic to prevent door opening.
    • Use Physics -> Builds a physical representation of the door (swing or sliding).
    • Or Animated
    • Closing Mechanism -> Strength (if physics adds motor or if animated)
    • Hinge Strength / Breakable
    • Serialisation of door state data stored dependent upon sub components generated e.g. physics, state
    • Open() Close() Unlock() commands -> allows other scripts NPC to open
    • Requires Key -> extends the Unlock() process to require a key or keys*
    • Half Open state would be either animation or physics state information good point the door would need to be a finite state machine with transitions.

    I think a possibly good key system would be a binary mask, then it could be linked to the layer system to allow NPC to operate doors with minimal coding. This could also allow for master keys, or multi-key, lever control systems, simple digital key codes. Or people could opt for a string key and it could still be linked via the tag system for NPC and allow for any kind of key/lock people could imagine.

    Now imagine if Unity Provided Standard Unity Gadgets that worked for Doors, Elevators, Escalators, Vehicles, Bullets, Rockets, Homing Missiles, Enemies, NPC's, Walls, Windows, Explosions/Explosives, Turrets, Fire, Water, Ice, Snow, Rain, Weather, Buildings, Towns, Cities, Worlds...

    Possible benefits here are Unity could then add code to the engine that would improve the performance of common game gadgets e.g. Allowing common scripting logic to be run in the new Unity 5 task/job system as native code.
     
    Last edited: Dec 30, 2014
    hopeful likes this.
  24. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Nice.

    Yes it's be awesome to have some basic building blocks common to games where you can just plug in the parts you want. Like a whole bunch of controllers for the main character/sprite, where you can just literally choose e.g. 'behave like sonic', 'behave like mario' etc and it instantly gives you the basic control system mapped to animation etc. Then you can tweak it or break it down. And similarly for level building. I know the asset store is sort of a place for this but it needs to be a more unified system across multiple 'assets' so that they all can function together in a standardized way. Maybe there needs to be some kind of standard interface/connectivity system designed (templating like you said?) which can have third party modules written for it that `just works` when various ones are used together... rather than the spaghetti of separate units that you currently get from various incompatible assets. Some kind of open standard for inter-operability that doesn't require any code modifications.

    I was thinking about this topic more last night and I think I realized that any really unique game pretty much requires custom programming, and that I'm going to just have to accept that and do it. I also can see the benefit of more planning for my game so I'm going to draw up a game design doc of some kind so I can get a sense of what needs to be done.
     
  25. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,071
    I would much rather prefer Unity focused on their engine. The Asset Store exists for this.
     
    HemiMG and Steve-Tack like this.
  26. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Newer generations care so much about graphics that uniqueness is not needed anymore. It'll get easier and easier to do and the market will continually be dumbed down. Look at movies and reality tv. Gaming and literature are the final bastions of thoughtful entertainment! But that's mostly because indies get massive exposure in gaming :)

    Imagine AAA titles had their way. The transition from Diablo 2 to Diablo 3 would have been like the introduction of trash tv to the masses, and gaming as we know it would be over.

    Not to mention I already made something just like those suggestions in playmaker for doors and lights.

    Just slap the door script on something. Is the object the door? Leave the target as self. Is this a button that opens a door? Change the target to that door. Done. Same for lights. I've done it with monobehaviors before, but it's even more satisfying with playmaker.
     
  27. Kinos141

    Kinos141

    Joined:
    Jun 22, 2011
    Posts:
    969
    A modular template system might be nice.
    That's kind of what the Unity free assets from the asset store does.
     
  28. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    You're getting the idea Arowx ;-)

    I was going to cite the shader system too... I wrote Shader Wizard as a high level easy-to-use tool which hides a lot of very complicated shader code. From a simple dropdown menu you can choose what shader functionality you want and some other shader settings, which is a massive time saver and FAR easier than having to learn to write shader code, learn CG, fix stupid syntax bugs, ie `how to make it work`. Like the Unity 5 standard shader, you just choose the options you want at the level of `decision making` or artistic choices, and let the computer do all the complicated stuff... and provided the interface isn't too rigid and has some `options` that produces a lot of varied output, you're not really losing much in terms of flexibility.

    I want to address the point about making stuff hard to stave off badly made games - horrible idea.. why cripple the development process for people making good games just to try to police the people that make bad games? It should be as easy as possible for everyone. The tool shouldn't be trying to manage or police who is allowed to use it to make whatever they want. Also making the tool easier to use doesn't always mean it gets used by inexperienced beginners, it can save real productive time for more advanced users also.
     
    Arowx likes this.
  29. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    But what if the asset store had a cloud or local storage Library features that allowed you to create your own personal assets to use between projects as well as share or put up for sale even trade.
     
  30. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
    Well you can already do all of that? except for trade which is not a good idea...
     
  31. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    ? I can set up assets I use often to a private library that is backed up on the cloud and also allows me to share or collaborate???

    Wow, with this and a versioning system entire teams could collaborate on Unity projects and it would be built in?!

    Where's the documentation for this?
     
  32. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,613
    Except that if it were really sufficient for everyone like that, then we wouldn't have needed to add surface shader support. I already know that in my major project the stock PBR shaders would be unsuitable. I need gradient mapping on the characters, procedural dirt on the environment...

    Well, why don't you try building that and see whether it's really so easy in practice? I don't see anything there which requires engine-level integration. If you can pull it off, it sounds like you could sell a copy to @imaginaryhuman at least :)

    The performance benefit of running this kind of task in native code is negligible, and will be gone entirely under IL2CPP.
     
  33. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    For performance optimisation, I was thinking more of thousands of bullet's, missiles, enemies, turrets that are all doing simple but common transforms and rotation operations that could be batched as native SIMD commands or threaded tasks/jobs for speed.
     
  34. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,613
    Let's focus on the door first.
     
    hippocoder likes this.
  35. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    Have you looked blueprint for unreal4? Visual scripting
     
  36. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,071
    Blueprint is a programming language just using visual nodes and wires instead of lines of code. By itself though visual scripting is unlikely to be sufficient, but it would at least provide a platform that could easily support much higher level nodes.
     
    Last edited: Dec 30, 2014
  37. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    Okay well what about Jass for warcraft3 if you saw it. Essentially there were 3 different things you had "events", "conditions" and actions and they were all programmed for you -- you just had to select them. Though you could turn it into code if you wanted.
     
  38. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,613
    @Aiursrage2k, re-read this section from the original post:

     
  39. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    Yeah. I once made a fairly elaborate single player campaign ("mod") for the game Deus Ex. I mostly just built content on top of the existing systems, with a bit of custom scripting just to add some new weapons and such. And individual missions did require a bit of scripting to make them unique.

    It was a joy to focus mostly on content and not worry about AI, inventory, weapon hit code, conversation editors, cutscene editors, item pickups, and yes, doors. Someone in the mod community even made a fancy elevator component that I used heavily. It was also a joy to have so many art assets that could just be used. Only about 10% of the textures I used were custom, and all of the unique characters were reskins of existing character models. There were also tons of existing sound effects, particle effects, etc. It's really quite amazing the amount of work that goes into a game of any significant scale.

    That's fine if you want to mod an existing game, but any time you want to make something custom, it's going to take work. That's true in general though. I don't see an "easy button" coming for that any time soon.
     
  40. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    What he wants is it to somehow for these things to do what he wants - without coding anything to tell it how it wants to behave. But if you take a teleporter for example some people might want it to "charge up", others might want it instantly teleport it, some people might want you turn on the teleporter in order to use it first (and for no coding at all its just kind of unreasonable).
     
  41. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,071
    It would be unreasonable to account for every situation, which is why you would simply account for the most common situations and provide similarly high-level nodes to easily allow more complex behavior.

    A teleporter could be created by having a trigger node (assigned a volume that an entity would step into) that feeds into the teleport node (when it receives a signal it could teleport whatever is in an assigned volume to a specific point).

    Adding a charge-up process shouldn't be any more difficult than a time-delay node with two inputs. One input to start the timer and another to reset. Simply hook up the start to something entering the volume and hook up the reset to the volume being empty.
     
    Last edited: Dec 30, 2014
  42. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    It doesn't get more exciting in game development than procedural dirt! lol
     
    sootie8 likes this.
  43. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    We dont even need unity to do it. We could have assets in the asset store called a "universal asset" -- or whatever now it a has a stamp on it. Maybe we have a thread where people give there suggestions on what are the bare minimum of handling common situations and if it qualifies (have a committee) we give them the official sticker (which they can attach to there icon and then people know its "certified").

    So now you have the choice between teleporter x, y,z but z has been "certified" to work in most situations.
     
  44. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,071
    Right, as I said that's what the asset store is for. This sort of functionality could be included in third-party assets.
     
    Last edited: Dec 30, 2014
  45. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
    /offtopic but:

    You can put your most used personal and team packages under separate folders in the standard packages folder and/or asset store folder and import from the local tab there (both of them or one of them are instructed in the manual). You can then sync/backup the folders with your favorite cloud service.

    Now if you were being sarcastic and are saying its still too complicated, don't want to spend a couple of minutes setting this up and want built-in zero config service handed out to you the wait and see if Unity 5 will have something like that behind Unity Cloud and pro version.
     
  46. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Funnily enough there is a `door script` on the asset store... https://www.assetstore.unity3d.com/en/#!/content/3715

    It has a number of options, some flexibility on how it operates etc... this would perhaps be an example of `one module`. There then would need to be similar modules for all kinds of other things.. basically, a self-contained modular script attached to/uses an particular type of asset.

    And lookie here, various teleporter scripts... https://www.assetstore.unity3d.com/en/#!/search/teleport

    Albeit, they are all pretty much made by different people, to different standards, with different models and functionalities... not standardized at all, and maybe with some problems getting them to work well together.

    And then for certain special cases, like 2d, there are some templates/kits which maybe have several elements you'd find in a particular genre of game, like 2d platformers.... https://www.assetstore.unity3d.com/en/#!/content/15175

    Which again is sort of cool, but again is ultimately a closed system that doesn't necessarily operate well with other systems, and maybe missing some parts, or is not extendable.

    So we're sort of part way there, and besides this becoming a potentially expensive investment to buy all these separate tools, it'd be nice if there was just a standard modular system that we (as community?) could contribute to and extend.
     
  47. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    There will always be a million cases that won't be covered. That said it is a VERY fun challenge! Too bad i don't have time for it. Would be fun to see how fast i could code 100-200 components.
     
  48. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,381
     
  49. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,381
    I wouldn't really like it if unity got all carried away and made a bunch of generic assets.

    The asset store should fill that gap. Granted, there is zero cohesiveness to the assets littered through it but you can often find standalone features that are good for most fundamentals. I have no idea why anyone would want to buy a fancy door asset, but whatever. Most things should be done to the extent that you need them to be for your game - no more.

    There are some fundamentals that are baseline for the engine of course... Lighting, shading, materials, terrain, navmesh, animation, physics, etc... But not stuff like doors, swords, guns, backpacks, inventories, grenades, ropes, boost platforms, etc... Thats stuff that is too specific to really make a generic set for.

    Unless they made a big example game with all kinds of goodies in it, that would be neat. I doubt I would use anything from it, but it would be neat. Neat stuff is neat.
     
  50. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194