Skip to content

Commit

Permalink
no jekyll
Browse files Browse the repository at this point in the history
  • Loading branch information
Rybar committed Mar 6, 2022
1 parent b2f9162 commit 4aa8a36
Show file tree
Hide file tree
Showing 12 changed files with 438 additions and 438 deletions.
Empty file added .nojekyll
Empty file.
82 changes: 41 additions & 41 deletions ideas.txt
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
Things I want to learn/tackle in this game:
ray collisions / rotated collisions, "non tile" / "non AABB" collisions and response
procedural character animation
walks with multiple legs
bipedal
quadruped/spider
dynamic number of limbs
complex child/parent relationships, multi-sprite entities (bosses/big characters)
complex-looking enemy behavior using sensors
an elegant 2.5d solution with proper draw sorting
"tall tiles" ?
fun feature ideas:
tilemap-based objects
use small 4px or 8x tilemap designs as objects in game
some kind of dynamic lighting
pre-rendered light/dark copies of tilesheet graphics
dynamic tilemap effects
pre-rendered sprite rotations ?




top-down shooter roguelike where you can pilot multiple machines in the world
abandon them when damaged or need a smaller one to proceed
some roll, some walk, will have to swap to traverse some terrains / fit in tight spaces

a hunter/gatherer roguelike with a day/night cycle. At night monsters come to eat you.
single-map game, but big enough for a scrolling camera
arcade-like loop, less content creation, more iteration on fun-ness
See pico8 fisher game

a peaceful big-world exploration walkabout with lots of unique collectibles
multiple creature types, all peaceful
opportunity to code big multi-page inventory UI
crafting? -scope






Things I want to learn/tackle in this game:
ray collisions / rotated collisions, "non tile" / "non AABB" collisions and response
procedural character animation
walks with multiple legs
bipedal
quadruped/spider
dynamic number of limbs
complex child/parent relationships, multi-sprite entities (bosses/big characters)
complex-looking enemy behavior using sensors
an elegant 2.5d solution with proper draw sorting
"tall tiles" ?
fun feature ideas:
tilemap-based objects
use small 4px or 8x tilemap designs as objects in game
some kind of dynamic lighting
pre-rendered light/dark copies of tilesheet graphics
dynamic tilemap effects
pre-rendered sprite rotations ?
top-down shooter roguelike where you can pilot multiple machines in the world
abandon them when damaged or need a smaller one to proceed
some roll, some walk, will have to swap to traverse some terrains / fit in tight spaces
a hunter/gatherer roguelike with a day/night cycle. At night monsters come to eat you.
single-map game, but big enough for a scrolling camera
arcade-like loop, less content creation, more iteration on fun-ness
See pico8 fisher game
a peaceful big-world exploration walkabout with lots of unique collectibles
multiple creature types, all peaceful
opportunity to code big multi-page inventory UI
crafting? -scope
74 changes: 37 additions & 37 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<header>
<title>Shootervania</title>
<link rel="stylesheet" type="text/css" href="style.css">
</header>
<body>
<div id = 'gamebox'>
<canvas id = 'canvas'></canvas>
</div>
<!-- start with the browser check -->
<script src="js/core/browsercheck.js"></script>

<!-- core stuff -->
<script src="js/core/animation.js"></script>
<script src="js/core/spritesheet.js"></script>
<script src="js/core/AssetLoader.js"></script>
<script src="js/core/audio.js"></script>
<script src="js/core/graphics.js"></script>
<script src="js/core/Signal.js"></script>
<script src="js/core/util.js"></script>

<!--our one bit of external code, mr doobs FPS checker -->
<script src = 'js/stats.js'></script>

<!-- game states -->
<script src="js/screens/titleScreen.js"></script>
<script src="js/screens/gameScreen.js"></script>
<script src="js/screens/gameOverScreen.js"></script>
<script src="js/screens/creditsScreen.js"></script>


<!-- and finally our main entry point -->
<script src = "js/main.js"></script>
<script src="js/events.js"></script>

</body>
<!DOCTYPE html>
<html lang="en">
<header>
<title>Shootervania</title>
<link rel="stylesheet" type="text/css" href="style.css">
</header>
<body>
<div id = 'gamebox'>
<canvas id = 'canvas'></canvas>
</div>
<!-- start with the browser check -->
<script src="js/core/browsercheck.js"></script>

<!-- core stuff -->
<script src="js/core/animation.js"></script>
<script src="js/core/spritesheet.js"></script>
<script src="js/core/AssetLoader.js"></script>
<script src="js/core/audio.js"></script>
<script src="js/core/graphics.js"></script>
<script src="js/core/Signal.js"></script>
<script src="js/core/util.js"></script>

