the cutting room mirror

Smash Hit

This article has a talk page!
view on tcrf.net

Smash Hit is an endless runner (or perhaps an on-rails shooter) developed by the Swedish indie game studio Mediocre. With over 100 million downloads on the Google Play store alone, it lived up to its title.

Unused Checkpoints#

To do:
Many, many checkpoints from beta versions (though I think these go on the prerelease subpage?)

Old Checkpoint 2 Room 4#

An old version of checkpoint 2's final room, found at rooms/holodeck/bonus_old.lua. The room is quite slow and fairly barren, only having the two sets of three crystals and the single cascade of four crystals on each side, and two ball frenzy power-ups.

Trailer Leftovers#

In version 1.0.0 for Android, there are many mesh files left over for segments that appear in the Smash Hit trailers. Unfortunately, most of them are missing the XML file associated with them, so they are not normally loadable and need to have a dummy file put in place in order to be loaded. This results in some missing obstacles, namely the door from trailer_start. In addition to the XML files being missing, the room file is also not present and needs to be copied from a beta version in order to work. This mostly affects the colour of the fog in the background, mainly in that trailer_end's background colour is not actually known.

While trailer_cave and trailer_basic appear to be copies of other segments from Start and Checkpoint 3 respectively, the other segments appear in the first Smash Hit trailer. They appear at the start and end as their names would imply.

Bosses#

To do:
Get better descriptions. See this video.

Normally, Smash Hit only uses a single boss formation that goes by the name cube and is configured as needed, but there are four other types of bosses that go unused.

Matryshoka#

This boss seems to be named after matryshoka dolls. In its first phrase, a glass cube surrounds the inside, and when that is broken, a smaller part is revealed which will also need to be broken in order to defeat the boss.

Telecube#

The telecube boss will contract itself while it is attacking, and then expand and rotate around during its calm phrase.

Single#

This boss seems to be exactly the same as a small cube boss, just only capable of being a small cube.

Triple#

This boss also seems to be like a cube in the 3-cube configuration, but looking at the font panels, it is possible to see that the two panels next to canon are blank spots on this boss where there would be glass panels on the cube configuration.

Graphics#

Debug Menu#

There is a texture (among other UI data) for a debug menu and button to open it. It does not work when loaded into the game.

Old Help Menu#

In versions before 1.3.0, there was a help menu. To make room for the game mode button in later versions, the help menu was removed, though its files still exist in the current version of the game.

Audio#

Warning#

In early versions of the game, there is a file called warning.ogg located in the HUD folder with a female voice saying "warning." It is never used, and it was removed in a later version of the game.

Basketball Minigame#

There are some files in segments/credits that seem to be for a scrapped basketball minigame. It seems this would have been played after the credits instead of the bowling minigame.

Internal Checkpoint Names#

The checkpoints have internal names, most of them not being immediately obvious:

Checkpoint

Name

Start

basic

Checkpoint 1

night

Checkpoint 2

holodeck

Checkpoint 3

cave

Checkpoint 4

canyon

Checkpoint 5

ocean

Checkpoint 6

cave2

Checkpoint 7

river

Checkpoint 8

brownie

Checkpoint 9

phosphor

Checkpoint 10

hyperspace

Checkpoint 11

city

Endless

endless

Developer Menu#

In the compiled game, there exists a normally uncalled function to draw a debug display and check some inputs. Unlike the red debug menu, this features performance information and options related to testing game content. None of the buttons can be pressed using a touchscreen.

Unused Templates#

Near the top of assets/templates.xml, there are some templates that seem to have been used for testing purposes:

    <!-- TEMP -->
    <template name="blue">              <properties color="0.7 0.8 1.0"/></template>
    <template name="blackfloor">        <properties color="0 0 0" reflection="1" /></template>
    <template name="work_s">            <properties lightLeft=".8" lightRight=".85" lightTop=".9" lightBottom=".75" lightFront="1" fogcolor="1.1 1.1 .9 0 0 .2" softshadow=".75" /></template>
    <template name="work">              <properties tile="19" color="1 .98 .94"/></template>
    <template name="scoretop">          <properties param0="color=.4 .8 1" /></template>

