Experiments

ToDo List/Game

ToDo List/Game

Place a description in the Items field and put a time (in minutes) for how long the task will take and click Add Item. When complete, click the Complete button and that will strengthen your character.


Platformer

Desktop Version      Mobile Version

Player must try to collect the diamond. They can click/touch the screen to create blocks to get to the diamond. Enemies can destroy any created blocks on touch.
Created Blocks can be removed by clicking/touching them again.


Unity

Unity Game Tutorial

Saturday, November 23, 2013

Released

My game has officially been released on the Window Phone 8 Store.

Friday, November 15, 2013

Submitted

Just submitted my game to the Windows Phone 8 Store. Hope to have good news in the next week about it.

Thursday, November 14, 2013

Sound

My next plan for the game is sound. Once I have sound, I will be submitting the game to the Windows Phone 8 App Store.

After that, I will continue working on my To Do Game.

Major Update

Decided to copy over the changes that I made for the Windows Phone 8 HTML5 version to my blog. These changes make it more playable on a mobile browser.

I also changed the interface when you first visit the mobile version to take you to the level select menu. Once selected, you will then get to the actual level to play.

Thursday, October 10, 2013

Platformer Note

I moved my platformer to my Dropbox account to avoid loading too much on the page.

Quick Fix

I fixed the issue I had last night with the complete button realigning itself.

The problem was that my dynamically created spans had the same id's if the number and task name were the same so it was removing the first instance of the spans. I fixed this by adding a fake guid that is just a string of 5 pseudo random numbers to the id's.

Wednesday, October 9, 2013

Updated ToDo List/Game

I updated the ToDo List/Game. Now you can add items to a list on the page and click complete when you complete them. It is not stored anywhere, so you lose your list when you leave the page.

I know there is an issue with the first complete button that will be fixed on the next update.

Thursday, October 3, 2013

To Do Game

I started on my to do game. The initial prototype will be linked above or here. It is very basic for now. All you do is add an item and a time and your "character" levels up when you submit that you completed a task/to do item.

Tuesday, October 1, 2013

Unity Update and Other

Got an idea for a productivity app. Will explain more as I develop more. The idea is the gamification of to do lists. It would encourage people to create and complete their to do lists.

Anyway, I did a little more on the 3D tutorial in Unity and have a simple environment where the player has basic fps controls.

Tuesday, September 17, 2013

Unity 3D

Starting a new venture today. I am starting on a Unity tutorial to start some 3D game development. I will be keeping my games on Dropbox and updating the link above my 2D game as I go along.

Tuesday, September 10, 2013

Mobile Version

New update that makes the game more mobile. Your character always moves right and you must create a path for him. You can still jump, but you must be careful when you jump.

Any comments are welcome.

Monday, September 9, 2013

Pointer Events

