how we won gamedev by rolling our own tech (no notes)
TRANSCRIPT
![Page 1: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/1.jpg)
HOW WE WON GAMEDEV BY ROLLING OUR OWN TECH
Mihai GosaCo-Founder/CTO at KillHouse Games
![Page 2: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/2.jpg)
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.
![Page 3: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/3.jpg)
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?
![Page 4: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/4.jpg)
HERESY YOU SAY!
![Page 5: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/5.jpg)
HOW?
… now let’s apply this to game tech
Bird in space (by C.Brancusi) – $28M
![Page 6: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/6.jpg)
SIMPLIFY!
“Simpler” is:● faster
● cheaper
● more efficient
● less buggy
So, how “basic” can you get? Let’s see…
![Page 7: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/7.jpg)
![Page 8: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/8.jpg)
![Page 9: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/9.jpg)
![Page 10: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/10.jpg)
![Page 11: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/11.jpg)
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+
![Page 12: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/12.jpg)
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?
![Page 13: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/13.jpg)
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
![Page 14: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/14.jpg)
PROOF OF CONCEPT – DOOR KICKERS
Huge amount of content:● Over 120 maps modeled after realistic building plans
● Random mission generator
● Five campaigns
● Modding support
![Page 15: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/15.jpg)
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
![Page 16: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/16.jpg)
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?
![Page 17: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/17.jpg)
BLASPHEMY YOU SAY!
![Page 18: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/18.jpg)
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 reallyneed that cool animated GUI?
● Ask not what you can add, but what you can remove
![Page 19: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/19.jpg)
AN EXERCISE IN REMOVING…
Stand alone editor?
Too much work!
![Page 20: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/20.jpg)
AN EXERCISE IN REMOVING…
Stand alone editor?
In-game editor: faster to develop, direct pipeline, WYSIWYG
Too much work!
![Page 21: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/21.jpg)
AN EXERCISE IN REMOVING…
AI scripting per map?
Too much work!
![Page 22: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/22.jpg)
AN EXERCISE IN REMOVING…
AI scripting per map?
Should place AIs in a map and they should handle themselves.
Too much work!
![Page 23: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/23.jpg)
AN EXERCISE IN REMOVING…
UI Editor?
Too much work!
![Page 24: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/24.jpg)
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!
![Page 25: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/25.jpg)
![Page 26: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/26.jpg)
![Page 27: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/27.jpg)
AN EXERCISE IN REMOVING…
Particle system?
Too much work!
![Page 28: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/28.jpg)
AN EXERCISE IN REMOVING…
Particle system?
Why not make sprite animations for everything?
Too much work!
![Page 29: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/29.jpg)
AN EXERCISE IN REMOVING…
2D animation system?● Too much work!
Specifying collisions, lights and
entity properties?
● Too … much … work!
![Page 30: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/30.jpg)
WHAT WE NEED…
PUT IMAGES ON SCREEN AND IT SHOULD JUST WORK!
![Page 31: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/31.jpg)
WORKFLOW
1. Artist makes PNG images
2. Designer adds PNGs to the map
3. Run game: everything works
![Page 32: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/32.jpg)
![Page 33: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/33.jpg)
THIS IS WHAT YOU’RE PROBABLY THINKING BY NOW…
“Engine”
![Page 34: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/34.jpg)
WELL, WE ACTUALLY DEVELOPED THE BEST GAME ENGINE IN THE WORLD
Unified everything
![Page 35: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/35.jpg)
UNIFIED EVERYTHING
![Page 36: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/36.jpg)
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
![Page 37: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/37.jpg)
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!
![Page 38: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/38.jpg)
UNIFYING EVERYTHING - Workflow
Everything at runtime, no pre-processing needed.
Render all entities in an RGBA image
Generate pathfinding mapGenerate
lighting/ambient occlusion
Generate collision map
![Page 39: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/39.jpg)
COLLISION MODEL GENERATION
Render images to screen
Entity ID instead of color
Downscale 8x
Apply threshold to remove shadow
![Page 40: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/40.jpg)
COLLISION DETECTION
8x downscale
![Page 41: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/41.jpg)
PATHFINDING
A* on the same collision map
![Page 42: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/42.jpg)
FIELD OF VIEW
Shoot 360 rays for each character,
in the same collision map
![Page 43: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/43.jpg)
![Page 44: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/44.jpg)
![Page 45: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/45.jpg)
![Page 46: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/46.jpg)
![Page 47: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/47.jpg)
![Page 48: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/48.jpg)
![Page 49: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/49.jpg)
![Page 50: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/50.jpg)
DIRECT LIGHTING & AO
AO and directional
![Page 51: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/51.jpg)
DIRECT LIGHTING & AO
● Ray-trace using Bresenham in the same collision map
● Only done once, fast enough for load-time
![Page 52: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/52.jpg)
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!
![Page 53: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/53.jpg)
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
![Page 54: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/54.jpg)
NOT SIMPLE ENOUGH?
Least common denominator for graphics API?● OpenGL ES 2.0
● Use OpenGL subset functions on PC, works automatically on iOS/Android
![Page 55: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/55.jpg)
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.
![Page 56: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/56.jpg)
![Page 57: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/57.jpg)
SAME SPRITE SHEET IN A “NORMAL” GAME
![Page 58: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/58.jpg)
BUT IMPLEMENTING MULTIPLE PLATFORMS IS HARD...
This is our operating system layer for Win/OSX/Linux/iOS/Android:
![Page 59: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/59.jpg)
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
![Page 60: How We Won Gamedev By Rolling Our Own Tech (no notes)](https://reader033.vdocuments.us/reader033/viewer/2022050614/589a9b941a28abfc1a8b47cb/html5/thumbnails/60.jpg)
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