Peggle Deluxe/Beta Elements

== Pego Beta ==
=== Unused File ===
readme.html is that of Zuma, presumably as the Peggle readme was not complete yet.
=== Debug Controls ===
This build of Pego contains debug controls which can be used by pressing specific keys either in-game or on the title screen. All of the known debug controls are as follows.
=== In-Game Controls ===
Key 	Effect
A 	Causes flaming text displaying "EXTREME FEVER" to fly onscreen for a few seconds before flying off. Does not appear to affect gameplay in any way.
B 	Spawns a ball at the position of the mouse cursor. Multiple balls can be spawned, and the key can be held to rapidly spawn balls.
D 	Allows you to drag balls using the mouse. Toggleable. You cannot fire balls while active.
F 	Press and hold to fast-forward. Faster than the fast forward function available by right-clicking, and can be used while a ball is in play.
G 	Toggle the Super Guide powerup for your next shot.
I 	Toggle Triple Score for your next shot.
J 	Toggle the Magic Hat powerup for your next shot.
L 	Instantly complete the level.
M 	Go backward a level (based on Adventure mode order).
N 	Go forward a level (based on Adventure mode order).
O 	Toggles hitbox visibility. Press once to display collision hitboxes, press again to disable visibility of in-game graphics such as the Free Ball Bucket, press again to return to normal.
Q 	Plays a replay of your last shot. Can be done even if your shot has not yet completed.
R 	Resets the level, but also resets your Story mode progress to that point, showing the relevant textbox if there is one.
T 	The game will automatically shoot a ball for you in a similar manor to the automatic shooting featured in the game's Demo mode.
U 	Toggle the Fireball powerup for your next shot.
X 	Reload the character config.
Y 	Toggle the Zen Shot powerup for your next shot.
Z 	Causes the game to run in slow motion. Toggleable.
, 	Subtract 100 points from your current score.
. 	Add 100 points to your current score.
< 	Subtract 10,000 points from your score.
> 	Add 10,000 points from your score.
- 	Subtract one ball from your ball counter.
+ 	Add one ball to your ball counter.
Equals 	Set your current balls to 1,000.
← Backspace or Ctrl + H	Toggles if High Scores are allowed.
F2 (Press Twice) 	Opens a small window labeled "Perf Results" and displays Total Time. Exact purpose unknown.
F3 	Toggle FPS Visibility.
F8 	Displays the game's Video Stats.
F10 	Freezes the game, but allows you to advance frame-by-frame if you press or hold F10 following this.
⇧ Shift + F10 	Unfreeze the game from when F10 was pressed.
Ctrl + F 	Toggles the end-of-level buckets.
Ctrl + C 	Brings up the character selector mid-level.
Ctrl + O 	Reloads the backdrop image.
Ctrl + P 	Causes the game to run at maximum speed, and automatically make shots similar to pressing T. This effect persists until you exit the level you're playing on. Effectively used to automatically play large amounts of levels very quickly.
Ctrl + S 	Displays and rolls the Lucky Spin. The effects of this spin do not occur until the next turn.
Ctrl + G 	Toggles flippers.
Ctrl + L 	Opens up a file picker to load a level file from the drive. Default directory is the install directory's level folder.
Ctrl + X 	Instantly sets your balls to zero, fires a ball, and quickly deletes it, causing you to lose the level.
Ctrl + N 	Opens an in-game window for Game Options. Allows you to set the stage's game mode as well as the skill level for the computer. Pressing OK will start the selected type of game.
Ctrl + T or ⇧ Shift + Q	Go back in time to right before your last shot, effectively undoing it.
⇧ Shift + A 	Much like A, Causes flaming text displaying "EXTREME FEVER" to fly onscreen for a few seconds before flying off. This variation is italicized, less bubbly, has a golden border, and disappears far faster.
⇧ Shift + T 	Toggles a line that is drawn on the path a ball will take when shot automatically with T. Seems to not always line up exactly with the ball's actual path.
⇧ Shift + Z 	Disables the screen zoom effect for when your ball is near the final orange peg.
=== Main Menu Controls ===
Key 	Effect
S 	Plays the relevant world cutscene based on the world of the level you are playing.
U 	Unlock all levels in Quick Play.
1 → 9 	Allows you to change what level of Adventure Mode you are currently on. Requires two presses; your first number sets the world, and your second sets which level in that world.
CTRL + Button Click	For Adventure, load an empty level under Dev. For the other game modes aside from Challenge, load the level related to ?. For Options, load the help menu but only using a single page.
=== C++ File Paths ===
Starting at various points in the main executable are a LOT of file paths pointing towards the game's source code. Of note is that the game is internally called Thunderball.
=== 0x18F4C0 ===
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\BlendedImage.cpp1,52
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\BlendedImage.cpp0,51
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp13,650
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp12,649
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp11,646
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp10,644
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp9,643
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp8,640
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp14,781
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp17,1042
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp16,1042
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp65,2882
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\PlayerInfo.cpp120,441
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\PlayerInfo.cpp118,440
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\PlayerInfo.cpp119,440
=== 0x1911C8 ===
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp121,103
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp127,375
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp126,373
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp125,372
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp124,371
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp123,370
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp122,369
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp146,759
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp149,772
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp148,771
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp147,770
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp154,544
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp24,1754
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp52,2494
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp128,482
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp134,631
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp133,630
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp132,616
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp131,615
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp153,792
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp152,791
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp151,790
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp150,789
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp158,629
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp157,629
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp156,629
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp19,1084
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp23,1731
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp22,1730
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp93,3255
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp96,3376
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp95,3368
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp94,3348
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp98,3487
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp92,3231
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp91,3225
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp90,3223
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp89,3218
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp88,3206
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp87,3204
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp86,3200
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp85,3188
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp84,3187
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp83,3184
=== 0x191EA0 ===
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp142,715
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp141,712
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp140,711
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp139,709
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp138,703
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderCommon.cpp137,701
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp185,1445
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp184,1445
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp191,1850
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp190,1849
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp193,1905
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\ThunderballApp.cpp192,1904
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp21,1098
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp20,1096
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp97,3426
=== 0x1923E4 ===
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp62,2823
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp61,2765
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp60,2761
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp59,2760
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp64,2869
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp63,2864
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp82,3158
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp81,3154
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp80,3153
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp79,3137
 SEXY_SEXYMODVALc:\gamesrc\cpp\thunderball\Board.cpp78,3126
