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

Ninja Code

Greg Goltsov
March 31, 2012
2.4k

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.

Greg Goltsov

March 31, 2012
Tweet

Transcript

  1. ````` `````` ````` ```` ````` `````` ```````` ```````````````` `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` /:/. :`:- `+ :+. ::/` :`/- ::/
  2. Technology Stack ᴷᴷᴷᴷᴷᴷ TiledLib Lidgren Farseer XACT XNA f C#

    F ᴷᴷᴷᴷᴷᴷ Procedural Greg Networking Alex Physics Stuart Audio/Graphics Allan
  3. Tech Level Generation Big system, involving artists, game designer, programmers

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

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

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

    client or server mode anytime Threaded message retrieval and separately threaded message parsing ! ! ,
  7. 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 ! ! ! !
  8. Tech Console In-game drop-down command console Allows run-time setting of

    values or calling of methods Can provide debug output ! ! 4
  9. 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!
  10. Tech Heartbeat Split into multiple layers Sprite sheet for blood

    vessel animation Scaled in code to simulate it beating = ! ! !
  11. 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
  12. 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