Aug 18 2011

New Inkscape Extension And Importer Library

I use the Open Source SVG Editor Inkscape, for loads of things,Its absolutely fantastic, and for a long time I have wondered about using it for a level editor.

The only problem I have always had with it was that the svg format is quite difficult to parse so getting anything made in Inkscape into a game or another tool can be very difficult and time consuming.

Since Inkscape has a fantastic extension system, I wrote a python script that would read only relevant information from the scene then output it into a far simpler xml format.

I then wrote a generic interface and parser library for reading this format back in, this basically means that a user can get a very easy to use and very easy to modify interface to Inkscape.

Both the extension and the library were written in under 24 hours as part of the runup to the Ludum Dare competition.

http://ludumdare.com/

Download:

AntsInkscape Library


Aug 29 2010

Ogmo Editor Loading Library Released

During Ludum Dare, I created two library’s onee for loading files from the No-Tiles Editor, and one for loading frm what I feel is the best tile based 2d map editor available: Ogmo.

I feel Ogmo is very intuitive to work with, and very extensible, for this reason I decided that If I wanted to do a tile based 2d game it would probably be the best editor I could choose, so I created a library for loading its files into any application, feel free to use this library as you wish, the included main.cpp has an example application that simply dumps all of the information in a map out to the console.

Feel free to use however you wish,

I hope you enjoy using it as much as I enjoyed making it.

Thanks -Anthony Littlewood

OgmoEditorLibrary.zip


Aug 22 2010

No Tile Editor Import Library

It was Ludum Dare Weekend again this weekend. Unfortunately,  I have some very persistent friends and was unable to participate, after making a good start in the first few hours, an old friend basically commandeered the rest of my time.


so instead I decided I should spend one day, developing a library that would be useful for next time, then release it so everyone can benefit from it.


Some Time ago, A man called Javier Lopez Lopez, created a fantastic Tutorial on creating a No-tile 2d level editor a lot like the ones used in Braid and Aquaria:

http://gametuto.com/in-game-c-map-editor-tutorial-with-indielib-engine-that-dosent-use-tiles-but-pieced-images-like-in-braid-or-aquaria-games/

He used IndieLib. I have read through the tutorial plenty of times, but have found his version offers everything I needed, plus  a lot more, and have never been able to justify any improvements, I also felt that IndieLib was not the library I wished to use for my game, and creating an interface across multiple libraries could become problematic.

Since its such a good editor, I decided to use it for LD, and figured that the key issue I should resolve first is the creation of  a file parser for the xml format exported by No-Tile’s.

I did so and have now decided to release it to the community so everyone can make games using Javier’s fantastic tool, as a map editor.

The Lib works based on a derived callback method, this sounds a lot more complex than it truly is, and the whole library is deliberately fast and easy to implement and use, I managed to get the whole pipeline including tinting, rotation and collision detection working with HGE in under an hour.

Again all credit for the editor goes to Javier Lopez.


I hope you enjoy using this library as much I as I enjoyed building it.

Thanks -Anthony

No Tile Editor Import Library Download


Aug 16 2010

Verlet Petri – Dish

Verlet Petri Dish:

The Petri Dish is a sample implementation I developed whilst studying Verlet integration.

The Very Simple Underlying Equation for Verlet is:

X’ = x  + x – previous_x;

Y’ = y  + y – previous_y;

What it means is that this doesn’t need the time delta that Euler does. This makes it incredibly stable.

I built a framework of components around it, including controllers and simple constraints, and added them to the HGE rendering engine.

The Sample Contains 8 Differant scenes all demonstrating various features and merits of the implementation.


1: Ballon On a String

2: Klackers

3: Balloons

4: RagDoll Man

5: Verlet Cloth

6:  Newtons Cradle

7: Verlet String Test

8: Tentacle Arm

I am currently tidying the code up so that it can be used in future projects, and will post it here as soon as I am happy with it.

Until then, please feel free to download and try out the Petri -Dish and see if it inspires you to create anything.

