Cranberry AliyaMussina ArpanJha XuesongLiu Anushka...

25
Tanzanite-TBA: Cranberry: Bosch: Tanzanite-TBA: Harrison Strowd Freddy Morgenstern Niranjan Salimath Geoffery Geisel Varokas Panusuwan Aaron Fetterman Cranberry: Aliya Mussina Arpan Jha Xuesong Liu Anushka Sirdeshpante Bhanu Sistla Abhishek Minde Jeff Salk Yuki Satio Nan Li

Transcript of Cranberry AliyaMussina ArpanJha XuesongLiu Anushka...

  • Tanzanite-TBA

    :Cranberry:

    Bosch

    :Tanzanite-TBA

    :

    Ha

    rris

    on

    Str

    ow

    d

    Fre

    dd

    y M

    org

    en

    ste

    rn

    Nir

    an

    jan

    Sa

    lima

    th

    Ge

    offe

    ryG

    eis

    el

    Va

    roka

    sP

    an

    usu

    wa

    n

    Aa

    ron

    Fe

    tte

    rma

    n

    Cranberry:

    Aliy

    aM

    ussin

    a

    Arp

    an

    Jh

    a

    Xu

    eso

    ng

    Liu

    An

    ush

    ka

    Sir

    de

    sh

    pa

    nte

    Bosch

    :

    Bh

    an

    uS

    istla

    Ab

    his

    he

    kM

    ind

    e

    Je

    ff S

    alk

    Yu

    ki S

    atio

    Na

    n L

    i

  • Overview

    �R

    e-intr

    oduce the d

    esig

    n

    �D

    em

    o o

    f th

    e g

    am

    e

    �T

    he D

    esig

    n E

    xperience

    �T

    he S

    pecific

    ation E

    xperience

    �T

    he S

    pecific

    ation E

    xperience

    �T

    he T

    esting E

    xperience

    �Q

    uestions

  • Recall: The Design

    Contr

    olle

    r

    Model

    Vie

    w

    Da

    ta F

    low

  • Fra

    mew

    ork

    Recall: The Design

    Back-e

    nd

    Plu

    gin

    Fro

    nt-

    end

    Plu

    gin

  • Fra

    mew

    ork

    Recall: The Design

    The F

    ram

    ew

    ork

    pro

    vid

    es a

    set of

    inte

    rfaces a

    nd a

    set of sta

    ndard

    cla

    sses

    ..w

    hic

    h a

    re u

    sed

    Back-e

    nd

    Plu

    gin

    Fro

    nt-

    end

    Plu

    gin

    ..w

    hic

    h a

    re u

    sed

    or

    exte

    nded b

    y

    the p

    lugin

    s

    A c

    lass

    Inh

    erits

    fro

    m

    Use

    s*

    Th

    is g

    rap

    hic

    is ju

    st a

    ca

    rto

    on

    , it is n

    ot m

    ea

    nt to

    re

    pre

    se

    nt th

    e a

    ctu

    al cla

    ss s

    tru

    ctu

    re o

    f th

    e g

    am

    e

  • Demonstration

    Demonstration

    Demonstration

    Demonstration

    Ma

    kin

    g m

    ove

    s

    Sw

    itch

    ing tu

    rns

    Sw

    itch

    ing tu

    rns

    Ca

    ptu

    rin

    g p

    iece

    s

    Vic

    tory

    co

    nd

    itio

    ns

  • Design: what went well

    �E

    ach o

    f th

    e p

    lugin

    sw

    as im

    ple

    mente

    d

    �F

    lexib

    ility

    in h

    ow

    each w

    as im

    ple

    mente

    d

    �W

    ell

    defined c

    lass s

    tructu

    re

    �D

    eco

    up

    led

    fro

    nt

    an

    d b

    ack

    �D

    eco

    up

    led

    fro

    nt

    an

    d b

    ack

    �C

    ou

    ld w

    ork

    on

    ea

    ch

    in

    de

    pe

    nd

    en

    tly

    �C

    om

    munic

    ating a

    lot

    �H

    avin

    g p

    eo

    ple

    de

    sig

    na

    ted

    as in

    term

    ed

    iarie

    s

    be

    twe

    en

    te

    am

    s

  • Design: what did not go well

    �In

    tegra

    tion w

    as h

    ard

    �D

    eta

    ils o

    f in

    terf

    acin

    g b

    etw

    ee

    n fro

    nt

    an

    d b

    ack

    en

    d w

    ere

    no

    t sp

    ecifie

    d in

    en

    ou

    gh

    de

    tail

    �W

    ork

    ing

    ou

    t th

    ese

    de

    tails

    wa

    s c

    ostly a

    nd

    Wo

    rkin

    g o

    ut

    the

    se

    de

    tails

    wa

    s c

    ostly a

    nd

    too

    k e

    ffo

    rt

    Fra

    mew

    ork

    Back-e

    nd

    Plu

    gin

    Fro

    nt-

    end

    Plu

    gin

    ??

    ??

  • Design: Changes

    �E

    xpanded t

    he

    capabili

    ties o

    f th

    e

    rendere

    r

    �A

    main

    meth

    od t

    o p

    ut

    �R

    earr

    ange p

    art

    s o

    f th

    e

    desig

    n�

    Mo

    re s

    up

    po

    rt fo

    r p

    rim

    itiv

    e e

    ve

    nts

    What we changed

    What we would change

    �A

    main

    meth

    od t

    o p

    ut

    every

    thin

    g t

    ogeth

    er

    �P

    anels

    inclu

    ded

    pro

    cessin

    g f

    or

    actions

    in that panel

    pri

    mitiv

    e e

    ve

    nts

    �S

    pend m

    ore

    tim

    e

    meeting t

    o talk

    about

    the d

    esig

    n

    �O

    n the fra

    mew

    ork

    sid

    e,

    �D

    esig

    n w

    ith

    im

    ple

    me

    nta

    tio

    n in

    min

    d

  • What went well?

    �In

    form

    al docum

    enta

    tion h

    elp

    team

    s

    unders

    tand the fra

    mew

    ork

    better

    Making a move

    1.

    The u

    ser

    execute

    s a

    move t

    hro

    ugh t

    he U

    I

    2.

    The c

    ontr

    olle

    r convert

    s t

    he c

    o-o

    rdin

    ate

    s in t

    he U

    I to

    a M

    ove

    2.

    The c

    ontr

    olle

    r convert

    s t

    he c

    o-o

    rdin

    ate

    s in t

    he U

    I to

    a M

    ove

    usin

    g t

    he M

    oveF

    acto

    ry

    3.

    The c

    ontr

    olle

    r in

    vokes t

    he G

    am

    e.M

    ove()

    meth

    od p

    assin

    g in

    this

    Move o

    bje

    ct

    4.

    Gam

    e.M

    ove()

    invokes R

    ule

    .isLegalF

    or(

    ) passin

    g in t

    he

    Move o

    bje

    cts

    and p

    layer

    and b

    oard

    deta

    ils

    5.

    If the R

    ule

    .isLegalF

    or(

    ) m

    eth

    od r

    etu

    rns f

    als

    e,

    Gam

    e.M

    ove()

    retu

    rns im

    media

    tely

    6.

    If the R

    ule

    .isLegalF

    or(

    ) m

    eth

    od r

    etu

    rns t

    rue, in

    vokes

    Board

    .move()

    7.

    Board

    .move()

    update

    s t

    he s

    tate

    of th

    e b

    oard

    whic

    h is

    reflecte

    d in U

    I

  • What went well?

    �S

    pecify d

    eta

    iled p

    ieces h

    elp

    testing o

    f

    each c

    om

    ponent

    �M

    ore

    ab

    ou

    t th

    is in

    te

    stin

    g!

  • Lessons Learned from Frontend

    Specification

    �T

    he s

    pecific

    ation o

    f th

    e f

    ronte

    nd

    depends a

    lot

    on r

    endering p

    latform

    Repain

    t!R

    epain

    t

    ?!?

    Co

    mp

    osite

    Pa

    ne

    l

    Bo

    ard

    Pa

    ne

    lR

    endere

    r

    Rendere

    r

    Tu

    rn

    Pa

    ne

    lR

    endere

    rJP

    an

    el

    JP

    an

    el

    JP

    an

    el

    ?!?

  • Lessons Learned from Backend

    Specification

    �C

    om

    munic

    ation issue c

    ause r

    ew

    ork

    s o

    n

    a lot

    of

    facili

    ties p

    rovid

    ed

    Should

    have lim

    it

    Should

    have lim

    it

    exposure

    only

    to

    the s

    tandard

    inte

    rfaces

    Ba

    se

    Pa

    cka

    ge

    Fra

    me

    wo

    rk

    Pa

    cka

    ge

    Ga

    me

    Pa

    cka

    ge

  • Lessons Learned from Backend

    Specification

    �U

    sin

    g M

    VC

    requires tw

    o team

    to a

    gre

    e

    on the m

    essages, w

    hic

    h leads to s

    om

    e

    confu

    sio

    n

    �W

    ha

    t m

    essa

    ge

    s to

    se

    nd

    ?�

    Wh

    at m

    essa

    ge

    s to

    se

    nd

    ?

    �W

    hic

    h w

    ay is u

    p?

    X

    Y

    X

    Y

    Backend T

    hin

    ksC

    Fro

    nte

    nd T

    hin

    ksC

  • Resolving Specification Issues

    �A

    lot of

    inte

    racting a

    nd c

    oord

    inating

    betw

    een the t

    eam

    s

    �U

    se e

    xam

    ple

    s o

    n h

    ow

    to p

    ut

    thin

    gs

    togeth

    er

    togeth

    er

  • Plural Specification

    �C

    hecks that

    every

    thin

    g is r

    eady for

    the g

    am

    e

    to initia

    lize

    setP

    layer(

    )

    setR

    ule

    s()

    setB

    oard

    ()

  • Plural Specification

    �C

    hecks that

    liste

    ners

    can a

    ttach o

    nly

    to t

    he

    top m

    ost

    panels

    Aliv

    e

    Sta

    teA

    lso c

    aptu

    re U

    niq

    ue

    Co

    mp

    osite

    Pa

    ne

    l

    Bo

    ard

    Pa

    ne

    l

    Tu

    rn

    Pa

    ne

    l

    Lis

    tener

    Sta

    te

    Att

    ached

    Sta

    te

    Att

    ached

    Sta

    te

    Als

    o c

    aptu

    re U

    niq

    ue

    perm

    issio

    n to the

    liste

    ner

  • Issu

    es in Plural Specification

    �T

    rackin

    g loaded a

    nd s

    aved s

    tate

    �A

    few

    concepts

    not very

    well

    unders

    tood

    �N

    eed to a

    nnota

    te the p

    lug in c

    lasses a

    s

    well

    as the f

    ram

    ew

    ork

    well

    as the f

    ram

    ew

    ork

    �@

    Pe

    rm(“

    un

    iqu

    e(t

    his

    !fr)

    ”)

  • Plural vs. JavaDoc?

    �JavaD

    ocs

    are

    less c

    om

    ple

    x a

    nd c

    an b

    e

    unders

    tood b

    y a

    more

    genera

    l audie

    nce

    �JavaD

    ocs

    do n

    ot allo

    w for

    auto

    mate

    d

    corr

    ectn

    ess c

    heckin

    gcorr

    ectn

    ess c

    heckin

    g

    �C

    onclu

    sio

    n: Too m

    uch o

    verh

    ead to

    apply

    Plu

    ral to

    an e

    ntire

    pro

    ject

    �u

    sin

    g it

    on

    se

    lect p

    iece

    s th

    at

    rely

    on

    we

    ll

    de

    fin

    ed

    pro

    toco

    ls c

    an

    be

    extr

    em

    ely

    effe

    ctive

  • Testing Experience

    �Defined interfaces made targeting specific

    sections of code easier.

    �S

    pe

    cifyin

    g e

    lem

    en

    ts in

    de

    tails

    he

    lps in

    te

    stin

    g

    Board

    Panel

    Mock

    Board

    Mock

    Rendere

    rC

    lick!

    �No framework specification on events m

    ade

    parts hard to specify early

    �Te

    sting event-based system is hard

    Panel

    Board

    r

    Turn

    Panel

    Mock

    Board

    Mock

    Rendere

    r

    Clic

    k!

  • Testing Challenges:

    Some things were unrealistic to test

    �Testing U

    I re

    sponse to a

    board

    update

    �E

    xam

    ple

    :�

    Checkin

    g the p

    iece r

    endering

    �In

    pra

    ctice v

    ery

    hard

    to im

    ple

    ment:

    �In

    pra

    ctice v

    ery

    hard

    to im

    ple

    ment:

    obta

    inin

    g the d

    raw

    n p

    iece fro

    m t

    he

    Board

    Panel.

    �Tweak: C

    an b

    e d

    one b

    y c

    heckin

    g

    the c

    ente

    r of

    the c

    ell.

    �Too m

    uch o

    verh

    ead.

  • Testing Challenges

    �Te

    sts

    we

    re d

    esig

    ne

    d a

    nd

    im

    ple

    me

    nte

    d

    se

    pa

    rate

    ly

    �S

    om

    e t

    ests

    we

    re c

    ha

    ng

    ed

    du

    rin

    g t

    he

    ir

    imp

    lem

    en

    tatio

    n

    �W

    rong a

    ssum

    ptions

    �W

    rong a

    ssum

    ptions

    �S

    om

    e intr

    a-

    and inte

    r-te

    am

    com

    munic

    ation

    issues

    �F

    ront-

    end c

    hanges r

    equired b

    ack-e

    nd t

    est

    change

    �In

    teg

    ratio

    n te

    st

    �H

    ard

    �D

    ela

    yed