Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411507 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 04:25:44 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Beginner Unity developer will work for experience!
Pages: [1]
Print
Author Topic: Beginner Unity developer will work for experience!  (Read 1671 times)
Lostghbear
Level 0
**



View Profile
« on: May 02, 2017, 10:12:35 AM »

Hello!
I am beginner Unity developer, who search for real practice.
So, I am asking you to give me any unity development task, and I will try to do my best to done it for free.
I don't need money, I just want experience.
If you have something to offer to me, or maybe you have and advice or something other then, please reply)
Or write me on [email protected]
Thanks! ^^
Logged

Wilson Saunders
Level 5
*****


Nobody suspects the hamster


View Profile WWW
« Reply #1 on: May 02, 2017, 10:55:18 AM »

On of the big eye opening moments for me as a Unity3d developer was when I found I could Instantiate Prefabs, and GetComponent<> from the instantiated object. Coming from a more traditional Windows/C# development background, this process of using a visual editor in conjunction with scripts was quite the learning experience.

I don't know if you already know how to do this, but it is well worth looking up if you don't. This technique can be applied to creating bullets from a gun, creating dynamic levels, or spawning enemies in random locations.

Good luck and have fun with your future game projects.
Logged

Play my games at http://monkeydev.com/
Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #2 on: May 15, 2017, 07:08:26 AM »

Zdravstvui!

Nice of you for wanting to help for free, but someone you help would probably end up learning you Smiley

I can recommend you start making something with a friend, it'a usually more fun to learn like that.

Thing that helped me a lot is Playmaker (though you can use Node Canvas or some other visual scripting tool, whichever you prefer). Here's a c/p from their forum which explains how much it meant to me in terms of learning.

-

I must say that my comprehension of programming actially started when i began using Playmaker. I took a Java course for few month 4 years ago, then i switched to something more serious - a year long course. It was exhausting, boring, usually meaningless and i thought that i will never learn how to code. What is a class, an object, an instance, getter, setter, constructor, method, interface, singleton?

After few more months of reading various books on Java i decided it would be easier for me to grasp some concepts if i had something to see what i actually did, not just make calculators and uninteresting interfaces in Java. I downloaded Unity and started reading forums, dissecting small games and their scripts and trying to make something of my own. Besides not completely understanding what i learned before, i tried to understand all the new stuff - transforms, colliders, properties. I was more confused than ever.

I saw that there was an asset store to buy stuff and on the first place was Playmaker, learn how to make a game without coding. Wow, would i know how to do that. I bought it, and after a few month of learning and asking stupid questions on the forum came a moment for which it took 4 years since i started learning code - THE CLICK. A moment of enlightement when everything i learned came together like a 1000 pieces puzzle. From that moment on, my learning rate is growing exponentially, and i can only thank Playmaker for that.

Now that i know a lot more, i can say that more than a few things can be done better in code, but in time i will learn to translate even those to Playmaker actions. The speed of making anything in Playmaker compared to typing walls of text and the possibility to make a mistake while doing so is unmatchable.

-

However, bear in mind that there are a lot of caveats when using visual "scripting", so try using it as much as a learning tool by dissecting actions and try replicating the work in code afterwards.
Logged

Lostghbear
Level 0
**



View Profile
« Reply #3 on: May 17, 2017, 04:33:06 AM »

The thing that helped me a lot is Playmaker (though you can use Node Canvas or some other visual scripting tool, whichever you prefer). Here's a c/p from their forum which explains how much it meant to me in terms of learning.

The thing is that I already feel comfortable in Unity and C#, but haven't tried myself in creating a complete game (except a couple of my other project) and my friends don't have many interesting ideas. That's why I'm writing here)
Logged

Teknokommari
Level 0
**


View Profile WWW
« Reply #4 on: May 18, 2017, 11:56:44 PM »