=== Unused Graphics ===
An unused and early graphic of the text marking a locked level in the quick play mode.
== Pre-release ==
=== The Big Idea ===
The idea was at first shoot only one ball at a time and, instead of simply hoping to miss or bounce smartly off the pegs, you had to hit all the pegs to light them up; next, you had to get the balls into valued holes. Your final target was a flying saucer. And to top it off, the level ended with a rousing rendition of Ride of the Valkyries.
The level was much less like Pachinko and more like trying to hit pegs and earn some wacky rewards. But everyone loved it.
The new goal of lighting pegs brought new dimensions of aiming and timing to the gameplay.
=== Early Prototype ===
Brian took the level and ran with it. He designed a variety of levels to test the new game functionality.
While making those levels, the team realized they still needed to make the game more player-friendly. So they took a tip from breakout style games: they made the pegs disappear after being hit, so the other pegs could be hit more easily.
Brian also had a revelation late in developing the game. He wondered if some of the pegs could be special.
=== Round One (and two, and three) ===
Making a PopCap game can take many months just to get the right gaming concept: we create many prototypes to try out lots of different ideas, but we'll have to dump most of them along the way. Nothing is set in stone early on, so we never expect our first attempt to be perfect.
The first version of the game was very much like Pachinko, with lots of balls falling at once and scoring that was based on the number of balls that landed in the jackpot bucket. After testing it out, Brian and Sukhbir still really liked the concept — which, actually, was a big deal! — but the game was too difficult and too chaotic. It was "too random and luck-based" recalls Sukhbir. "The main issue was finding the right balance of luck versus skill."
They knew there was a game in there, but at the time they "just had a whole bunch of different ideas that mostly didn't work" says Sukhbir. They needed a little more time.
And so began a four-month process of creating handfuls of prototypes using various game designs. As with every other development project at PopCap, they added some basic graphics and sounds, ignored special effects for the time being, and tested and shared the results with coworkers in hopes of finding the perfect blend to fit the fun model of game play they envisioned.
They wanted to pack every level with obstacles and many goals to achieve, which made the project very challenging. "Each level was like designing an entirely new pinball table" Brian recalls. Things like spaceships and windmills began to emerge, crowding the screen with obstacles that kept the player hoping that at least some of the bouncing balls would find their way to the jackpot bucket.
It was definitely fun; but sometimes the levels got too cluttered and messy again. At other times, the game seemed way too hard to succeed at.
Then, Sukhbir thought up a sample level that changed everything.
=== More power to ya! ===
One of the first features to show up was power-ups — special shots triggered by hitting specially colored pegs. (The Magic Powers now famously known as Bjorn’s Super Guide and Jimmy’s Multiball were originally special shots that came out of this phase.)
The special pegs appeared on the board randomly, and sometimes all at once. People tossed in all kinds of ideas for special shots, but when they were all active at once, game play became nearly as chaotic as when you fired a hundred balls. Choosing just some special kinds of shots and throwing away the rest risked losing some of the most enjoyable parts of the game. Something had to give… but what?
Claude's Flippers The levels also had plenty of their own unique features competing for attention. One level in particular, which featured pinball-style flippers (now Claude’s Flippers), helped push the thinking in a different direction.
The team realized that things like the Flippers didn’t need to be attached to a level. Flippers, along with other special shots, could be the power-ups. And instead of each shot having its own colored peg, the green peg could trigger any kind of power-up, giving the player the choice of which power to use.
Of course, as you’ll read about later in The Art of Peggle, the power-ups still had room for evolution. But narrowing it all down to a single green peg was no small feat. In addition to cleaning up the levels, this new power-up direction gave the player a new layer of strategy to explore, and the game gained a new level of excitement.
=== Catch The Fever ===
Another feature that changed the course of Peggle was "Extreme Fever" — the celebratory reward for finishing a level.
Originally, the phrase X-TREME FEVER and some fireworks (non-flammable, of course) splashed across the screen when you finished a level. Sukhbir liked it, but decided what it really needed was to be as outlandish as possible.
First, he added a rainbow flying across the screen. Then Brian piped in musical accompaniment: Beethoven's "Ode to Joy." When it all came together, the experience of Extreme Fever was an exhilarating (and hilarious!) reward for passing a level. Our test players found themselves thrilled every time they saw it.
Despite the insane wonder of Extreme Fever, the team never fully intended to keep it in the game. As Brian explains, "At first, it was just a joke… it was so over the top, it was just funny." But Extreme Fever was one of those rare entertaining and rewarding features that people loved so much that it simply had to stay in the game. In fact, when people brought up concerns about the phrase, even Jason Kapalka, PopCap's Creative Director, chimed in: "If there is one thing that will never change about Peggle, it's 'Extreme Fever.'"
"The reaction we saw from people was great" Brian remembers. "That's what happens when you're making a game. Sometimes you leave something in there long enough, it doesn't even seem crazy to you anymore; which is good, because it really helps the game." In the case of Extreme Fever, it was a very good thing.
=== Challenges a la mode ===
Challenges a la Mode Even with all the changes, the team still worried they were making the game too hard. Some levels were incredibly difficult, and, as Brian explains, "You don't want to make people give away two years of their life to beat the main mode."
So the team created two game separate modes to please fans of the hard levels and fans of an easier game play.
They kept the main game mode, Adventure, challenging, but not too challenging. They wanted the average, casual PopCap player to be successful and have a great time playing. And if a player could beat all the levels in Adventure, the title of Peggle Master was waiting!
They left the second game mode, Challenge, to carry all the most difficult levels. (If you think you have what it takes to be a Peggle Grand Master, you can try your luck at beating all the challenges!)
The two modes offered a great progression of easy-to-difficult game play, with something for every skill level. Later on, two more game modes would be added — a Quick Play mode and, to great fanfare, a Duel mode. With all four modes together, the team was beginning to think everyone would love Peggle!
=== Art of Peggle ===
Once we finalize the game mechanic and make the big conceptual changes, it’s finally time to focus on the game’s theme — which includes the art, music and effects. While the programmer focuses on plugging in a musical soundtrack and adding visual and audio effects, the artists get to work on giving the game its visual style.
Meet the Masters PopCap uses a team of artists for each game. Working on Peggle were Walter Wilson and Marcia Broderick, who, after several visions and revisions, eventually conceived a brilliant imaginary world that everyone would love.
Turtle Tut and Viking Cat turned into Kat Tut One big task in creating a theme for Peggle was to justify the number of power-ups Sukhbir and Brian had come up with. Meaning, if Walter and the others could think up 10 great characters, the game could feature 10 power-ups. If not, game play may need to change course.
Believe it or not, Peggle started out on a Nordic theme — complete with Vikings, Scandinavian mythology and ancient Scandinavian art (hold the lutefisk!).
While all PopCap artists have their own way of working, Walter often sketches his ideas on paper first, then takes the sketches to the computer and creates full-color versions. If the team agrees on where he’s going with the art, he hands it off to the programmer, who adds it to the game.
While people really liked the Nordic theme, it didn’t quite fit. A game as original as Peggle needed something unique, something completely invented.
After a few more attempts and lots of collaboration, a set of 10 characters emerged from the drawing boards — Peggle Masters who were a hodgepodge of creatures that were utterly fun to look at. Best of all, the characters meshed with the game so well that it was hard to believe they weren't there all the time.
But the great characters didn't simply compliment a great game. They actually encouraged the team to reorganize the game's theme around a Peggle Institute where the player learns new skills from each Peggle Master. "Without Walter's great character designs" says Sukhbir, "Peggle would be a much different game."
The 10 characters also helped spawn 10 stages of game play, each featuring one Master and his/her Magic Power. This new twist in theme meant the green peg no longer featured a choice of power-ups — the player now had a single Master's Magic Power to use through each stage. Players found this new approach kept the game fresh and exciting, with so many possibilities — and the fun increased exponentially!
=== Level up ===
With the characters conceived, the rest of the art followed — all the backgrounds and objects you see in the game, such as the Ball-o-Tron and the Fever Meter.
Walter applied a space-age theme to everything from the ball launcher to menus and buttons, giving the game a sleek, exciting look.
Meanwhile, Marcia focused on the backgrounds for each level. Since all the peg layouts had been designed by Brian and Sukhbir, Marcia focused on creating art that fit in those levels and offered a dazzling (but not overpowering) style.
Peggle was one of Marcia's first projects at PopCap. "It took me a while to get into the groove" she says, "but once I got a feel for Peggle and all its quirks, things flowed pretty smoothly". The result was a vivid collection of backgrounds that matched the whimsical personalities of the 10 Masters and their eccentric environments.
Everyone was impressed with them, and Marcia was thrilled: "They really captured the spirit of the game."
=== Bells and whistles ===
After the art is in place, the extra-special touches — such as music, effects and the in-game story — are next on the to-do list for finishing up the game's theme.
Brian and fellow programmer Eric Tams shared the duties of gathering the soundtrack and sound effects and then plugging them into the game code. The real trick to this kind of work is to closely synchronize the audio with the action, so that, for example, a Free Ball gently clicks into place the instant it lands in the Ball-o-Tron, and a fiery flame roars at the exact moment Lord Cinderbottom's Fireball scorches the pegs.
Eric and Brian also designed and coded the dazzling visual effects. Sometimes they took the artists' work and animated it, like each Peggle Master's movements. At other times they designed new pieces (such as explosions and fireworks) that matched the artists' style for a given level.
Stephen Notley, PopCap's technical writer, also went to work on the characters' "voices" to help draw players a bit deeper into the world of the game.
While they don't have audible voices, each character's greeting at the beginning of his/her stage needed to be unique — from Splork's alien vocabulary to Jimmy's outdated skater slang. To get to know the characters, Stephen invented back-stories for each one, coming up with tall tales of how each Master rose to Peggle greatness. From there, he honed the stories until they were the simple, punchy greetings in the game today.
=== Secret to success ===
So what's the trick to creating the theme for a game as odd as Peggle? "You try to go off the deep end a little bit" Walter explains. Going as far out as possible makes it a lot easier to see what works and what doesn't. "And then" he continues, "if you need to, you can reel it back in. Fortunately, we didn't really have to reel in a lot."
=== Finishing Touches ===
As a game nears its release to the public, the focus shifts from creating the game to testing and adjusting all the little things until the game looks polished, feels seamless to play, and is as fun as possible!
Eric Tams took the lead on refining the game, to make sure everything from the special effects to clicking an item in the main menu felt smooth and functioned properly.
Among his tasks was adjusting game balance — making sure players could be successful even when using an array of shots and different strategies. This included re-programming certain parts of the game until players thought it felt right.
Eric also ironed out visual wrinkles — for example, when someone launches the game, a sun rises over the Peggle logo. The original animation was choppy because it was linked to the code that ran while the game was loading. He separated the animation from the startup process itself, which smoothed the animation into something cool to watch while the game loads in the background. Itâ€™s not the most glamorous work in creating a game, but it makes the game look glamorous!
=== Bug off ===
The final step in producing a PopCap game is finding and fixing bugs — technical glitches or logical errors that interfere with game play. At PopCap, a quality gameplay experience is tantamount, and a bug-free game is simply more fun to play.
PopCap's Quality Assurance team (QA) is responsible for testing games to make sure bugs are squashed and that the games are ready to be released to the public. In short, they find the bugs and also suggest possible solutions. And no matter what the bug — from misspelled text to a clunky action sequence — the PopCap team is happy to fix it, so that everything is as perfect as possible!
For Peggle, the entire QA staff searched for bugs, Eric fixed them, QA retested a new version and unearthed other bugs, and Eric did more fixes. They did this over and over again until the bug sightings finally tapered off.
Most of the bugs were about things that didn't line up or function properly — the things that, if ignored, can keep a good game from being great. For instance, here are a few bug reports that came in:
1: The pegs around one of the bat's eyes on the level "Baseball" don't line up properly. view 2: The game goes numb when you press the F10 button. 3: Images are missing on page six of the How to Play screen.
QA found pretty much every bug possible — which didn't really surprise anyone. "We have probably the best QA department I've ever seen," Eric brags. "They really are game experts. They find all those little things that no one else thinks of." Who else would think to press F10 and try fast-forwarding with the right-mouse button at the same time to see if the game keels over? (It did.)
And when things are getting down to the wire and you have a virtually bug-free game, you know you've got a good thing going.
=== Copyright problems ===
The game was nearly complete, and they had to set a particular date for public release, which they needed to hit. But there was a problem.
=== Pego ===
The game was dubbed "Pego" for months of production, but the team was suddenly tasked with changing the name because of copyright issues, most likely because of Pogo, which was an EA property.
Sukhbir opened a company-wide forum to find a new name. Hundreds of names were planned, and finally, after a lot of soul and legal searching , the team chosed "Peggle."
But despite the name change, some graphics mentioning "Pego" weren't changed, like the ball at the title screen reflecting the Pego logo.
=== Hits and misses ===
In the end, all the hits and misses the team experienced trying to finish and release Peggle were worth the time and energy. Because what's a great game if it's filled with typos and errors? It isn't Peggle, that's for sure!
=== Making an impact ===
Making a PopCap game is always about finding the right gameplay balance: luck versus skill, game mechanic versus game theme, ease versus difficulty, and so on. When a game gets everything right, it has a chance of being a hit.
We think Peggle is one of those games; the whole team believed it even before it was released. A big reason is that Peggle is not only a very fun and entertaining game, but it also offers a number of great innovations in casual gaming.
The replay feature, for example, is one of those great features that didnâ€™t really need to exist. The game play would be just as fun without the replay, but the added bonus of being able to save a shot to watch over and over (or send it to a friend for bragging rights!) is incredibly appealing to both casual players and hardcore gamers. It simply enhances an already-entertaining experience, making it even more fun to play again and again!
Maybe most of all, this is what Peggle does best: it offers so much more than your average game. The two-player Duel Mode is another great example. Rarely seen in casual games, Duel Mode offers players a chance for community-type play and provides endless, unpredictable action — whether players are beginners or Grand Masters, regular players of PopCap games or new to casual gaming.
== Release ==
=== Leftover Web Demo Level Images ===
Images of layouts for a few levels from the web demo, in the cached_thumbnails folder.
level12web:
level18web:
level19aweb:
slides:
=== Unused Powerups ===
In the executable code, there are three powerups not used by any character. By making simple replacements to their used powerups in the master character config, they can be used.
=== Nudge ===
This powerup is usable for a set amount of time per shot by a mouse press and gradually increases the height of the ball. Activating another green peg does not award the 25,000 point bonus for activating two in one shot.
=== Shot Extender ===
This powerup activates upon losing a ball, letting you shoot the same ball again, keeping meter score and all hit pegs active as well. Activating another green peg with the extra shot counts towards the 25,000 point bonus.
=== Time Bomb ===
After shooting the ball, pressing the mouse will make a big explosion hitbox around the ball and then end that ball's run. The powerup also uses the unused Explode sound below.
=== Unused Sounds ===
=== Generic Powerup ===
A generic powerup sound. Quite similar to a sound in Zuma.
=== Bucket Hit ===
A rather springy sounding bucket hit sound. It might have been for hitting the Free Ball Bucket.
=== Explode ===
An cartoonish explosion sound. Interestingly, it was later used in the Peggle Extreme for the title screen.
=== Multiball ===
A clearly placeholder sound for activating the multiball powerup.
=== Unused Music ===
=== Beat 10 ===
Beat 10 is quite similar to another beat that is heard in the game, but this version is unused.
=== Beat 5 ===
Beat 5 is played in the downloadable version of the game on PopCap's site, but not in the Steam version.
=== Unused Graphics ===
A red-and-white checkered frame.
A very pixely stickynote with "CONS" written on it.
A star in a circle.
A logo placeholder for third-party distributors.
=== Leftover Debug Keys ===
* At the loading screen if "B" is pressed, the ball bounce animation will play.
* Holding CTRL and clicking "CLICK TO PLAY!" at the loading screen on Windows will load a blank level.
=== Command-line Parameters ===
The game's executable mentions developer command lines for starting the game. It's not friendly with commands using spaces, so use = instead. It shares most of the usable parameters from Plants vs. Zombies, though one has been altered and another is entirely new. Note this does not work on Mac OS as the framework port didn't support them at the time.
* -screensaver: Immediately loads the game into screensaver mode. The game is automatically played by the computer, and moving the mouse or pressing any key quits the game. Also of note is that the loading text says Starting Screensaver.
* -replay: Immediately loads a specified replay file after bootup (you must target the proper directory of a replay file to load it, or else nothing happens). Also of note is that the loading text says Loading Replay instead.
=== Unused Code ===
=== Level Editor ===
Text for a level editor can be found in main.pak. This level editor is found within the game's prototype.
LevelEditor.cfg
LevelEditor_Choices.cfg
LevelEditor_Types.cfg
The game executable also mentions strings for one.
 LevelEditor/autosave
