A downloadable asset pack

Download NowName your own price

To use the Launcher make sure there is a CopperCube game with the name "Game.exe" residing in the same directory as the launcher.


Hi there, CopperCube 6.7 has not yet been released but there are some APIs that have been updated in the engine that you will be able to use in the upcoming update.

This is a launcher application for your CopperCube games with the bugfixes and new API commands to use. You can use the commands and all the bugs that have been fixed by me with this launcher, without waiting for the next release of Coppercube.

This launcher will be going to get more updates in the future with new features and bug-free releases, along with some other tools to ease out CopperCube Development.

NOTE:- Right now there is just the launcher file available to download, A demo file will be added soon with samples for the API and other related stuff for a better understanding of how to use the functions and commands. A dedicated video tutorial is also planned. 

Below is the list of API commands and bug fixes in this updated launcher.

ccbActivateJoystick()
Activates the controller support for your game. Also returns the joystick information like numbers of button, axes, joystick id, name etc.
ccbRegisterJoyButtonEvent(funcstr)
Returns the bitmap mask of the currently pressed button.
ccbRegisterJoyPovEvent(funcstr)
Returns the pov value (generally angles)
ccbRegisterJoyAxisVerticalEvent(funcstr)
Returns axis  value  vertically  -1  for down  +1  for up.
ccbRegisterJoyAxisHorizontalEvent(funcstr)
Returns axis value horizontally  -1  for left  +1  for right.
ccbRegisterJoyAxis2VerticalEvent(funcstr)
Returns second axis  value  vertically  -1  for down  +1  for up.
ccbRegisterJoyAxis2HorizontalEvent(funcstr)
Returns seconf axis value horizontally  -1  for left  +1  for right.
#joybuttonpressed.button
Special coppercube variable that returns the button state of a joystick  button. "true" if button is pressed down, "false" if button is not down.
ccbRenderToTexture(node, material index, camera, X resolution, Y resolution, node to be excluded);

An update to the RTT command, you can now provide node as an extra parameter that you don't want to get rendered in the texture. Useful in cases of 2D overlays. 

ccbGetParentSceneNode(node)
Returns the parent node of a scenenode.
ccbGetSceneNodeGravity(node)
Coppercube nodes have individual gravity, per object gravity. It returns the current gravity of a scenenode.   (Now has been removed, as the gravity has been added as an atrribute)
ccbSetSceneNodeGravity(node,gravity)
Set gravity of a scenenode. As Coppercube nodes have per object gravity.   (Now has been removed, as the gravity has been added as an atrribute)
ccbLoadModel("path/filename")
Loads a static 3D model dynamically during runtime. Doesn't support all the  model formats at the time. Right now it supports (.obj, .csm, .bsp, .stl, .dmf, .lmts, .my3d, .oct, .ogre, .irrmesh, and .md2)  only.
ccbPackTextures(texture1,texture2,"newTextureName")
Pack two textures into 1, in a horizontal increase, can be used multiple times to pack more than 2 ;textures together.
ccbRemoveTexture(texture)
Removes the provided texture from the memory, won't remove it from the objects that use this texture and can be useful in reloading external textures after they have been changed.
ccbSetScreenResolution(ResX, ResY)
Update the actual screen resolution in runtime. Can only switch to the current available resolution for your screen.
ccbSetGameResolution(ResX,ResY)
Update the internal resolution of the game. This is different from changing the actual display resolution.
ccbSetCollision(node,true/false)
Update the collision of scene node during runtime. You can turn the collision On and Off.
ccbMakeSceneNodeJump(node, jumpForce)
Makes any scene node with Collide when moved behavior attached to jump.
ccbSaveSoundFile("filename",index)
Allows you to save sound files to your computer in .wav format.
ccbStartRecordingAudio()
Starts recording audio from the mic.
ccbStopRecordingAudio()
Stop recording the previsoulsy started audio recording.
ccbSaveRecordedAudioToDisk("Filename.wav")
Saves the recorded audio to disk in .wav format.
ccbSaveRecordedAudioToMemory("Filename")
Saves the recorded audio to memory and can be later accessed with ccbPlaySound(). It gets cleared and won't be saved or accessible after the game is closed.
ccbRemoveSound("FileName")
Removes the sound source, useful when removing recorded audio from memory.
ccbAddSound("SoundFile", "Alias")
Add the sound to the game with the new alias name assigned to it, you can use the alias name to play the sound, can be used to have a single sound file played differently with different sound effects.
ccbPlaySound("SoundFile","Repeat(bool)","SoundType(2D/3D)","SoundProperty","PropertyParameters")
Plays a sound in 2D or 3D also allows to update of sound properties and sound effects. There are multiple properties and every property has its own property parameter.

