GDC 2013 just finished. I attended for the first time with an Independent Games Summit pass and found the whole experience incredibly valuable. Here are my notes on all the talks I went to, plus some random GDC thoughts. I was going to post this in WAYWO, but it's a bit long...
[code]
FRACT
- development will take way longer than you expect
- get outside playtesters
MOLYJAM
- tips for running a jam
* a good theme takes the pressure off
* get a venue with
+ power
+ internet
+ seating
+ water/bathrooms
* get free licenses from game engine companies
* show and tell party
* open to the public
* crowdsource assets
- what you get out of a jam
* working on something exciting removes writer's block
* inspiring to be around talented, passionate people
* get press/fans involved in development
* new people -> more diversity
INCREDIPEDE
- get a real artist
- bend the tech around the art not vice versa
- you can do randomized tiles in a shader!
- automatically turn off features for low framerates
- vectors reduce file size for art assets
- cram circles into corners to make rounded geometry
[/code]
Incredipede's geometry is all rectangles under the surface. Circles are placed on the ends to round them out. Circles are crammed into the corners between rectangles (radius based on the angle) to keep things smooth. This also makes the physics hulls very simple.
[code]
SHELLRAZER
- design for different types of players:
* skilled
* have free time
* busy, unskilled players who are willing to spend money
- you can get 30% more revenue while keeping purchases out of the way
- fooling players means you make games for fools
- set a reasonable upper limit for IAP e.g. spending $50 gets you "everything"
MARK OF THE NINJA
- bad things
* designs for late-game content
* thinking "it will be better once more features are added"
- build testable hypotheses. fail quickly
- don't make things "fuzzy"
* explicitly relay info
* discrete rather than continuous state
- get T-shaped people
SPELUNKY
- reuse as much as possible (interactions/colors/etc.)
- remove things that are specialized
- packaging is crucial (screenshots, trailers, logos)
* can design the product to fit the packaging
* start with the art i.e. a coherent style
- steal ideas from IRL toys
[/code]
I talked to Spelunky's programmer and he said the whole game uses plain-old C++ OOP inheritance (and lots of edge case handling) - no component-based or dynamic scripting fanciness. They didn't have a clever way of testing the game systems, either - just lots of painful QA. He also designs wood toy sets for kids (his whole talk was relating that to video games). Really cool.
[code]
PLAYING WITH GENRE
- isolate & expand
* pick a small aspect and make it the whole focus
- pull & abstract
* distill to the most essential elements
- pick & destroy
* remove one "essential" aspect of a genre
- smash & combine
* combine different genres
THE STANLEY PARABLE
- never trust your first idea
- keep your ideas internal for a while to let them evolve
- don't "find" your game
- need someone else to play your game
- explain your ideas to other people
- your game should exist independent of the player
KICKSTARTER
- set a goal that people think you can meet
* want to reach about 20-30% very quickly
- need an existing community beforehand
* NOT a discovery tool, it's a magnifier
- F2P generally doesn't work
- react quickly during campaign
- you don't get everything
* 5% for Kickstarter
* 5% for Amazon
* 0.5%-10% for failed payments!
* 5-10% for delivering rewards
* 5-15% for admin/taxes
* other stuff
- need to devote a lot of time to the campaign
- manage expectations! Keep it realistic
RETRO/GRADE
- don't be afraid to simplify your design
- circular
1. more work means "better" game
2. longer development means more risk when releasing
3. fear to release means you need to make the game better
- don't try to compete in areas where you can't stand out
- ask "Will this feature help sales?" "Will people notice the effort I'm putting in?"
- AAA mindset doesn't apply to indie
- don't plan for the long term unless you are confident there will *BE* a long term
- don't lose sight of the business aspect
[/code]
One of the best talks of the conference. Funny, heartbreaking, inspiring. I bought Retro/Grade immediately afterwards.
[code]
ANTICHAMBER
- conferences are great for publicity, but you need to take advantage
- get feedback
- don't wait until you have a finished game
- run a booth
* be around to talk about it
* watch people play
* iterate
- have an interesting story about development
- build relationships with press/devs
[/code]
My takeaway: promoting your indie game when you are the entire team is insanely hard. Get a team.
[code]
NATURAL SELECTION 2
- get fans involved, release stuff as you go
* assets
* tools
- incentives don't work. just be nice and open to contributions
DESIGN OCCLUSION
- build ideas in parallel, multiple pursuits
- nothing *must* be in a game - even a seemingly good idea
- removing ideas can open up new ideas
- try temporarily removing occluders to strengthen other aspects
* can be applied in-game: temporarily remove player abilities
[/code]
Fascinating talk: the speaker developed the original Star Fox! Originally Star Fox had full 3D movement, but the team struggled with terrible gameplay and tricky design problems. Miyamoto made the call to put movement on rails, and suddenly all of their design problems went away.
[code]
FTL
- getting more money than expected means
* higher expectation
* desire to improve "finished" game
- questions
* what is fun?
* what is not fun?
* where can we go from here?
- you can succeed even without a plan, or even without planning to market
[/code]
FTL is coded using only SDL and OpenGL 1.0. The Linux version is 100% native. FTL started as a just-for-fun project that turned into a commercial indie success - encouraging, but their story is a rare one.
[code]
SPACECHEM
- histograms - the egalitarian leaderboard
* no names
* encourage optimization
* everyone is a winner!
* not good for every game
- curating user-created content
* is a pain in the ass
* only shows users good content
* encourages fans to make good contributions and be "featured"
- even puzzle games benefit from looking pretty
- players *only* learn through trial and error
* don't try to explain it
* create a space where they can flail randomly with a high chance of success
FEZ
- even with lots of QA your game can explode after release
- be ready for terrible, unreproducable bugs
MAKE F2P NOT SUCK
- arcade: pay to play
- tournament: pay for an "official" score
- reward: never pay if you play well
- penalty: only play if you suck
- builder: payments improve the game for everyone
SPY PARTY
- promote like crazy
* even TONS of promotion can be ineffective
* talk early and often
* people need to see things over and over again
- you can't over-promote, you can only under-deliver
WOLFIRE - advantages of indie over AAA
- no pipeline/parallelization
* don't need to keep a team busy
* can focus on experimental features that sideline everything else
- can focus on unique technologies
- AAA games have focused arms-races (incremental improvements within well-defined genres)
- indies thrive in the gaps between genres
TRAVEL
- make games while travelling the world
- internet is everywhere
- long-term stays make efficient use of airline costs
- VBRO, Air B&B: get monthly rates for hotels
* make REALLY, REALLY sure they have wireless
- makes you more creative
- great networking
[/code]
Incredipede was entirely developed and shipped while the creators were travelling around South America.
[code]
GOOGLE HTML5
- use Chrome as a runtime
- run offline, by default
- packages for everything
* Windows, Mac, Linux Chrome
* Android
* iOS
* no Windows RT support
- samples: github.com/GoogleChrome
- chrome web store dev account: $5
- can sell outside the chrome web store
VALVE/LINUX
- GL vs D3D
* GL exposes functionality by hardware not OS
+ this means XP users can use DX10/11 features
* D3D is the kiddie pool
* GL can be extended quickly
* GL is extremely powerful
* GL 4.3 is a superset of D3D
- use SDL
* handles all cross-platform windowing
* everything you need, nothing you don't
* set locale to en_US.utf8, handle internationalization internally
- fonts
* freetype
* fontconfig
- cgdb as an alternative to gdb
- DX-7 == OpenGL version
- togl
* handles HLSL to GLSL
* almost entirely transparent to the engine
- GLEW to handle extensions
- for documentation, google with and without GL_
- reading specs "will make you more powerful than you can possibly imagine"
- join Khronos Group
- extensions
* EXT_direct_state_access
+ directly modify objects without needing to handle active stuff
* EXT_swap_interval
+ can dynamically change vsync
* EXT_swap_control_tear
+ try to vsync, but tear if late
* ARB_debug_output
+ callbacks for driver errors
- MakeCurrent is really expensive. Don't even call once/twice per frame
- don't use Vertex Attribute Objects (VAOs). They're slow!
- don't use MapBuffer
- NVIDIA/Valve are rallying around GL. DX is something to be ported to
PROFESSIONALS PANEL
- make games. obvs
- don't be invisible
* be contactable
* make it easy to find your work
- internships > summer classes
- for interviews
* be enthusiastic
* show off your work
- make friends
- should I be a game programmer?
* avoid imposter syndrome
+ don't think you're a fraud
+ don't think it's only a matter of time until you're "found out"
+ it's okay to fail
* if someone could convince you to not make games, you shouldn't be making them
- what language should I learn?
* English
+ seriously. communication with other people is crucial
+ don't be a jackass
* languages don't matter, understand the stack
+ know how the language works with the hardware, memory mangement, etc.
= especially important for languages like Java, Python, C#
+ know the pros/cons of languages and how to choose the right tool for the job
- engines
* focus on what makes your game special
* know the pros/cons of existing engines
- should I go AAA or try indie first?
* AAA gives you
+ problem solving
+ team experience
+ knowledge of tool
+ knowledge of pitfalls
* if you have trouble finishing indie projects, you can benefit from a AAA studio
- how important are code samples/portfolios?
* code samples aren't look at. resume and previous games are considered
* resume reviewers don't have time. Your resume needs to be attention-grabbing in about 20 seconds
+ shorter than 2 pages
+ lists, brief descriptions
+ don't describe things the reader probably knows
+ ask company what they're looking for before applying
+ focus on unique, interesting accomplishments
+ think of it as your "teaser trailer"
* have an awesome website
* have a "Programmer's Statement" (like an Artist's Statement)
+ problem solving
+ creative solutions
* on cover letter: indicate drive and personality
- should I be more focused (graphics/gameplay/AI/etc.) or more general?
* general is more marketable
* focus on what you're passionate about. obvs
* exceptions
+ NETWORKING! If you know networking, companies will LOVE you
= more generally, understand concurrent programming
+ tools
= everything is a usability problem
= everyone should be a tools programmer (in addition to your focus)
- what do noobs struggle most with?
* understand implications of your choices
+ nothing is ever "trivial" or "easy"
+ ask questions rather than assume your solution is perfect
- education
* your degree doesn't matter
* your school doesn't matter
* you need to be 100% responsible for your education
- books
* Godel, Escher, Bach
* The Elements of Style
* Code (by Charles Petzold)
* Design Patterns (controversial!!!)
+ related: by Christopher Alexander
= A Pattern Language
= The Timeless Way of Building
* PowerPC Compiler Writer's Guide
[/code]
Apparently a lot of AAA companies put noob programmers on UI design. Suddenly everything makes sense.
[code]
ON THE RAIN SLICK PRECIPICE OF DARKNESS 3
- long game names are a pain in the ass
* hard to find people talking about your game (due to acronyms)
- borrow liberally from people who are smarter than you (with credit)
- how to solve the problem of players saving things for an even bigger boss around the corner?
* no traditional MP
* all abilities have side effects
+ weak - positive side effects
+ powerful - negative side effects
* this only kinda worked
- listen to your testers
+ you're probably not smarter than them, you're just being narrow-minded
- don't be afraid to make big changes when things suck
- ease/speed of content creation is essential
- need to trust your team!
- having a finished indie game is the best way to meet other indies
ZiGGURAT
- touching is 49%, releasing is 51%, just like in real life
- "the world is the best narrator" -Ken Levine
* use clues and unintrusive narrative elements
- post official gameplay footage or some noob will
- people don't like it when the game screams at you when you die
- people want to be able to pause your game
* people will 1-star review your game for not having a pause feature
- people will 1-star review your game in the App Store for not having an Android version
* Apple will delete reviews mentioning Android if you report them
DYS4IA
- your game isn't a game until someone's playing
- introduce core controls as early as possible
* avoid controls that are used only once or behave exceptionally
- players have expectations and learned behavior you can exploit
* you can use this to avoid exposition (by letting the player figure it out on their own)
* but beware of excluding new players because of this
- video game references aren't jokes, and they can exclude unfamiliar players
- reusing content/code is helpful for the developer AND player (saves time, helps with learning)
- "more play time" doesn't always mean "more value"
* don't pad things out
* don't force repitition once a concept has been learned
BREAKING INTO THE GAME BIZ
- how to get through entry-level positions?
* continue indie work
- what stuff to put on your business card?
* it doesn't matter that much
* the introduction/personal interaction is more important. Get a good handshake
- how often to contact companies who don't respond to you?
* don't be afraid to pester (1-2 times a week for a month)
* keep the human connection ("We met at GDC...")
- presenting code
* don't swear in your comments
[/code]
This was my first time at GDC, and while the experience was awesome and invaluable, there's some stuff I wish I had known going into it.
[code]
- Indie Games Summit pass is cheaper than full pass and gives you plenty to do
* unless you're specialized. People with interest in specific tools/techniques probably want a different pass
- make/bring business cards!
* this is how everyone networks
* consider having a personal portfolio website as well
- have a pen handy for when someone gives you their card. Take notes on it ASAP:
* physical description
* where you met
* what they're working on
* what their focus is
* etc.
- have work that you are at least kinda proud of showing off
* have it easily available for people to check out
* "The code is on my github..." doesn't cut it
- everyone at GDC wants to meet other devs
* but lots of attendees suck at this
* be able to strike up conversation with strangers for no reason
* this is one of the main things you're paying for with a pass! If you don't do it, you're wasting your time/money
[/code]
Wow, Thanks for posting these notes in a nice tl;dr form. Much appreciated!
Did you by any chance attend the CSR racing talk?
Nice writeup!
[editline]30th March 2013[/editline]
[quote]FTL is coded using only SDL and OpenGL 1.0. The Linux version is 100% native.[/quote]
You seem...surprised? Are most Linux games not native? I haven't really looked at what's available in detail.
[QUOTE=NovembrDobby;40095504]You seem...surprised? Are most Linux games not native? I haven't really looked at what's available in detail.[/QUOTE]
Quite a few use XNA, or rather monoGame. Atleast the ones in the humblebundle
[QUOTE=Larikang;40088249]
[code]BREAKING INTO THE GAME BIZ
- presenting code
* don't swear in your comments[/code][/QUOTE]
Why not?
[QUOTE=Richy19;40088456]Did you by any chance attend the CSR racing talk?[/QUOTE]
Nope. I wasn't allowed to attend most talks due to my IGS pass.
[QUOTE=NovembrDobby;40095504]
You seem...surprised? Are most Linux games not native? I haven't really looked at what's available in detail.[/QUOTE]
[QUOTE=Richy19;40095813]Quite a few use XNA, or rather monoGame. Atleast the ones in the humblebundle[/QUOTE]
Yeah, at least from the humble bundle I got the impression that a lot of indie games use something like mono or Unity rather going low-level. What I was also surprised by is that Capy's next game (they of Sword & Sworcery) is written entirely in SDL using the software renderer (and it looks [url=http://www.capybaragames.com/super-t-i-m-e-force/]awesome[/url]).
[QUOTE=Dlaor-guy;40097296]Why not?[/QUOTE]
I'm guessing because it's viewed as unprofessional? Then again it was just a panel of four game company hiring people so that might not be representative of the industry.
[QUOTE=Larikang;40099215]I'm guessing because it's viewed as unprofessional? Then again it was just a panel of four game company hiring people so that might not be representative of the industry.[/QUOTE]Valve does it all the time in their code. I find it pretty funny.
But yeah, I view it as unprofessional and probably most real professionals feel the same.
[QUOTE=CmdrMatthew;40101735]Valve does it all the time in their code. I find it pretty funny.
But yeah, I view it as unprofessional and probably most real professionals feel the same.[/QUOTE]
The thing is, are the general population meant to be seeing this vave code? or was it a leak?
I dont see an issue with swearing if the code is going to be internal, however when its for an open source project or something like that then you want it to hve propper grammar and spelling and of course to be propper language
[QUOTE=Richy19;40109732]The thing is, are the general population meant to be seeing this vave code? or was it a leak?
I dont see an issue with swearing if the code is going to be internal, however when its for an open source project or something like that then you want it to hve propper grammar and spelling and of course to be propper language[/QUOTE]
It's not so much that the code won't be viewed by anyone outside Valve, more that Valve don't have to put effort into impressing anyone with silk-tounge of their comments - they're not looking to be hired.
First off, amazing post Larikang!
I hope to see more Facepunchers attend next year's GDC. Anyone interested in attending, here's my tips:
* [b]Anyone looking to get into the industry should attend GDC[/b]. There's four of them: GDC, GDC Next, GDC Europe and GDC China. GDC Next and GDC are both in California. GDC Next is new (replacing Online) but with the same general idea (mobile/web) and isn't nearly as eventful as the others.
* [b]You don't have to be looking for a job to go to GDC[/b]. There are a plethora of employers there who want to talk to you and see things you've done and give you feedback. GDC is a learning experience and if you get a job out of it, then that's a bonus.
* [b]Most companies will not hire you unless you have a few years experience (usually 3 years)[/b]. This re-enforces my last point. Expect to be indie / work for another (non-gaming) company for a while. Companies at GDC are not always purely gaming (Facebook usually attends, for example) and some of them will offer internships.
* [b]Some companies will consider gaming colleges as industry experience[/b]. (depends on the company, depends on the college)
* [b]You need things to show off[/b] or else conversations will be stale and you'll bore employers. I showed off my [url=http://www.youtube.com/watch?v=viLuuGIDuDk]physics engine[/url] and employers became much more interested to talk to me. You need a way to show them you're not another scrub just looking for a job. A video will do in almost all cases. If its something mobile obviously you'd want to show it in person.
* [b]Be ready to network[/b] both at the conference and at after-hour parties (there's usually a lot of them). The conference is cool and all, but 90% of the experience is talking to employers and other developers. You're wasting your money otherwise.
* [b]Bring business cards and have a link to your portfolio on them[/b]. Both you and employers get a shitload of business cards at GDC, give employers a reason to give your card a chance by linking them to a simple url and make your website immediately show off your work. Don't bury it beneath a blog of cats or something.
Feel free to add me on Steam if you have any other questions. If I don't know the answers to your questions I have contacts who will.
Great thread (and post jalb). Is there one in the UK? Does the europe one move around?
[QUOTE=Occlusion;40118001]Great thread (and post jalb). Is there one in the UK? Does the europe one move around?[/QUOTE]
Don't think so, looks like its in Germany.
[url]http://en.wikipedia.org/wiki/Game_Developers_Conference#Dates[/url]
[URL="http://media.steampowered.com/apps/valve/2013/Team_Fortress_in_VR_GDC.pdf"]Lessons learned porting TF2 to Virtual Reality[/URL]
Sorry, you need to Log In to post a reply to this thread.