Code-Highlight

Monday 14 November 2011

#some research on pathfinding

The first keyword that comes to mind thinking about pathfinding, is the A* algorithm. The A* is a fast node based approach to compute the shortest way from start to finish over a bunch of nodes, because it's a geometrical simplified approach it's fast as well. 

Also it's scalable:
More nodes, better results, weak performance...
Less nodes, bad results, fast performance... 

In this case bad results mean for example unnecessary edges in the path. Also in general the computed way looks quite unnatural, so to use smooth algorithms is quite common or algorithm to generate curves instead of sharp edges.

To get a better insight I found following useful references:

#some vision on the internet

After the announcements of Adobe it seems everything will change. And let's just hope it will be a good change, but what will be the replacement. If I think about the future of the internet in general, I think about a cloud-based world, where Application and the User are within this system. 


The future me could go on a website, but also start an app or open an ebook. So the adresses will be way more flexible in the future.
I open up an adress like "site://amazon.co.uk" and look for a book. So after reading some good reviews, I want to have a look in an example chapter, so I click on a link and the address "book://amazon.co.uk/somebook" opens up. My modern browser directly opens it with my favorite reader implementation.

This is not the only thing I could do, this would be a really simple example, because the apps will be capable of way more. For example I purchased photoshop from adobe on their website, so a licence for this app gets added to my "Online-ID". Before I had this licence, when I open up the address "app://photoshop.en", I could only access a demo or trial or had a verify full licence button, but now with the licence the proper photoshop opens like a normal program in the past. The webapp is cached after the first run, so I don't have to bother about loading times in the future. If there is an update I would just notice a minimum increment of the loading time (applying some updates to the cache).
For easy access I create an icon for the photoshop app in my dashbar at the bottom of the screen.

The big advantage for the industry would be the improved distribution and also a platform independent system. For the capitalist it would be a way to get a safe licensing system.

A way to realise that in the future would be something like google's Native Client or HTML5, but there will be more changes. The modern browser may merge web-applications, local applications, local filesystem and also websites -  everything available through one GUI. so an webapp will be in a window -  Instead of a bar at the bottom in windows, we have something similar, some tabs at the top and an adress.

A way to make this possible, would be to use mono/dotnetfx to compile to CLR. So the browser requests an application using a new protocol and gets the CLR to compile it locally for the specific architecture. Simple as that it would be possible to change how the hole internet would feel.

Unfortunately humans don't like change, so it will probably a while 'til big changes come...

#some hint on how to start optimising

Just decided to start a blog... to somehow keep track about what I am doing.

For game developers the final program must be optimised to every bit - to achieve that, the developers need a lot of in-depth knowledge of the architecture, they are developing for.
I found it quite hard to find a good piece of information about how to achieve this level of optimisation,
but I found a really good ressource in the end.

There is a swedish professor, who published really good tutorials about optimising. He discribes the main architectures in detail and the several operation systems in the first part. This is also the most important part, because modern compilers are good at optimising, so there is no general need to optimise it yourself on an assembly level.
For some people like myself, it's not enough to not know if I could still squeeze out another 5% performance, so I am glad that this swedish professor felt the same.

So for everyone who wants some in-depth knowledge about these topics, here you go.