Defendin’ De Penguin is a cartoony tower defence game where a little penguin named Little Blue protects his village’s fish from endless waves of hungry animals. The DS and Wii versions of the game shipped on the same day.
Unused Graphics#
Older Save Data Graphics#
On the Wii, each game’s save data is displayed in the Data Management menu with its own unique icon and banner. Defendin’ De Penguin’s filesystem contains both the final save graphics and older, unused versions in folder 2d/lotcheck. These older versions are .xcf files, rather than .tga files, and still refer to the game as Little Blue.
Save Game Icon#
File savegame_icon_1:
|
Unused |
Used |
|---|---|
|
|
|
Save Game Banner#
File savegame_banner_1:
|
Unused |
Used |
|---|---|
|
|
|
Test Image#
An unused image named showntell_test1.tga can be found in 2d/dialog.
Unused Maps#
Data for all the game’s maps can be found in config/maps. Three maps are unused.
Tutorial Map#
map_tutorial01.txt is an older tutorial map. The game uses map000.txt for the actual tutorial.
################################
# MAP_TUTORIAL01
################################
name Tutorial numbah one!
width 8
height 8
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::+-<--<--<--<--<+::::
mapline ::::v::::::::::::::|::::
mapline ::::|::::::::::::::^::::
mapline ::::|::::::::::::::|::::
mapline ::::v::::::::::::::|::::
mapline ::::|::::::::::::::^::::
mapline ::::|::::::::::::::|::::
mapline ::::v::::::::::::::|::::
mapline ::::|::::::::::::::^::::
mapline ::::+>-->-->-->-->-+::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline ::::::::::::::::::::::::
mapline +-+:::::::::::::::::::::
mapline |S|-->::::::::::::::::::
mapline +-+:::::::::::::::::::::
Map901#
map901.txt is an internal test map.
################################
# MAP901 to test top edge map
################################
name Bloons Again!
width 10
height 10
mapline ::::::::::::::::^:::::::::::::
mapline ::::::::::::::::|:::::::::::::
mapline ::::::::::::::::|:::::::::::::
mapline ::::::::::::::::^:::::::::::::
mapline ::::::::::::::::|:::::::::::::
mapline ::::::::::::::::|:::::::::::::
mapline ::::::::::::::::^:::::::::::::
mapline :::::::+>-->-+::+-<--<--<+::::
mapline :::::::|:::::v:::::::::::|::::
mapline :::::::^:::::|:::::::::::^::::
mapline :::::::|:::::|::+>-->-->-+::::
mapline :::::::|:::::v::|:::::::::::::
mapline :::+-+:^:::::|::^:::::::::::::
mapline :::|S|-+:::::|::|::::::/------
mapline :::+-+:::::::v::|:::::/WWWWWWW
mapline :::::::::::::|::^:::::\WWWWWWW
mapline :::::::::::::|::|::::::\WWWWWW
mapline :::::::::::::v::|:::::::\WWWWW
mapline :::::::::::::|::^::::::::|WWWW
mapline ::::+-<--<--<+::+-<--<+::|WWWW
mapline ::::v:::::::::::::::::|::|WWWW
mapline ::::|::::::::::+-+::::^::|WWWW
mapline ::::+>-->-->-->|T|-->-+::|WWWW
mapline :::::::::::::::+-+:::::::|WWWW
mapline ::::::::::::::::::::::::/WWWWW
mapline ------------------------WWWWWW
mapline WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
mapline WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
mapline WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
mapline WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
# Open Snow
# :::
# :::
# :::
# Spawn tile (enemies spawn just off-map from this tile, so it must be on the edge -- also a path must lead from it)
# +-+
# |S|
# +-+
# Town tile (enemies will take their fill when the get to town)
# +-+
# |T|
# +-+
# Nest tile (Only one nest spawn tile is allowed -- same with "Spawn" tiles)
# +-+
# |N|
# +-+
# Paths
# :|: :^: ::: ::: ::: ::: :|: :^: :|: :^: ::: ::: :|:
# :+> :+- :+> :+- <+: -+: <+: -+: :|: :|: <-- --> -+-
# ::: ::: :|: :v: :|: :v: ::: ::: :v: :|: ::: ::: :|:
# Water & Snow/Water Transitions (please note that NOT ALL VARIATIONS OF WATER AND LAND ARE PRESENT)
# WWW ::: W|: WWW :|W ::: W/: :\W ::: WW\ WWW WWW /WW
# WWW --- W|: --- :|W \:: /:: ::\ ::/ WWW WWW WWW WWW
# WWW WWW W|: ::: :|W W\: ::: ::: :/W WWW WW/ \WW WWW
Map999_balance#
map999_balance.txt is a map used during development for balancing.
################################
# MAP999 for balancing
################################
name Bloons Again!
width 10
height 10
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::+-+:::::::::
mapline <--<--<--<--<--<--|T|<--<+::::
mapline ::::::::::::::::::+-+::::|::::
mapline +-+::::::::::::::::::::::^::::
mapline |S|-->-->-->-->-->-->-->-+::::
mapline +-+:::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
mapline ::::::::::::::::::::::::::::::
# Open Snow
# :::
# :::
# :::
# Spawn tile (enemies spawn just off-map from this tile, so it must be on the edge -- also a path must lead from it)
# +-+
# |S|
# +-+
# Town tile (enemies will take their fill when the get to town)
# +-+
# |T|
# +-+
# Nest tile (Only one nest spawn tile is allowed -- same with "Spawn" tiles)
# +-+
# |N|
# +-+
# Paths
# :|: :^: ::: ::: ::: ::: :|: :^: :|: :^: ::: ::: :|:
# :+> :+- :+> :+- <+: -+: <+: -+: :|: :|: <-- --> -+-
# ::: ::: :|: :v: :|: :v: ::: ::: :v: :|: ::: ::: :|:
# Water & Snow/Water Transitions (please note that NOT ALL VARIATIONS OF WATER AND LAND ARE PRESENT)
# WWW ::: W|: WWW :|W ::: W/: :\W ::: WW\ WWW WWW /WW
# WWW --- W|: --- :|W \:: /:: ::\ ::/ WWW WWW WWW WWW
# WWW WWW W|: ::: :|W W\: ::: ::: :/W WWW WW/ \WW WWW
Development Text#
The game has a lot of leftover developer text, either as comments, readme files, or strings of text.
Development Spreadsheet#
A Microsoft Excel workbook, LBTD_GameBalance.xls, is present in config. It was used as a development tool: the sheets contain tower/enemy balance data and Excel formulas that auto-generate lines like ReadActorDefConfig("config/Actors/Enemies/Wolf_01.txt");. The game does not read the spreadsheet at runtime; the actual data comes from config/Actors/Enemies/*.txt files. The full spreadsheet can be downloaded below.
|
File: Defendin' De Penguin LBTD_GameBalance.zip (13 KB) (info) |
readme.txt#
Found in 2d/dialog/wide is a readme file.
3:08 PM 3/4/2008
This is for the dialog FOREGROUND screen.
ONLY the foreground screen will be widened, as it needs to reach to the edges.
All other "overlay" and "background" screens are NOT widescreened.
legal_notice_text.txt#
Located in 2d/lotcheck:
#12:03 PM 3/21/2008
#This is the legal text that is contained in the graphics.
#This text is NOT displayed by the software; I am only putting it here so you don't have to retype it.
Defendin’ DePenguin (c) 2008 Brain Toys.
All rights reserved. Published and distributed by Crave Entertainment Inc. under license.
Crave Entertainment and related logo and Crave Games are either trademarks or registered trademarks of Crave Entertainment, Inc. in the United States and other countries.
All other trademarks and copyrights are the property of their respective holders.
Licensed by Nintendo
lotcheck_font_was_rendered_at_24_points.txt#
Found in the font folder:
12:08 PM 3/27/2008
Config Folder#
The config folder contains the configuration files for the game. It has the game data for enemies, objects, the player character, maps, and pretty much the stats of everything in the game. Most of these files are accompanied by a lot of developer comments.
buildable.txt#
Found in the main config folder:
#
# These values are the actor names
# that correspond to the main build
# buttons in the game.
#
# DO NOT CHANGE THE ORDER OF THIS UNLESS YOU ALSO
# GO THROUGH EVERY SINGLE WAVEDEF FILE AND CHANGE
# THE TOWER BUILD AVAILABILITY FLAGS!!
buildable0 SnowballTower_1
buildable1 IceCubeCannon_1
buildable2 IcicleTower_1
buildable3 FrostTower_1
buildable4 SnowmanCatapult_1
buildable5 IceCubeRapidFire_1
buildable6 IcicleBarrage_1
buildable7 FrostbiteTower_1
camera.txt#
Also in the main config folder:
#
# Camera initial settings for Little Blue Wii
#
#
# In the degug (present) version of the game you can change these in
# real time by using the DPAD on the WiiMote.
#
# how high is the camera?
cameraheight 50
# this is a 100-based number that determines the angle of the camera.
# Set it to 100 times the tangent of the camera angle:
#
# 0 degrees == 0 (straight down-looking)
# 30 degrees == 58
# 45 degrees == 100
# 60 degrees == 173
# 72 degrees == 300 (very low-angle view of playfield)
cameraaspect 200
# the bigger this number is, the more the camera
# tightens down when you select.
# Specifically, divide this number by 10 to see how much
# cameraheight is reduced during selection.
selzoomratio 150
newgame.txt#
Also in the main config folder:
# new game information for Little Blue game
#
############# WARNING!! WARNING!!!#######
#
# 03/06/2008 - you must make this agree with the contents of
# the map001_wave001.txt file!!!
#
# The values in this file are only used by the savegame
# selection screen. Sorry for the hack.
#
#########################################
#
# Right now the parser is a bit ... sparse.
#
# Format to use: (remove the # and space at leading edge!)
#
# NewGameDefBegin
# type <A Handy Text String> - which is ignored
# money <how much money>
# life <how much life>
# NewGameDefEnd
NewGameDefBegin
type Easy
money 89
life 20
NewGameDefEnd
NewGameDefBegin
type Medium
money 75
life 8
NewGameDefEnd
NewGameDefBegin
type Expert
money 65
life 1
NewGameDefEnd
ActorDef_Template.txt#
In folder config/Actors is complete template for creating actor definition files. It explains every available parameter (such as health, speed, damage, resistances, build costs, and event triggers) along with which types of actors they apply to.
#########################################
# Actor Definition Template
#########################################
APPLIES TO COMMAND SAMPLE PARAMS EXPLANATION
=============== ======================= =============== =================================================================================================
e t p b i u graphicName name # String name of graphic
t baseName base # String name of graphic to be used as a tower base
e t p b i u category ENEMY # Choose: ENEMY, TOWER, PROJECTILE, ITEM, POWERUP, BLUE
e t p b i u collisionRadius # # Collision radius in world units (note: a Minitile is 10x10 units and a path is 10 units wide)
e t p b i u graphicScale #.# # The base scaling factor to apply to the model or graphic representation
e t p b i u colorTint R G B A # The color tinting to apply to the model of the actor
e boss 0 # Boss flag (makes it a high priority target)
e p health # # Initial health (note: if projectiles have health, it means that they can hit multiple targets)
e p b speed # # Movement speed in units per second (note: a Minitile is 10x10 units)
e speedMul #.# # Initial speed slowdown multiplier when slowed by frost applied instantaniously
e speedRecover #.# # Speed recovery added per second after being slowed by frost
t p damage # # Damage of attacks by this actor (Note: projectiles are actors and define their own damage)
t b damageMul #.# # Damage multiplier when being assisted
t p damageType BLUNT # Choose: NONE, NORMAL, BLUNT, PIERCING, FREEZING (note: freezing has a special property of "slow")
t p damageArea IMPACT # Choose: NONE, IMPACT, RADIUS, CONE, GLOBAL
t p damageAreaRadius # # Set if 'damageArea' is "RADIUS"
t b damageAreaRadiusMul #.# # Multiplier to damageAreaRadius when being assisted
e damageVulnerability PIERCING # Damage types this actor is more vulnerable to -- Choose: NONE, NORMAL, BLUNT, PIERCING, FREEZING
e damageResistance FREEZING # Damage types this actor is resistant to -- Choose: NONE, NORMAL, BLUNT, PIERCING, FREEZING
e timedDamageTime #.# # Total amount of time in seconds to deliver the damage to the afflicted actor
t fireRate # # Rate of fire (i.e. projectiles per minute) or zero
t b fireRateMul #.# # Multiplier to fireRate when being assisted
t p attackRange # # The maximum range at which attacks will be waged (projectiles or direct attacks)
t b attackRangeMul #.# # The multiplier to the attackRange when being assisted
t projectileName name # Name of projectile definition
p projectileArc #.# # The Arc multiplier of the projectile -- 0.25 is a gental arc
p projectileLob 0 # "1"=constant flight time -- projectile will fly high even when target is close
e appetite # # Fish taken/ate when arriving at town (fish=lives)
e bounty # # Value of this when killed (added to "cubes" i.e. money for building)
t buildCost # # How much it costs to build this
t buildTime # # The time to build this (in seconds)
t upgradeCost # # How much it costs to upgrade to the next level
t upgradeName name # Name of Actor type that it will upgrade to
t hotSpot # # # # # HotSpot format: index x y z
e t p b event name NAME #.# # Event def -- Format: name EVENT_NAME timeDelay <event specific params> (Note: Use anim name for anim events)
t burstRate # # Burst of rounds 6 times a minute (burst every 10 seconds)
t burstRounds # # Rounds in each burst (4 seconds to expell 100 rounds)
t aimRandomly # # Randomly fire projectiles in a circle within range
p growthRate #.# # Visual and collision scale rate in scale change per second
p fadeRate #.# # Rate of alpha change in scale change per second
p speedRate #.# # Acceleration/deceleration change in speed in scale change per second
event
level
fishHealthMul
#########################
# "APPLIES" Key: #
# e = ENEMY #
# t = TOWER #
# p = PROJECTILE #
# b = BLUE #
# i = Item #
# u = Powerup #
#########################
Defaults.txt#
Folder config/Actors also has a master settings file that sets the default multipliers for damage, frost slowing, recovery, timed damage, and fish health bonuses.
########################################################
# These are global parameters that apply to all Actors #
# They can be overriden in the individual actor defs #
########################################################
resistanceMul 0.75 # Multiplier to the damage for all actor resistances
# (i.e. if an actor is resistant to something, this is the scale)
vulnerabilityMul 1.25 # Multiplier to the damage for all actor vulnerabilities
speedMul 0.5 # Initial speed slowdown multiplier when slowed by frost applied instantaniously
speedRecover 0.1 # Speed recovery added per second after being slowed by frost
timedDamageTime 5.0 # Total amount of time in seconds to deliver the damage to the afflicted actor
fishHealthMul 0.01 # Multiplier to max health to determine the fish pickup health bonus
# 'POWERUP's which can be picked up by anyone
event 0.0 Fish FISH # Get a fish
# The death animation will trigger this event which will sink the enemy into the snow
event 1.0 DEATH FADE # Format: EVENT <secondsDelay> <name> <eventName>
event 0.001 DEATH FREEZE # Format: EVENT <secondsDelay> <name> <eventName>
Enemy Config Files#
The folder config/Actors/Enemies contains 71 text files defining every enemy and boss in the game. Each file sets parameters such as display name, graphic, scale, collision radius, colour tint, health, speed, resistances, appetite, and bounty.
Nearly all of these files contain commented-out values and developer notes, showing different balance stages that were never removed. For example, many enemies have multiple health values with comments like “#lv 2 old rate” or “#lv 30”, and bosses such as the Yeti include extreme test entries (over 12 million health, lv 240).
Pickup Config Files#
The config/Actors/Pickups folder contains 44 text files for each collectible item. Every file includes developer comments that describe the pickup’s intended effect and sometimes specific values, such duration, strengths, or percentages of bonuses.
Map Comments#
Folder config/maps has the configuration info for all the maps. It has information on the maps’ waves, number of fish, and internal map descriptions.
map000.txt
################################
# MAP000: Tutorial
################################
#
# Tutorial Map
#
################################
map001.txt
################################
# MAP001: Blue Bayou
################################
#
# This is the first map where containing Little Blue's hometown
#
################################
map002.txt
################################
# MAP002: Traveler's Tavern
################################
#
# This is the second map where Little Blue meets Peach.
#
################################
map003.txt
################################
# MAP003: Lucky Lake
################################
#
# This is Peach's home town.
#
################################
map004.txt
################################
# MAP004: Cryptic Cove
################################
#
# Enter the Yeti. Introduce Fishing Holes.
#
################################
map005.txt
################################
# MAP005: Glacier Gorge
################################
#
# Final Battle!
#
################################
map106.txt
################################
# MAP106: Clown Cove
################################
#
# Mini Bloons.
#
################################
map107.txt
################################
# MAP107: Sula Sula
################################
#
# First map to test rough terrain on.
#
################################
map108.txt
################################
# MAP108: Crazy Coil
################################
#
# Quick Play Map.
#
################################
map109.txt
################################
# MAP109: Lima Bean
################################
#
# Quick Play Map
#
################################
map110.txt
################################
# MAP110: Criss Cross
################################
#
# Quick Play Map.
#
################################
map111.txt
################################
# MAP111: Fishing Frenzy
################################
#
# Fishing Map
#
################################
Translation readme Files#
The game’s dialogue is stored in the folders config/maps/en_US and config/maps/es_US. Both folders have a 00_readme.txt file about its contents. For config/maps/en_US:
6:40 PM 3/4/2008
This is the folder for the dialogs for English USA
For config/maps/es_US:
6:40 PM 3/4/2008
This is the folder for the dialogs for Spanish for USA
Nintendo DS Leftovers#
Both the Nintendo DS and Wii version of the game were released on the same day. Because of this, many files are shared between the two games. Some files that were specifically created for one version, can also be found in the other.
Projectiles#
The Wii version contains the files IcicleBarrage_1_ds, IcicleBarrage_2_ds, and IcicleBarrage_3_ds, in config/Actors/Projectiles. The only difference between the DS and Wii versions of these files is that the damage of the DS version is increased for all 3 barrages.
Towers#
The Wii version contains the files Barrage_1_ds, Barrage_2_ds, and Barrage_3_ds, in config/Actors/Towers in addition to the ‘Wii’ version of these files. The only difference between the DS and Wii versions of these files is that the fire rate and burst rounds are increased for the Wii version for all 3 towers.
Map Introductions#
Each map has its own introduction dialogue. This dialogue differs between the DS and Wii versions to account for button/system differences. However, all DS specific map dialogue is also present in the Wii version, for both the English and Spanish translations.
Internal Names#
The game is internally referred to as Little Blue, the name of the main character and the titular penguin that is being defended. In addition, the above shown legal text file lists the copyright notice under the name Defendin’ DePenguin, suggesting this was the trademarked title before it was stylised as Defendin’ De Penguin for release.