C.C.P

Director & Designer

You play as an engineer trapped in the digital world.  Using your incredible cut, copy, and paste abilities, find a way to solve the puzzles that come your way and make it back home.  

Cut, Copy, Paste

When I originally pitched the main mechanic for the game it was meant to be a fast-paced adventure platformer cutting through trees, walls, and such blocking the path until you get to the end where you might copy one of the boss's strike and paste it back on top of him for damage or even shredding a slime enemy to pieces.  The idea of affecting one's own environment is what the team really latched onto and we created here.  

I was tasked with creating the main mechanic in our custom engine.  The selection mechanic for the abilities with through a plethora of iterations.  The original had players click and drag to select everything in that region.  This at times was hard to perform and many players would only want to select one block anyway so it was changed to single selection on clicking a block.  For more precision, selection was applied to a grid and to normalize the mechanic the paste followed shortly after.

Control scheme

Along the way, the control scheme was also changing.  In the beginning it was z, x, and c.  People are already familiar with these buttons from any word editor, however, they did not translate as well in game.  The change was to use Q and E for cut or copy modes respectively.  Even still, players struggled to remember the current state one was in.  The mechanics definitely needed to be moved to the mouse to centralize them since by design selection would always be there.  The idea of using the scroll wheel to switch states, left click for the active state's ability, and right click to paste gained a lot of traction for a while but could not currently be implemented due to engine limitations.  In the meantime, I implemented what would be our final control scheme:  left click to cut, right click to paste, and while any item was stored either button would be paste it.  The benefits of this scheme are that there is no state to track between cutting or copying, it can be created with the current input system, and players do not actually have to remember a paste button, using whatever is most comfortable for them.    

In addition, I also implemented a button mapping system.  There were multiple options for certain controls that were valid for the same function  with research to back it up.  Jump, for example, is mapped to either 'W' or Space depending on the game.  At one point, I did experiment with using  either key depending on which key is pressed first which works in a game such as Halo where it is explicitly stated to "Look up" and the controls are possibly then inverted.  Playtesters ran into too many problems with accidental presses like this.  In the end, both keys were defaulted to jump.  Afterward, a player could remove that functionality in the settings or remap any of the other keys from the settings menu especially since there were players who still preferred some of the cut, copy, paste control schemes.  

Block Types
  • Static Blocks      

  • Dynamic Blocks

  • Timer Blocks

  • Spike Blocks      

                                     

  • Moving Blocks   

  • Fade Blocks       

                                 

  • Push Blocks        

  • Bouncy Blocks  

Non-kinematic blocks unaffected by outside forces      

Kinematic blocks that could be pushed but not pasted

Static Blocks that were destroyed after a period

Spikes would kill the character if he landed on them      

                                     

Blocks that move on preset patterns   

Static Blocks that fade in and out       

                                 

Dynamic Blocks that could not be pasted       

Blocks that would spring the player away from the block 

Listed are all block types included in the game.  I personally implemented all except the Push and Bouncy Blocks.  I wanted to keep the blocks simple for the most part so that any player could easily pick up the game and start solving puzzles.  More depth could come from using the blocks in interesting ways with so many combinations between them rather than a greater number of types.  The primary characteristics of all blocks were that certain ones could only be cut, copied, or pasted.  Other than that they all had some sort of special property differentiating them.  The first set of blocks were the simpler ones.  

Moving Blocks were more interesting implementation wise.  I wanted to give other designers a lot of power when using these so there are many options that can be changed as they head to each point on the path.  In addition, any number of points could be placed along there path.  In the game, these are also used to push other blocks out of the way, cutting the proper block to initiate a chain reaction.  

Fade Blocks were a weird combination of both spike and timer blocks in that it would "leave" the game like a timer, yet it would kill the player on return more like a spike.  A big struggle with these was making sure players knew how much time they had before the block would leave or return.  I eventually developed a dampened sine wave that accurately accelerate flickering the opacity which worked wonders in readability.  

© 2019 Kyle Elam Game Designer