Saturday, June 29, 2013

Tryin like hard to now blow my cover.

I'm researching git this weekend. I kinda get it. But It doesn't make full sense to me yet as to how I'm going to organize this project. Still scritchin.

Mini project. Ionian typeface.

About twenty percent complete. 


Friday, June 28, 2013

GAMES TAB GAMES TAB!

All 4 of you people! We have HTUR alpha! We have new music for cislunars game. We have GPLocks Indie Project. THE ABUNDANCE!

New Projects coming around!

I've been talking with the google+ indie developer community. I think we're going to try and cook something up for the OUYA . We're still in the beginning phase of development. But I think it'd be quite cool to get people from all around the net to organize a project. I'll keep you posted of course.

Tuesday, June 25, 2013

Time for a quick break.

We're about ready to do the first round of item implementation.
I've done the moonshine.

ALSO! We got arrow key navigation for most of the game. Check it out!
https://dl.dropboxusercontent.com/u/1710407/HTURWEBTEST/HTURWEBTEST.html

Monday, June 24, 2013

GUI 100%

Dinner time!  /\/\/\

I can smell it!

HTUR GUI is 90% done.

Just need to make some buttons for the in-game state so we can start testing the items.

Todays post it :

Implement upgrade system , Item Spawning, Weight of slaves on cart. And we'll round it up with game mode camera zooming.

This list get's shorter everyday.

Check out the GAMES tab! SUBSCRIBE!

Sunday, June 23, 2013

GUI @ 80%

Check the link below. The UI is in place but not completely functional.
I should give the player some cash to play with at the start of the game eh?
umm... long story short.  Check out the link. Listen to the new tunes.

https://dl.dropboxusercontent.com/u/1710407/HTURWEBTEST/HTURWEBTEST.html

Saturday, June 22, 2013

Check out the GAMES tab!

My unity project builds and uploads to dropbox! You can play a new version of the Pre-Alpha Every day!
Sometimes there are multiple builds in a day. Watch as this game comes to life! I know nobody is reading this blog ... for now. But this is a good method for logging and stuff so I'm going to keep on!

Tomorrows post it notes:

Item Class
Shop UI Implementation
Player Upgrade Implementation
Item Implementation
Enemy Base Class test
Camera Zooming

Tie up missing ends. ( Game Over, Continue, Scoring )

See you there!

Thursday, June 20, 2013

Tired of donut holes?

Yes.

HTUR UI/UX Design notes.

This is basically how its done. The left and right panels become the controls on touch devices.  Top shows state in game and bottom will show items. Its psychologically reinforced yo. From the outset.

Tuesday, June 18, 2013

Current Projects

Check out the new Game and 3d pages!

Also I'm workin on music for an art game by Cislunar. It's beginning to look a lot like a creative season!

Monday, June 17, 2013

GoodByeLove2d

New REBEL> Goodbye Love2d

function love.load()

-- GM Stuff 
 mode = "title" -- other modes game, map, store, end 

-- handcar stuff
 hcar = love.graphics.newImage("handcar.png")
 car = love.graphics.newImage("handcar.png")
 hcarB = love.graphics.newImage("handcarB.png")
 
 x = 100  
 y = 288
 speed = 7 
 drag = 20 -- the amount we slow down every second. 
 
 isMoving = false;
 
 rhit = false
 lhit = false
 
 canL = false
 canR = true
 
 sql = love.audio.newSource("squeak.ogg", "static")
 sqr = love.audio.newSource("squeak2.ogg", "static") 
 brake = love.audio.newSource("break.ogg", "static") 
 
 sql:setVolume(0.2)
 sqr:setVolume(0.2)
 brake:setVolume(0.5)
-- slavecar stuff 
 sico = love.graphics.newImage("coin.png")
 scar = love.graphics.newImage("scar.png")
 numSlaves = 5
 
-- enemy Stuff 
 enemy = love.graphics.newImage("tyrant.png")
 take = love.audio.newSource("take.ogg", "static") 
 ex = -225
 ey = 100
 eRate = 25
 
-- background stuff 
 bg = love.graphics.newImage("bg.png");
 bgx= 0
 bgy= 0
 -- tile background
 bg2x = 746
 
 
-- UI stuff
 score = 0
 vPos = 46
 vMax = 714
 trackLength = 15
 slaves = 1
 levelComplete = false
 gameOver = false
 
