Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

17/08/2007

Le langage R...

Ces derniers temps, je m’intéresse pas mal aux méthodes statistiques. Certaines d’entre elles sont utilisées de longue date dans un certain nombre d’algorithmes primordiaux en traitement de signal, l’image étant un bon exemple de signal complexe.

 

On trouve des stats en raytracing ou pour le calcul de l’illumination globale. Elles sont incontournables quand on fait de la compression, ou certains calculs particulièrement coûteux.
 

a5c0ad3a84f77557082bc76d9b6a85d3.png

 

Mon petit doigt me dit que certaines méthodes sont appelées dans les prochaines années à prendre de l’ampleur dans les jeux, en particulier en IA et en animation.

 

Et c’est comme ça que j’ai découvert R, un DSL (Domain Specific Language) dédié aux calculs statistiques ^_^

13:10 Publié dans Code | Lien permanent | Commentaires (0)

15/08/2007

CUDA: Une Intro

Hardware.fr revient sur CUDA et l'architecture des derniers GPU NVidia. Bon, la doc en Français étant plutôt rare, il ne faut pas bouder votre plaisir ^_^

 

e23a0582ec6ad84dd3091d0744cf69c4.gif

 

Maintenant, il me faudrait une nouvelle tour avant d'acheter une 8800...

 

13:05 Publié dans Code | Lien permanent | Commentaires (0)

06/06/2007

OPAL: Open Physics Abstraction Layer...

Un peu de code pour changer. Pour avoir travaillé avec un certain nombre de moteurs physiques pro et open source, j'ai pu constater combien leurs interfaces étaient similaires. Bien sur, certains sont plus bas niveau que d'autres ou offrent des features différentes, mais la base des objets manipulés reste souvent identique: le corps rigide, la forme de collision, les contraintes, et les propriétés du monde simulé.

 

Opal a pour propos de proposer une interface haut niveau générique s'interfaçant directement avec différents moteurs. Et de fait, le travail d'intégration d'un middleware consiste souvent dans un premier lieu a "wrapper" le moteur physique autour des représentations souhaitées par le moteur de jeu, ou plus simplement prééxistantes.

 

3ddb03245b2dcc1853826652277915fc.jpg

13:10 Publié dans Code | Lien permanent | Commentaires (0)

16/05/2007

SCRATCH...

Dans mon temps, on apprenait aux enfants à programmer sur TO7 ou MO5 avec une... tortue! Si si, j'ai passé des heures à faire bouger cette tortue pour dessiner de jolies dessins géométrique en.. euh... deux couleurs... et avec des lignes...
 
 
Aujourd'hui, les gamins élevés avec Naruto et One Piece ont d'autres chats à fouetter. Voici donc Scratch. En provenance du MIT, Scratch est un outil de programmation visuel pour animer des applications multimédias.  
 
 
A free programming tool that allows anyone to create their own animated stories, video games and interactive artworks has been developed.
 

Primarily aimed at children, Scratch does not require prior knowledge of complex computer languages.

 

Instead, it uses a simple graphical interface that allows programs to be assembled like building blocks.

 

The digital toolkit, developed in the US at MIT's Media Lab, allows people to blend images, sound and video.

 

"Computer programming has been traditionally seen as something that is beyond most people - it's only for a special group with technical expertise and experience," said Professor Mitchel Resnick, one of the researchers at the Lifelong Kindergarten group at MIT.

 

"We have developed Scratch as a new type of programming language, which is much more accessible."

  [ BBC ]
 
 
Ce qui m'a intrigué dans cette démarche, c'est l'approche technique qui se rapproche de ce que l'on peut produire dans les éditeurs de jeux vidéo. De plus en plus d'éditeurs pronent une approche visuelle du script des jeux... 
 
 

13:10 Publié dans Code | Lien permanent | Commentaires (3)

16/04/2007

Guide pour l'optimisation de code...

Yaz0r m'a indiqué une bonne resource pour tout ceux désireux apprendre quelques astuces sur l'optimisation de code. C'est vrai que c'est un peu une obsession parfois...

 

This series of five manuals describes everything you need to know about optimizing code for Intel and AMD microprocessors, including optimization advices for C++ and assembly language, details about the microarchitecture and instruction timings of Intel and AMD processors, and details about different compilers and calling conventions.

 

Intel microprocessors covered: Intel Pentium 1 through Pentium 4, Pentium D, Pentium M, Core Duo, Core 2, etc., but not Itanium. AMD microprocessors covered: Athlon 64, Opteron. Operating systems covered: DOS, Windows, Linux, BSD, Mac OS X Intel based. Includes coverage of 64-bit systems.

 

