Retro FPS

Tag: 2D Maps

AGK Forums Notified Of giLE2D!

by on Sep.19, 2013, under giLE2D Dev

Well, I took the plunge tonight and decided to put a little info about giLE2D on the AGK forums at the excellent Game Creators website!

I took the precaution of asking their permission first, since nobody likes a spammer. Spamming lowers the tone and credibility of any project, don’t you find?

Anyway, you’ll find the forum entry at:

Many, many thanks to all the forum members there for being the most friendly, non-pompous and genuinely helpful people in the global game dev community. They should all be proud of themselves for their overall conduct and graciousness.


…and I mean that most sincerely, folks!

Any road up, the help system writing and dev is going slower than the core API and UI layer coding did… (Ugh! Help Authoring…) but I really want to write something that is both helpful and entertaining. It’s absolutely worth going that extra mile from not only a professional standpoint, but for the personal “job well done” type feeling.

The official release date for giLE2D is October, the 19th of February (oops, sorry, a Stephen Fry-ism skipped in there). Actually, mid to late October is what I’m shooting at now. Hopefully sooner, but that all depends on the robustness of the core code.

So, to sum up, its on with more help-book writing and some more Guinness to help me through the process!


April, The 20th Of Septemberism, m'colleagues

April, The 20th Of Septemberism, m’colleagues

Comments Off on AGK Forums Notified Of giLE2D! :, more...

Delphi And RTTI… Moving Controls At Runtime

by on Sep.18, 2013, under giLE2D Dev

Developing giLE2D in Delphi 2010 has been GREAT FUN! I’ve been using Delphi since version 1 (1995).

I wanted to produce a map editor that would not rely on any expensive hardware acceleration, but still have good performance. Here enters TWinControl and its decendants, with the help of GDIPCustomItem…!

While in most situations you arrange all the controls on a Delphi form in a “fixed” position, there are situations when you need to allow a user to change the placement and dimension of controls at run-time.

This is the foundation of the editor… using run time type information (RTTI) to get the job done.

I played around with trying to use a TPanel with a child TImage control to represent sprites, but I just didn’t have the time to incorporate the flexibility I needed for such an object. I am, though, a proud licensee of the fabulous TMS Component library for Delphi. One of their controls gave me exactly what I needed to represent sprites.

The control, TAdvGlowButton, is a descendant of TWinControl (essential here, because I need a window handle HWND for reference). It comes with excess baggage, but I can strip this baggage using RTTI and inherit from it to implement my own interface to the object. It has an implementation of an interface to handle GDI image types, such as TGA and of course, the ubiquitous PNG, so painting and re-drawing the object, not to mention its support for embedded images, made it a no-brainer. The only concern was the GDI handle count under an OS like WinXP (which I do not intend to fully support anyway).

For example, I strip all of its MouseDown, MouseMove and MouseUp events and implement my own at runtime. That way, the end-user can drag and place the control anywhere on the map surface.

You end up getting a nice class implementation:

type   TMethodArray = array of TMethod;
 TMover = class(TComponent)   
     OnClickMethods : TMethodArray;   
    MouseDownMethods : TMethodArray;   
    MouseMoveMethods : TMethodArray;  
    MouseUpMethods : TMethodArray;   
    KeyDownMethods : TMethodArray;


All these event methods can be juxtaposed at my own whim (making the control either static or moveable).

For example, in the RTTI mousemove replacement:

procedure TMover.ControlMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
  minWidth = 20;
  minHeight = 20;
  newPos: TPoint;
  if inReposition then
    with TSpriteBlock(Sender) do // TWinControl
      Screen.Cursor := crSize;
      Left := Left - oldPos.X + newPos.X;
      Top := Top - oldPos.Y + newPos.Y;
      oldPos := newPos;
      // pass all sprite properties
      PopulateProperties(TSpriteBlock(Sender), fmMain.Inspector);
    pbGrid.Update; //Repaint;
    NeedSave := True;

Totally Delphi, totally not much code and TOTALLY re-useable!! Delphi really kicks ass… it amazes me still!

As you may have guessed, TSpriteBlock is the inherited class from TAdvGlowButton! Great!

Anyway, hope this insight has been interesting to geeks and non-geeks alike!

Comments Off on Delphi And RTTI… Moving Controls At Runtime :, , , more...

giLE2D – Screenie

by on Sep.16, 2013, under giLE2D Dev

A screenie!

Mmmm.. Edit Background please!

Mmmm.. Edit Background please!

11 Comments :, more...

Help System Dev For giLE2D Begins!

by on Sep.15, 2013, under giLE2D Dev

Well… giLE2D is finally taking shape!

With the core code done, its up to the in-house beta guys to tell me where all the bugs are.

Its on to help system authoring now, the bane of any dev!

I’ll be releasing more YouTube videos regarding giLE2D within the coming couple of weeks, so stay tuned!

The help system will be browser based (html), with embedded YouTube videos to help illustrate each topic where applicable.


Here’s a quick couple of screenies:





Comments Off on Help System Dev For giLE2D Begins! :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!


A few highly recommended websites...