Wednesday, September 26, 2012

Ladder Generation

I've hacked together a working ladder generation that produces some great results. It's not completely fair though, and I'm still working out the kinks. Right now when I generate all of the platforms I save their position in a list. When I get to ladder generation I iterate through the list to each platform. Then I drop a tracer down from each point on the platform. The longest distance is the position of the ladder for that platform. Ties for distance are chosen between randomly. 

This is what is missing currently from ladder generation that I want in:
  • Platforms with multiple / no ladders
  • Ladders that don't reach all the way to the bottom (I hacked this in to randomly truncate the ladder but want a better way to do it)
Time for some screen shots!

Current tileset (not final) applied to a map
Debug tileset applied to the same map

Here is an ascii print out of a map with ladder generation.
Key:
  • ' ' = empty space
  • 'X' = cave wall
  • '-' = platform
  • '+' = ladder / platform intersection
  • 'l' = ladder


Saturday, September 22, 2012

Platform Generation

I've been toying with different ideas for platform generation between homework assignments this weekend, and I came up with one I really like. My first few tries of just randomly placing platforms or placing one per height value looked either too random or you could easily see the pattern. What I came up with loops from the top of the map downward and at each step generates platforms left to right and right to left. It looks for a change from cave wall to empty space, then has a ~75% chance to place down a platform. That platform has a randomly generated size which terminates early if it hits another wall or the edge of the map.

Enough talk, here are some pictures.
'X' = cave wall
' ' = empty space
'-' = platform


Thursday, September 20, 2012

Caves! Generation

I've been messing around with input to the simplex noise generator and the game now generates some really cool caves. The pictures come out of the debug text and tend to get cut off but I just wanted to get some out for viewing. I'm tweaking the platform and ladder generation currently so they aren't visible. As before the blank space is the traversable area and the 'X's are the cave walls.




Wednesday, September 12, 2012

New Game Caves!

I haven't had much free time this past month due to school. I've put Blast Lords on hold for a while because it requires a lot more work before it could even see a beta release. The project itself was much too big for one person to work on alone so maybe I'll find some help in the future. Good news though, I started working on a much smaller game that I can toy around with in my free time. It's called "Caves!".

There have been some things I've always wanted to try out when making a game including:
  • Procedurally generated worlds
  • Destroyable terrain
  • Arcade style (High score system)
  • Ladders
I've already got cave interiors generating using Perlin's simplex noise. The edges of the caves will be filled in and I will use cellular automata to smooth out the connections. The map width and height are variable along with the density and skew of the cave. Now I'm working on generating platforms and ladders for the player to be able to move throughout the cave.

Here's a cave example printed in plain text.
'X' = collision tile
' ' = empty area
'-' = platform

Wednesday, July 18, 2012

Good News Everyone!

Great things are happening today.
  • Got my new 360 wireless receiver in the mail
  • Got Twitter (ATGameDev) follow me for smaller updates!
  • I've reworked a ton of images
  • I've started composing some of the music
From this point on I'm going to make a few posts a week highlighting major changes. For small daily changes I'll be using twitter so follow me there. Today I'm going to be reorganizing my code to allow for music and make things cleaner.

Tuesday, July 17, 2012

Organizing

I had to order another wireless receiver for my 360 controls so I haven't been able to write or test code. I have one big reorganization planned this week that will update almost every part of my game. It should allow for sounds and music to be added in easily along with nice menu transitions. I'm going to start coding tomorrow. My receiver should come in by Thursday so I'll be able to test again. Until then I'm planning out the changes on paper.

Friday, July 13, 2012

Player Info

I got a fair amount done today and I'm pretty happy with it. One of the major things was I roughed in the player info during a battle. It now displays number of lives, a health bar, and a shield charge bar. I don't like that you have to look down to see the shield charge so I'm going to make the shield become more transparent as the charge depletes. I feel that it will make more sense to the player that way. I also want to add a number display of life / life total on top of the health bar. There is still work to be done but I'm happy with the current result.

I've noticed the menus could use some sort of animation between screens. The code is a little sloppy too. I want to get the game as playable as possible first, and then I'm going to rework the menu system. That's my plan for next week.