The strings below along with their code are only present in the Windows, Android TV and the Xbox 360 releases.
 Keyboard Reference
 Edit
 (Multi Place)
 (Drag)
 (Make Poly)
 (Center Drag)
 (Image Drag)
 (Single Sel)
 (No Draw Sel)
 (Paused)
 Edit (Order Mode)
 LevelEditor/globals.dat
 LevelEditor/buffer%d.dat
 LevelFile
 SOFTWARE\\
 levels
 editlevel.dat
 *.dat
 Save Level
 .dat
 autosave
 LevelEditor
 LevelEditor/autosave
 LevelEditor/autosave%d.dat
 leveleditor/editlevel.dat
 autosave%d
 Inspect AutoSaves?
 Would you like to inspect AutoSaves?
 No autosaves
 No autosave data available
 LevelEditor/LevelEditor.cfg
 LevelEditor/editlevel.dat
 Choose Group
 No Choices
 : 
 Clear Level?
 Do you want to clear the level?
 Copy Group Attributes?
 Do you want to copy the current group of attributes to all selected objects?
 Distribute Phase?
 Would you like to distribute movement phase among selected objects?
 Load Image
==== Cheat Stats File Save ====
A function that generates a file named stats_cheat.dat file in LevelEditor (created if not present) in the game asset directory is present and called by the game whenever stats need to be saved. Changing the below function to NOP will trigger it.
Build 	Address
PopCap.com (WW, Final/1.01)	00464C50
=== Level Loader ===
The game has support for loading raw level files and their backdrops elsewhere via using a dialog related to your OS. It's possible to enable it by changing the function at the following address with one that has no operation will load it when trying to load a level or demo, clicking cancel will make the game load an empty level with an error message. This does not seem to be present in the Mac version.
Build 	Address
PopCap.com (WW, Final/1.01)	00429D67
If loading levels this way, the word Dev will be above the word score on your scoreboard and that will write to replay data, you also cannot save high scores from levels loaded this way and the level complete dialog only offers three options, returning to the main menu, replaying the level or playing a random level. Reloading a level makes the game write the name of the level file to the game window in this form.
 - %s
