Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
HOW WE WON GAMEDEV
BY ROLLING OUR OWN TECH
Mihai Gosa
Co-Founder/CTO at KillHouse Games
LET ME INTRODUCE MYSELF…
● Ex Ubisoft & EA, don’t hate me
● Now doing a bit of everything @ indie studio KillHouse Games
●...
WHAT'S THIS ABOUT?
What if I told you…there is value in NOT using a 3rd party
engine?
You can make games faster
You can ma...
HERESY YOU SAY!
HOW?
… now let’s apply this to game tech
Bird in space (by C.Brancusi) – $28M
SIMPLIFY!
“Simpler” is:
● faster
● cheaper
● more efficient
● less buggy
So, how “basic” can you get? Let’s see…
DOOR KICKERS
● 2014's best tactics game (acc. to "Rock, Paper Shotgun")
● 97% ‘overwhelmingly positive’ rating on Steam
● ...
DEVELOPMENT EFFICIENCY - CONCEPT
Remember the 90s:
● Games much more complex than some of today’s would only take a
fracti...
PROOF OF CONCEPT – DOOR KICKERS
Very low cost + fast delivery
● Custom-made engine developed in 3 months
● Only 1 programm...
PROOF OF CONCEPT – DOOR KICKERS
Huge amount of content:
● Over 120 maps modeled after realistic building plans
● Random mi...
STARTING GROUND: WHY ROLL YOUR OWN TECH?
Limited budget (we had 6 months to make it or break it)
● Unity/UDK can take from...
PROOF OF CONCEPT - HOW?
Can we make something
so simple,
so efficient,
so streamlined,
so low-cost and fast
that it outwei...
BLASPHEMY YOU SAY!
PROOF OF CONCEPT - HOW?
Get close to 100% efficiency in development
● Set fixed, final goals early on: only develop what y...
AN EXERCISE IN REMOVING…
Stand alone editor?
Too much work!
AN EXERCISE IN REMOVING…
Stand alone editor?
 In-game editor: faster to develop, direct pipeline, WYSIWYG
Too much work!
AN EXERCISE IN REMOVING…
AI scripting per map?
Too much work!
AN EXERCISE IN REMOVING…
AI scripting per map?
 Should place AIs in a map and they should handle themselves.
Too much wor...
AN EXERCISE IN REMOVING…
UI Editor?
Too much work!
AN EXERCISE IN REMOVING…
UI Editor?
 Who doesn’t prefer fast/simple UIs? Don’t you hate those games with
low FPS in the m...
AN EXERCISE IN REMOVING…
Particle system?
Too much work!
AN EXERCISE IN REMOVING…
Particle system?
 Why not make sprite animations for everything?
Too much work!
AN EXERCISE IN REMOVING…
2D animation system?
● Too much work!
Specifying collisions, lights and
entity properties?
● Too ...
WHAT WE NEED…
PUT IMAGES ON SCREEN AND IT
SHOULD JUST WORK!
WORKFLOW
1. Artist makes PNG images
2. Designer adds PNGs to the map
3. Run game: everything works
THIS IS WHAT YOU’RE PROBABLY THINKING BY NOW…
“Engine”
WELL, WE ACTUALLY DEVELOPED THE BEST GAME ENGINE
IN THE WORLD
Unified everything
UNIFIED EVERYTHING
WELL, WE ACTUALLY DEVELOPED THE BEST GAME ENGINE
IN THE WORLD
Why?
● Unified everything
● Cheap: no paid third-party softw...
UNIFYING EVERYTHING
Can we find the lowest common denominator for all system
in a 2D game?
● Could all game data be contai...
UNIFYING EVERYTHING - Workflow
Everything at runtime, no pre-processing needed.
Render all entities in an
RGBA image
Gener...
COLLISION MODEL GENERATION
Render images to screen
Entity ID instead of color
Downscale 8x
Apply threshold to remove shadow
COLLISION DETECTION
8x downscale
PATHFINDING
A* on the same collision map
FIELD OF VIEW
Shoot 360 rays for each character,
in the same collision map
DIRECT LIGHTING & AO
AO and directional
DIRECT LIGHTING & AO
● Ray-trace using Bresenham in
the same collision map
● Only done once, fast enough for
load-time
ONE IMAGE TO RULE THEM ALL
Bresenham for:
● collision detection
● field of view
● lighting & AO
● sound reverb
A* for path...
NOT SIMPLE ENOUGH?
How many file formats do we need?
The game is basically an XML, TGA and WAV loader
● These cover all ba...
NOT SIMPLE ENOUGH?
Least common denominator for graphics API?
● OpenGL ES 2.0
● Use OpenGL subset functions on PC, works a...
STILL TOO COMPLICATED?
“Premature optimization is the root of all evil” applies to data
as well
● Why bother with texture ...
SAME SPRITE SHEET IN A “NORMAL” GAME
BUT IMPLEMENTING MULTIPLE PLATFORMS IS HARD...
This is our operating system layer for Win/OSX/Linux/iOS/Android:
BUT IMPLEMENTING MULTIPLE PLATFORMS IS HARD...
OSX/Linux implementations took less than installing the actual operating
sy...
DISCLAIMER
No two games are alike, but challenging the status quo can
be done everywhere
● We’re currently applying the sa...
END / QUESTIONS
Email pintea@inthekillhouse.com
Twitter @gosamihai
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
Próxima SlideShare
Cargando en…5
×