Below is the list of Sound Properties that you can use with the  above command:-

PlaybackSpeed
This property contains a float value. Changing this will result in a change in the playback speed of the sound, It also changes the pitch as well.
Pause
It is a boolean property that decides if a sound needs to be paused or not.
Pan
it is an integer property type that allows panning the sound to the left, right, or center. It can only have -1, 0, and 1 value.  
Volume
It is a float value to update the volume of a sound.
Looping
It is a boolean property type that wil decide if the sound should be looping or  not.
EnableSoundEffect
This is a soundFX property type it enables sound effects. Sound effects can have their own optional properties.
DisableSoundEffect
This is a soundFX property type it disables sound effects. Sound effects can have their own optional properties

Properties for 3D sounds only:-

Radius
A float type property. Changing it will affect the radius of 3D sounds.
Position
A vector3d property type. Sets the Position of a 3D sound in the scene.
Velocity
A vector3d property type. Sets the Velocity of the 3D sound, Useful with Doppler Effects API.

SoundFX types and their parameters:-

Below are the available soundFX type and their optional parameters with their default value. You can specify these parameters to get results with more sophisticated effects.

  • Chorus
WetDryMix = 50, Depth = 10, Feedback = 25, Frequency = 1.1, sinusWaveForm = true, Delay = 16, Phase = 90 
  • Compressor
Gain = 0, Attack = 10, Release = 200, Threshold = -20, Ratio = 3, Predelay = 4
  • Distortion
Gain = -18, Edge = 15, PostEQCenterFrequency = 2400, PostEQBandwidth = 2400, PreLowpassCutoff = 8000
  • Echo
WetDryMix = 50, Feedback = 50, LeftDelay = 500, RightDelay = 500, PanDelay = 0 
  • Flanger
WetDryMix = 50, Depth = 100, Feedback = -50, Frequency = 0.25, triangleWaveForm = true, Delay = 2, Phase = 0
  • Gargle
rateHz = 20, sinusWaveForm = true
  • I3DL2
Room = -1000, RoomHF = -100, RoomRolloffFactor = 0, DecayTime = 1.49, DecayHFRatio = 0.83, Reflections = -2602, ReflectionsDelay = 0.007, Reverb = 200, ReverbDelay = 0.011, Diffusion = 100.0, Density = 100.0, HFReference = 5000.0
  • ParametricEqualizer
Center = 8000, Bandwidth = 12, Gain = 0
  • Reverb
InGain = 0, ReverbMix = 0, ReverbTime = 1000, HighFreqRTRatio = 0.001

 
Sample  Code for usage of Sound API:-

ccbAddSound("music.wav", "Sound2D");
ccbAddSound("music.wav", "Sound3D");
ccbAddSound("music.wav", "SoundWithEffects");
// play a 2D sound  
ccbPlaySound("Sound2D",false,"2D"); 
// Play a 3D sound with a radius of 100, by default 3D sound  plays  at radius of 1.
ccbPlaySound("Sound3D",false,"3D", "Radius", 100); 
// Play a 2D sound with Reverb effect with default values.
ccbPlaySound("SoundWithEffects", false,"2D", "EnableSoundEffect","Reverb")


New vector3d methods :-

  • dot  -   Returns the dot product of two vectors.
vector1.dot(vector2)
  • cross  -  Returns the cross product of two vectors.
vector1.cross(vector2)
  • clone  -  Creates a new vector3d object that is an exact copy of the original vector3d object but with a different instance