Came back and added pointer events using Hand.js (https://handjs.codeplex.com/) to help with the touch/mouse events.

Sunday, July 21, 2013

Other Ventures

I'm taking a break from my 2D game to start doing tutorials on 3D. I do not have any more ideas for my 2D game other than recreating the sprites so I am going to do the 3D tutorials and if I get any ideas, I will come back and implement them.

I plan on doing HTML5/JS for the 3D tutorials using Babylon.js.

Monday, July 15, 2013

Azure Part 2

And now the game is back on the blog.

Azure

Found out some more details about Windows Azure and will not be using it to host my game anymore. I'll be reading my game later today through some other service.

Wednesday, July 10, 2013

New Levels

I added another set of levels, the Mine Levels. These levels are a sort of reversal of the Cave Levels with the spikes at the top and a path along the bottom. The path has a snake though and he moves slightly faster than the snake that was encountered on level 8 of the Caves.

Monday, July 1, 2013

Button Fixes

New update that fixes buttons on some mobile devices. Now buttons should look the same across all devices.

Thursday, June 27, 2013

Control Layout

Small change today. I updated the button placement. The left and right buttons are on the left side of the screen while the jump button is along the right side of the screen. They stay on the sides of the browser no matter what the size of the browser window.

Monday, June 24, 2013

Lava Levels

Biggish update today. I decided to add a new level set. This new level set is the Lava Levels. It includes 10 new, random levels that introduces balls of lava that can kill the player and destroy blocks.

The balls of lava are created with an initial location below the viewing area. I then set a random timeout between 0.45 seconds and 4.5 seconds. This updates their vertical speed (negative) until they reach almost the top of the area. At this point, I set the speed for them to fall (positive).

Timeout:
setTimeout(function () {
    lavaB.velocity.y = -3;
}, Math.random() * 4500);

Update Speed:
if (lavaB.yPosition < top) {
    lavaB.velocity.y = 3;
}
else {
    if (lavaB.yPosition > bottom) {
        lavaB.velocity.y = 0;
    }
}
 

Thursday, June 20, 2013

Windows Azure

I decided to host my game on Windows Azure cloud platform to experiment on a cloud platform. It can be found linked above. This also helps loading in mobile browsers since it just loads the game by itself.

The process of setting up an account on Azure was really easy. Time will tell if I continue to like it.

Tuesday, June 11, 2013

Performance Update

New update that is mostly maintenance. This new update has reduced the globals down to only one. All the globals are now under the one global called res which is short for resources. Now I do not have a lot of variables clouding up the global namespace.

Other than that, I added a new game over screen for the fish level.

Sunday, May 26, 2013

New Fish Level And Block Removal Ability

I have now introduced the ability to remove a placed block by clicking/touching it again. It will add the block back to your block count. The code was relatively simple as shown below:

for (var i = 0; i < rectsCreated.length; i++) {
    if (x > rectsCreated[i].x && x < rectsCreated[i].x + rectsCreated[i].w &&
        y > rectsCreated[i].y && y < rectsCreated[i].y + rectsCreated[i].h)
    {
        blockCount++;
        document.getElementById("blockNum").innerText = blockCount;
        createBlock = false;
        rectsCreated.splice(i, 1);
    }
}

It just checks the rectangle area in each created block to see whether the click is actually inside of it. If it is, increment the block count and remove the block from the screen.

This comes in handy for the Fish level that was added as well. The Fish level is a survive as long as you can level. You need to survive by staying above the spikes as long as you can while the fish chase after you and destroy your blocks.

Wednesday, May 22, 2013

Level Keeper and Created Blocks


Smallish update that resets just the player and the game state when the reset level button is pressed. Previously, the reset level button would reset the blocks from the random level generator.

Another change is that the created blocks have a new image associated with them. This will later be used to allow the player to remove a block they have placed which will add it back to their block count.

Tuesday, May 7, 2013

Random Level Generator

I added a random level generator to the game. It generates 12 blocks between 120 and 480 on the x axis and between 60 and 330 on the y axis. The code is as below...

for (var  i = 0; i < 12;  i++)
{
    var x = Math.floor((Math.random()*10)+3) *40;
    var y = Math.floor((Math.random()*9)+2) *30;

    rects.push(rect(x, y, 20, 20));
}

The first 8 levels are randomly generated then the last 2 are pre generated.

Monday, April 29, 2013

Snake Enemy

It's been too long since I did anything on here. I guess I can call it a vacation, haha.

Anyway, I was able to add a snake enemy to level 2, which brings the count up to 4. It has a different collision detection than the player so it can detect if it is not over a block so it can turn around.

I also changed the created blocks to be their own entities instead of with the regular blocks. This now allows me to "destroy" the blocks when an enemy (snake) collides with one.

This exercise has also reminded me the value of creating objects with null. I was able to handle whether a snake was created or not using this handy little value.

Monday, April 15, 2013

Levels and Block Count

Finally got around to adding actual levels and a block count. I have three levels set up with a completion screen after each level. The levels automatically transition thanks to a setTimeout call. The final level has a different completion screen to tell the player that they have won.

The game also now has a block count. You have 10 blocks to get through each level. This should be more than enough to get to the diamond.If the player runs out of blocks, they can easily reset level to gain back all their blocks.

Saturday, April 6, 2013

Level Design

I got the basics of the game complete so far. I have an objective to collect the diamond, movement, and way of game over by hitting the spikes done.

All I had to do was add the diamond and spikes with collision. Collision is all handled by the below JavaScript function.

function overlapTest(a, b) {
    return a.x < b.x + b.w && a.x + a.w > b.x &&
         a.y < b.y + b.h && a.y + a.h > b.y
}

Wednesday, April 3, 2013

Mobile Success

I got my buttons working on select mobile devices. I tested it on iOS on Safari and Chrome and on Android on the default browser and Chrome. The Android experience was slow, but my test was on an HP Touchpad running Cyanogenmod so I assume it is the hardware/software combination that caused it to be slow since it ran perfectly on my iPhone 5. Since I have all the basic mechanics done, I will be able to start on actual level design and eventually add in enemies.


Here is the basic code for anyone interested:

var j = document.getElementById('jump');

j.addEventListener('touchstart', function(event){ jump(event,true); }, false);
j.addEventListener('touchend', function(event){ jump(event,false); }, false);

function jump(e,bool) {
    if(e.target.localName != 'select'){
        e.preventDefault();
    }
    direction.up= bool;
}

I get the DOM element for the button and set a 'touchstart' and 'touchend' event that calls a function. This function overrides the default highlighting that mobile devices do while the person holds there finger over an element. I then set the direction.up variable to true or false depending on whether it was a start or end event. The player jumps constantly while direction.up is true. This does lead to a problem is a user does not make the touchend event occur, but I will worry about that later. And that is how a button can be done with touch :D

Monday, March 25, 2013

Mobile Attempt Fail

This is my so far failed attempt at getting mobile support for buttons. It works with a mouse, but not with touch screen mobile devices yet.

Sunday, March 24, 2013

Early Progess

It's late and I have my initial setup for the game done. I used a simple HTML5/JS tutorial and came up with the below setup. The controls are movement with a, w, d and clicking on the screen adds blocks. Changed old version to screenshot... 

Saturday, March 23, 2013

Screenshots

Here are a couple screenshots of the game...



The point of the game is to have the player make it to the diamonds. The player can place blocks to get around the level. These blocks can be destroyed by the enemies. There will also be a set number of blocks per level. More details will be explained in later blog posts.

Wednesday, March 20, 2013

New Blog

Time for me to start a blog on my HTML5 development on my game. Originally my game was named Creative Depths, but I recently found out that the name is patented. So I will go with Rock Bottom Innovation for now, haha.

I have just found all the resources I will need to start on my game development and have the basic idea and sprites to make my game. My next blog post will contain information on the game itself with some prototype screenshots.