I hope you enjoy playing with it as much as I enjoyed building it




Anthony Littlewood’s Verlet Petri Dish

Thanks -Anthony.


Jul 8 2010

Ants Archive Library – “AAL”

Some time ago I had a requirement for resource file/archive support in a game I was working on,

I considered a number of options including reading the raw data from an xml file, and also looking at existing archive librarys, but struggled to find anything that met my needs, so I built my own,

I decided to call it Ant’s Archive Library or “AAL” for short,

It is basically a wrapper around ZLIB, it means tthat the person using the library does not need to worry about any of the low level archive code and instead can simply include either the source code directly into their project, or build AAL as a library, they can then attatch packages to the system, and extract resources from it, using an abstract linked list datastructure.

  • allmost comically easy to integrate and use
  • a nice system for resource management
  • uses an optional callback system for error handling’
  • Very clear example code included

Download Ants Archive Library -AAL


Apr 8 2010

Sprite Scanner

From time to time I find myself wanting to work on a 2d game, and for a long time I found myself stuck spending hours of my time attempting to create sprite sheets that ended up looking absolutely terrible.

Anyone who has done this will know how terribly frustrating it can become if you aren’t an artist by nature, eventually I would just find a 3d model, of course this would then mean that the whole game would have to be moved over to 3d which would take even longer.

Eventually I had an idea; how about if I could take a series of images of the 3d model and use them in the 2d game instead,  Brilliant. The problem then became, how can I make this process easier and faster, how could I set this process off automatically and leave it to run.

After spending a great deal of time, designing I came up with “SpriteScanner” the animated model can be imported , the camera positioned, the frame range and offset set, and the export button pressed, the user goes away for a while, when they come back they have a high resolution sprite set.


Download SpriteScanner


Apr 8 2010

Shader Pad

About:

Shader Pad is a tool to make shader development easier and far less intimidating for beginners.

It is designed to favour minimalism and usability over features.

It also has a code central design, that puts the code at the focuss of the tool.

It also features shader hot-loading, this allows a user to use shaderpad with whatever text editor they like.

Brief:

When I was first learning to develop shaders,  I found myself repeatedly smacking my head on the tool I was using, while tools like ATI RenderMonkey are absolutely fantastic  for complex shader’s, such a large program is overkill for the simple “hello world” shader’s, that everyone has to start with.

I often found myself knowing exactly what I wanted the program to do,  but instead of being able to just make it happen I instead had to browse through the many nested toolbar options to find a dialogue for it.

ShaderPad Running with a simple weightless blob shader

weightless blob example shader

The design and layout of these large tools, are obviously intended for artists, there are things for tweaking absolutely everyware,  while  these are useful tools for debugging reasons,  when I am engineering code id rather tweak until I am happy then set a constant. Than go through a dialogue to create a big gui element for setting a variable I dont need to change.

I also found myself frustrated by the difficulties of porting a shader across to an engine, afterall why else would I be working on a shader?

In the end I decided that I could do it differently, and created Shader Pad.

While it lacks a number of features, and isn’t as extensible as Rendermonkey, it is about as intimidating as notepad, and connects seamlessly to tools a user is already happy with.

As a programmer, I always have Visual Studio running, it therefore makes sense that I would want to edit my shader code in Visual Studio,  instead of having another large memory intensive program running.


Shader Pad is written using a combination of the Irrlicht Engine, and WxWidgets, via a custom engineered widget.

ScreenshotOfShaderPad working with vs
Visual studio with shaderpad

  • Supports both DirectX and OpenGL.
  • Will run both GLSL shaders and DirectX shaders.
  • Has support for up to four analogue input variables.
  • Has hot-loading support.
  • Automatic and explicit shader reloading.
  • Error logging support.
  • Model loading support.
  • Multiple texture support and assignment.
  • A Pre-Assembled library of example shaders.
  • Code design.
  • No nonsense minimalist interface.
  • Allows the user to specify the shader entry points.

Download:

ShaderPad Download