-- Map Stuff
 map = love.graphics.newImage("map.jpg")
 tarOff = love.graphics.newImage("markOff.png")
 tarOn = love.graphics.newImage("markOn.png")
 nBtn = love.graphics.newImage("headNorth.png")
 canStart = false
 
 cities =  { 
     { name = "San Antonio", dist = 40, cap = 2, x = 250, y = 420},
     { name = "Vicksburg", dist = 36, cap = 4, x = 385, y = 379},
     { name = "New Orleans", dist = 27, cap = 6, x = 415, y = 437},
     { name = "Atlanta", dist = 22, cap = 4, x = 511, y = 340},
     { name = "Savannah", dist = 19, cap = 3, x = 590, y = 378},
     { name = "Pittsburgs Landing", dist = 14, cap = 2, x = 433, y = 313},
     { name = "Petersburg", dist = 10, cap = 1, x = 628, y = 241}
    }
    
 location = "*****"
 capacity = "*****"
 distance = "*****"
 
 -- yea! The ol curtain. 
 curtAlpha = 255

end

function love.keypressed(k)
   if k == 'escape' then
      love.event.quit()
   end
   
   if mode == "game" then 
    -- managed to get some control in here let's gate it up! 
    if levelComplete == false then 
     if k == 'right' then 
    rhit = true;
    love.audio.play(sqr)
     if lhit == false and canR then 
     
      x = x+speed
      isMoving = true
      canR = false
      canL = true
     
     end
     end
     
     if k == 'left' then 
    lhit = true;
    love.audio.play(sql)
     if rhit == false and canL then 
     
      x = x+speed
      canL = false
      canR = true
     
     end
    
     end
    end
   end
   
end

function love.keyreleased(k)
 
 if mode == "game" then
    if levelComplete == false then 
   if k == 'right' then 
    car = hcar;
    rhit = false;
    
     end
     
     if k == 'left' then 
    car = hcarB;
    lhit = false;
    
     end
  end
 end
end

function keepTiling()

 if bgx < -750 then 
  bgx = 747
 end
 if bg2x < -750 then 
  bg2x = 750
 end 

end

function updateEnemy()

 -- let's find some good enemy logic. The player should be able
 -- to outrun the enemy. plus we have to fake some kind of collision behavior
 if not levelComplete then 
  if vPos > 100 then 
  
   ex = ex + eRate*love.timer.getDelta()%rate
   
   if ex + enemy:getWidth()*1.5-50 > x then 
   
    numSlaves = numSlaves -1;
    ex = ex - enemy:getWidth()-100;
    love.audio.play(take)
   end
   
  
  elseif vPos == vMax then
  
   ex = ex - eRate*love.timer.getDelta() 
  
  end 
 else 
  -- move away if on screen at end of level. 
  ex = ex - eRate*love.timer.getDelta()*7

 end 
end

function love.update(dt)


-- let's start separating these game modes. 
 if mode == "game" then 
  updateGame()
 
 elseif mode == "title" then 
  updateTitle()
  
 elseif mode == "map" then 
  updateMap()
 end


end

function fadeOut(nextScene)
 -- change the game mode and then fade to the scene 

 if curtAlpha < 255 then 
  curtAlpha = curtAlpha + 15
 elseif curtAlpha >= 255 then 
  if nextScene == "map" then 
   resetGame()
  end
  mode = nextScene
  curtAlpha = 255
 end
 

end

function fadeIn()
 
 if curtAlpha > 0 then 
  curtAlpha = curtAlpha - 15
 elseif curtAlpha < 0 then 
  curtAlpha = 0
 end
 
end

function resetGame()
 score = 0
 location = "*****"
 capacity = "*****"
 distance = "*****"
 canStart = false
 vPos = 46
 levelComplete = false
 gameOver = false
 ex = -225
 x = 100 
end 

function updateMap()
 -- we have to reset the game .. kinda .. aintwe~?
 if love.mouse.isDown('r','l') then 
  --fadeOut('game')
 elseif curtAlpha > 0 then 
  fadeIn()
 end

end

function updateTitle()

 if love.mouse.isDown('r','l') then 
  fadeOut('map')
 elseif curtAlpha > 0 then 
  fadeIn()
 end
 
end 

function updateGame()

 if curtAlpha > 1 and gameOver == false then
  fadeIn()
 end
 
 rate = x-100 -- player position from resting place. 
 if rate < 0 then 
  rate = 0
 end
 dt = love.timer.getDelta()
 keepTiling()
 updateEnemy()
  if isMoving then 
  -- move BG and player 
   x = x-drag*dt
   bgx = bgx-(drag*dt)*rate;
  -- bg2x = bg2x-drag*love.timer.getDelta()*rate;

  -- keep handcar on screen ( CLAMP )
   if x <= 100 then 
    isMoving = false
   end
   
   if x > 600 then 
    x = 600
    ex = ex-50*dt
   end
   
  -- move tracker and keep track on level progress. 
   vPos = vPos + rate/trackLength*dt
   if vPos >= vMax then 
    isMoving = false
    vPos = vMax
    levelComplete = true
   end
   
  -- scoring
   score = score + math.ceil(rate)
   
  end
  
  if levelComplete then 
   -- bells and whistles don't update vpos
   if x > 100 then
    x = x-drag*3*dt
    bgx = bgx-(drag*dt)*rate;
    love.audio.play(brake)
    
   else 
    love.audio.stop(brake)
    
    -- we win if we free at least one slave. 
    if numSlaves > 0 then
    
     gameOver = true
     
    end 
    
   end 
   
   
  end
 if gameOver then 
  fadeOut("map") -- should go to some review scene. or something.
 end
