Prototype Build

The A Hat in Time Prototype was a version of the game predating the alpha build. It was largely used to present the game for funding on Kickstarter and Steam Greenlight.

## Distribution

"Different" versions of the prototype were distributed to Gaming Sites and Youtube Channels in June of 2013 to spread word of the game and it's crowdfunding. The respective person was to talk about it on their site or in a video, generally giving their thoughts on the prototype.

These "different" versions were labeled using the creators name, for example "Prototype 0.01 vBrutalmoose". Contrary to the different titles many of them were seemingly identical with a different property in the Demo Menu to showcase a different name. However, a few do contain different content, most notable being vGoBoiano as it's earlier than later versions, and vGaijinGoomba which contained a sneak peak at Subcon Forest

### Redistribution

In 2018 former possessors of the Prototype, GoBoiano and CosmoSpeedruns were asked by curious fans if they still had their versions of the Prototype. Upon obtaining the GoBoiano prototype and sharing it with others, Gears for Breakfast asked for the builds, namely vGoBoiano to be deleted, or at the very least to not be redistributed. It isn’t clear where the verdict currently stands.

## UDK/Unreal Tournament Features

One fascinating thing about the Prototype is the abundance of UDK functions removed later and Unreal Tournament features remaining functional.

### .bik Video Format

Several video files are in the prototype, some of which are played. .bik files are a base part of UDK and Unreal Engine 3, they are used to play prerendered videos in the engine. This is used in the prototype for the UE3\_logo.bik before the game cuts to the DemoMenu, hatintime\_loading.bik which serves as the Loading Screen, and most prominently creditroll.bik which plays whenever you collect a Timepiece. This base engine feature was removed as the .bik format requires a expensive license not included with the purchase of the already expensive Source Code.

Creditroll.bik
### UDKFrontEndMap.upk

Within the prototype the UDKFrontEndMap is present. This is a menu included with UDK, it allows you to load into maps with the unreal tournament deathmatch game mode, which allows for some humorous results. Strangely, this functionality only works properly in vCosmo, in vGoBoiano you simply boot into a level as you would from the DemoMenu.

## vGoBoiano

### Gallery

A Hat in Time -Prototype Version Goboiano- - Longplay -Keyboard-
## SpilBar Copenhagen

### Changes

#### Imports/Reimports Since Last Build

* StaticMesh'HatInTime\_Levels\_London\_Habboi.models.tea\_fluid\_02'
* StaticMesh'HatInTime\_Levels\_London\_Habboi.models.tea\_clock\_chains'
* SoundNodeWave'HatInTime\_Levels\_Harbor.SoundWaves.button01'
* SoundNodeWave'HatInTime\_Chapter1.music\_soundwaves.Ch1\_Act1\_Cs2'
* SoundNodeWave'HatInTime\_Chapter1.music\_soundwaves.Ch1\_Act1\_Cs3'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_bell\_structure'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_main\_dock\_01'
* StaticMesh'HatInTime\_Levels\_Cake\_Trey.birthday\_candle\_flamethrower\_tall01'
* StaticMesh'HatInTime\_Levels\_Cake\_Trey.birthday\_candle\_flamethrower\_short01'
* StaticMesh'HatInTime\_Levels\_Cake\_Trey.platform\_cake\_slice01'
* Texture2D'HatInTime\_Levels\_Cake\_Trey.platform\_cookie\_diffuse01'
* Texture2D'HatInTime\_Levels\_Cake\_Trey.cake\_base01'
* Texture2D'HatInTime\_Levels\_Cake\_Trey.icing\_base01'
* StaticMesh'HatInTime\_Levels\_Cake\_Trey.platform\_cookie01'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_beach\_platform'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_stairs\_10'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_stairs\_06'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_trap\_door’
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_wooden\_structure'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_main\_dock\_02'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_dock\_02\_posts'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_dock\_02'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_dock\_01\_boards'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_dock\_02\_boards'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_dock\_01\_posts'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_dock\_01'

## vCosmo

### Changes

#### Imports/Reimports Since Last Build

* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_spicy\_sign'
* SoundNodeWave'HatinTime\_Music\_SecretLevels.SoundWaves.TimeTrials'
* SoundNodeWave'HatinTime\_Music\_SecretLevels.SoundWaves.TimeRace'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_curved\_path\_02'
* SkeletalMesh'HatInTime\_Characters.models.timtimelord'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_ruins
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_04'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_05'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_06'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_01'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_02'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_03'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_07'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_08'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_09'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_10'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_11'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_12'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_13'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_14'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_15'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_16'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_17'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_18'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_19'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_20'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_21'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_22'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_23'
* SoundNodeWave'HatInTime\_Voice\_MafiaKyle.SoundWaves.Talk\_24'
* Texture2D'HatInTime\_Levels\_LondonSecret.Textures.Arrow'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.cubedicetest'
* Texture2D'HatInTime\_Levels\_Tutorial.Textures.tutorial\_attack\_gamepad'
* Texture2D'HatInTime\_Levels\_Tutorial.Textures.ducktodive'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_ya02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_ah01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_ah02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_whoah02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_ow01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_ow02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_ah01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_ah02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_gasp01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_gasp02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_gasp03'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_gasp04'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_gasp05'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_hah01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_hah02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_huh01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_huh02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_hut01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_hut02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.jump\_ya01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_ack02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_ack01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_unf01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_unf02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_whoah01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_yikes01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.hurt\_yikes02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_heh01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_heh02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_heyah01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_heyah02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_ho01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_ho02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_ya01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_ya02'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_yeah01'
* SoundNodeWave'HatInTime\_Voice\_HatKidApphia.SoundWaves.attack\_yeah02'
* SoundNodeWave'HatinTime\_Music\_Characters.SoundWaves.TimTheme'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_building\_20'
* Texture2D'HatInTime\_UI\_DemoMenu.Textures.availablefunding'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_slide'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_pool'
* Texture2D'HatInTime\_Hud.Textures.hatintime\_logo'
* SkeletalMesh'HatInTime\_Eric.SpringJumpSkel'
* Texture2D'HatInTime\_Hud.Textures.prototype\_watermark'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_l\_block'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_box\_spike'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_hole'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_large'
* StaticMesh'HatinTime\_Habboi.models.forest\_plant'
* Texture2D'HatinTime\_Habboi.Textures.Flower'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_thin'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_cog'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_cog\_pole'
* StaticMesh'HatInTime\_Eric.ElecParticle'
* StaticMesh'HatInTime\_Eric.ElecParticle\_BottomAligned'
* StaticMesh'HatInTime\_Eric.ElecParticle2'
* Texture2D'HatInTime\_Eric.LightningBall\_tex'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_circular\_two'
* StaticMesh'HatInTime\_Levels\_LondonSecret.models.platform\_circular\_four'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_distant\_island\_large'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_island\_distant'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_cave\_island'
* StaticMesh'HatinTime\_Habboi.models.island'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.cave\_island\_rocks’
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_cave’
* StaticMesh'HatInTime\_Eric.LightningRod'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_rock\_puzzle'
* StaticMesh'HatInTime\_Levels\_Foliage.models.grassstraws\_square01'
* StaticMesh'HatInTime\_Levels\_Foliage.models.grassstraws\_square02'
* StaticMesh'HatInTime\_Levels\_Foliage.models.grassstraws\_square03'
* StaticMesh'HatInTime\_Levels\_Foliage.models.grassstraws01'
* StaticMesh'HatInTime\_Levels\_Foliage.models.grassstraws02'
* StaticMesh'HatInTime\_Levels\_Foliage.models.grassstraws03'
* Texture2D'HatInTime\_Levels\_Harbor\_remade.Textures.coral'
* StaticMesh'HatInTime\_Levels\_Harbor\_remade.models.harbour\_coral\_01'
* StaticMesh'HatInTime\_Eric.PounderStatM'
* Texture2D'hatintime\_ui\_demomenu.Textures.challenge1'
* Texture2D'HatinTime\_Habboi.Textures.stone\_base'
* Texture2D'hatintime\_ui\_demomenu.Textures.challenge2'
* StaticMesh'HatinTime\_Habboi.models.Stone'
* Texture2D'hatintime\_ui\_demomenu.Textures.challenge3'

#### Localization Changes

