- Quick new section on the Vergence-Accommodation Problem.
- Added quick section on manually merging scenes and prefabs in Unity.
- Added Logan Buchanan as a contributor and author.
- Logan has written a great section on monetary ethics!
- Currently slowly learning shaders, and writing about them slower.
- About to start work on a small AI ethics section.
- About to start work on a game aesthetics section.
- Also planning to open up a few pages on the fundamentals of Procedural Generation, Machine Learning, Evolutionary Algorithms, and Blockchain concepts.
- Going to rename this Wiki to WikiBee soon since it is becoming a collaborative effort!
In short, Noah is writing a Practical Resource For New Game Developers. It is also a Case Study for Students Entering Game Dev, a Reminder to Myself That What I Do Is SUPER COOL, and hopefully a Place to Share Passions and Expertise. (Click to expand.)
Basically, at work I've been writing a bunch of documentation for Git, Unity, C#, Game Design, and just general industry stuff and useful shit for game developers and dev-adjacent people. It was meant for onboarding co-op students who are still in school and need a big, easy to understand overview of some practical development concepts.
One day I got home and Minh (Hi Minh!) asked me a Game Dev question relating to coroutines. I realized I had written about it earlier that day. Figured I'd basically just write a public version with all the work-specific stuff taken out.
Welcome to my Wiki repository to which you are reading. I will be updating this relatively often with new stuff I learn through practical work at my job, as well as things I've learnt from the various senior developers I talk to at game dev meetups.
Okay. Don't freak out is my first advice. (Click to expand.)
The most unanimous feeling in all of game development is crippling imposter syndrome.
I have literally never heard someone in Game Development say they don't feel feelings of inadequacy. It's almost just assumed of and by everyone. So much so, that developers will often talk to you about how they're fighting their feelings of inadequacy before talking to you about their game. It's kinda just a good icebreaker, honestly. Guaranteed common ground, and one of the many reasons game developers have eachother's backs.
"Impostor syndrome is a concept describing individuals who are marked by an inability to internalize their accomplishments and a persistent fear of being exposed as a 'fraud'."
The truth is even the most beginner programmer is only a few months hard work from being a game-industry-professional. When I first talked to a professional in the field, I was able to comprehend what they were talking about, even after just learning the basics of polymorphism. It's not unattainable.
Everyone is struggling to push their own boundaries, and they're only struggling because nobody teaches anyone else shit.
Now, by working as a game developer, you're also a game designer. You will need to make on-the-fly calls about what is best for the player's experience. (Click to expand.)
For this reason, one of the most important reads for you is The Basics of Fun. This is perhaps the most valuable one-pager you'll read on the wiki, because it will affect how you do everything during development. It's based on a soft understanding of various famous works including Steve Swink's "Game Feel" as well as analysis of some of my own favourite games, and what makes them tick.
I recommend taking the time to learn good protocol surrounding Git, as well as refresh yourself on the basics. This is especially important since I'm going to talk about Git using the commandline interface. There is no guess-work involved, and there aren't any confirmation boxes saying "ARE YOU SURE?". This is mostly because it's how I learnt Git, but it comes with the added benefit of feeling like a hacker-wiz, and you also gain a better understanding of the underlying operations simply because each command is deliberate by nature of the command prompt.
Additionally, on this Wiki there is a boatload of fantastic and less-than-obvious tips, tricks and tools relating to Unity and C# which I have poured my souls (plural) into.
If you're relatively new to the game development field this Wiki is for you. If you went to school with me in SIAT then this Wiki is for you. (Click to expand.)
It doesn't teach you the basics of programming (yet), but it gives you enough extra knowledge that you can rub shoulders with seasoned developers. I know - I was surprised too. This is because games are so broad, not many developers can really afford to go super super deep into one line of research. Therefore often the best thing to do is identify what few things you need to 'learn to be okay at' for a particular project, and 'be okay' at those things for the duration of the project. The most universal knowledge is what I'm going to prioritize in this wiki. Namely, code, design, and the industry.
Frankly, since I wrote this for fellow coworkers in software development positions, it skips a lot of the basics of coding, and that is something I hope to remedy in the future when I have more time. Let me know what concepts in particular - fundamental or otherwise - you'd like covered and I'll prioritize those first.
I have no plans of neglecting this wiki in the future, and I want this resource to grow based on your experiences and expertise too. If you have anything you'd like to add to this documentation, I'll add you as an author! (Click to expand.)
In general I'll only accept contributions if:
- I've met you in real life.
- You do creative stuff.
- You're not an asshole.
And in general I want to encourage you to contribute if:
- You're passionate.
- There's a gap in the wiki's knowledge.
- You're nice.
Things which I don't know how to write about that YOU might.
- YOUR OWN PROJECTS
- Marketing
- Self-Promotion
- Animation
- 2D Art and Pixel Art
- 3D Art
- Level Design
- Audio Design
- Audio Systems
- Funding Projects
- Funding Studios
- Finding Jobs
- Networking, Events, GDC
- Ethical Guidelines I'm Not Aware of or am Otherwise Underqualified to Talk About
- Mental Health
- Professionalism
- Contract Work / Freelance Work
- Initiating Collaboration
- Lifestyle Stuff
- "How much should I be getting paid?"
And many more!
But I think I can find a place for just about any topics, especially if they pertain to all creatives, and especially if the content is game-applicable. That said I don't want to limit this resource exclusively to games when so much of it is transferrable to other mediums.
If you're interested in contributing there are a few ways to do that, and I'm open to all of them:
- Literally teach me something.
- I'll write my interpretation down for you!
- You'll get acknowledgement and thanks on the wiki!
- If you're not comfortable using Git yet, just send me plain text!
- Super easy.
- I'll worry about adding you as an author, and any images and formatting!
- Make a pull request!
- You get full control of the markdown (.md) files!
- Your name will be etched into the commit history and Contributors section!
- You're an author now too!
Thanks in advance, and I hope you'll join me in this little project.
Okay. Now let's dive in. I'm going to point to a few of my favourite sections which you won't necessarily be stoked about or even understand, but maybe there's a spark in there. There's a good chance it'll expand your understanding, even if most of it is putting the cart before the horse.
- 👾 The Basics of Fun
- 🐙 What Makes Unity Great
- 👶 Git Basics
- 🌱 Violence as a Tool, Violence as a Crutch
💰 The Industry (50% Complete)
📁 Git (80% Complete)
📐 Design (40% Complete)
🎲 Unity (75% Complete)
☕ Code (50% Complete)
🐉 Shaders (3% Complete)
Noah Burkholder - http://noahburkholder.com
Logan Buchanan - http://loganbuchanan.com
[Your Name Here]
I'd like to thank Google, as well as the following people:
-
Tony Pacheco - Who helped me write up the first version of the Wiki materials you're reading, especially around Git Methodology and Building. He's really good at sword fighting and sometimes brought his longsword to work.
-
Minh Buinhat - Who reminded me that maybe some people can relate to my passions and would benefit from anything I can teach. Discovered he could ask me about Unity and I would give him 3 hour long tutorials.
-
Logan Buchanan - Who encouraged me to the point I'm comfortable sharing this Wiki. He basically got me through half of my education, whether he knows it or not.
As well as Meri, Stephanie, Andy, Helen, and Bryan for being my first partners in crime.
Additionally I want to thank IndiePod in Vancouver for being an endless source of knowledge, inspiration, community, and talent. I wouldn't consider this Wiki valuable if I hadn't learned a lot of it from you all.