Archive for the ‘technology’ Category

Second Prototype Update

Saturday, March 15th, 2008

The second prototype was updated. It is now a complete game. Well not really, however it is playable but lacks a concept. A new building was added – the command center. It serves as the main base of a player and can not be destroyed. Mechanisms to attack enemies were also added. A rudimentary ticker was added that gives units to each player depending on how many building he owns. Keyboard scrolling is another feature that was added. Players are now able to build bunkers. The more enemies a player kills the more bunkers he may build. Here’s a screenshot of the current version:

release2_version2

I also released the sourcecode under the GPLv3 and uploaded the files (the first and the second version) to the newly created Google Code project. The name of the project is JSGmap which is short for JavaScript Game Map. The project can be found here: http://code.google.com/p/jsgmap/. Unfortunately it is not possible to upload a public demo of the new version. However there’s a private version running on this server with ticks every 10 minutes. If you would like to take a look please leave a comment.

Second Prototype

Saturday, March 1st, 2008

Over one year after the first prototype was released, the second prototype is finished. It’s yet another graphical user interface for a strategy game.

Go ahead and start the prototype.

As a theme I chose again Starcraft – the ingenious realtime strategy game created by Blizzard Entertainment. Specifically I chose the “Bunker Wars” variation of the game where the players only have marines and bunkers available to play. Here’s what it looks like:

Release 2 Screenshot

The fist prototype was merely a Google-Maps like scrolling script that could display a section of a huge map and provide a convenient interface to navigate and scroll the map. It was all static JavaScript, no database backend, no unit movement or units no nothing. It looked like this:

Release 1 Screenshot

The new prototype features access management (which is circumvented in the demo), units are available and they can move and enter or leave bunkers. The map can be scrolled – the displayed map is 8×8 tiles – the actual map size is 100×100.

On the front end the prototype uses asynchronous JavaScript to reload the map without reloading the page and to issue unit movement commands to the server. The javascript library Prototype is used.

The backend consists of a MySQL database with 3 tables (users, map, units). A couple of PHP classes output the main page and two API interfaces are provided for the asynchronous JavaScript calls to update the map and to move a unit. It’s rather simple and functional and probably somewhat resource wasting but it works. It’s tested on Firefox 2 and Internet Explorer 7 and should also work with Internet Explorer 6.

Speeches, talks and presentations

Thursday, January 10th, 2008

One of the draft blog-posts that has been piling up forever is an assorted list of interesting videos of speeches, talks and presentations. Right now seems to be a good time to share them.

But first of all a list of great video-talk sources:
www.ted.com the website of “Technology, Entertainment, Design” featuring great talks given by for example Al Gore
google techtalks the google tech talk youtube page
www.bigthink.com a new place featuring interviews from all kinds of important and intelligent people about all kinds of topics
www.videolectures.net a place that provides free and open access to high quality video lectures presented by distinguished scholars and scientists.

And here the talks I really enjoyed listening to in the last weeks:
7 Habits For Effective Text Editing 2.0 a talk by Bram Moolenaar, the creator of VIM about efficiently using VIM
Resource Aware Programming a very interesting talk by Walid Taha
Linus Torvalds on git and git by Randal Schwartz
Quicksilver: Universal Access and Action by Nicholas Jitkoff the creator of Quicksilver – an extremely interesting and inspiring talk

CUDA Link Collection

Tuesday, November 6th, 2007

Here’s a list of CUDA related things on the web. CUDA stands for Compute Unified Device Architecture and is a GPGPU technology created by NVIDIA that allows a programmer to use the C programming language to code algorithms for execution on the GPU. The official website can be found here.

Update: NVIDIA introduced the new CUDA Zone website: http://www.nvidia.com/cuda a convenient way to access everything related to CUDA.

If you happen to know more CUDA related links (e.g. projects that use CUDA) feel free to leave a comment.

Minor Updates

Friday, November 2nd, 2007

There have been no updates for quite some time. Besides work there’s not much time to write articles. However I updated the blog under the hood as comment spam kept piling up. So now I’m driving akismet a spam filtering service created by Automattic. Hopefully this helps. I also optimized font-sizes throughout the blog for a more pleasant reading experience.

Furthermore the draft-posts keep getting more and more. Among others there’s some C++ stuff I’d like to share, some CUDA related code I wrote and a Science Fiction article that’s not quite finished. Hopefully some of this stuff will get published some time in the near future. Stay tuned!

Update: so far the askimet spam filtering service works great. No more spam! Hurray!

VTK read and display 2D raw data

Tuesday, August 7th, 2007

In order to create a simple 3D and 2D data visualization tool I took a look at the Visualization Toolkit. I found everything I needed there – it’s a really great collection of C++ classes with bindings for various other programming languages (TCL, Python). However the documentation is somewhat confusing and lacking simple basic things although a very good document on how to install compile and use it together with Visual Studio can be found here and a great blog aiming at overcoming the lack of tutorials can be found here.