[ www.agner.org

13:10 Publié dans Code | Lien permanent | Commentaires (4)

28/03/2007

L’agrégation vs l'héritage

Si il y a un des sujets les moins bien documentés de l’art de programmer un jeu, c’est bien la notion d’entité. L’IA, la physique, les shaders, le graphe de scène, tous ces sujets sont relativement bien connus. Ce qui l’est moins, c’est comment tout ça fonctionne ensemble !

 

Dans un jeu, une entité peut se définir comme tout élément logique du point de vue du game design. Un personnage est une entité, le joueur est une entité, un véhicule est une entité, un bonus qui flotte en l’air est une entité. A l’extrême, même le décor est une entité.

 

En corollaire, un niveau de jeu peut être vue comme une collection d’entité. Jusque la, tout va bien. Seulement, toutes les entités ne sont pas égales.

 

Le décor par exemple n’a probablement pas d’IA, et la nature statique de son mesh ne justifie pas son inclusion dans le graphe de scène. Un objet dynamique a besoin d’une représentation physique, mais une voiture peut parfaitement être simulé par 4 lancé de rayon. Un PNJ est contrôlé par une IA, tandis que le joueur est en relation directe avec les inputs.

 

Bref, ça devient vite un vrai sac de nœud.

 

Pour faire simple, il y a deux façons de résoudre ce problème, la bonne (l’agrégation en général), et la mauvaise (l’approche oriente objet en général). Cowboy Programming revient sur les challenges de ces deux approches.

 

 

Up until fairly recently, game programmers have consistently used a deep class hierarchy to represent game entities. The tide is beginning to shift from this use of deep hierarchies to a variety of methods that compose a game entity object as an aggregation of components.

 

This article explains what this means, and explores some of the benefits and practical considerations of such an approach. I will describe my personal experience in implementing this system on a large code base, including how to sell the idea to other programmers and management.

 

[ Cowboy Programming ]

13:10 Publié dans Code | Lien permanent | Commentaires (7)

23/03/2007

Autodesk FBX...

Le format de fichier FBX est un format de fichier 3D supporté par AutoDesk. L’avantage de ce format, c’est bien sur son support sur tout les produit AutoDesk, de Max à Maya. Du coup, ça devient de plus en plus difficile de l’ignorer, même si l’approche non open source pêche face à un Collada certes moins rependu, mais plus ouvert par exemple.  

 

The FBX® open-standard, platform-independent 3D file format gives you access to content authored in any software package supporting the FBX file format. FBX plug-ins are included with Autodesk® Maya® software, Autodesk® 3ds Max® software, and Autodesk® VIZ software—providing high levels of interoperability between these packages—and with Autodesk® MotionBuilder™ software, which supports FBX natively.

 

These plug-ins are available at no-charge on this website. The FBX SDK is a free, easy-to-use, C++ software development platform and the API toolkit lets you transfer existing content into the FBX format with minimal effort. FBX is the mostly widely used and supported 3D file format on the market today and its rate of adoption continues to skyrocket.

 

[ AutoDesk ]

13:00 Publié dans Code | Lien permanent | Commentaires (8)

21/03/2007

L'animation: nouvelle frontière next gen

C’est une idée que je prêche depuis longtemps. Avec les progrès colossaux  effectués en terme de rendu, c’est l’animation qui devient le prochain grand challenge.

 

Toutes les animations : animation de personnage, simulation physique, cheveux, vêtements, végétation, atmosphère, animation procédurale, bref, tout ce qui bouge dans la vraie vie est appelé a être reproduit le plus fidèlement possible dans les jeux vidéo …

 

At GDC 2007, Lucas Arts gave demonstrations of what the future of animation in games may look like. Their upcoming title, Star Wars: The Force Unleashed, is seeking to make both characters and environments react to events in the most believeable ways possible. This means making the best use of technologies called euphoria and DMM. You may have heard about this technology before, and judging from early tests, there didn't seem like there was that much to write home about. But the latest demonstrations are more polished and considerably more impressive.

 

[ IGN ]

 

13:15 Publié dans Code | Lien permanent | Commentaires (4)

18/03/2007

Playstation Edge…

… a l’oeuvre sur The Getaway. Sony est en train d’investir massivement sur une gamme de technologie des plus prometteuse…

 

 

[ Game Watch ]

13:15 Publié dans Code | Lien permanent | Commentaires (0)

03/03/2007

Processing...

Processing est un environnement et un langage de programmation dédié à la création d’effets visuels et sonores. Ce qui est particulièrement intéressant avec Processing, c’est l’utilisation qu’en font les artistes et autres architectes modernes.

 

Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production.

 

It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain.

 

[ Processing ]

 

Entres autres... 

13:05 Publié dans Code | Lien permanent | Commentaires (0)

02/03/2007

Top Coder...

Un programmeur, c’est d’abord et avant tout quelqu’un qui pratique la programmation, c'est-à-dire quelqu’un qui utilise la programmation pour résoudre un problème.

 

Un programmeur expérimenté, c’est quelqu’un qui a résolu un certains nombres de problèmes au fil du temps.  Pour un professionnel, il est vital d’acquérir cette expérience le plus tôt possible.

 

C’est le propos de TopCoder. Sur ce site, des dizaines d’universités et de professionnels entrent en compétition sur la résolution de problèmes qui vont du plus simple exercice algorithmique au design le plus compliqué. C’est un excellent exercice.

 

Do you really think this is a good way to measure the relative merit of programmers? The ability to quickly code solutions to a set of somewhat simple algorithmic problems does not completely define a "top" programmer.

 

However, our attempt to make TopCoder tournaments as objective as possible has initially lead us in this direction. We continuously discuss ways in which we might introduce code elegance, style, reusability, and other less objectively ratable elements into our tournaments. We'd love to hear any suggestions on how this might be accomplished.

 

 

[ TopCoder ]

 

13:10 Publié dans Code | Lien permanent | Commentaires (2)

25/02/2007

Nvidia CUDA en beta...

... disponible sur le site de NVIDIA. Pour ceux qui ne se souviennent pas, petite piqure de rappel...

 

NVIDIA® CUDA™ technology is a fundamentally new computing architecture that enables the GPU to solve complex computational problems in consumer, business, and technical applications.

 

CUDA (Compute Unified Device Architecture) technology gives computationally intensive applications access to the tremendous processing power of NVIDIA graphics processing units (GPUs) through a revolutionary new programming interface.

 

Providing orders of magnitude more performance and simplifying software development by using the standard C language, CUDA technology enables developers to create innovative solutions for data-intensive problems. For advanced research and language development, CUDA includes a low level assembly language layer and driver interface.

 

[ NVIDIA

13:05 Publié dans Code | Lien permanent | Commentaires (0)