pyweek luke arntson [email protected] colorado game developers association nov. 6 th, 2007...

17
Pyweek Pyweek Luke Arntson Luke Arntson [email protected] [email protected] Colorado Game Developers Association Colorado Game Developers Association Nov. 6 Nov. 6 th th , 2007 , 2007 Competitive Python/Pygame Programming & Development for Games

Upload: myra-lindsey

Post on 29-Dec-2015

241 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

PyweekPyweek

Luke ArntsonLuke [email protected]@leviathangames.com

Colorado Game Developers Association Colorado Game Developers Association Nov. 6Nov. 6thth, 2007, 2007

Competitive Python/Pygame Programming & Development for Games

Page 2: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

IntroductionIntroduction Who Am I?Who Am I?

Graduated ‘07 from Central Washington Graduated ‘07 from Central Washington UniversityUniversity

Moved to Colorado in JuneMoved to Colorado in June Game Programmer for Leviathan GamesGame Programmer for Leviathan Games

Areas of expertise?Areas of expertise? C/C++C/C++ Python/PygamePython/Pygame SQL/DB SoftwareSQL/DB Software

Urban NinjaCthulhu32 (me) – Pyweek #3 Entry

Page 3: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

OverviewOverview Developing Games in Python?Developing Games in Python? Competitive Pygame?Competitive Pygame? Pyweek OverviewPyweek Overview Planning Your GamePlanning Your Game Realistic GoalsRealistic Goals Art, Audio, & LevelsArt, Audio, & Levels Gameplay & Time-ConstraintsGameplay & Time-Constraints Results!Results!

Page 4: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Python for Games?Python for Games? Rapid developmentRapid development

Python is dynamically typedPython is dynamically typed Pygame makes 2-D graphics easyPygame makes 2-D graphics easy Pygame.Mixer allows for easy audioPygame.Mixer allows for easy audio

Open source programmingOpen source programming Python runs in real-timePython runs in real-time Pyweek projects are open-source (mostly Pyweek projects are open-source (mostly

GPL)GPL) Extremely large communityExtremely large community

Take a look at the Take a look at the www.pygame.orgwww.pygame.org forums! forums! IRC: irc.freenode.net #pygame #pyweek IRC: irc.freenode.net #pygame #pyweek

#python#python

Page 5: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Pygame LibraryPygame Library http://www.pygame.orghttp://www.pygame.org – Pygame’s – Pygame’s

WebsiteWebsite

Page 6: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Competitive Pygame?Competitive Pygame? Can you make a game in a week?Can you make a game in a week?

Design, build, program, AND polish!Design, build, program, AND polish! Make it enjoyable from someone else’s POVMake it enjoyable from someone else’s POV Go solo or with a team?Go solo or with a team? Available first week of April or September?Available first week of April or September?

Solo vs. TeamSolo vs. Team Solo means you are in fullSolo means you are in full controlcontrol Team means everyone has to workTeam means everyone has to work togethertogether Ready for a week worth of mayhem/fun?Ready for a week worth of mayhem/fun?

Page 7: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Spirit of Pyweek!Spirit of Pyweek! No prizes, its just for the fun of No prizes, its just for the fun of

games!games! Large Pyweek community on IRCLarge Pyweek community on IRC

Fun pre-game warmupsFun pre-game warmups

Other competitors willOther competitors will

gladly answer questions!gladly answer questions!

Make contacts & friendsMake contacts & friendsWhich Way is Up?

Hectigo – Pyweek #4 Solo Winner

Page 8: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Pyweek!Pyweek!(Taken from www.pyweek.org)(Taken from www.pyweek.org)

Invites entrants to write a game in one Invites entrants to write a game in one week from scratch either as an individual week from scratch either as an individual or in a team, or in a team,

Is intended to be challenging and fun, Is intended to be challenging and fun, Will hopefully increase the public body of Will hopefully increase the public body of

game tools, code and expertise, game tools, code and expertise, Will let a lot of people actually finish a Will let a lot of people actually finish a

game, and game, and May inspire new projects (with ready made May inspire new projects (with ready made

teams!)teams!) Richard – Host of Pyweek

Page 9: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Planning PhasePlanning Phase Theme is chosen by Pyweek membersTheme is chosen by Pyweek members

Three weeks to vote on favorite themesThree weeks to vote on favorite themes

Game design to the extremeGame design to the extreme Original game?Original game? Revamp the classics?Revamp the classics?

My approach?My approach? Play some old-schoolPlay some old-school classicsclassics What makes simple games great?What makes simple games great?

Contra © Konami 1988

Page 10: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Realistic GoalsRealistic Goals What is feasible in just a week?What is feasible in just a week?

Do not try to make your own engine!Do not try to make your own engine! Think about game style/genreThink about game style/genre Dynamic vs. Static entities/environments?Dynamic vs. Static entities/environments?

Over-shooting & Under-shootingOver-shooting & Under-shooting Every developer has a unique styleEvery developer has a unique style Whacky brand new ideas are great!Whacky brand new ideas are great! … … but there is nothing wrong with but there is nothing wrong with

