7 ms·
I'm a software engineer who has until now mostly worked on web applications (backend and frontend). I have recently been learning Unity3D which has been immense
by ganonm 7y ago
I'm a software engineer who has until now mostly worked on web applications (backend and frontend). I have recently been learning Unity3D which has been immensely satisfying. The breadth and depth of skills needed to tackle projects in this field makes for some really interesting work.
I am currently awaiting approval to sell an editor plugin on the Unity store which I spent some free time working on as a side project. In game level design, most artists make use of 'modular' assets to some extent. These are small sections of a structure e.g. a corner wall section or a roof section, which can be combined together to make endless variations on a building style. The plugin I made allows you to specify 'sockets' on each modular asset, including a type and compatibility system, then it handles automatic snapping together of assets in the editor. This speeds up a assembly of modular assets significantly. The alternative, old fashioned way of doing this is 'vertex snapping' which is tedious and time consuming.
Video here: https://youtu.be/MvYTbIU1d-c https://youtu.be/MvYTbIU1d-c
- istoica 7y agoIs there a gradual path on learning Unity ? I mean, what is it ? A visual editor of 3D worlds, but not Blender / 3D Max, together with code editor and C# ? It looks more like Adobe/Macromedia Flash as IDE, used to like that very much back in the days, till flash died due to plugin need / proprietary / security. Would still prefer to ship an app in a single file, that progressively streams, just as SWF used to do. Now, in the web area, all is utter crap, one billion files to download, CDNs, fallbacks, signatures.... argh! Heck, would choose VB or Delphi as IDE for building apps in no time against all this React / Angular / WebComponents tech salad with no substance and ephemeral lifespan. I am still able to compile pascal code from 1997 in Lazarus / FPC.
- ganonm 7y agoYes, there are many gradual paths to learning Unity. I would highly recommend following the official introductory tutorial series. This covers core topics like Components, Transforms, Prefabs, Game Loop etc. After this it gets a bit less clear how to proceed. If you're already a competent programmer I'd go straight to just prototyping ideas and reading the documentation in depth. I would especially recommend reading the best practices guide. Regarding the development environment, yes it's very integrated and isolated. For me this was a bit of a culture shock as I generally prefer working with text rather than IDEs, but I've gotten fairly well acclimatised to it now.
- bladedtoys 7y agoThe closest analogy would be the Flash IDE. Art (3D, 2D, images) is made outside. So is any coding. It integrates nicely with visual studio and Blender (and Maya and Photoshop and the like) so the process is fairly seamless. For example, debugging works. Yet it produces native apps as well as WebGL. An infinity of tutorials exist in as many qualities so learning resources of every level are hyper abundant from gradual to accelerated. A passable 2D app is probably possible in a few days starting from zero knowledge. But a impressive 3D game will take mastery of quite a range of its abilities and probably require a team. Since it is not dependent on a proprietary player, it probably has more staying power than Macromedia/Flash but it does have competition from Unreal which I imagine is a viable alternative.
- justanothersys 7y agoI built and published this 2D app in Unity with only prior web experience in a weekend: https://youtu.be/NTc6pf6OrI4 https://youtu.be/NTc6pf6OrI4 Haven’t touched Unity since... even though I’d love to make games. I’m partly afraid of future maintainability of my projects, but there is a potential future where 3D engines converge on a standard... maybe never.
- Assossa 7y agoThat plugin looks amazing! I expect to see it on must-have plugin lists soon.
- ganonm 7y agoThank you! It's all a bit of a shot in the dark for me and I have set my expectations very low for any sort of revenue - I mostly did it as a learning experience. Hopefully it's helpful to some people though.
- sloaken 7y agoEvery time I have tried to learn Unity3D it has not left me with a good feeling. First time was extreme frustration. Second time was a lot of work for not much skill. Several obvious conclusions can be drawn: 1) I am an idiot 2) I am using the wrong training material 3) Unity3D is just not for me. I am hoping it is #2, so I ask what path did you use to learn Unity3D?
- ganonm 7y agoI'm going to safely assume you're not an idiot. The only major hurdle I can see would be not fully grokking the core concepts. I suspect this might not be helped by the domain specific terminology that isn't used much outside game dev or even Unity itself. First thing to really wrap your head around is 'what is a GameObject'. A GameObject is just an entity that exists at runtime in the game world and has things called 'Components' attached to it. The simplest possible GameObject has only one component, called a Transform. This is simply a stateful record of the GameObject's position, rotation and scale. You can expect to write lots of code that involves manipulating Transforms. There are components for everything. Want your GameObject to have a visual manifestation in the game world? Add a MeshRenderer component. Want to allow it to obey the laws of Newtonian physics? Add a Rigidbody component. You can expect to spend a lot of your time implementing your own components. These custom components will often, ultimately just end up manipulating the transforms and other components of other GameObjects in the world. Now you might wonder how GameObjects are created. One way is just to create an individual GameObject and attach components to it (analogous to an anonymous class), for the most part however, you will create things called 'prefabs' which are analogous to classes in OOP. Instances of these prefabs can then be easily instantiated (either manually via the editor or programmatically at runtime). Once you have gotten your head around these core concepts, the rest starts to naturally follow. You can study topics like animation, custom shaders, net code, physics etc. and quickly understand how they relate to the core concepts. My path to learning Unity (and I'm still learning!) was to follow the Unity official tutorials then start prototyping game mechanics - how to create a first person controller, how to allow player to interact with game world objects, how to animate characters etc. I'm now at I guess an 'advanced beginner' stage. I'm comfortable with the core API, have dabbled in most of the common topics you would need to be familiar with to make a game, and now I'm just doing projects to build up my productivity and skills.
- ReD_CoDE 7y agoWow, I like what you do in Unity. Personally like Unity, however, I think Blender and Unreal Engine - UE have a better future. Also, try to build this modular plugin in OpenBIM environment with IFC [1] support, then it will be more useful If you need some help in this way let me know [1] https://www.buildingsmart.org/about/what-is-openbim/ifc-introduction/ https://www.buildingsmart.org/about/what-is-openbim/ifc-intr...
- Phillips126 7y agoComing from a similar background (front/back web), I also find Unity3D very enjoyable. My latest project was attempting to create a relatively simple VR horror game on the Oculus Go. I was able to create something pretty neat but ultimately canned the project as I found the low quality graphics and single controller to be too limiting. I am considering picking up the Oculus Quest and maybe starting the project over since it has two controllers (one for movement, one for flashlight/etc). I found the Blender -> Unity3D workflow really positive for those that are interested in trying themselves.