Ignite – monster information

(click to enlarge)

Ignite – new dungeon tileset

New tile shading (more sharp and a lot less edgy)

(click to enlarge)

Ignite – Tile shading

Hello! I have implemented new way of tile shading today. I was done a big work today to make such pictures posible:

As you see there is no more square fog/shadow tiles.

World generation – Dungeons access from main map

Now dungeons generated and can be accessed from main map:

All location will have unique name from now. How about to explore Forsaken Temple of Terrible Madness near the Helun Bay village ?

How to improve perfomance of GDI+ using C#

I’m not good at annotations and in english, so there will be only a useful tips. All of this has been discovered through the development process of my roguelike game – Ignite.

1. Use next combination of parameters:

C#
1
Graphics buffer;

C#
1
2
3
buffer.InterpolationMode = InterpolationMode.NearestNeighbor;
buffer.CompositingQuality = CompositingQuality.HighSpeed;
buffer.SmoothingMode = SmoothingMode.None;

C#
1
buffer.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;

InterpolationMode.NearestNeighbor will ruin your image if there will be any interpolation, BUT there will be no need in interpolation if you will draw your image with original size. Also, InterpolationMode.NearestNeighbor is a number one parameter if you want to achieve “cool” 8-bit pixeling effect.

CompositingQuality.HighSpeed and SmoothingMode.None will give you 1-2 fps.

TextRenderingHint.SingleBitPerPixel I don`t think that any fps improvement can be achieved by this parameter. TextRenderingHint.SingleBitPerPixel will make your fonts to look crapy.

2. While double buffer – apply parameters from above to main buffer too. This will give you a good improvement.

3. Do not use Graphics.DrawImageUnscalled(…)! Instead use Graphics.DrawImage(Image, Point, Size) OR even Graphics.DrawImage(Image, Point). Make sure that dpi resolution of your image are same as resolution of your layer.

4. Always use 32bit (PixelFormat.32bppPArgb) images for maximum drawing speed of your application. You can convert to 32 bit image runntime using this code:

// Convert to 32bppPArgb for speed.
// = 32 bits per pixel, premultiplied alpha
if (sourceImage.PixelFormat != PixelFormat.Format32bppPArgb)
{     
SImage original = sourceImage;     
SImage backImage = new Bitmap(original.Width, original.Height, PixelFormat.Format32bppPArgb);      using (Graphics g = Graphics.FromImage(backImage))
      g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height));      
sourceImage = backImage;     
original.Dispose();
}

Make sure thal all your surfaces(main surface, double buffer etc.) are 32bppPArgb too.

By changing image PixelFormat i went from 20 fps to 65 in my application.

6. If you have something that is invisible to player – do not draw it!

7. Do not rotate or scale images at runtime. If you need to, try to do it in another thread.

8. Do not draw a part of an image. If you want to animate some image, have a new image for every frame.

9. When you get tired with “GDI+ perfomance” use directX or OpenGL for your projects (:

World Generation: Temperature – Cold

Snow and ice mass generation

Soft edge of a tile.

Not a big progress on a world generation, only made more soft edges of tiles. I think that they are looks good now.

(click to enlarge)

Image updated: first settlement (a desert camp) added to a map.

World generation – Moisture

Added moisture level to the map. Deserts are formed.

…and forest will grow!

Generating world

Started world generation routine:

ignite: world generation

Height map added. Height map formed a mountains and hills. Straight edges are blended now.

Ignite 0.039 – A Quest for Necronomicon

Hello! I’m releasing a new version of my roguelike RPG – Ignite. Version number is 0.039 from 1st December 2011.

New persistent dungeon lies before you. A forsaken book of Necronomicon is hidden in it and you should hack-and-slash though a legion of monsters and find the book.

Features of this release:

  • Persistent dungeon
  • New graphical mode and a lot of animation is added
  • Roleplay system with Strength to crush your foes, Dexterity to make your hits more deadlier and Mind to .. to outsmart your opponents!
  • Crush enemy with your fists or find one of several weapons and use them
  • 8 abilities and only one is unlocked at game start.
  • More smarter enemies with unique abilities
  • Monster AI improvements
  • Sleep, fear, daze, confusion, poison and bleed in the Caves of Necronomicon!

Attention: you can use alternate controls (if your keyboard doesn`t have arrow keys) – “u i o j k l m , .

You will need a .Net Framework 4.0 to run Ignite.

Link: http://dl.dropbox.com/u/31655535/Ignite0039.rar

Mirror: http://depositfiles.com/files/9z4vfy0rl

Ignite roguelike