file_id.diz
SNACK HARRIER
2016 Gamejam @ TG16
Code and 3d assets by David "Moycakes" Gross
2d assets by Dylan 'Agushi' Huskey
Sound track by kullingmusic
To run, you'll probably want to visit the link, or host this yourself, as I am
not sure if AJAX calls work for file:// based resources.
http://88.92.42.149/wax/main.html (while at TG)
http://moy.pink/space_harrier/main.html (after TG)
To play:
Navigate to the SNACK HARRIER folder, and run main.html in Firefox, or use a URL above in Chrome/Firefox
Arrow keys
Resources used: (google'd for, with free to use license selected.)
https://pixabay.com/static/uploads/photo/2013/07/13/12/40/cheese-160099_960_720.png
Software used:
Notepad++
Blender3d
GIMP
DaeBreaker (inhouse, parses collada files and exports JSON objects, requires ASSIMP)
WAX renderererer (inhouse, heavily WIP)
????:
[3:04:33 PM] Moy: So the theme of the game contest here is "weightlessness"
[3:04:46 PM] Moy: So I'm gonna do a game, where you play a spray can of cheese in space
[3:04:50 PM] Moy: The space snack truck crashed
[3:04:55 PM] Moy: So you need to feed the space tourists
[3:05:13 PM] Moy: And to do that, you have to navigate the bunches of space snacks, and spray them spray cheese
[3:05:20 PM] Moy: Also, spraying cheese is the only way you can move
[3:05:33 PM] Moy: And there will be things like crackers, and fruit
[3:05:48 PM] Moy: Cheese landing on fruit reduces score, and it landing on snacks gives you score
TODO:
Add collision between player and food stuffs.
Polish everything up.
Add some kind of level system thing. (Perhaps get X perfect meals triggers a change.)
SNACK HARRIER
2016 Gamejam @ TG16
Code and 3d assets by David "Moycakes" Gross
2d assets by Dylan 'Agushi' Huskey
Sound track by kullingmusic
To run, you'll probably want to visit the link, or host this yourself, as I am
not sure if AJAX calls work for file:// based resources.
http://88.92.42.149/wax/main.html (while at TG)
http://moy.pink/space_harrier/main.html (after TG)
To play:
Arrow keys
Resources used: (google'd for, with free to use license selected.)
https://pixabay.com/static/uploads/photo/2013/07/13/12/40/cheese-160099_960_720.png
Software used:
Notepad++
Blender3d
GIMP
DaeBreaker (inhouse, parses collada files and exports JSON objects, requires ASSIMP)
WAX renderererer (inhouse, heavily WIP)
????:
[3:04:33 PM] Moy: So the theme of the game contest here is "weightlessness"
[3:04:46 PM] Moy: So I'm gonna do a game, where you play a spray can of cheese in space
[3:04:50 PM] Moy: The space snack truck crashed
[3:04:55 PM] Moy: So you need to feed the space tourists
[3:05:13 PM] Moy: And to do that, you have to navigate the bunches of space snacks, and spray them spray cheese
[3:05:20 PM] Moy: Also, spraying cheese is the only way you can move
[3:05:33 PM] Moy: And there will be things like crackers, and fruit
[3:05:48 PM] Moy: Cheese landing on fruit reduces score, and it landing on snacks gives you score
TODO:
Add collision between player and food stuffs.
Polish everything up.
Add some kind of level system thing. (Perhaps get X perfect meals triggers a change.)drawable.prototype.make_buffer_pnu = function(pos_, normals_, uvs_, indices_){
console.log("DEPRECATED");
return;
if(!this.shader){
console.log("Trying to make a drawable with no shader.");
return 0;
}
this.shader.bind();
this.clear();
this.type = DRAWABLE_PNU;
this.tris = pos_.length / 3;
this.numIndices = indices_.length;
if((pos_.length / 3) != (normals_.length / 3) || (pos_.length / 3) != (uvs_.length / 2)){
console.log("Length of pos, normals, and UVs not equal.");
return 0; // Mangled up data.
}
// I'm sure this could be optimized a bit more. As in using a single buffer for PNU data. I'll deal with it when I made a dae->JS-array converter.
this.bufPos = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, this.bufPos);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(pos_), gl.STATIC_DRAW);
this.bufNorm = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, this.bufNorm);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(normals_), gl.STATIC_DRAW);
this.bufUv = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, this.bufUv);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(uvs_), gl.STATIC_DRAW);
this.bufIndices = gl.createBuffer();
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.bufIndices);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices_), gl.STATIC_DRAW);
this.ok = 1;
/*console.log("pos", pos_);
console.log("norm", normals_);
console.log("uv", uvs_);
console.log("indices", indices_);/**/
return 1;
}
if(this.shader.aPos != -1){
gl.bindBuffer(gl.ARRAY_BUFFER, this.bufPos);
gl.vertexAttribPointer(this.shader.aPos, 3, gl.FLOAT, false, 0, 0);
}//else console.log("no aPos");
if(this.shader.aNorm != -1){
gl.bindBuffer(gl.ARRAY_BUFFER, this.bufNorm);
gl.vertexAttribPointer(this.shader.aNorm, 3, gl.FLOAT, false, 0, 0);
}//else console.log("no aNorm");
if(this.shader.aUv != -1){
gl.bindBuffer(gl.ARRAY_BUFFER, this.bufUv);
gl.vertexAttribPointer(this.shader.aUv, 2, gl.FLOAT, false, 0, 0);
}//else console.log("no aUv");
if(this.shader.uDiff){
gl.activeTexture(gl.TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, tex.id);
gl.uniform1i(this.shader.uDiff, 0);/**/
}