Dev Update #4

Lighting, Fluids, Platforms & Random Rooms

This is the 4th post in the  dev update series. The last two weeks have been pretty productive and a couple new features have been implemented.

Fluids

Liquid fluids have been implemented to support lava and water to hinder the player in his quest to exit the dungeons. Lava for example, when fallen in, will hurt the player badly. The player will need to somehow cross the lava (if possible). The cool thing about the liquids are that they can flood areas. You can tell the flooding control to start filling from X,Y position and it will try to fill up everything from start point to largest X on current Y.

Fluids!

Lighting

Some rooms are dark and require an illumination source. It’s harder to spot enemies and other dangerous obstacles.

“Lantern with 5000 turns”

Random Rooms

In dev update #3 I mentioned that Suit Guy’s Levels (levels are not to be mistaken for rooms) are randomly generated. At that time I still had to create rooms by hand with the RandEditor, which was annoying (I’m also lazy). And because it was the initial plan; I created a random room generator which can create a room any size, height or width. The largest room created so far is a 8*1500 tile room. The editor can now be used to create specific rooms for specific needs such as bossfight, special room types, etc.

How does it work

The room generation code works in several stages:

  1. Generate a 2d array of given size and mark all as ‘filled with sprite’
  2. Cut a random line until you’ve reached the other side (it cuts from left to right). This will serve as the bottom.
  3. Do the same but this time for the ceiling (there’s some code involved which does pass-way checking.
  4. Open up the cave from ceiling to bottom.
  5. Generate the actual tiles in the level
  6. Generate an outline around the level
  7. Mark parts of the cave as corridors (there’s an algorithm involved to determine wether something is a corridor or not)
  8. Decorate cave & flood areas
  9. Determine the light intensity of the area.

When it completed its generation it’s then handed over to a room class and presented in game.

In a later post I’ll write up more in-depth blog post about the room generation.

Support

If you like the development of Suit Guy and would like to get rid of your Bitcoins or Litecoins; feel free to donate on one of the following addresses:

LTC: LShzpHCESzpcirnVijtwqY33HegHTwyUoU
BTC: 1BFMj5XNwLViPriScDVA8B5DLVfubJ5jaE

Advertisements

Dev Update #3

Suit Guy Infinity & Editor

Suit Guy’s level generation code finally got the needed overhaul and is now capable of generating random levels and rooms based on templates generated from the RandEditor. Suit’s level system is based on a grid in which you can place rooms (randomly) with a specific layout; vertical, horizontal or box layout and connects them accordingly. Because each room takes up 1, 2 or 3 spaces in the grid it’s easy to match specific layouts to specific rooms. Here’s a sample of what a level may look like:

You can see that each level is uniquely in shape, corridors and layouts and once a level is generated the room generator takes over and generates rooms based on a randomly picked templates. At this point the generator generates items within the rooms, such as plants, monsters, backgrounds, etc.

The goal is to eventually support random picked quests or puzzles for each room so you can progress to the next in order to finish the level and move on to the next.

Editor

Suit Guy’s editor, which previously were included within the game itself, has been re-written as a native OSX Cocoa app and features basic tile placement, object placement and will eventually support item template placement (one in X spawn X item). Here’s a side by side comparison of a room template and the room in game room:

Basic room with randomly picked filling tiles. Nothing too fancy.

This is all for this weeks update. Not much images or fancy graphics. Just a whole lotta code 🙂

Dev Update #2

Hello Mr. Suit Guy! You look quite handsome today.

The Lost Sword has been renamed to Suit Guy. Suit Guy is the new main, big baller character of the game (he’s actually pretty cool and tough), armed with his briefcase ready to pwn and save the world!

Story

Suit Guy’s life is dull and boring, he ain’t liking the business life so much, but hell; whatcha gonna do, right? Gotta make ’em money somehow.

On this particular day his life started out much like any other. Alarm snoozed, got up, hit the shower, grabbed his suitcase and went to the office; that big corporate building. As he arrived he looked up at the building, sighed and went in. He walked head down, shoulders low, his thoughts somewhere else. He seemed to recalled a slight tingling feeling in his fingers, confused and slightly worried as he looked up, reaching out to … but he was gone. Just like that he got zapped out of that building to god knows where. Confused and alarmed he looked around, there was nothing or no one, or … is there? In the distance he could see someone approaching. As the dark skinned man came closer he spoke to him: “Hail Stranger from far and distant land. We’ve been expecting you.” The man paused for a brief moment and continued; “You shall venture in to the cave and retrieve that what belongs to you.” and in a blink of an eye the man was gone. Suit Guy noticed his briefcase was gone, but what good is a briefcase in a place like this?

So you up for the task?

Progress

There’s been quite some progress on the visual parts of the game and the core mechanics.

Throwing the Boomerang Suitcase (TM)

Looting

Grass reacting to player movement

Tagged ,

Dev Update #1

After submitting a few screenshots to #ScreenshotSaturday someone asked if the character currently in the screenshots was the final one (it isn’t). I’ve been playing around with some low pixel characters and it’s actually harder then I initially thought. Here’s the result of a very simple ‘character idling’ animation.

There are also a few new monster and gizmos:


Fountain

Screen Shot 2013-02-16 at 4.48.20 PM
Epic Angry looking Skelton Dog


Rocks 🙂