Good Bye World

edited in Projects
Good Bye World

Comments

  • edited
    Cool, where do you teach?

    PS. Your link is broken :)
  • edited
    Hey @MoruganKodi!

    From the video, it looks like it's possible for your first uncovered tile to be a mine, which could be quite frustrating! I always wondered about how one might be able to guarantee that the first tile wouldn't be a mine while also still allowing the game to have a unique "seed" identifier that would make it possible to share the game with a friend and both be able to play the same grid. I imagined that the seed would end up needing to be made up of two parts, where one part was an actual seed, and the other was merely the co-ordinates of the first-uncovered tile to guarantee that that a mine would be removed from there if there was one there... but that didn't seem very satisfying. :P

    --
    I'd be really interested in seeing what you've got planned for the students this year, what the curriculum you've got planned is, and what kinds of outcomes/portfolio you envision their having by the time they complete the course. What do you think a successful student would have done? I've really wanted to be able to recommend people study game development somewhere, but I haven't been able to do it confidently in the past, and I think that in general it would be beneficial to both schools and us as game developers to strengthen our relationship. (Wits has a pretty strong presence here I think, but we haven't seemed to have much from any students elsewhere.)

    My understanding is that you've been working on your own games for a few years, working solo, and therefore doing everything from art, to programming, to game design and audio! But it's also that you've mainly worked on one "uber" project that has spanned multiple years? Are you teaching to pay for continuing to work on that title? Or do you enjoy teaching? Or do you have other game career goals? (You don't have to answer if you think I'm being too probing! I'm just genuinely interested because I think you've done some cool work, but I also pretty much don't know you because you seem to have worked in a bit of a vacuum -- or at least separately from this game community -- and I'm interested in what kinds of attitudes toward game development you hope to pass onto your students.)

    I've never taught a full year's course myself (I've only really ever dabbled in guest lectures and guest workshops, and most recently a 2-month mentorship-type thing, all of which I did as charity/community-building work), but from what I saw of Learn3D's previous year's output, I was quite disappointed with what seemed to be two (lacklustre) games made in a year. My feeling is that you're far more knowledgeable and experienced, both technically and artistically, than the previous lecturer, and I'm pretty excited to see what they make this year. I wish you the best of luck!

    (By the way, I remember talking to you briefly at an artists alley at some sort of geek-related con a couple of years ago, but you seemed to brush me off pretty quickly when I said I worked at a game studio and primarily used Unity3D, where you were dead set on using XNA. I was kind of surprised back then, because usually when game developers hear of other game developers they're filled with interest and questions. :P I don't know if it was social anxiety or my somehow coming across as an arrogant asshole. [I think that in the past I've sometimes had that tendency!] It would've been nice to talk shop.)
  • edited
    I just woke up to take another dose of cough syrup because I coughed myself awake. I'm not entirely lucid, which normally means I shouldn't post, but what the hell. :P Sorry.

    Thanks for the detailed reply! It's really nice to get some insight into your experiences and how they've framed your thinking (or vice versa). I'm particularly impressed with how much you managed to do being self-taught.

    I think I remembered you more distinctly because of how surprised I was to hear your skillset (I keep an eye and ear out for people who're both artists and programmers, because it's pretty rare, and also because I -- somewhat subconsciously -- add them to the list of people I think I might have to compete with for work in the future; this self-preservation has died down a lot as I've gained confidence in the sustainability of my game dev career), and that you were going it alone, and (at the time) didn't seem to have interest in hearing that there were game studios in the country who could use someone with your skills. :P I mean, I can understand some of the reasons for going it alone (although I personally think it's better to work at a studio, learn from more experienced people while being also being paid), but at the time it felt to me as if you actually did want to work in a studio, but somehow didn't want to hear that the studios actually existed, or something like that. I could be totally wrong though! It was just my impression from the couple of minutes of listening to you talk!

    Yeah, I was somewhat involved with LegionInk, more because I had friends running the place, and friends selling art than that I was an active contributor or anything. I think the time I met you I was hanging out at Kim's stand because I had a crush on her. XD (We're dating now.) To be honest, I'm rather happy you're not drawing anime any more. It looked like something that would be holding you back artistically, and I felt like you'd grow a lot more as an artist doing something else, and revisiting it much later on if it was something you wanted to do.

    I don't know how open to feedback you are with both your course and how you've been approaching making games. Again, when it comes to teaching I'm hardly experienced, but I think I understand how difficult it is from the little I've done of it. I'd like to propose a couple of ways of thinking that might achieve higher rates of success. I'm not saying I'm right, but I worked on several shipped titles as an artist, tech artist, lead artist and programmer (I've also worn a lot of hats, though I expect I have less programming experience than you do, but lots more game prototypes).

    Friends of Design also only has a one year course, and they seem to have a much broader focus than you do, where they're doing much less programming (I'd thumbsuck that it's only a quarter of the year's work), and much more of everything else. However, when I chatted with Lars about their course, he argues that it's more about the "game technology" angle of it, i.e. he doesn't seem to expect that his students would enter the game industry itself right out of his course (which I can understand, given that there aren't enough game jobs available to absorb all of the students who go through these courses anyway). Instead, his angle is to teach people who're already in web dev, graphic design, and other media, and to get them to be using game tech to enhance their own skillsets and use the tech elsewhere, making interactive experiences more of a thing. If they actually want to get into the game industry as artists, game designers or programmers though, they'd have to do further study/learning. Getting them into the game industry itself isn't a goal. You'll notice that the course itself is called something like "game graphics and multimedia entertainment", and its description helpfully says you'd learn skills for working in the "digital entertainment business" rather than actually saying that you'd be working in video games, which I think is much more honest than I've seen in some other places. I think it's an interesting way to try and create a niche for themselves from the other schools that teach 3 year courses in pure art, or pure maths/comsci.

    If Learn3D's focus is heavier on the C#/programming side, the students who graduate would be competing with other students who're studying actual BSC/BSCIT/Maths/Comsci/BSCEng whatever courses as programmers, right? And those will be people who've studied a minimum of 2 years of pure maths at a university, and will as a result be in a far stronger position (I expect) when it comes to linear algebra and multivariable calculus, physics, and the like. They're more likely to understand the inner workings of a game engine. It's certainly a strong way to enter the game industry, though of the 20+ local people that I know who've been credited on shipped titles as game programmers, I think 3 of them don't have maths-related degrees (and I'd argue that all three are strong game designers). I mean, I do think you could get more done in a year, practically, than a university could in a year, given how much admin and bureaucracy there is in a large organisation, and how I found a lot of the core subjects (like maths) had a lot of fluff built in that wasn't really relevant to games, but was taught anyway because of how it was a pre-requisite for something that was coming up in physics or stats or something. (I'm not saying that stuff isn't useful, because all learning is useful; just saying that when it comes to maximising learning vs time spent, there was a lot of stuff that I believe weren't very important to learn then and there).

    For the past 5 weeks or so I've been teaching a class to write shaders for Unity. I give them around 1.5-2 hours of learning videos per week, and we have a 1-2 hour Google hangout. As you know, writing shaders can get really complicated, and could rely on some pretty heavy knowledge of linear algebra, the architecture of a graphics card and how Unity's graphics pipeline and renderer work. As far as I know, none of the students have done anything beyond high school maths. What I've seen come out of some them makes me really proud. I've seen smoking skulls, and magic bottles, and lava, and wispy magical gems, and fractal-like firey things... and that was all before knowing what a dot product is, or what a transformation matrix is, or even not really understanding what a "fragment" actually was, or anything that a graphics programmer would tell you is fundamental. Yes, there's a LOT of hand-wavy stuff going on, a lot of maths that isn't necessarily technically correct... but if it looks fine, then I don't really care at this point. And if there's something that they want to do that does require a bit more maths, then I introduce the maths concept when it's needed, or else introduce it later on when I think they're ready to learn one more thing. (I also do give them little tips about optimizing, or doing things the "correct" way, but it's always framed as an extra. It's more important that they're enthusiastic about making awesome stuff that works at all, than for it to be optimized or clean or to have a sound understanding of the underlying mathematics. They all know that knowing maths or programming would be helpful, because they can see the holes in their own knowledge. In a very real way, through practical work, they have a sense of "knowing what it is that they don't know", which gets them asking very relevant questions, and Googling some tough stuff themselves, and asking me to explain more difficult things when the search results give them some dense linear algebra.)

    I think there are a couple of really big advantages to teaching it this way. Firstly, from the first week, they already had something they could play with. They might not have understood what all of the code in a shader did, but it was okay. As long as they had something visual -- they could see the results of what they were doing, even if the result was an error and a screen of magenta -- they had something they could interact with, and "play" with, and it allowed their curiosity to spur further discovery and self-teaching. Secondly, each time I taught something new, I taught it on its own in a the 1.5 hours of lecture video, and it would be directly applicable somehow to their shader, so they could play with it immediately. Here's the dot product, so here's how you can make your edges fade with fresnel. (I do explain what the actual maths behind the dot product is, just for interest's sake, but I don't focus on it. I focus more on how it works practically, with giving a cos-like response based on the angle between two vectors. I'm not even sure they know what vectors really are, but I expand on it more when they ask for it... :P It sounds terribly hand-wavey, I know, but man, if you could see the awesome stuff they've done on their own without my even prompting... SO RAD.) Cool, now we do almost the exact same thing, but use a light direction instead of a view direction, and now we've made something look as if it's lit (even if it's just super basic blinn/phong). What's nice about that is that the theory isn't front-loaded, the way it almost always is in academia. Each time you learn something, you also immediately learn why it's even useful, which I think is pretty handy. I wouldn't call it easy. I don't even think I'm doing that good a job of teaching the material (I sometimes forget what they have or haven't learnt, and end up going in too deep), and I'm pretty sure my students would say that the material's super dense. But I'm kind of okay with that, because, with my material being pre-recorded, they can watch it over and Google some of the stuff they don't know, and email me if they get stuck.

    (There's one caveat to my story. I did ask my students to learn some stuff before taking the workshop, including doing a free self-taught 10-hour Javascript course. I didn't want to have to teach something like variable declaration, or making functions/methods, stuff I felt was material already given for free by various teach-yourself-to-code websites who have far more time and experience to teach that stuff better than I would. But still, they're writing shaders -- considered by many people to be an "advanced" topic. If some graphics programmer tried to "test" their knowledge, they'd probably fail (for now). And I DON'T GIVE A SHIT because they're making lava, and water, and magic bottles, and you know, actually making awesome game effects that make both them and me excited.)

    I guess my point is this: if you're trying to teach programming from fundamentals -- and I really do see the usefulness in that; I'm really not trying to say it's not important -- you're setting your students up to having to competing directly with people who've got degrees, in which case what's the thing that would give them a competitive edge?

    And secondly, I've found it more rewarding to get students to do the things that are exciting first, rather than laying out a theoretical or abstract groundwork. I feel that when you're excited about something, you start wanting to learn the theory because you see how having these new tools in your kit help you to make even more cool things.

    Now, again, I have very limited teaching experience, but I feel like a really good game course for teaching someone to make games in a year would be (1) to use a game engine right from the start, whether it's Game Maker, Unity, Construct or whatever. I think the satisfaction of having something to play with right from the start fuels the desire to learn more things, and to engage with and play with the material immediately, resulting in more learning outside of the classroom, (2) to introduce theoretical concepts only when they're needed, with a "make a game" assignment that directly uses the thing they've just learnt, with an assignment brief that's easy enough to be completed really easily, but with plenty of space for embellishing for students to be creative and make it "their own", and (3) to have everyone see each other's games, play test them, and give feedback, so that they can learn themselves what makes things feel good, what makes things feel like fun. I think that at the end of a year of something like this, they'd have 20+ games, even though they're really simple ones, have a really good understanding of how long things take to make, and they'll be pretty good at scoping for when they make their "epic" 1-or-2-month-long project at the end of the year. They'd have a better game portfolio than many people with degrees. They might even be stronger game designers. They probably wouldn't have done things the "correct" way... but having shipped 5 years of games, it's all smoke and mirrors anyway. "Correct" isn't as important as "functional and shipped", and "optimized" isn't as important as "not hurting the experience with lag". :P But heck, I'm 100% certain that they'll have fun, and be much more likely to want to teach themselves new things as and when they run into new problems to solve.

    I don't think it's unrealistic either. Duncan's held some GameMaker workshops at Learn3D in the past, where he's tried to get high school students to make full (albeit simple) games in a weekend. I think it was mostly drag-and-drop game making, but I think that's where it starts really, and it's arguably much more useful toward being better game designers (i.e. caring more about creating an enjoyable experience than the nitty-gritty of optimization and algorithms/patterns).

    I hope that helps you, and I hope I haven't overstepped any boundaries or anything. I'm also not thinking too clearly because as I've said the flu and I'm drugged up and my thinking and sleep are kind of messed up because of it (and I'm typing this at 7 in the morning because I've slept for like 20 hours). I definitely don't want to come across as if I know it all or have all of the right answers -- I don't. I'm just sharing my experience (although I get paid to make games full time, so I guess I'm doing something right), and I think you're in a pretty good position to effect some positive change in game dev at Learn3D (especially given the complete creative freedom, no bureaucracy, no SAICA/SITA/whatever accreditation/requirements).

    --
    As a side note -- and again, I don't want to intrude or be presumptuous, but I just want to say this as well in case it does help -- I'd like you to be wary about making ProjectOS your life's goal or something. Like, I think it's important to have an identity that's separate from this dream project, especially if it's a project you've started over and over and made it more and more complicated. I think it's easy to stress yourself out, and kill some of the joy of just making stuff, by being super focused on one project. Because if the project fails (and projects do fail sometimes), it can make it feel as if you are a failure as a person, and that's a terrible (and unnecessary!) burden to put on yourself. I think it also makes you more resistant to hearing criticism, or makes other people scared of criticising your game in fear of hurting you, which directly hurts your games.

    I think that if you're not doing it, it'd be really helpful to make some silly, terrible games, just for the fun of it, at game jams or something, lower your standards, have more fun, and potentially discover a whole world full of great game ideas that you can play around with. Some of them might give you new insight into ProjectOS. Some of them might be opportunities for using a game to learn something new. Some of them might be worthy of being made into full games themselves. Regardless, spending a few weekends here and there making a smaller, different game can't hurt, right? :)

    Good luck, dude!
  • Darwinia
    Such a fantastic game. I love Introversion Software.
  • edited
    I did see that you're shortening the time spent on pure C#. :P What I'm suggesting is cutting that out completely, and working in Unity with drag-and-drop interfaces and Unity's C# API from the start to get games students can play around (both in terms of playing with each other's games, and in terms of playing with making games). It's in my personal view the only viable way to compete with degreed courses that have the time to teach maths and comsci fundamentals, because what your students lack in technical knowledge, they have a better chance of making up for in terms of game "feel", and what sorts of interactions are enjoyable or not. Making only a single level by the end of the year makes me think they're guaranteed to have a worse portfolio and a worse technical understanding than their competition, which I think would be a shame. (Again, just saying this from how I'm seeing things. I don't mean to tell you how to teach, especially with my being a teacher with what is effectively about 5 weeks and 3 days of unpaid, part-time teaching experience, but quite a lot of professional experience making shipped games. :D)
    Additionally - there are actually a couple case (shader related) issues I never overcame in regards to Shaderlab (mainly algorithmic/mathematic) that you might be able to advise on.
    I don't know how easy an in-person meetup would be, as my time visiting Joburg's mainly reserved for work-related stuff, and being with Kim and my folks, but you're welcome to PM me if you've got questions.

    And, to be honest, even though I did study a maths degree, that was some 8 years ago, with a whole lot of being an artist since. My maths isn't nearly as strong as I wish it was. Most of what I've learned about shaders I learnt on-the-job from @AngryMoose while at Luma Arcade, or Googling and experimentation. I've done enough to get the visuals that I've wanted to get for the games I've worked on (because I think 95+% of shaders do the same sort of thing anyway), but there are definitely some potentially powerful things I don't do because I just haven't had to yet. And as I described above, I tend to learn the maths/tech when I have to learn it, and instead spend most of my time on being an artist, and learning to design better game experiences, because I personally find those more satisfying (and also think they're easier things to sell to consumers).
Sign In or Register to comment.