end 

function drawSlaveIcons()

 for i=1, numSlaves, 1 do 
 
  love.graphics.draw(sico, (x-128)+(i*10), y+15)
 
 end

end

function drawMapIcons()

 for i=1, #cities, 1 do 
 
  love.graphics.draw( tarOff, cities[i].x, cities[i].y )
  
  if love.mouse.getX() >  cities[i].x 
   and love.mouse.getX() < cities[i].x + 40
   and love.mouse.getY() > cities[i].y
   and love.mouse.getY() < cities[i].y + 40 
   and love.mouse.isDown('r','l') then
    
    canStart = true
    love.graphics.draw( tarOn, cities[i].x, cities[i].y )
    -- and display the information in the info box. 
    capacity = cities[i].cap
    numSlaves = cities[i].cap
    -- speed adjustment for slaveload. 
    speed = 10 - cities[i].cap
    
    distance = cities[i].dist
    trackLength = cities[i].dist
    location = cities[i].name
    -- maybe will change the art one day. 
   end
 
 end
 
  love.graphics.draw(nBtn,450,100); 
  
  if love.mouse.getX() >  450
   and love.mouse.getX() < 450+nBtn:getWidth()
   and love.mouse.getY() > 100
   and love.mouse.getY() < 100+nBtn:getHeight()
   and love.mouse.isDown('r','l') 
   and canStart then
   
    fadeOut("game")
 
  end 

end

function love.draw()
 -- if mode is inGame , menu, map , shop 
 if mode == "game" then
  love.graphics.setBackgroundColor( 128,128,255 )
  love.graphics.setColor(255,255,255)
  love.graphics.draw(bg,bgx,bgy) 
  love.graphics.draw(car,x,y);
  love.graphics.draw(scar,x-128,y);
  drawSlaveIcons()
  love.graphics.draw(enemy,ex,ey)
  -- UI stuff 
  love.graphics.setColor(0,0,0)
  love.graphics.rectangle( "fill", 0, 0, 768, 100 )
  love.graphics.rectangle( "fill", 0, 412, 768, 100 )
  love.graphics.setColor(255,255,255)
  love.graphics.print( love.timer.getFPS()..":fps",x+47,y+80)  -- show fps !!! 
  love.graphics.setLineWidth(3)
  love.graphics.line(50,50,718,50)
  love.graphics.print("S",30,40)
  love.graphics.print("E",730,40)
  love.graphics.print("V",vPos,35)
  --love.graphics.print(rate,25,25)
  love.graphics.print("LEVEL : "..location, 25, 425)
  love.graphics.print("SCORE : "..score, 25,450); 
  love.graphics.print("SLAVES : "..numSlaves, 25,475);
 -- perhaps we draw the transition over everything. That'll be fun. 
 elseif mode == "title" then 
 
  love.graphics.print("Harriet Tubmans Underground Railroad",250,250)
  love.graphics.setBackgroundColor(0,0,0)
  
 elseif mode == "map" then 
  
  love.graphics.draw(map,0,0)
  love.graphics.setColor(0,0,0,150)
  love.graphics.rectangle("fill",0,0,400,275)
  love.graphics.setColor(255,255,255)
  -- info corner for stage selection 
  love.graphics.print( "STAGE SELECT: ",50,25)
  love.graphics.print( "Choose a starting point in slaver territory >>",50,50)
  love.graphics.print( "Target: "..location,50,75)
  love.graphics.print( "Capacity: "..capacity,50,100)
  love.graphics.print( "Distance: "..distance,50,125)
  love.graphics.print( "Alternate pressing the Left and Right Arrow Keys \nto push the cart Northward. \n\nIf all of your slaves get captured you lose!\n\nHold HEAD NORTH To Begin.", 50, 150)
  -- drawing the map targets. 
  drawMapIcons()
 
 end 
  love.graphics.setColor(0,0,0,curtAlpha)
  love.graphics.rectangle("fill",0,0,768,512)
  love.graphics.setColor(255,255,255)
  
 
end