Player info shown in game

Thursday, July 12, 2012

More Game Updates

Over the past few days I've added some more game updates to make it look nicer and more playable.
Here's the list so far:
  • Throw speed will be a player option
  • Friction and air resistance changes
  • Player size changes
  • Game and editor use their own time (stops problems with pausing)
  • Menu options display in the correct spot now

Monday, July 9, 2012

Small Updates

I've finished as much as I could on the menu's. I still have to write the code behind the settings, ability select, and score screen so those are not finished. I have a whole list of tiny fixes that need to be addressed so I've been running through them.

Here's a list of what I finished today:
  • Shrink bounds of off screen
  • Allow bombs to go upwards off screen without exploding
  • Record who dealt damage with bombs (will be used to keep track of kills)
  • 5 second timer to reset the last person to damage a player (allows for suicides)
  • When a player loses all their lives they're out of the game

Tomorrow I'm either going to keep going through this list of changes or work on the in game graphics.

Thursday, July 5, 2012

Blast Lords Menu Day 4

I'm so close to finishing the menus I can almost taste it. I added pop up menus for pausing the editor and game. I also added a way to consolidate the menu options into a really nice class that can be reused for each screen. It allows me to add the options I want and can tell me what is currently selected. One problem I ran into is pausing the game. It messes with all of the in game timers. I've dealt with this before and knew it was coming. It shouldn't be too hard of a fix but I won't get to it until later.

Should be finishing up menus tomorrow!

Wednesday, July 4, 2012

Blast Lords Menu Day 3

I realized today that the menus aren't a one day deal. It's going to take the rest of this week to get everything polished the way I'd like it. I imported the map editor and game code today and the editor can be entered from the menu. Tomorrow I'd like to get a rough character ability selection screen and the game put in. Then hopefully by Friday the menu can be traversed correctly. Next week I'd like to get the score screen and in-game HUD for the players in, which shouldn't be too hard.

Tuesday, July 3, 2012

Blast Lords Menu Day 2

After half a day of trying to make my menu system using Microsoft's Game State Management example I decided to stop. There are just too many options for what I need it to do (I understand it covers a ton of ground for menus). So I decided to write my own screen manager and game states and it's been going quite smoothly. I only had time to make the background, start screen, and part of the main menu. I'm not too happy that I haven't finished yet, but at least I got it working and can finish it all tomorrow. Here's a look at the moving background that will display throughout the menu and changing between the start screen and main menu. The background images and font are not final, I just needed something to show up.

Blast Lords Menu Background Animation

Monday, July 2, 2012

Blast Lords Menus

Due to a bunch of errands I had to run today I didn't get as much time to work as I would have liked. However, I did start looking at Microsoft's Game State Management guide to learn how to deal with menus. By tomorrow I will like to have the menu system working (even if the transitions and text look ugly), and have the game and editor ported over to work in the menu.

That's the plan.

Friday, June 29, 2012

Finished Battle Mechanics + Multiplayer Preview

I finished more stuff today here's the list:
  • Pressing X pushes players and bombs away
  • Controller rumble from damage
  • Explosion and jump sounds
  • Pressing left bumper stops your last thrown bomb
That's it for this week. I'll be back on next week with more changes. I'm hoping to get to the menus, score screen, and player info (health / shield charge).

Here's a video with all of the changes and multiple players

Bomb and Shield Mechanics