I had quite a hard time figuring out the easiest thing: read raw 2D data and visualize it. After I played around with it for a while I figured it out. It’s actually pretty simple. Here’s the code:

/*******************************************************************************

    Simple VTK Example

    A very simple VTK example - a raw 2D datafile is read
    it's magnified by a factor of 3 and then it's displayed on a window.

    The pipeline:
    vtkImageReader->vtkImageMagnify->vtkRenderWindow

    The image file is a raw file of 64 rows * 64 columns. The values are
    2 byte (short int) long. 
    It's a greyscale dataset (NumberOfScalrComponents = 1)

*******************************************************************************/

#include "vtkImageReader.h"
#include "vtkImageViewer.h"
#include "vtkImageMagnify.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"

#define IMG_FILE "C:data.raw"

int main (void)
{
  vtkImageReader *imgReader = vtkImageReader::New();
    imgReader->SetFileDimensionality(2);
    imgReader->SetFileName(IMG_FILE);
    imgReader->SetNumberOfScalarComponents(1);
    imgReader->SetDataExtent(0,63, 0,63, 0,0);

  vtkImageMagnify *imgMagnify = vtkImageMagnify::New();
    imgMagnify->SetInputConnection(imgReader->GetOutputPort());
    imgMagnify->SetMagnificationFactors(3, 3, 3);

  vtkImageViewer* imgViewer = vtkImageViewer::New();
    imgViewer->SetInputConnection(imgMagnify->GetOutputPort());

  vtkRenderWindow *renWindow = vtkRenderWindow::New();
    renWindow->AddRenderer(imgViewer->GetRenderer());
    renWindow->SetSize(64*3, 64*3);

  vtkRenderWindowInteractor *renWindowInteractor = vtkRenderWindowInteractor::New();
    renWindowInteractor->SetRenderWindow(renWindow);
    renWindowInteractor->Initialize();
    renWindowInteractor->Start(); 

  return 0;
}

All new

Thursday, July 19th, 2007

All new on the echelon blog. The layout has undergone a severe design rework – it looks much prettier now. Also check out the supercool new navigation and blog-description.

Suomenlinna

The blog is now driven by Wordpess. Even the hosting changed as this webserver now runs on one of those new fancy server grids. Took long enough to make those changes but now everything is running very smoothly again and new posts are about to come. As for the RSS feed: it is now located at http://www.soa-world.de/echelon/feed/.

Javascript Game Engines

Sunday, March 11th, 2007

Here is a roundup of Javascript Game Engine prototypes. I’m very interested in this stuff and I implemented a very simple prototype myself some time ago. There are two very different types of engines: one group is able to render some sort of map, suitable for strategy or arcarde games. The other group consists of first person 3D engines, suitable for e.g. car racing games and shooters. Here are two examples for the first group:


Ajax3d Demo and Freevolution – an Isometric Map Engine

Both engines seem very cool and very advanced. I’m looking forward to games that use this kind of engines. Such games could combine appealing graphics found in conventionel computer games and the fun that massive amounts of players bring to a game as browser bases games are noted for. I predict sheer infinite possibilities.

The second group of engines is not as attractive as the first one. The reason for that is simple. Games like shooters and car racing games are attractive because they look good. Because they look very realistic. Because they have fantastic effects. Javascript based games could not ever compete with regular computer games in this area. However if one is inventive and has a great game concept I definetly see a future for those kinds of engines too. Here are two examples:


Canvascape – “3D Walker” and HTML Canvas Element real 3D Demo

Renaissance of the Command Line

Thursday, March 8th, 2007

Recently I noticed some odd stuff. Launchy – an open source keystroke launcher for windows. Start++, a Vista tool that enables users to launch programs, open websites and play music by typing simple commands into a textbox.

Launchy

Start++

Are they reinventing the unix shell? Well, not exactly but by some means yes, they are. That’s no surprise. Interacting with a computer via the keyboard is much faster than using the mouse. Especially when your hands reside on the keyboard, e.g. while writing text or during a chat conversation. I think it’s great that people are rediscovering this advantage. Creators of IRC clients for example have been including this feature for a long time.

For the very same reason I prefer the VIM editor and use the bash even on my Windows Systems with the help of Cygwin.

The Future of Desktop Environments

Thursday, March 1st, 2007

Lately quite a lot of videos presenting future desktop environments emerged. All of them are really cool so I’d like to summarize and share them.

multi-touch-sensing desktop

A very popular one is a TED talk by Jefferson Han given in February 2006. Mr. Han presents a “multi-touch-sensing” screen which is basically a touchscreen which “recognizes multiple simultaneous touch points” and even pressure. Sounds boring? It’s not. Watch the video and see for yourself.

This however are still dreams of the future. A not so far away and really cool desktop environment is the BumpTop Prototype. It’s a project that aims to “enrich the desktop metaphor with expressive, lightweight techniques found in the real world”. A very cool video is available here.

But one can enjoy fancy new desktop environments today. The Beryl Project is an OpenGL accelerated desktop for the Linux operating system. And boy does it look pretty! There are two videos available here and here.