revamping classic games (Zelda, Mario, revamping classic games (Zelda, Mario, Tetris, Robotron, etc.)Tetris, Robotron, etc.)

Do not doubt your own talents and abilitiesDo not doubt your own talents and abilities

Page 11: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Team GoalsTeam Goals Bigger teams can take bigger risksBigger teams can take bigger risks

Resource building can eat up huge time Resource building can eat up huge time chunkschunks

Having a well split team will give amazing Having a well split team will give amazing resultsresults

Good team ratio:Good team ratio: (1-2 Programmers)(1-2 Programmers) (2-4 Artists)(2-4 Artists) (1-3 Designers)(1-3 Designers) (1-2 Sound Guys)(1-2 Sound Guys)

Mix of these talents is fine,Mix of these talents is fine,

such as an artist/soundsuch as an artist/sound

guy/designerguy/designer Bubble KongThe Olde Battleaxe – Pyweek #4 Team Winner

Page 12: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Gameplay Gameplay Puzzle, action, RPG, spelling challenge?Puzzle, action, RPG, spelling challenge?

Solid gameplay can make or break a gameSolid gameplay can make or break a game Fantastic art, great audio, and bad controls Fantastic art, great audio, and bad controls

can ruin a game!can ruin a game! Timer/no-timer?Timer/no-timer?

Games can be entertaining with or without a Games can be entertaining with or without a timertimer

Non-timing turn-based allows for strategyNon-timing turn-based allows for strategy Examples:Examples:

Timing: Dr. Mario, Tetris, Guitar HeroTiming: Dr. Mario, Tetris, Guitar Hero Turn-based: Final Fantasy Tactics, Chess, Othello Turn-based: Final Fantasy Tactics, Chess, Othello

Page 13: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Art, Audio & LevelsArt, Audio & Levels Large art resources can make a game Large art resources can make a game

greatgreat Take Megaman X as an exampleTake Megaman X as an example Enemies have same AI, same patterns, different Enemies have same AI, same patterns, different

art!art!

Music & sound effects enhance playMusic & sound effects enhance play Catchy music makes old-school memorable Catchy music makes old-school memorable Everyone knows Zelda!Everyone knows Zelda!

Strong level design keeps players goingStrong level design keeps players going Most judges will play a game Most judges will play a game

for for 30-9030-90 seconds seconds Its wise to have more than oneIts wise to have more than one

level designer in a team!!level designer in a team!!Death Tower

Cthulhu32 (me) – Pyweek #4

Page 14: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Time-ConstraintsTime-Constraints Gameplay & TestingGameplay & Testing

With so little time, its hard to judge “fun”With so little time, its hard to judge “fun” Post betas on Pyweek for others to give Post betas on Pyweek for others to give

feedbackfeedback Do not go for the “dream” features, go for Do not go for the “dream” features, go for

the essential functionality.the essential functionality. Determination to FinishDetermination to Finish

The last two days are the most stressfulThe last two days are the most stressful Don’t give up, showing something is better Don’t give up, showing something is better

than nothing!than nothing! Judging is purely for fun!Judging is purely for fun!

Page 15: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Putting it all togetherPutting it all together

SVN Control is vital for teamsSVN Control is vital for teams Everyone needs to be up to date!Everyone needs to be up to date! Lack of resources can ruin a projectLack of resources can ruin a project Artists need to see their work in-gameArtists need to see their work in-game

Keep timelines/diary entriesKeep timelines/diary entries Helps keep track of events/goalsHelps keep track of events/goals Make a checklist of things you wish to Make a checklist of things you wish to

accomplishaccomplish Sometimes non-vital gameplay aspects are Sometimes non-vital gameplay aspects are

removedremoved

Page 16: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Results!Results! Every entry is ranked by other Pyweek Every entry is ranked by other Pyweek

competitorscompetitors Ranked on Fun, Innovation, and ProductionRanked on Fun, Innovation, and Production Entries can be disqualified for unfair contentEntries can be disqualified for unfair content Updates are posted after judging endsUpdates are posted after judging ends

The Olde Battleaxe generally releases “Deluxe” The Olde Battleaxe generally releases “Deluxe” versions of their games after a Pyweekversions of their games after a Pyweek

Patches & Bug Fixes are veryPatches & Bug Fixes are very

common!common!

Disk FieldTigga – Pyweek #5 Solo Winner

Page 17: Pyweek Luke Arntson luke@leviathangames.com Colorado Game Developers Association Nov. 6 th, 2007 Competitive Python/Pygame Programming & Development for

Questions or Comments?Questions or Comments?

Feel free to contact me!Feel free to contact me!Luke ArntsonLuke Arntson

Work email: [email protected] email: [email protected]

Home email: [email protected] email: [email protected]

Side note: Leviathan Games is looking for testers & possible internship opportunities in the Boulder area. For more information, contact Wyeth Ridgway at [email protected]