Monday, January 21, 2013

Chris - Intro

I'm Chris Warren. I work in IT at Williams, focusing on web development and databases. I co-founded a tabletop game design (and playing) group that's been meeting about once a week for the past 10 years or so.  I have no real background in graphics programming, but I can happily hack around. I'll be doing the pro 16 format, more or less - I'll probably end up stacking some days and skipping others as family and other needs dictate, but I'll stay in the 16 hour limit regardless.

The game I'll be working on is Explosion Golf. My current dev plan is:

  1. basic screen regions laid out
  2. all game elements represented by simple shapes (square or disc/filled-circle) of varying colors
  3. course / hole has a simple BG image
  4. can zoom in / out (center of course / hole as anchor)
  5. avatar can run around the course / hole and view remains centered on avatar
  6. inventory shows the ball and 4 sizes of bombs, 100 each for now
  7. can drop the ball on the course by dragging and releasing
  8. can drop bombs on the course by dragging and releasing
  9. dropping a bomb adds it to the detonation queue
  10. bombs only dropped when in reach of the avatar
  11. if bomb dropped outside of reach, return it to the inventory (and remove it from the detonation queue)
  12. highlight any bomb (or other item) in reach of the avatar
  13. bombs in reach of the avatar may be picked up
  14. when ball is dropped a countdown timer starts
  15. pause button
  16. when timer ends a scoring event is triggered
  17. when bombs are dropped they give the timer UI, but times are all just 0
  18. detonate button sets off all dropped bombs
  19. expanding circle animation for dropped bombs
  20. timer UI allows actual delays to be set
  21. once detonate is pressed, can’t place any more bombs until all queued ones have exploded
  22. explosions that touch /cover the ball cause a ‘pushed’ event on it
  23. ball has simple movement data that animates the ball: direction, speed
  24. ball movement decays towards 0 velocity / null vector in stages (each stage has a start loc, a target loc, and a speed; next stage is calced from speed and dir of previous stage)
  25. a ball that goes out of bounds re-appears still near the place it left, and 3 strokes are added to the score
  26. pushed events alter ball movement data
  27. course has a target flag (add to course object definition and use a screen designation)
  28. scoring event calculates a score and displays it
  29. course has a tee area (add to course object definition and use a screen designation)
  30. avatar starts in center of the tee area when play start
  31. avatar cannot leave the tee area and cannot drop bombs (all except the ball are inactive)
  32. 1 ball, dropped on a tee area (rect) - allows avatar to wander freely and to drop bombs
  33. course has regions that are basic rect shapes: fairway, rough, green, sand trap (add to course definition and use screen designations)
  34. speed of avatar movement affected by region
  35. ball movement decay affected by region of each end stage
  36. course has static obstacles: trees, shrubs which are circles
  37. ball that hits an obstacle gets a bounce event
  38. bounce event affects the ball movement data (random deflection and speed decrease)
  39. different obstacles have different bounce effects (chance to happen, and effect when it does)
  40. obstacles may be solid, in which case the avatar cannot pass through them, or passable in which case it slows the avatar down a lot
  41. course has wall obstacles which are solid and have an angle
  42. walls bounce the ball predictably
  43. define several holes
  44. when one hole is complete go on to the next
  45. track hole scores across whole game
  46. present summary of total score
  47. use real avatar sprite - animate movement (vary by speed) and stationary; no directionality
  48. directionality to avatar animation
  49. use static images for bombs and ball
  50. use explosion sprite (single animated sprite, scaled appropriately)
  51. use bg images for regions? not sure if I can do this in JS...
  52. use image for detonate button
  53. use fuse image for ball timer
  54. use image for flag
  55. use image for obstacles
  56. pretty title screen
  57. pretty help / how-to screen
  58. help button on play screen; pauses game, play button closes the screen and resumes play / unpauses
  59. sounds placeholder / hook : avatar movement
  60. sounds placeholder / hook : avatar movement on terrain / regions (tee, fairway, rough, green)
  61. sounds placeholder / hook : ball drop
  62. sounds placeholder / hook : bomb drop
  63. sounds placeholder / hook : timer set
  64. sounds placeholder / hook : bomb pickup
  65. sounds placeholder / hook : detonate pressed
  66. sounds placeholder / hook : bomb explodes (4 sizes)
  67. sounds placeholder / hook : ball explodes / scoring
  68. sounds placeholder / hook : ball hits bush obstacle
  69. sounds placeholder / hook : ball hits tree obstacle
  70. sounds placeholder / hook : ball hits wall obstacle
  71. sounds placeholder / hook : ball ends movement stage
  72. sounds placeholder / hook : ball hits flag
  73. sounds placeholder / hook : golf clap
  74. sounds placeholder / hook : button clicked
  75. can find additional bombs on the course (drawn above terrain and below obstacles) (add to course definition)
  76. explosions leave scorch marks on the course
  77. obstacles have hit points
  78. obstacles take damage from explosions
  79. obstacles can be destroyed
  80. avatar has a stun counter
  81. avatar moves slower the more stunned it is
  82. avatar loses stun over time
  83. explosions that impact the avatar add stun
  84. explosions that impact the avatar move it
  85. explosions leave behind sand trap regions (size depends on size of the explosion)
  86. in new sand trap regions bushes and walls are destroyed, then trees are turned into bushes
  87. actual sounds in/at sound hooks
  88. can find additional items around the course: extra time on the ball, temporary faster movement (energy drinks), permanent movement bonus (cleats), bonus points (???)
  89. model ball height during movement to determine whether obstacles could be hit
  90. model cumulative terrain damage to create sand trap regions instead of basic bomb->trap approach
  91. and on and on and on and on...

Based on past experience I expect to get off track somewhere around step 2.

1 comment:

  1. I will write a 92-point evaluation of it when you're finished :)