Hello!
I am beginner Unity developer, who search for real practice.
So, I am asking you to give me any unity development task, and I will try to do my best to done it for free.
I don't need money, I just want experience.
If you have something to offer to me, or maybe you have and advice or something other then, please reply)
Or write me on [email protected]
Thanks! ^^

My advice would be to start out small and challenge yourself with self imposed deadlines for these projects. Start out by making games that take maybe 1-3 days to develop then build up from that to a week, two weeks, month etc. This allows you to start from scratch often and build a proper foundation from mistakes made in past projects.

The problem with starting large is that you'll be likely biting a bigger piece than you can chew and you'll be constantly revisiting and modifying your old code based on your newly obtained knowledge. This isn't always the most motivating thing to do in game development and you'll get to do plenty of it on a later date as your projects become more complex and demand more time.

I also recommend participating game jams near you because there's often plenty of experienced people around there to work with, learn from and share your ideas with.
Logged

Lostghbear
Level 0
**



View Profile
« Reply #5 on: May 19, 2017, 07:38:10 PM »


My advice would be to start out small and challenge yourself with self-imposed deadlines for these projects. Start out by making games that take maybe 1-3 days to develop then build up from that to a week, two weeks, month etc. This allows you to start from scratch often and build a proper foundation from mistakes made in past projects.

I also recommend participating game jams near you because there's often plenty of experienced people around there to work with, learn from and share your ideas with.

Thanks! It's a nice advice!Definitely, will try that =)
Logged

Meteorbyte
Level 0
**



View Profile WWW
« Reply #6 on: May 23, 2017, 11:18:42 AM »

A few tips after a year's worth of Unity (but having been programming for 10 years):

- Always use Unity 3D, even for the 2D games. Physics are more expensive performance-wise, but it won't hurt your game. The graphics card handles that, and it doesn't get a lot of work in 2D games anyway.

- Use the X-Y axis in 2D games. Yes, even on the top-down perspective ones (old Zelda-style). Most plugins for 2D games work on the X-Y axis only, and it's easier to port your game to Unity 2D if you need it (though in 90% of the cases, there's not real reason to do so).

- Don't use the built-in animation engine, it's a friggin' mess as your game grows larger. Change and control animations by code.

- Stay away from Playmaker if you're a good programmer.

- NEVER, EVER use GetComponent<Whatever>() in an Update() or any other loop in your game. It's destroys performance. Get all of your components at the beginning of the script (in the Start() function). The same goes for GameObject.FindGameObjectWithTag("tag") and its derivatives. Use these functions as little as possible, and never inside a loop.

- Remember to put Physic materials in all of your colliders. Collisions work much better that way.

- Do not talk about the Fight Club. WTF

I hope it helped Smiley Cheers!
Logged

Check out WOODPUNK, a fast-paced action game with procedural WEAPON generation, hundreds of enemies to battle and fully destroyable enviroments:
http://steamcommunity.com/sharedfiles/filedetails/?id=895158311

Follow us on twitter: https://twitter.com/meteorbyte_stu/
Teknokommari
Level 0
**


View Profile WWW
« Reply #7 on: May 24, 2017, 01:18:25 AM »

- Don't use the built-in animation engine, it's a friggin' mess as your game grows larger. Change and control animations by code.

I think the built-in animation engine is pretty good when properly used. With proper implementation you could use single piece of code to control number of different animation controls through animation parameters, animation and animation state machine events.

Working animations through code becomes increasingly more complex when you need things to happen during certain portions of the animation. For example if you want to manipulate hit boxes during animation, specify section of the animation where user can press a button to perform a combo or assign a time it takes the player to recover and regain control of his character after heavy attack.

Not only do these things benefit greatly from state machines they're also a lot more easier to implement with visual tools. Hard-coding stuff like this also makes it difficult for less experienced programmers (game designers) and no-programmers to help you with this stuff that can be very tasking.

With proper naming and some explanations even a non-programmer may be able to work on this stuff.

- Get all of your components at the beginning of the script (in the Start() function). The same goes for GameObject.FindGameObjectWithTag("tag") and its derivatives. Use these functions as little as possible, and never inside a loop.