Near the end of the templates, there is also a template for a checkpoint called deathstar, though this is the only mention in released versions:

    <!-- DEATHSTAR -->
    <template name="deathstar_s">       <properties lightLeft="1" lightRight=".75" lightTop="1" lightBottom=".7" lightFront=".9" fogcolor="1.2 1.6 1.8 .1 .2 0" /></template>
    <template name="deathstar_s2">      <properties lightLeft="1" lightRight=".75" lightTop="1" lightBottom=".7" lightFront=".9" fogcolor="1.2 1.6 1.8 .1 .2 0"/></template>
    <template name="deathstar">         <properties color=".72 .74 .7" tile="20" reflection="1" /></template>
    <template name="deathstar2">        <properties color=".54 .58 .5" tile="20" reflection="1" /></template>
    <template name="deathstar_circuit"> <properties tile="35" color=".72 .74 .7"/></template>
    <template name="deathstar_circuit2"><properties tile="24" color=".72 .74 .7"/></template>
    <template name="deathstar_end">     <properties color=".7 1 1.2" tile="20"/></template>
    <template name="deathstar_glass">   <properties param0="color=.7 .73 .75" /></template> 

Development Text#

Throughout various parts of the game, it seems there are many strings left in that go unused. Some seem to be for development tools, others for debug logging and some that are unused because the features never appear in the finished game.

Shader errors:

Failed to compile vertex shader 
Failed to compile fragment shader 
Could not find vertex shader 
Could not find fragment shader 

Some misc. logging:

Current bank allocations: 
System allocations: 
Thread 
canceled
QiString::Data

Font load errors:

Couldn't find font for texture: 
Couldn't read spacing for font: 

Descriptions of level entity parameters (possibly for a level editor):

#SEGMENT#
EItem
template
0 0 0
hidden
visible
RGB or RGBx RGBy, RGBz
tile or tileX tileY tileZ
tileSize
tileSize or tileSizeX tileSizeY tileSizeZ
tileRot
rot or rotX rotY rotZ. 0, 1, 2 or 3
reflection
1 = Enable refections on top
EPowerUp
balls life barrel slowmotion multiball ballfrenzy nitroballs
EObstacle
param0
param1
param2
param3
param4
param5
param6
param7
param8
param9
param10
param11
EDecal
Decal tile index in decal image
Size x, y
Rotation around x, y and z axis in radians
1 1 1 1
Color multiplied with texture
blend
Additive (0) or blended (1) or anthing in between
EWater
resolution
32 32
Segment
20 5 20

Full list of power-up types, including some not otherwise mentioned:

multiball
UNDEFINED
barrel
slowmotion
ballfrenzy
nitroballs
freebie
antigravity
rewind
shield
homing

Related to in-game advertisements used to promote new games Mediocre created:

Wide wide screen detected
Reporting stats 
Stats successfully reported
Downloading 
Error writing local file
Failed to download
Checking 
Ad revision 
New ad revision ready

Strings for the development menu:

Init time: 
Tick time: 
Draw time: 
Draw calls: 
Not loaded
[clear]
Menu scene
Movie scene
Hud scene
Level draw calls: 
Total draw calls: 
Allocations: 
Allocated: 
Texture memory: 
Levels
Rooms
Segments
[generate sync]
[generate all]
Obstacles
 properties
[reload]
[edit]
[copy]
obstacletest properties
/data/rooms/obstacletest.lua
 --- 

Related to dresscode (profiler):

dresscode.tmp
basic_string
Dresscode tick
Dresscode send

Some errors:

GetProperty: Object not found: 
GetProperty: illegal argument: 
SetProperty: Object not found: 
SetProperty: illegal argument: 
Command: 
Unknown command: 

Logs seemingly related to game startup:

zh_hans
Language: 
32 bit
64 bit
Starting up
32 bit arch detected
64 bit arch detected
----
Main ResMan
\nMenu ResMan
\nMovie ResMan
\nHud ResMan
\nLevel ResMan

Oddities#

  • The file about/main.lua appears to have been used as some sort of animation or possibly for the credits, but Smash Hit does not use these and the contents of the file only appear to be boilerplate.
  • Some room's segment files appear to be more or less organised than others. For example, in segments/holodeck, the segments are all in one folder, while in most other checkpoints' segments folders they are split by what room they belong to.