Blogs from friends
Programming and Software Development Guru
  • A tech blog recommendation

    I recently came across this blog in my web travels. The guy is a self described C++ hater, but also a C++ (and many other languages) super-genius, being a developer of compilers and debuggers and stuff for embedded C and C++ developers in the automotive industry. His articles aren’t too focused...

  • Stay in Sync with GCal and Thunderbird.

    For a long time I have been looking for a rock solid calendaring system. I’ve gotten too used to working for companies who have Microsoft Exchange (or, God forbid, Scalix) installed which allow me to edit and update a calendar from multiple locations and even sync...

  • Software RAID 5 in Ubuntu with mdadm

    Software RAID in Linux is a great way to gain massive amounts of disk space which are required for storing digital media, with the added security of data redundancy incase one of the disks in the array fail. Many people still frown upon software RAID...

The Escapist

The Escapist Forums : Threads
  • When there's something new, popping on Youtube...Who ya gonna call?

    Well my local newspaper has a section for videos "trending on Youtube" so I suppose I could call them, but I'm not exactly sure what the point of that section is supposed to be in the first place...

  • Last game you played that had a happy ending


    Johnny Novgorod:
    1) narrative-driven games for an 2) adult audience and with 3) only one possible ending.

    That seems like an oddly specific set of narrowing choices.

    Well, it's not that specific, just ruling out obvious stuff. Only narrative-driven games have stories that actually end, you're obviously going to get a happy ending if it's a kids' game, and there's obviously going to be happy ending if there're multiple options.

    Otherwise just about every "mature" story seems to have a single downer ending, feels like.
    I like bittersweet/sad endings when done right but not when they're the norm and come across as obligatory.

  • New Gillette commercial "not an indictment on manhood"




    Cham Albanians? Dare I even ask what that means?

    They're a group of Albanians that hail from northern Greece who were expelled after WWII on charges of collaboration with the Axis. Many have wanted to exercise a "right of return" in the aftermath of the end of communist Albania but have not been permitted and the Greek government isn't likely to compromise.

    So Chams were a mix with Greeks and lived at the top of Greece. They were vilified and were deported to interment camps at the start of WW2. Once Italy took over, they helped Italy. This made them hated by the rest of Greece and they ran to Albania.
    Since then, they have asked to return ro Greece but no dice. I don't know recent history of the Chams so maybe that's what's offensive. But I'm not anti Cham at this time

    I just picked one of the most obscure issues I know about in order to make a comment about our expectations that companies take sides in cultural conflicts/issues.

    Ah. I think you might have needed a j/k there. Unfortunately I knew little of their issues and just assume there was one.

    I mean, there's still an issue in regards to the fact that they and many of their descendants want to return to Greece or be compensated for their lost property, but the Greeks aren't willing to give them either. I would point out the precedents set by the Partitioning of the British Raj, the Nakba/Arab Expulsion of Jews, along with the removal of ethnic Germans from Eastern Europe is one that doesn't bode well for them. Considering these all happened at about the same time.

Voronoi tiling art PDF Print E-mail
Written by Mat   
Wednesday, 30 September 2009 20:23

These tessellations have all been generated by a very simple FreeBASIC program that I wrote.

I stumbled upon this algorithm while searching for a way to generate stochastic terrain heightmaps for a 3D strategy game, and realised that it could be made to produce pretty 2D pictures.

See: Voronoi diagram at Wikipedia.

The algorithm is as follows: start by placing a number of control points in random positions in the image, and assign each one a primary colour. Then for each pixel of the image, the colour of that pixel is set to the colour of its nearest control point, and the brightness of the pixel is set to the difference between the distance from the pixel to its nearest control point and the distance from the pixel to its next nearest control point.

Numerous variations on the algorithm exist: instead of using control points, other geometric objects can be used such as line segments or circles, which both result in curved edges. Also, instead of using Pythagoras to compute the distances, other methods can be used such as the Manhattan metric or the chessboard metric, and these result in more right angles.

It is possible to achieve a finer granularity in the spectrum of colours used, by mixing together two or more layers of tilings with various weights and numbers of control points.

Tiling Tiling Tiling
Tiling Tiling Tiling
Tiling Tiling Tiling

Last Updated on Thursday, 01 October 2009 20:12
Place features PDF Print E-mail
Written by Mat   
Saturday, 17 January 2009 02:42
Current features of Place:
  • Free software, professionally finished;
  • No restrictions on licensing of your game;
  • Most of the work done for you, just tell Place where you want to place your entities and how you want them to react;
  • Movable entities automatically negotiate obstacles using shortest-path algorithm;
  • A bare minimum of scripting experience required of game designers;
  • Advanced features available to those who want to dig deeper;
  • Helpful debugging system enables rapid testing and makes it easy to find mistakes;
  • Prototyping system to reduce the amount of tediously repetitive work involved in development;
  • Free, extensible toolkit: add new features if you wish;
  • Uses a well-established, popular general-purpose scripting language with vast amounts of documentation, so there's no need to learn some adolescent, obscure single-purpose language just for scripting games;
  • Runs on Windows, Linux, Mac and various other platforms;
  • Games get an extensive menu system for making and loading savegames and configuring all of their settings;
  • Use any graphics resolution you wish; player can choose their own and your graphics will be rescaled, preserving the aspect ratio if desired;
  • Entities can automatically scale down as they move further away to give the appearance of perspective;
  • Simple yet powerful conversation system;
  • Link subtitles with the voice audio files that go with them, if you want voice acting;
  • Multi-threaded caching system pre-loads resources before they are needed, for improved responsiveness;
  • Internationalization/localization: easily support translations of a game into foreign languages;
  • Support for cut-scenes, using either the pre-existing system of rooms and entities, or MPEG format videos;
  • Extensive tutorials to get you started.

Features planned for the future:

  • Auto-package games into a Windows .exe installer, .pkg file for Macs or .deb, .rpm or .tgz package for Linux;
  • WYSIWYG game creation and editing studio, integrated with the Gimp professional, open-source image manipulation suite and featuring a text editor for scripting with syntax highlighting, auto-completion and debugging facilities;
  • Parallax scrolling background scenes;
  • Ability to use 3D models for entities instead of flat sprites;
  • Simplify programming interface further still and extend to Java, Python, Lua and Ruby;
  • More speed improvements;
  • Native support for Nintendo's DS and Wii consoles and SymbianOS (for recent phones by Nokia and others).
Last Updated on Wednesday, 15 April 2009 20:50
About Place PDF Print E-mail
Written by Mat   
Saturday, 17 January 2009 02:38
Place is a collection of modules for the programming language Perl, intended to enable non-programmers to fairly easily develop 2D point-and-click adventure games that can run on Windows, Linux and Mac. It is free software, distributed under the GNU GPL license, but that does not mean that the games that use it need to be under that license also; games developed using Place may be released under any license that their author wishes, so long as Place itself remains under the GPL.
Last Updated on Sunday, 18 January 2009 01:07