How We Won Gamedev By Rolling Our Own Tech (no notes)

1.129 visualizaciones

Publicado el

Did you know you can make successful games faster, cheaper and more reliable by building your own tech instead of using a third party engine?

With a small team and no budget, we managed to make 2014's best tactics game (Door Kickers) in a very short time, with a huge amount of content, on 5 platforms.
Without using any third-party engines or tools.

Instead of adding tech, we removed tech. We kept removing until there was almost nothing left. Sounds counter-intuitive? Think of it this way: simpler means faster, cheaper and more reliable.
Learn about the extreme simplicity of the production pipeline and the "unified everything" game engine used for Door Kickers.
Learn that developing a game can also be done in a very smart and simple way, instead of spending years or $$$$$ on game engines. Learn how to focus on what is important and that finding the simplest solutions is usually the hardest.

Publicado en: Software
  • Sé el primero en comentar

How We Won Gamedev By Rolling Our Own Tech (no notes)

  1. 1. HOW WE WON GAMEDEV BY ROLLING OUR OWN TECH Mihai Gosa Co-Founder/CTO at KillHouse Games
  2. 2. LET ME INTRODUCE MYSELF… ● Ex Ubisoft & EA, don’t hate me ● Now doing a bit of everything @ indie studio KillHouse Games ● Released ‘Door Kickers’ in 2014, now working on sequel.
  3. 3. WHAT'S THIS ABOUT? What if I told you…there is value in NOT using a 3rd party engine? You can make games faster You can make games cheaper You can make games better …by building your own tech?
  4. 4. HERESY YOU SAY!
  5. 5. HOW? … now let’s apply this to game tech Bird in space (by C.Brancusi) – $28M
  6. 6. SIMPLIFY! “Simpler” is: ● faster ● cheaper ● more efficient ● less buggy So, how “basic” can you get? Let’s see…
  7. 7. DOOR KICKERS ● 2014's best tactics game (acc. to "Rock, Paper Shotgun") ● 97% ‘overwhelmingly positive’ rating on Steam ● Over 300k copies sold on 5 platforms ● Grossed $2M+
  8. 8. DEVELOPMENT EFFICIENCY - CONCEPT Remember the 90s: ● Games much more complex than some of today’s would only take a fraction of the time to develop ● Where did we go wrong? So, can we: ● Create successful games without taking years on development? ● Without spending big money on tools?
  9. 9. PROOF OF CONCEPT – DOOR KICKERS Very low cost + fast delivery ● Custom-made engine developed in 3 months ● Only 1 programmer initially ● Available on 5 platforms (~2 days coding for each implementation) ● Budget of $1500 up to Early Access version
  10. 10. PROOF OF CONCEPT – DOOR KICKERS Huge amount of content: ● Over 120 maps modeled after realistic building plans ● Random mission generator ● Five campaigns ● Modding support
  11. 11. STARTING GROUND: WHY ROLL YOUR OWN TECH? Limited budget (we had 6 months to make it or break it) ● Unity/UDK can take from 1 to 4 months to use proficiently (without previous experience) Using an engine raises the expectations = more dev effort ● If you have support for real-time GI, Flash UI, you may feel the urge to use them Learn something in the process ● Programmers also need to have fun / be creative) You’re cheap and don’t want to give % of your game away
  12. 12. PROOF OF CONCEPT - HOW? Can we make something so simple, so efficient, so streamlined, so low-cost and fast that it outweighs the benefits of using a 3rd party engine?
  13. 13. BLASPHEMY YOU SAY!
  14. 14. PROOF OF CONCEPT - HOW? Get close to 100% efficiency in development ● Set fixed, final goals early on: only develop what you need, not what you "might" need ● Embrace limitations and restrictions (design & tech): do you really need that cool animated GUI? ● Ask not what you can add, but what you can remove
  15. 15. AN EXERCISE IN REMOVING… Stand alone editor? Too much work!
  16. 16. AN EXERCISE IN REMOVING… Stand alone editor?  In-game editor: faster to develop, direct pipeline, WYSIWYG Too much work!
  17. 17. AN EXERCISE IN REMOVING… AI scripting per map? Too much work!
  18. 18. AN EXERCISE IN REMOVING… AI scripting per map?  Should place AIs in a map and they should handle themselves. Too much work!
  19. 19. AN EXERCISE IN REMOVING… UI Editor? Too much work!
  20. 20. AN EXERCISE IN REMOVING… UI Editor?  Who doesn’t prefer fast/simple UIs? Don’t you hate those games with low FPS in the main menu? Too much work!
  21. 21. AN EXERCISE IN REMOVING… Particle system? Too much work!
  22. 22. AN EXERCISE IN REMOVING… Particle system?  Why not make sprite animations for everything? Too much work!
  23. 23. AN EXERCISE IN REMOVING… 2D animation system? ● Too much work! Specifying collisions, lights and entity properties? ● Too … much … work!
  24. 24. WHAT WE NEED… PUT IMAGES ON SCREEN AND IT SHOULD JUST WORK!
  25. 25. WORKFLOW 1. Artist makes PNG images 2. Designer adds PNGs to the map 3. Run game: everything works
  26. 26. THIS IS WHAT YOU’RE PROBABLY THINKING BY NOW… “Engine”
  27. 27. WELL, WE ACTUALLY DEVELOPED THE BEST GAME ENGINE IN THE WORLD Unified everything
  28. 28. UNIFIED EVERYTHING
  29. 29. WELL, WE ACTUALLY DEVELOPED THE BEST GAME ENGINE IN THE WORLD Why? ● Unified everything ● Cheap: no paid third-party software ● Very few bugs, very fast ● Huge return on investment
  30. 30. UNIFYING EVERYTHING Can we find the lowest common denominator for all system in a 2D game? ● Could all game data be contained in a 2D image? ● Could an image-based approach be used for all systems? Bresenham algorithm ftw!
  31. 31. UNIFYING EVERYTHING - Workflow Everything at runtime, no pre-processing needed. Render all entities in an RGBA image Generate pathfinding map Generate lighting/ambient occlusion Generate collision map
  32. 32. COLLISION MODEL GENERATION Render images to screen Entity ID instead of color Downscale 8x Apply threshold to remove shadow
  33. 33. COLLISION DETECTION 8x downscale
  34. 34. PATHFINDING A* on the same collision map
  35. 35. FIELD OF VIEW Shoot 360 rays for each character, in the same collision map
  36. 36. DIRECT LIGHTING & AO AO and directional
  37. 37. DIRECT LIGHTING & AO ● Ray-trace using Bresenham in the same collision map ● Only done once, fast enough for load-time
  38. 38. ONE IMAGE TO RULE THEM ALL Bresenham for: ● collision detection ● field of view ● lighting & AO ● sound reverb A* for pathfinding Same dataset (image) for everything!
  39. 39. NOT SIMPLE ENOUGH? How many file formats do we need? The game is basically an XML, TGA and WAV loader ● These cover all basic needs: user-editable data, textures and sounds ● Simple format = easy to parse ● Uncompressed = very fast loading
  40. 40. NOT SIMPLE ENOUGH? Least common denominator for graphics API? ● OpenGL ES 2.0 ● Use OpenGL subset functions on PC, works automatically on iOS/Android
  41. 41. STILL TOO COMPLICATED? “Premature optimization is the root of all evil” applies to data as well ● Why bother with texture atlases? ● Zipping game resources would just make developing/modding harder ● Less than 1GB of data? Don’t bother optimizing for disk space or RAM ● 2D/sprite animation system? Just make all frames equal-sized quads.
  42. 42. SAME SPRITE SHEET IN A “NORMAL” GAME
  43. 43. BUT IMPLEMENTING MULTIPLE PLATFORMS IS HARD... This is our operating system layer for Win/OSX/Linux/iOS/Android:
  44. 44. BUT IMPLEMENTING MULTIPLE PLATFORMS IS HARD... OSX/Linux implementations took less than installing the actual operating systems iOS/Android trickier due to the myriad of aspect ratios and resolutions Currently considering PSVita and WiiU ports
  45. 45. DISCLAIMER No two games are alike, but challenging the status quo can be done everywhere ● We’re currently applying the same approach on the fully 3D sequel ● Probably won’t work for a finely-tuned AAA game  This approach only works when developing from scratch ● Don’t bother if you have a well-established framework in place
  46. 46. END / QUESTIONS Email pintea@inthekillhouse.com Twitter @gosamihai

×