Underlined files indicate they were added in this build. If something is crossed out, it has been removed.

##### bird.int

* [chapter1act1]

* divejump0 = Look at this girl. Look at how small and incapable of platforming she is.
* divejump1 = She doesn't look like she's with the mafia.
* divejump2 = She probably doesn't even know she can crouch using [button]Right Trigger[/button] ([button]CTRL[/button]) in mid-air to do a dive move.
* divejump3 = [scream]Hah![/scream][wait] She'll probably fall in the river.

* river0 = Told you she'd fall in the river.
* river1 = Looks like the little fool forgot she can do a dive in mid-air by pressing [button]Right Trigger[/button] ([button]CTRL[/button]).
* river2 = Everyone saw it coming.

##### debug.int

* [mafia]

* mumbletest=Igem bugem I am a mafia blah blah bleh!

##### forestvillage.int

* villageintro1 = [shake]Run away, Kid. I am planning an escape myself, as soon as-[/shake]
* villageintro2 = [shake]I... really... like it... here...[/shake]
* villageintro3 = [shake]Welcome to the greatest place in the world, The Subcon Village. It's great here...[/shake]

* ~~[moonjumper]~~

* ~~villageintro0 = Oh hello there young child! You just forget about this guy, he gets a little crazy sometimes.~~
* ~~villageintro1 = You should come visit me in the forest later, I have some good stories to tell!~~

##### mafia\_npc.int

* paint0 = I not understand, this is guide for vehicle?

* doublejump0 = Did fellow mafia watch TV last night? Confusing science owl say small people can [hint]jump double in air[/hint].
* doublejump1 = I saw. This makes mafia uncomfortable with body, must go work out.

* ~~paint1 = ...Bro, why? What do they even mean?~~
* ~~paint2 = It's, uh... err... I don't know...~~
* ~~paint3 = I not understand, this is guide for vehicle?~~

* goldtie0 = [wave]Look! at! me! I am man... of gold![/wave]
* goldtie1 = Gold all mine, I work hard in mines for 20 years for gold tie.

* magic0 = My magic trick make man walk on water, but require [hint]full mafia attention[/hint]...
* magic1 = So hard not to think of how beautiful mafia is... [shake]hnnghh[/shake]...

* magicfail0 = Arrghh!

* secretitem0 = Mafia think there is way to get to item. But mafia no time to search if mafia need to stare at pretty item.

* giraffe0 = Mafia make stone floor out of giraffe!

##### moonjumper.int

* [forestlookout]

* whatusee0 = Ask me, my child, what does my eye gaze upon?
* whatusee\_opt0 = A girl in red?
* whatusee\_opt1 = A village of the dead?
* whatusee\_opt2 = A prize in a shed?
* whatusee\_opt3 = Nevermind!

##### mustachegirl.int

* rescue1 = I know where you can find more of these Time Objects, meet me up at the tower tomorrow!

* helpme0 = [scream]Argh!![wait] Someone stomp on these poopyheads already![wait] Let me go![/scream]

##### tim\_time.int

* capture2 = And look how far up we are! Everything is so tiny up here! It's so funny!
* capture3 = [wave]Hahahahaha!![/wave]
* capture4 = .[waitlong].[waitlong].
* capture5 = Oh... I feel like I've dropped something...
* capture6 = [scream]Hah![/scream][wait] Got it!
* capture7 = Hey, kid with the hat! Let's play a game!
* capture8 = [hint]Catch me[/hint] and I'll give back your umbrella!

##### timetrial\_ghost.int

* race0 = Wanna race me? My record is [x] by [y]!
* race1 = No current record set!

* race\_yes = Yes
* race\_no = No

* race\_record = [Record]
* race\_record\_cosmo = [Record Cosmo]

##### tutorial.int

* welcome0 = Welcome to [hint]A Hat in Time prototype[/hint]! This game is a collect-a-thon platformer, which means we've left [hint]goodies[/hint] all over the level!
* welcome1 = ... so basically we made a game for Becky. Yay!
* welcome2 = [hint]Explore[/hint] a little! [hint]Talk[/hint] to people! ...Or breeze through it if you're impatient!

### Gallery

A Hat in Time -Prototype Version Cosmo- - Longplay -Keyboard-