My accomplishments for the day:
  • Added bombs
  • Added shields
  • Bombs damage shield then player
  • Added invulnerability time after spawning and taking damage
  • Shield charge time
  • Multiple ways to throw bombs
  • Extended out of screen area (Player won't die immediately)
Here's how the battle mechanics work. If a bomb hits a player it explodes. If the player has their shield up the bomb will go through them instead. The shield has a charge to it which is essentially its life. The player has to actively use the shield with the left trigger. When a player is hit by an explosion with their shield up, the bomb damages the shield first and then the player (if there is left over damage). The shield restores charge when not in use, and depletes charge when on.

Making a map using the editor

Bomb mechanics

Thursday, June 28, 2012

Blast Lords Animations

My accomplishments for the day:
  • Initial player spawning
  • Changed the map size to deal with safe area on tv's
  • Player speed based on tilt of controller
  • Player jump based on length of time A is held
  • Death animation and wait time
  • Spawn animation and wait time
  • Movement and jumping animations
Tomorrow I'm working on the battle mechanics which should be a lot of fun. For now here are two videos, the first is of the map editor, and the second is the gameplay on the created map. I'll post another gameplay video tomorrow when the battle mechanics are in and with more people playing.

Map Editor

Gameplay

Wednesday, June 27, 2012

New Game "Blast Lords"

After a ton of work I finally I have a rough working version of Blast Lords. It takes the 2D fighting of Super Smash Bros. and blends it with the items and explosions of Bomberman 64. It's currently targeting XBLIG, but if it's successful I will easily be porting it to PC. The game has a working map editor that I plan on including. I really like to focus on customizability so the game feels like it has an infinite amount of content. Players will be able to save and load their own maps (possibly trade them online). The physics settings of the game are fully customizable as well. This includes (but isn't limited to) number of lives, number of jumps, gravity, max speed, friction, jump impulse, etc... These settings will also be able to be saved and loaded. Before entering the game players will be able to add skill points to their characters which will enhance them in the battlefield. There will only be a set amount of points so players have to chose carefully where they want to assign them. Some of the skills that can be enhanced are number of bombs, number of jumps, damage, explosion size, knockback distance, and many more.

From this point on I'm going to try to make daily posts during the week with what I've worked on for the day. I'll include videos and images if something visible has changed.

Here is what it currently looks like on a not so pretty test map:

Wednesday, June 13, 2012

C#, XNA, and My New Game

Over the past month I've been learning C# and working on a game in XNA. This project is HUGE for a single person to undertake. All I can say so far is that it's a 4-player party game that I'm hoping to release for XBLIG. I got the idea when playing the original Super Smash Bros. with my roommates. How was it we could still play something so old and simple, and have a ton of fun? It's because the game had an endless amount of possibilities and we were always able to find new ways to beat each other. The game is timeless and I'm hoping to emulate that with what I'm doing. I want a group of friends to be able to sit down and battle all night long. Drinking, cursing, and rivalry encouraged.

So far I have tested the core mechanics with family and friends. It was fun, and even after I was bored nobody wanted to put down the controller. I've transfered that over to a full project where I have the physics working. Maps are loaded by using serialized data (no more making my own .txt files). Right now I'm working on the map editor so I can have a nice set of levels to test on as the game grows.

Here's a video of a bug I had when first hacking it together to test the mechanics. (It's long since been resolved)


What I've learned so far:
  • How to serialize data (saving and loading maps)
  • Using controllers and controller states
  • Platformer physics
  • Collision detection and resolution
  • The C# language through game development in XNA

What's coming next:
  • Map editor
  • Player weapons and shields
  • Learn a shader language for fun effects

Thursday, March 22, 2012

Random Building Generator

Here's a quick building generator I wrote to learn a couple of things. First is per-pixel manipulation to learn how to change color palettes, and second is how to randomly generate levels and make sure they are playable. Take a look at the video to see it in action!

New ideas

I've had a ton of great ideas since I finished Sneak Thief so I've been messing around with some new art styles. I've been working on my pixel art and applied it to some isometric tiles. Final Fantasy tactics games have always inspired me so I was thinking of working on an isometric game, but had other ideas that i ended up liking better. At the bottom of this post I'll have a bunch of pictures with some of my ideas. I decided to work on a 2D adventure platformer (and build my first real engine to go with it). I still have a long way to go, but in that time I'll be making the game art and posting it here!




Wednesday, March 7, 2012

Learning C# / XNA

On a whim I registered for Microsoft's Dream.Build.Play game development competition. I decided it was time to learn C# and XNA as I've only heard good things about it. So far I'm very happy with what I've seen and learned. I've got a great idea for my next game and I'm hoping to get it working for pc and 360!

Wednesday, February 29, 2012

Sneak Thief Finished!

I've finished Sneak Thief, the game I started late in December. I'm really happy how everything turned out. Give it a try! If you like what you see subscribe to my blog. I'm already starting to work on a new game and I'll be posting demo's frequently as I develop.

Here's the link for the Windows installer (installs on desktop):
SneakThief.exe
Or if you prefer the .zip file you can grab it here:
SneakThief.zip

I made this game from the ground up using C++ and SDL (event handling and blitting).
A few things I learned from this game are:
  • Global variable may make code cleaner and easier to work with (we were taught never to use them in university)
  • How to really focus and push through to the end (the last 10% is always the hardest)
  • How to structure game data better
Where am I going from here? I think I'm going to get out of the tile-based games and give a side-scrolling platformer a try. I have a great idea for an adventure game that I've been wanting to start. I also want to learn how to stretch all the images on screen when it is resized (SDL doesn't support that natively).

Here's a video with some in-game footage:

Saturday, February 11, 2012

[DEMO] Sneak Thief Final Demo

Here's the final demo for my game Sneak Thief. It currently features 20 levels of sneaky puzzle action.
The final game will have:
  • Music and sound effects
  • At least 50 levels
  • The ability to make and play levels using a level editor
  • More puzzle action and thievery than you can even handle!
Here's the link:
Sneak Thief Demo



Thursday, February 9, 2012

Something I've Realized

I've noticed that I can come up with some amazing game ideas and quickly prototype them. I'm also pretty happy with my skills as an artist and a programmer. The two things that seem to hold me back on all of my projects though, are user interface and music / sound effects. If I were to ever join a team or work with people I would for sure need those spots covered. It's not that I can't do it on my own. I just feel like they're both long processes that drag on forever. That's the main reason it's taking me forever to finish Sneak Thief. I don't want to release a half-assed game. I think it's time to expand and find people to work with!

Anyways, more updates shortly. I've started a new project and will be posting that plus the main Sneak Thief demo later.

Saturday, January 21, 2012

Reddit's Screenshot Saturday

Here are some new images of my game Sneak Thief. I've got a working level editor which will be available to users for custom maps when I release the game. I just finished the main menu (the buttons are click-able and resizing doesn't mess up the layout). The art for the menu is not final though. There are about 15 maps, but I plan on making a ton now that the editor is working.






Thursday, January 19, 2012

[GAME] Blender, My Wolverine Soft 48-hour Submission

There was a game development competition at my school last weekend and the theme was combine. This is what I came up with and it ended up getting me third place! I didn't want to just stick to what I knew how to do so I learned mouse events and playing music. The music is not mine, it was taken from Newgrounds audio portal. The authors of the songs can be found in the readme.

My initial idea for the game was to combine colors to unlock new parts of a world somehow. I ended up with a maze where you collect colors and combine them to unlock doors. Give it a try! I've also put the source code in the file if you want to dig through it and see how I implemented things. It was all written in C++ using SDL.

Link:
Blender

What I learned:
  • Mouse events
  • Playing music
Where I'm going from here:
  • Continuing work on Sneak Thief (close to finishing it)
  • Starting a game with procedurally generating terrain




Monday, January 9, 2012

Images Posted and Game Dev Competition

I've added images to most of my posts so that you have a preview of what you're downloading. I realized nobody wants to download and run an exe without knowing at least a little bit about it. Hopefully the pictures have helped with that.

I'm also entering a game dev competition this weekend at University of Michigan for fun. This is going to be my first one ever so I'm pretty excited. Whatever I come up with will be posted here.

Sunday, January 8, 2012

[DEMO] My second game, Sneak Thief

Here is a demo of my second game currently titled "Sneak Thief". It's a puzzle game that will have many levels, a level editor, and import/export of custom levels. The demo only has one level.

How to play:
  • Use the arrow keys to walk around
  • Use the space bar to interact
The object of the game is to find the gem hidden in each level. To do this you must collect items and use switches to power objects in the level. The switches can turn on lights which reveal items, open powered doors, and turn on lasers. Touching a laser will kill you unless you have the invisibility potion (found in the demo level).
Give it a try and have fun!

Sneak Thief Demo

A couple things that I've done that I'm proud of so far are the resizable window and smooth movement of the character.