=== LoadTime.h Generator ===
A function that generates a LoadTime.h header file in the game asset directory is present and called by the game at the loading screen but it's normally not possible to trigger it. Changing the below function to NOP will trigger it.
Build 	Address
PopCap.com (WW, Final/1.01)	0040B43D
=== Unused Text ===
=== Pego Leftovers ===
 <String id="Check here to allow your monitor to go into powersave mode while running the Pego Screensaver.">
 <String id="Check here to set your Pego as your Screensaver.">
Dubbed "Pego" for months of production, the team was suddenly tasked with changing the name based on copyright issues, which explains the presence of these duplicated (but renamed) strings.
 .pego
Present in the game executable, replays don't use a .pego extension but the game can still view them if so.
=== Kat-Tut Stage Dialogue ===
English 	Japanese
StageDialog: 2, "C'mon! Hit \"Continue\" and let's do this!"	StageDialog: 2, "さあ、今すぐ。「続行」を押してチャレンジしてみて !"
This text was commented out from Kat-Tut's dialogue on the second stage in stages.cfg.
=== Page 2 Name Alterations ===
The Mac release has some commented names of certain stages in the config file, suggesting different levels were planned for Jimmy's stages or Splork was planned to be unlocked before Jimmy early in development.
Level #	Old level 	Final level
2 	We Come In Peace	Buffalo Wings
3 	Maid in Space 	Skate Park
4 	Win a Monkey 	Spiral of Doom
=== Internal Project Name ===
The internal name of the game is Thunderball according to strings in the game executable, referring to when it was a game themed around Thor very early on.
Category:Beta Elements
Category:Peggle