<!--our one bit of external code, mr doobs FPS checker -->
<script src = 'js/stats.js'></script>

<!-- game states -->
<script src="js/screens/titleScreen.js"></script>
<script src="js/screens/gameScreen.js"></script>
<script src="js/screens/gameOverScreen.js"></script>
<script src="js/screens/creditsScreen.js"></script>


<!-- and finally our main entry point -->
<script src = "js/main.js"></script>
<script src="js/events.js"></script>

</body>
</html>
46 changes: 23 additions & 23 deletions js/core/browsercheck.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@

var browserNotSupported = false;
// safari test from https://stackoverflow.com/questions/7944460/detect-safari-browser
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
// IE/edge test from https://stackoverflow.com/questions/31757852/how-can-i-detect-internet-explorer-ie-and-microsoft-edge-using-javascript
if(isSafari ||
/MSIE 10/i.test(navigator.userAgent) || // This is internet explorer 10
/MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || // This is internet explorer 9 or 11
/Edge\/\d./i.test(navigator.userAgent) ) { // This is Microsoft Edge
browserNotSupported = true;

var local_c=document.getElementById("c");
var local_ctx = local_c.getContext('2d');

local_ctx.fillStyle = 'rgba(0,0,0, 1.0)';
local_ctx.fillRect(0,0,local_c.width,local_c.height);
local_ctx.fillStyle = 'rgba(255,255,255, 1.0)';
local_ctx.font = "14px Arial";
local_ctx.textAlign = "left";
local_ctx.fillText("Sorry, this browser is not supported.",35,55);
local_ctx.fillText("Please revisit with Chrome or Firefox.",35,75);

throw Error("browser not supported"); // intentional error to derail code

var browserNotSupported = false;
// safari test from https://stackoverflow.com/questions/7944460/detect-safari-browser
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
// IE/edge test from https://stackoverflow.com/questions/31757852/how-can-i-detect-internet-explorer-ie-and-microsoft-edge-using-javascript
if(isSafari ||
/MSIE 10/i.test(navigator.userAgent) || // This is internet explorer 10
/MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || // This is internet explorer 9 or 11
/Edge\/\d./i.test(navigator.userAgent) ) { // This is Microsoft Edge
browserNotSupported = true;

var local_c=document.getElementById("c");
var local_ctx = local_c.getContext('2d');

local_ctx.fillStyle = 'rgba(0,0,0, 1.0)';
local_ctx.fillRect(0,0,local_c.width,local_c.height);
local_ctx.fillStyle = 'rgba(255,255,255, 1.0)';
local_ctx.font = "14px Arial";
local_ctx.textAlign = "left";
local_ctx.fillText("Sorry, this browser is not supported.",35,55);
local_ctx.fillText("Please revisit with Chrome or Firefox.",35,75);

throw Error("browser not supported"); // intentional error to derail code
}
56 changes: 28 additions & 28 deletions js/events.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
signal.addEventListener('startGame', startGame);
signal.addEventListener('gameOver', gameOver);
signal.addEventListener('titleScreen', gotoTitleScreen);
signal.addEventListener('creditScreen', gotoCreditScreen);




function startGame(event){
console.log('startGame triggered');
gameScreen.reset();
gameState = GAMESTATE_PLAY;
}

function gameOver(event){
console.log('gameOver triggered');
gameOverScreen.gameEndState = event.detail;
gameState = GAMESTATE_GAME_OVER;
}

function gotoTitleScreen(event){
console.log('gotoTitleScreen triggered');
gameState = GAMESTATE_TITLE;
}

function gotoCreditScreen(event){
console.log('gotoCreditScreen triggered');
gameState = GAMESTATE_CREDITS;
signal.addEventListener('startGame', startGame);
signal.addEventListener('gameOver', gameOver);
signal.addEventListener('titleScreen', gotoTitleScreen);
signal.addEventListener('creditScreen', gotoCreditScreen);




function startGame(event){
console.log('startGame triggered');
gameScreen.reset();
gameState = GAMESTATE_PLAY;
}

function gameOver(event){
console.log('gameOver triggered');
gameOverScreen.gameEndState = event.detail;
gameState = GAMESTATE_GAME_OVER;
}

function gotoTitleScreen(event){
console.log('gotoTitleScreen triggered');
gameState = GAMESTATE_TITLE;
}

function gotoCreditScreen(event){
console.log('gotoCreditScreen triggered');
gameState = GAMESTATE_CREDITS;
}
8 changes: 4 additions & 4 deletions js/jsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"compilerOptions": {
"target": "es6"
},
{
"compilerOptions": {
"target": "es6"
},
}
Loading

0 comments on commit 4aa8a36

Please sign in to comment.