I prefer lazy init with C# properties:

Code:
private Rigidbody _rb;
    public Rigidbody RB
    {
        get
        {
            if (_rb == null)
                _rb = GetComponent<Rigidbody>();

            if (_rb == null)
                _rb = gameObject.AddComponent<Rigidbody>();

            return _rb;
        }
    }

If you're working with a team it might be better to use public properties that are exposed in the Unity editor. While dirty and  causes nightmares for those vouching for const correctness they are easy to use for non-programmers and can allow them to re-use your components easier saving your time for something more productive.

Logged

oahda
Level 10
*****



View Profile
« Reply #8 on: May 24, 2017, 03:32:33 AM »

const correctness
Huh, what does that mean in the context of C# which AFAIK has basically none of the facilities used for what's also called const correctness in C++?
Logged

Teknokommari
Level 0
**


View Profile WWW
« Reply #9 on: May 24, 2017, 04:28:06 AM »

const correctness
Huh, what does that mean in the context of C# which AFAIK has basically none of the facilities used for what's also called const correctness in C++?

Quote
The benefit of const correctness is that it prevents you from inadvertently modifying something you didn’t expect would be modified.

https://isocpp.org/wiki/faq/const-correctness

Going all out with public variables is kinda opposite to enforcing strict rules of where and how data can be modified.
In Context of C# it basically means enforcing strict rules through properties and access modifiers in your code.
Logged

oahda
Level 10
*****



View Profile
« Reply #10 on: May 24, 2017, 08:05:45 AM »

Right. Well, little tip in case you didn't know: you can have private fields show up in the inspector in Unity by marking them with the attribute [SerializeField], that's what we do at work. c:
Logged

Fat Pug Studio
Level 2
**


View Profile WWW
« Reply #11 on: June 27, 2017, 11:43:02 PM »

A few tips after a year's worth of Unity (but having been programming for 10 years):

- Always use Unity 3D, even for the 2D games. Physics are more expensive performance-wise, but it won't hurt your game. The graphics card handles that, and it doesn't get a lot of work in 2D games anyway.

- Use the X-Y axis in 2D games. Yes, even on the top-down perspective ones (old Zelda-style). Most plugins for 2D games work on the X-Y axis only, and it's easier to port your game to Unity 2D if you need it (though in 90% of the cases, there's not real reason to do so).

- Don't use the built-in animation engine, it's a friggin' mess as your game grows larger. Change and control animations by code.

- Stay away from Playmaker if you're a good programmer.

- NEVER, EVER use GetComponent<Whatever>() in an Update() or any other loop in your game. It's destroys performance. Get all of your components at the beginning of the script (in the Start() function). The same goes for GameObject.FindGameObjectWithTag("tag") and its derivatives. Use these functions as little as possible, and never inside a loop.

- Remember to put Physic materials in all of your colliders. Collisions work much better that way.

- Do not talk about the Fight Club. WTF

I hope it helped Smiley Cheers!

Cool tips, though i must disagree on Playmaker usage. It's a very handy tool, and you don't have to use it by itself, you can use it in conjunction with scripts. Both approaches have their pros and cons. Cons are obviously a spaghetti mess and the state machine system itself, but it greatly speeds up prototyping. But, after almost two years of using Playmaker, i think i'd rather recommend node canvas and flow canvas which combine the best of both worlds with some nice features. I feel Playmaker kinda gave on some further improving, it's getting more and more clunky to use, there's no way to export variables and edit them in a spreadsheet, then get them back in, no node groups, conditional expressions for global variables have been introduced really short time ago, etc. But Playmaker really opened my eyes in terms of scripting, it's definitely a good gateway towards better learning of scripting itself by understanding how things actually work. And writing your own actions is the boss, you can fit a lot of stuff into only one and avoid the spaghetti, not to mention great reusability.
« Last Edit: June 29, 2017, 02:42:56 AM by Fat Pug Studio » Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic