$30 off During Our Annual Pro Sale. View Details »

"My big gay adventure. Making, releasing and selling an indie game made in python." by Luke Miller

PyCon 2014
April 13, 2014
1.4k

"My big gay adventure. Making, releasing and selling an indie game made in python." by Luke Miller

PyCon 2014

April 13, 2014
Tweet

More Decks by PyCon 2014

Transcript

  1. My Big Gay Adventure
    Making, releasing and selling an indie game
    made in python.

    View Slide

  2. welcome to dodgyville
    Luke Miller
    twitter.com/dodgyville
    [email protected]

    View Slide

  3. Today
    (My) game design aims
    Using pyvida to make a point-and-click
    Releasing
    Publicising

    View Slide

  4. Fun gay science fiction adventures

    View Slide

  5. 2D point-and-click adventure ala LucasArts and Telltale
    Day of the Tentacle, Space Quest, Sam and Max, BTTF (3D)

    View Slide

  6. Scifi adventure
    Star Trek: TNG, Doctor Who, Space:1999

    View Slide

  7. Gay, gay-themed, openly gay, not as gay as Call of Duty
    Priscilla: Queen of the Desert, Melbourne gay bar culture

    View Slide

  8. Released December 2012 as digital download. You play as Captain Tycho
    Minogue, brought out of retirement to face an invasion fleet led by your ex-
    boyfriend.

    View Slide

  9. Nonpornographic, serious attempt at a commercial game. It's paying the rent

    View Slide

  10. Why
    Lack of same-sex love interests in scifi
    A gay-theme implies a gay story
    Point-and-click great for narrative, casual
    2D "Disney-style" non-threatening, fun,
    colourful, lends itself to comedy

    View Slide

  11. Before we go any further
    The sum is greater than the parts
    Art, tech and interest all work together, baked in
    How the components fit together and compliment
    each other is the craft of game developing

    View Slide

  12. What should indie game
    developers aim for?

    View Slide

  13. Entertainment
    Game must be enjoyable to play
    gameplay, the beat, high/low points,
    rewards, push/pull, controls/interface

    View Slide

  14. Quality
    Game must be polished
    bugfree, complete, menus, goodlooking

    View Slide

  15. Interest
    Game must be interesting to others
    will want (vs want), delight, intrigue, stories

    View Slide

  16. My Ex-Boyfriend the
    Space Tyrant
    Entertaining - PnC, comedy, tips, gameplay
    Quality - complete package
    Interesting - compelling for gay men*, press**

    View Slide

  17. Let's make a game
    https://github.com/dodgyville/pyvida

    View Slide

  18. Write your own adventure
    Tycho enters the foyer. There is a guard at
    the door. There is a steady drip from a small
    crack in the dome. Tycho widens the crack,
    causing a flood. The guard leaves his post to
    plug the crack, leaving the door unguarded.
    Go inside, destroy the machine.

    View Slide

  19. Entertaining, quality,
    interesting?
    Bake it in at every level

    View Slide

  20. Basics of pyvida
    simplicity, feedback, runs anywhere
    A stage mentality
    Scenes
    Actors
    Items
    Portals
    Test driven mentality
    "The play is written
    first, then acted".
    look at [x]
    interact with [x]
    use [x] on [y]
    Actor.says
    Actor.goto
    Actor.do

    View Slide

  21. game[1-2].py

    View Slide

  22. pyvida smart layout
    main.py
    data/actors/
    data/fonts/
    data/items/
    data/locale/
    data/music/
    data/portals/
    data/scenes/
    data/sfx/
    saves/
    game.smart()

    View Slide

  23. game3.py

    View Slide

  24. Test driven development
    tail -f saves/pyvida.log
    python game3.py -a -s end -x

    View Slide

  25. tests, walkthroughs, help
    but ...
    python game3.py -s end -H -x -w
    and a mea culpa

    View Slide

  26. So the preferred pyvida
    workflow
    Write, step-by-step directions, build sets, get
    actors, write game scripts

    View Slide

  27. Accessibility
    People don't have accessibility issues,
    software has accessibility issues
    vision, hearing, mobility, cognitive

    View Slide

  28. Game accessibility guidelines
    http://gameaccessibilityguidelines.com/

    View Slide

  29. Commercial benefits of
    including source
    selling point, accessibility, longer life, bug
    fixes, promotes open ecosystem

    View Slide

  30. Game code is only a
    small part

    View Slide

  31. The tools
    google docs/drive
    python 2.7 / pygame (pyglet?) / pyvida
    github.org
    trello.com
    game scripts
    packaging py2exe&py2app&bash
    aws
    bmtmicro

    View Slide

  32. Packaging
    game2exe.py + innoset
    py2app + create_dmg
    source archive + zenity install.sh
    1 config file, 3 build scripts

    View Slide

  33. Updating
    Auto-update would be ideal but checking for
    updates is OK too (you'll never launch 100%
    perfect)

    View Slide

  34. Website + Trailer
    Your website is your game's values in
    miniature - the first act of your game
    Entertaining, quality, interesting

    View Slide

  35. Digital download stores
    bmtmicro, humble store, indie bundles,
    desura, gog, steam
    the long tail, sales started picking up six
    months after release

    View Slide

  36. The death of the author
    You have no control over how people
    receive your game
    feedback, journalists, review copies,
    reviews, hero swag, play this, community
    politics, tangential media, third party
    advocacy

    View Slide

  37. *Feedback
    Thank you for a wonderful game playing experience, and
    the fact that it was a 'gay game' made it ever so much more
    enjoyable for this gay player. - John
    I'd like to compliment you on the game, My Ex-boyfriend
    the Space Tyrant. I enjoyed the artwork, the tongue-in-
    cheekiness, and the sense of a campy space-adventure.
    It's nice to have a gay-centric game, especially since most
    games are heavily influenced to appeal to the straight guy-
    gamer. - Jason
    It's a whole lot of fun, as a gay guy this is the game I've
    wanted to play all my life! - Brian

    View Slide

  38. Negative feedback
    I have friends that are gay and work daily to fight the type
    of prejudice that things like this create. Down voting just for
    being a cancer to their own cause.
    Every game I saw on Greenlight, I gave it a yes, but I can't
    give a yes to this shit, sorry but the game shouldn't be on
    steam, I really hate it !
    Umm... Well thats one way to scar a small child for life.
    This game makes me want to projectile vommet... If it did
    not, then I would be gay, but I am not gay.

    View Slide

  39. **Press
    Gay (a few)
    eg towleroad.com
    Local Gay (a few)
    samesame.com.au
    Local (hardly any)
    eg theage.com.au
    Local Gamer (a few)
    eg blackpanel.com.au
    Gay Gamer (a lot)
    eg gaygamer.net
    Pop culture (a lot)
    eg polygon.com
    theverge.com
    cinemablend.com
    and many more
    Gamer (a few)
    eg kotaku.com
    Social Networks
    (a lot)
    twitter, facebook, youtube, google+

    View Slide

  40. Lessons learned the hard
    way
    3 fast ones

    View Slide

  41. Only gamers are
    interested in games
    and the gaming press is straight (not a
    criticism)

    View Slide

  42. $10 price point for indie
    games

    View Slide

  43. Great ideas become good
    ideas become boring
    ideas

    View Slide

  44. Kickstarter
    a lot of work, have a community, gameplay
    footage, kickstarter network (inc. swaps),
    realistic tiers, viable stretch goals

    View Slide

  45. Applying the lessons
    second game
    second version of pyvida
    sharing some of advanced ideas

    View Slide

  46. More entertaining
    shorter sections, bigger ideas, and ... gayer
    gameplay

    View Slide

  47. Higher quality
    More tests, more testers, mature engine, co-
    writer, same artists

    View Slide

  48. More interesting: Code as
    art
    presentation, content, value adding
    [main.py]

    View Slide

  49. def setup_queue(game, x, y, num_of_actors=6):
    “”” Create the NPCs for the aqueue set-piece “””
    for i in range(0, num_of_actors):
    spaceperson = create_spaceman(game, name="cosmonaut%i"%i)
    game.add(spaceperson)
    point = (x, y + random.randint(-15, 15))
    rocketpilot = spaceperson
    rocketpilot.relocate("aqueue", point)
    rocketpilot.ai = False
    x += random.randint(120, 180)

    View Slide

  50. So I hope this presentation has given you
    some ideas on taking your own game idea
    from dream to reality
    pycon-au Brisbane August 2014

    View Slide

  51. Thanks for listening!

    View Slide