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

"Code Katas"

Discussion in 'General Discussion' started by AndrewGrayGames, Mar 11, 2013.

  1. AndrewGrayGames

    AndrewGrayGames

    Joined:
    Nov 19, 2009
    Posts:
    3,821
    Jeff Atwood thinks they're a good idea.

    I like the idea of these, though I guess writing small casual games could serve much the same purpose. Pretty much, a developer takes a (relatively) confined problem for practice material. The point of executing a code kata is not to find the 'correct' answer; it's to learn from the process of doing.

    This idea is something that I'm thinking I can develop on; on the WIP threads, I periodically spin off a new game project once in a blue moon with mechanics just beyond what I've done hitherto, and while most of the time my games don't come to fruition, I usually walk away from the project with A) a better idea of how to design my next attempt, and B) a more robust codebase to make it happen. Occasionally, C) my coding style and sense of architecture improves, such that I don't get hung at the same place next time.

    Thoughts?
     
  2. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    While I absolutely disagree that "doing your job isn't practicing", I do agree that doing other things on the side can help your expand your options more and accelerate your development.

    I've been *planning* to write little games that let me experiment with particular features I don't know how to implement yet, but something always gets in the way. I've really got to buckle down and just do it.

    For instance, a racing game. There's a lot about it that I want to learn, like picking colors for the cars, picking cars, car AI for racing to the next goal, goal posts themselves, etc. So I put out an all-call to find an artist. I found one, but now I'm waiting on art. I need to stop waiting and start doing.

    And even though I know that and have admitted it, I'm still waiting.

    Ludum Dare is the only thing that's motivated me properly so far. I actually managed to enter a game last time. (A horrible game, but a game nonetheless.)

    I think a large part of the problem is that my good ideas are all *big*. I'm not very good at coming up with simple concepts and simple games. It's a skill, and I need to practice it.
     
  3. Kinos141

    Kinos141

    Joined:
    Jun 22, 2011
    Posts:
    969
    I've done nothing but make gameplay since I started in Unity. I should release source code in the near future. It'll be nice to really help the community out.
     
  4. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    I don't. It can be, parts of it sometimes are, but the vast majority of the time for me and for most other professionals I know, in doing your job you generally play it safe rather than stretching yourself. You do things that you already know rather than trying new things, and the attitude is about "getting things done" rather than "getting things right". Those things aren't necessarily mutually exclusive, but they do represent different mindsets, and where one is great for learning the other isn't so much.

    As a practical example, when I'm at work I stop working on something when it's done to a professional standard, even if I know I can do better, because the people paying for my time (both my employer and my client) almost never want to pay 80% more for a 20% improvement. On the other hand, when working on something in my own time I've been known to do something 5 times over because I wasn't personally 100% happy with it yet. It's also in personal projects where I'll try completely new approaches to things, because if the experiment goes wrong there it's no great loss, where if an experiment goes wrong in a work project it could cost my employer time and money and potentially other people might have to deal with the mistake for years.
     
    menderbug likes this.
  5. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    If you aren't falling down, then you aren't learning. It's a cliche for ski'ers and snowboarders. And it is based on Effortful Practice. Also known as Deliberate Practice. I define it: "Practice things ALMOST beyond your ability."

    Which means I often fail. But, I improve and then I start all over. It's the single most impactful idea in my 20-year career.

    Gigi
     
  6. Errorsatz

    Errorsatz

    Joined:
    Aug 8, 2012
    Posts:
    555
    Definitely agreed. Starting a new project, I do use new things and try to make the architecture great. But making a change to something that's already out there and working? It takes a lot for any significant refactor to be worth it, when I can just patch things into the existing system and not worry about breaking anything or taking a long time.

    On the other hand, when I'm working on my own projects for fun, it's all about making the code awesome - so there's definitely a difference there.
     
  7. actuallystarky

    actuallystarky

    Joined:
    Jul 12, 2010
    Posts:
    188
    I've worked as an Art Director on several large game projects and let me tell you, there is no reason for a coder to be waiting on art ever.

    You need a car model? Cool, I'll makea box for you with the correct dimensions, naming standard and materials in ten minutes.

    You need wheels for your code? No problem, here's some more boxes that are linked correctly, named, aligned etc.

    You need decals and textures for your code? No problem, here's some correctly named and sized textures that I quickly put together. They're actually a little more useful than final art because I whipped up some grid reference data on the image itself so you can see any alignment issues easier.

    While you work on the code, the artist continues to refine the assets without bothering you as the proxy art is all named and set-up exactly the same as the final asset. No bottlenecks. No waiting.

    If your artist is too slow / too inexperienced / too damn busy to do this it's not a big deal to learn how to create proxy assets yourself. Hell, you could make an entire functioning game with coder art and then hand it over to a team of artists to beautify. It would be that much easier for them as they could see exactly how to set everything up.

    Hope this helps.