Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 19 Dec 2006
Offline Last Active Nov 25 2013 10:41 AM

Topics I've Started

Tempest Game Engine, tech demo 1

28 December 2012 - 06:42 PM

Hey all,


So I've been plugging away at my project, Tempest Game Engine, and I've pieced together a tech demo. I've posted about it here (my blog is here), and a video is here.


If there's enough interest in the technologies employed to pull this off, I will write up a short technical paper.


Disclaimer: I'm not really looking for performance stats, as I have a number of performance improvements planned. I'm also certain that it mightn't work in non-(Chrome/Firefox) browsers, so don't be surprised if it doesn't, because I'm not. :-) I've tested it in Chrome and Firefox (on Windows 7 as well as Android ICS), but any curiosities which arise would certainly be appreciated.



- Peter


Mapping database objects to code?

06 September 2010 - 10:43 AM


While developing over the last while (both in my day-job as well as a hobbyist), I have come across what I'm sure is a deterrent for many coders; that of designing the database, then linking data tables to functional code.

I've started using ERDs to define my database (historically, I would define db tables manually either in SQL code or using a 3rd party low-level tool like phpMyAdmin), which I really like, but I'm wondering if there are also tools which allow one to take this development one step further, and generate code which has base functionality to load/save individual object-properties to data tables.

I've only just begun researching this, and in the past I've simply hand-crafted code to handle this sort of load/save functionality, but I'd like to know what tools exist, what keywords I should be searching for, what options I have, and most importantly, are there better alternatives given the languages I'm using.

My target platform is cross-, in that the OS-specific code I'm writing should function in Linux as well as Windows, hence I'm developing in C# but with Mono as well as .NET in mind (and thus far have had excellent results). My target database platform is MySQL (again, relaxing limitations on OS-specific RDBMS's), though I'd be open to utilizing PostgreSQL as well.

I guess there's the situation of wanting to separate database access from code access using things like stored procedures for part of the business logic, so I guess this is a consideration, too.

I've been using MySQL Workbench to design the ERD's, and MonoDevelop as my platform coding IDE.


C DLL from C#

27 July 2010 - 08:11 AM

Hi guys,

Bit of a strange problem, thought I would toss it out here, and see if anyone has encountered similar ones.

I have two components in my application:

1) The first is a DLL compiled from a C program which generates images. In the program, memory is allocated (using 'malloc', though I have used 'new' as well), computations performed, and output is written to disk in the form of a GIF file. This is compiled in Release|x86 mode.

2) The second part is a C# program which maps the DLL from part 1, and calls a single function which calls the image creation routine. This is compiled in Debug|x86 mode.

The problem:
The first time the application is run, it generates the expected image. On subsequent calls to the DLL's inner functionality, the image is generated, but the output is corrupted (either a) the image looks ultra grainy, or b) the image file itself is corrupted, and not recognized as a GIF).

I'm wondering if there is some C vs C# gotcha that prevents me from allocating memory outside of the .NET CLR, or if there is some method by which I must compile my C-code (or alternatively invoke the C-code in an unsafe or marshalled block?)?

I'm not sure, I'd appreciate discussion on this issue. If there's a common resolution for this sort of situation, I'd be happy with but a few google keywords, as I'm not 100% sure what I'm looking for at this point.

(I've got a working alternate solution, consisting of a built .exe which is invoked separately from the C# application, which works fine. I am exploring the DLL as an option at present.)


[web] Tempest Game Engine

10 March 2010 - 02:25 PM

URL: http://tge.stormwarestudios.com/ Further to the development of a web-based game engine technology, I have released a small client-only demo of the next incarnation of TGE, or Tempest Game Engine. - Data is loaded from XML maps, generated by TilEd map editor - Client employs line-of-sight algorithm found in earlier Ultima games (III-V) - Mouse and keyboard input is possible (keyboard input is currently employed in the demo) My idea for this engine is to utilize random generators for dungeons, worlds, and civilizations (similar to Diablo, Dwarf Fortress, etc, generated on a 'first instance' basis). Additionally, since the game is rendered entirely inside the canvas object, I am toying with the idea of deploying a custom-written user interface (not looking forward to it, though). I had considered using the browser to fulfill this need, however it seems almost a necessity for elegance' sake to keep the UI inside the canvas element. I've begun a small community site geared toward TGE's development, you can find it here: http://tge.stormwarestudios.com/. I strongly recommend, if you try the demo, to use Chrome, secondarily Safari then Firefox, and lastly enjoy the screenshots if you have nothing else :) [Edited by - stormwarestudios on March 11, 2010 5:08:47 AM]

Cornering Algorithm

18 January 2010 - 01:43 PM

Hi all, I've been toying with the idea of writing what I'll call an "edging and cornering algorithm" to go with a fractal world-map generator I am developing. The premise follows a few rules: - World maps are generated using basic tile configurations, e.g. 0=ocean, 1=sea, 2=shallow water, 3=beach, 4=grass. There are no transition tiles. - Once the fractal world map is generated, a second tile-set world map must be generated from it, using the 'edging and cornering algorithm' which does a 2x2-grid lookup to determine which of the tiles below any given tile 'would' be: - The algorithm must look at neighboring tiles, and depending on which tile-set fits the query, the tile-set map is updated with the new corner/edge tile index. I'm sure this has been done before, so I am wondering if someone might be able to point me in its direction, if it has a proper name, etc. Thanks,