Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ninja Code

707d0934f77fc31048f004103e10c57f?s=47 Greg Goltsov
March 31, 2012
2.3k

Ninja Code

We are a student team called Ninja Grandad and we're building a game with no name (just now).

It will be Crank meets Tony Hawk. Fast, fluid, endless, fun and 2.5D.

This is one of the first presentations I am going to share, and it's the only fully tech oriented one I gave so far. More will follow.

707d0934f77fc31048f004103e10c57f?s=128

Greg Goltsov

March 31, 2012
Tweet

Transcript

  1. None
  2. ````` `````` ````` ```` ````` `````` ```````` ```````````````` `sssss/ `ossss/

    -ssss. .ssss` -syhdy. +ssss+` `+sssssso: ./sssssssssssss+:` `sssssso. `ossss- osss: `ssso shdh/ /ssss+ -ossssss:` `:ossssssssssss/-` `/ssssss: +ssss. .ssso ssso .sdhys` :ssss: `/ssssss:` ./ssssssssssso/. `/ssssso. /ssso` /sss` oss++hyyss- .ssss- .osssss:` `-ossssssssss+:` `/sssss: :ssso `sss: oshhy-+ss+ `ssss. `/sssss/` ./ssssssssss/-` `-/+` `+- ./ssss+` -sss+ :sso +hho``sss. `osso. .ossss/` -+sssssssso/. `.:+ossss` `sso:` .+ssss: .oss: oss`-yhh. -ss/ +ss+` /ssss/` `/osssssss+:` `-/+sssssssss` `sssss+. .+sss+` `oss- .sssyhys` +ss` /ss+` .osss/` -+sssssso/-` `.:/osssssssssssss` /ossssso:` .+sss- `+ss. +dho-ss `ss- :ss/ :sss/. `:ossssso/.` `-/+ssssssssssssssssss` .:+sssss/. -+ss+` /so.shh.`so -s+ -ss: .oss+. -+sssss+:` `.:/ossssssssssssssssso+/:- ` `-+osss+-` -oso- :shhss+hdo +s..ss- :ss+. `:ossso/-` `-:+ssssssssssssssso+/:-.`` `so/:.` `-/osso/.`-os/`yhs`hNMMmoh/`oo..+s+. ./ssso/.` `.:/osssssssssssso+/:-.`` `ssssso+:-` `.:+ss+-`-ohyoyyNMMMMMN-+o.:s+.`:oss+:. `-:+osssssssso++/:.``` :/+osssssso/-.``:+oo:+yhsNMMMMMNMMmy.++-./oo/-``.-/osssssso+/:-.`` ``..--::// ``.-:/+ossso+:-+yyhd/NMMmdy+odmMNd::++/..-:+ossso+/:-.`` ``...-:://+oooosssssssss` `::--..``` ``.-:omNMd//+hh+/o///odMMMMmmd/+oooyss-.`` ``...--://++ooosssssssssssssssssssssss` `sssssssooo++//omMMN/:::hydy:y+/ymNNmmNmmhd/+osy+:/++oooossssssssssssssssssssssssssssssssssss` `+++++++++++++smMMMm/ohmNMMM+oNmyosyossysyyyo+o++++++++oooooooooooooooooooossssssssssssssssss` ````..-dMMMMMmMMMMMMMNhshdNNNmmmdmNMd/:--...``` ``````````````````````````````....... `://+++oooosssyyyshMMMMMMNhshMMMMMMMMMMMMMMMmo+oosoooo++//:--...`` `ssssssso+/:-.``.-+mMMMMMMmNMMMMMMMMMMMMMMMMMd:...:/+oosssssssssoooo+//::--..``` `o+/:-.`` `.:+oso+/mMMMMMMMMMMMMMMMMMMMMMMMMMNy+:-````.-:/+osssssssssssssssssooo++//::-...`` ` `.:/ossso/-``:ymMMMMMMMMMMMNMMMMMMMMMMMMMMmysso/:.` ``.-/+oosssssssssssssssssssssssso` `.-/+osssso/.``./os+-hNMMNNmmNdsyshNMMMMMMMMMMMMmsoossso+/-`` `.-:/+osssssssssssssssssss` `ossssss+:.` `:oss+. -syo/sy-:y:`s/`shdNMMMMMMMMMMNdyooossssso+:.` ``.-:+oossssssssssss` `ssso+:. `./sss+- `+ss- ohy:oy+-yy/ydmNMMMMMMMMMMMMMMmhooosssssso+/-`` `..:/+oosssss` `o/-` `:ossso- -oso. +NMMMMMNNMMMMMMMMMMMMMMMMMMMMMMMMmhysysssssssso+:.` ``.-:/+` ` `-+sssso-` `+sso. -mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmdyssssssssso+/-`` `:osssso:` -osso` .symMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmyoosssssssssso+:.` -+ssssso:` `+sss+` `oss/yNMMMMMNddho+hddh++oddmmhsdNMMMMMMMMMMMMNh+:+ossssssssssso+/-`` `ssssss/` -osss/` `+sso` oNMMMMNyso -sss: -ssss/.-odNMMMMMMMMMMMNdo:-/ossssssssssssso+:.` `ssss/. `+ssss/ /sss- /yNMMMNdss- +sss- .ossso- `:smNMMMMMMMMMMMNh/`./osssssssssssssss` `ss+. -ossss: :ssso osymMMMNys+ `ssss. `ossss/` `:smNMMMMMMMMMMNy:``.:ossssssssssss` `+. `+sssss: -ssss- .ssssdMMNhss` :ssso` `+sssso- .+ydmmNNNMMMMMMmy/.`.:+sssssssss` -osssss- .ssss+ /sss+-NMMNdy: ossso` /sssss/` .+sssyyhmddmmmMMmy+- `-+osssss` `+ssssss. `ossss. oyyyyyNMMMMNd. -ssss+` :ssssso- .+sssssssssosdmNNm- `-/oss` -ossssso. `ossss/ .ymmNNMMMMMMMNh +ssss+ -ssssss/` -osssssssss+/-:- `./ `/sssssso` +sssss` /syhhs++/ohhhh+ `sssss/ .sssssso- -ossssssssso/. -:::::::` `-::::. .----` .----- -:::-- `.-------` ```------------` `` :dddddhh- -mNmd- :+++++yy` +dddhs` odd+ :dhs+ `ysssssydmhy+ +MMMNmMMN+` -MMMM/ `:-hMM:-` yMMyNMm: sMMy `-:yd-- `MMMy---mMMMo +MMMm.mMMMd. .MMMM/ sMM yMM/.dMMo +MMy ` oMMo `MMMy://yMMM/ oMMMh `yMMMN- `NMMM/ oMN dMM` oNMhsMMm` `ho-` +m-. .MMMs+++yMMMo yMMM+ +NMMNo`mMMMo --.sMM+s. `NMM- `+mMMMm- `hMNdhmN/ oMMM. .MMMh dMMM+ .+mMMNNMMMN- +//////// .o+: `... -shmNN. dMM+ NMMd .MMMMs `/mMMMMNh. /Md- `+NMMN :hyo/. `.... .o-: `::s- :+s- `yo-s- `o.s/ :+s. .o.y/ .+: oddh` `+-o` /:/. :`:- `+ :+. ::/` :`/- ::/
  3. Technology Stack ᴷᴷᴷᴷᴷᴷ TiledLib Lidgren Farseer XACT XNA f C#

    F ᴷᴷᴷᴷᴷᴷ
  4. Technology Stack ᴷᴷᴷᴷᴷᴷ TiledLib Lidgren Farseer XACT XNA f C#

    F ᴷᴷᴷᴷᴷᴷ Procedural Greg Networking Alex Physics Stuart Audio/Graphics Allan
  5. We use Git

  6. We use Git

  7. None
  8. None
  9. None
  10. + - Assets CLI Learning We use Git Asynchronous Distributed

    Free branches Merging Bitbucket
  11. + - Asynchronous Distributed Free branches Merging Bitbucket Assets CLI

    Learning We use Git
  12. Tech Level Generation Big system, involving artists, game designer, programmers

    Procedural Responsive to the player’s progress Will incorporate fuzzy logic ! G ! !
  13. Tech Level Generation Patrick Lorna Clio Tiled rGroup Library ...

    ... Level Models Library Models Collisions Metadata Algorithm
  14. Tech Level Generation Interesting problem — minimising the memory footprint

    of the generator
  15. Tech Level Generation Interesting problem — minimising the memory footprint

    of the generator Deleted To be generated We’re playing here Player
  16. Tech Network One network manager per game instance Operates in

    client or server mode anytime Threaded message retrieval and separately threaded message parsing ! ! ,
  17. Tech Settings We use persistent XML storage to minimise “magic

    numbers” Stores default values in case of XML file corruptions, a new one is created/loaded Settings files can be saved/loaded at run- time A single Settings Manager can be polled for retrieval of any settings values ! ! ! !
  18. Tech Console In-game drop-down command console !

  19. Tech Console In-game drop-down command console Allows run-time setting of

    values or calling of methods Can provide debug output ! ! 4
  20. Tech Cel Shading Tried multiple techniques Normal-Depth difference Sobel edge

    detection filter Both sample nearby pixels
  21. Tech Cel Shading

  22. Tech Cel Shading

  23. Tech Audio Split into multiple layers How do you keep

    them all sync? ! !
  24. Tech Audio Split into multiple layers How do you keep

    them all sync? We play them all at the start and mute the ones we’re not using ! ! ! ! We cheat!
  25. Tech Heartbeat Split into multiple layers Sprite sheet for blood

    vessel animation Scaled in code to simulate it beating = ! ! !
  26. Tech Chase Fades between layers as heart beat decreases Also

    darkens lighting ! !
  27. Tech Physics Solves the really hard problems for you If

    you can figure out how to make use of it with no documentation Abstracting for the rest of the team and defining fundamental data representation ? 8 , { Actors PhysicsActor Animatable definitions Interfaces
  28. Tech Gameplay etc Biggest challenge is the state management —

    complex, lots of transitions, lots of edge cases Need for new stuff to have been delivered yesterday, other coders depend on new, untested code Great solution for state transitions — event- based system A lot of debug visualisations developed — helped massively in development ! S $ 4
  29. Look at your source control, now back to Git (I’m

    on a horse)
  30. ! Thanks!