vector.clone()
  • angle   -  Returns the angle between two vectors from vector1 to vector2.
vector1.angle.vector2
  • max  -  Returns a new vector that is made from the largest components of two vectors.
vector1.max(vector2)
  • min  -  Returns a new vector that is made from the smallest components of two vectors.
vector1.min(vector2)
  • distance  -  Returns the distance between vector1 and vector2.
vector1.distance(vector2)
  • lerp   -  Linearly interpolates between two vectors.
vector1.lerp(vector2, t)
  • slerp  -  Spherically interpolates between two vectors.
vector1.slerp(vector2, t)
  • moveTowards  -  Calculate a position between the points specified by a current vector(vector1) and target vector(vector2), moving no farther than the distance specified by maxDistanceDelta.
vector1.moveTowards(vector2,maxDistanceDelta)
  • multiply -  Multiply a vector by a scaler value.
vector1.multiply(scaler)
  • divide  -  Divide a vector by a scaler value.
vector1.divide(scaler)
  • scale  -  Multiplies two vectors component-wise.
vector1.scale(vector2)
  • reflect  -  Reflects a vector(vector1) off the plane defined by a normal(vector2).
vector1.reflect(vector2)
  • magnitude  -  Returns the length of the vector, same as getLength()
vector.magnitude()
  • sqrMagnitude  -  Returns the squared length of the vector.
vector.sqrMagnitude()
  • clampMagnitude  -  Returns a copy of the vector with its magnitude clamped to maxLength.
vector.clampMagnitude(maxLength)

Shorthand functions for vectors:-


  • back  -  Shorthand for writing vector3d(0, 0, -1).
vector3d.back()
  • down  -  Shorthand for writing vector3d(0, -1, 0).
vector3d.down()
  • forward  -  Shorthand for writing vector3d(0, 0, 1).
vector3d.forward()
  • left  -  Shorthand for writing vector3d(-1, 0, 0).
vector3d.left()
  • right  -   Shorthand for writing vector3d(1, 0, 0).
vector3d.right()
  • up  -  Shorthand for writing vector3d(0, 1, 0).
vector3d.up()
  • one  -  Shorthand for writing vector3d(1, 1, 1).
vector3d.one()
  • zero  -  Shorthand for writing vector3d(0, 0, 0).
vector3d.zero()
  • negativeInfinity  -  Shorthand for writing vector3d(-Infinity, -Infinity, -Infinity).
vector3d.negativeInfinity()
  • positiveInfinity    -  Shorthand for writing vector3d(Infinity, Infinity, Infinity).
vector3d.positiveInfinity()


Attributes type for Scenenodes:-

These attributes can be altered using ccbSetSceneNodeProperty() and GetSceneNodeProperty() commands.

  • Id  -  This attribute will return the id of a scene node.
  • Gravity  -  This attribute will return the gravity of a scene node.
  • TextAlpha  -  This will return the alpha value for 2D overlay text.


Bug Fixes and other updates:-


Below is the list of bug fixes and other general  updates:-


  • -> Updated system() command to return the cmd output as a javascript string to the script engine. Works for Windows only.
  • -> Fixed the bug for the ccbChangePositionWithoutCollision() command that was not resetting the collision animator when the physics simulation was turned on.
  • -> Fixed a bug with the Proximity behavior that was not treating the node as the current node for the action attached to it.
  • -> Fixed a bug with the Disable Clipping option of FPS camera, previously it was disabling clipping for top-level children of FPS camera, now it handles
       children of children as well.
  • - > Update to almost all of the javascript command that uses a node name. instead of using ccbGetSceneNodeFromName() you can now directly feed the name of the node to any command that requires a node as an input parameter.
  • -> FIxed font rendering for 2D overlays has been improved. Artifacts around regular fonts will not be there anymore for most of the fonts.  Some fonts might still have artifacts, and italic fonts still don't work properly.










StatusIn development
CategoryAssets
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorGlitched Velocity

Download

Download NowName your own price

Click download now to get access to the following files:

Launcher.zip 3 MB
Joystick Controller Example CCB 4 MB

Development log