Programmation de jeux
12 livres et 13 critiques, dernière mise à jour le 15 août 2022 , note moyenne : 4.9
- Game Programming Gems
- Game Programming Gems 2
- Vector Game Math Processors
- Algorithms and Networking for Computer Games
- Game Engine Black Book: Wolfenstein 3D
- Ultimate 3D Game Engine Design & Architecture
- Data Structures for Game Programmers
- Beginning C++ Game Programming
- Game Programming with Python, Lua, and Ruby
- Software Engineering and Computer Games
- Programmation des jeux
- Foundation Actionscript 3.0 Animation: Making Things Move!
Game Programming Gems
Résumé de l'éditeur
Des animations et de l'intelligence articiciel au Z-buffering, calcul de lumières, effets climatiques, surfaces courbes, jeu sur Internet par multiples couches, musique et effets audio, toutes les techniques majeures pour développer un moteur de jeu compétitif sont abordées. Game Programming Gems est écrit dans un style accessible aux individus d'un niveau expert. Tous les codes source de chaque algorithme sont inclus et peuvent être utilisés par des programmeurs avancés immédiatement. Pour les aspirants programmeurs, un tutoriel détaillé est fourni pour travailler avant d'utiliser le code, des suggestions pour de possibles modifications et optimisations sont aussi inclus.
Édition : Charles River Media - 550 pages, 1re édition, 1er août 2000
ISBN10 : 1584500492 - ISBN13 : 9781584500490
- 1.0 The Magic of Data-Driven Design
- 1.1 Object-Oriented Programming and Design Techniques
- 1.2 Fast Math Using Template Metaprogramming
- 1.3 An Automatic Singleton Utility
- 1.4 Using the STL in Game Programming
- 1.5 A Generic Function-Binding Interface
- 1.6 A Generic Handle-Based Resource Manager
- 1.7 Resource and Memory Management
- 1.8 Fast Data Load Trick
- 1.9 Frame-Based Memory Allocation
- 1.10 Simple, Fast Bit Arrays
- 1.11 A Network Protocol for Online Games
- 1.12 Squeezing More Out of Assert
- 1.13 Stats: Real-Time Statistics and In-Game Debugging
- 1.14 Real-Time In-Game Profiling
Section 2 Mathematics
- 2.0 Predictable Random Numbers
- 2.1 Interpolation Methods
- 2.2 Integrating the Equations of Rigid Body Motion
- 2.3 Polynomial Approximations to Trigonometric Functions
- 2.4 Using Implicit Euler Integration for Numerical Stability
- 2.5 Wavelets: Theory and Compression
- 2.6 Interactive Simulation of Water Surfaces
- 2.7 Quaternions for Game Programming
- 2.8 Matrix-Quaternion Conversions
- 2.9 Interpolating Quaternions
- 2.10 The Shortest Arc Quaternion
Section 3 Artificial Intelligence
- 3.0 Designing a General Robust AI Engine
- 3.1 A Finite-State Machine Class
- 3.2 Game Trees
- 3.3 The Basics of A* for Path Planning
- 3.4 A* Aesthetic Optimizations
- 3.5 A* Speed Optimizations
- 3.6 Simplified 3D Movement and Pathfinding Using Navigation Meshes
- 3.7 Flocking: A Simple Technique for Simulating Group Behavior
- 3.8 Fuzzy Logic for Video Games
- 3.9 A Neural-Net Primer
Section 4 Polygonol Techniques
- 4.0 Optimizing Vertex Submissions for OpenGL
- 4.1 Tweaking A Vertex's Projected Depth Value
- 4.2 The Vector Camera
- 4.3 Camera Control Techniques
- 4.4 A Fast Cylinder-Frustum Intersection Test
- 4.5 3D Collision Detection
- 4.6 Multi-Resolution Maps for Interaction Detection
- 4.7 Computing the Distance into a Sector
- 4.8 Object Occlusion Culling
- 4.9 Never Let ‘Em See You Pop - Issues in Geometric Level of Detail Selection
- 4.10 Octree Construction
- 4.11 Loose Octrees
- 4.12 View-Independent Progressive Meshing
- 4.13 Interpolated 3D Keyframe Animation
- 4.14 A Fast and Simple Skinning Techniques
- 4.15 Filling the Gaps - Advanced Animation Using Stitching and Skinning
- 4.16 Real-Time Realistic Terrain Generation
- 4.17 Fractal Terrain Generation - Fault Formation
- 4.18 Fractal Terrain Generation - Midpoint Displacement
- 4.19 Fractal Terrain Generation - Particle Deposition
Section 5 Pixel Effects
- 5.0 2D Lens Flare
- 5.1 Using 3D Hardware for 2D Sprite Effects
- 5.2 Motif-Based Static Lighting
- 5.3 Simulated Real-Time Lighting Using Vertex Color Interpolation
- 5.4 Attenuation Maps
- 5.5 Advanced Texturing Using Texture Coordinate Generation
- 5.6 Hardware Bump Mapping
- 5.7 Ground-Plane Shadows
- 5.8 Real-Time Shadows on Complex Objects
- 5.9 Improving Environment-Mapped Reflection Using Glossy Prefiltering and the Fresnel Term
- 5.10 Convincing-Looking Glass for Games
- 5.11 Refraction Mapping for Liquids in Containers
Section 6 Appendix
- 6.0 The Matrix Utility Library
- 6.1 The Text Utility Library
- 6.2 About the CD-ROM
C ou C++, le code fourni semble être standard. Malheureusement, chaque item n'est proposé que dans un seul langage, il faudra donc "traduire" certains bouts de code. Mais le principal est de comprendre ce qui est proposé, même si ce n'est pas toujours très facile, surtout quand la gemme n'est pas très développée - parfois, il n'y a qu'un petit explicatif et un "regarde voir dans le code si j'y suis" -
Une bonne moitié du livre est consacrée au coeur d'un moteur de jeu, son intelligence et la gestion, que ce soit ressource, pathfinding, gestion des comportements, tandis que l'autre moitié est consacrée au graphisme. Ce qui se rapporte au son et au réseau est abordé dans d'autres GPG.
Commenter Signaler un problème
Des animations et de l'intelligence articiciel au Z-buffering, calcul de lumières, effets climatiques, surfaces courbes, jeu sur Internet par multiples couches, musique et effets audio, toutes les techniques majeures pour développer un moteur de jeu compétitif sont abordées. Game Programming Gems est écrit dans un style accessible aux individus d'un niveau expert. Tous les codes source de chaque algorithme sont inclus et peuvent être utilisés par des programmeurs avancés immédiatement. Pour les aspirants programmeurs, un tutoriel détaillé est fourni pour travailler avant d'utiliser le code, des suggestions pour de possibles modifications et optimisations sont aussi inclus.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Game Programming Gems 2
Résumé de l'éditeur
Ceci est une référence à avoir qui contient la connaissance et l'expérience de plus de 40 développeurs de jeux.
Édition : Charles River Media - 575 pages, 1re édition, 1er octobre 2001
ISBN10 : 1584500549 - ISBN13 : 9781584500544
- 1.1 Optimizations for C++ games
- 1.2 Inline Functions Versus Macros
- 1.3 Programming with Abstract Interfaces
- 1.4 Exporting C++ Classes from DLLs
- 1.5 Protect yourself from DLL Hell and Missing OS Functions
- 1.6 Dynamic Type Information
- 1.7 A Property Class for Generic C++ Member Access
- 1.8 A Game Entity Factory
- 1.9 Adding Deprecation Facilities to C++
- 1.10 A Drop-in Debug Memory Manager
- 1.11 A Built-in Game Profiling Module
- 1.12 Linear Programming Model for Windows-based Games
- 1.13 Stack Winding
- 1.14 Self-Modifying Code
- 1.15 File Management using Resource Files
- 1.16 Game Input Recording and Playback
- 1.17 A Flexible Text Parsing System
- 1.18 A Generic Tweaker
- 1.19 Genuine Random Number Generation
- 1.20 Using Bloom Filters to Improve Computational Performance
- 1.21 3ds Max Skin exporter and animation toolkit
- 1.22 Using Web Cameras in Video Games
Section 2 - Mathematics
- 2.1 Floating-Point Tricks: Improving Performance with IEEE Floating Point
- 2.2 Vector and Plane Tricks
- 2.3 Fast, Robust Intersection of 3D Line Segments
- 2.4 Inverse Trajectory Determination
- 2.5 The Parallel Transport Frame
- 2.6 Smooth C2 Quaternion-based Flythrough Paths
- 2.7 Recursive Dimensional Clustering: A Fast Algorithm for Collision Detection
- 2.8 Programming Fractals
Section 3 - Artificial Intelligence
- 3.1 Strategies for Optimizing AI
- 3.2 Micro-Threads for Game Object AI
- 3.3 Managing AI with Micro-Threads
- 3.4 An Architecture for RTS Command Queuing
- 3.5 A High-Performance Tile-based Line-of-Sight and Search System
- 3.6 Influence Mapping
- 3.7 Strategic Assessment Techniques
- 3.8 Terrain Reasoning for 3D Action Games
- 3.9 Expanded Geometry for Points-of-Visibility Pathfinding
- 3.10 Optimizing Points-of-Visibility Pathfinding
- 3.11 Flocking with Teeth: Predators and Prey
- 3.12 A Generic Fuzzy State Machine in C++
- 3.13 Imploding Combinatorial Explosion in a Fuzzy System
- 3.14 Using a neural network in a game: A concrete example
Section 4 - Geometry Management
- 4.1 Comparison of VIPM Methods
- 4.2 Simplified Terrain Using Interlocking Tiles
- 4.3 Sphere Trees for Fast Visibility Culling, Ray Tracing, and Range Searching
- 4.4 Compressed Axis-Aligned Bounding Box Trees
- 4.5 Direct Access Quadtree Lookup
- 4.6 Approximating Fish Tank Refractions
- 4.7 Rendering Print Resolution Screenshots
- 4.8 Applying Decals to Arbitrary Surfaces
- 4.9 Rendering Distant Scenery with Skyboxes
- 4.10 Self-Shadowing Characters
- 4.11 Classic Super Mario 64 Third-Person Control and Animation
Section 5 - Graphics Display
- 5.1 Cartoon Rendering: Real-time Silhouette Edge Detection and Rendering
- 5.2 Cartoon Rendering Using Texture Mapping and Programmable Vertex Shaders
- 5.3 Dynamic Per-Pixel Lighting Techniques
- 5.4 Generating Procedural Clouds Using 3D Hardware
- 5.5 Texture Masking for Faster Lens Flare
- 5.6 Practical Priority Buffer Shadows
- 5.7 Impostors: Adding Clutter
- 5.8 Operations for Hardware-Accelerated Procedural Texture Animation
Section 6 - Audio Programming
- 6.1 Game Audio Design Patterns
- 6.2 A Technique to Instantaneously Reuse Voices in a Sampler-based Synthesizer
- 6.3 Software-based DSP Effects
- 6.4 Interactive Processing Pipeline for Digital Audio
- 6.5 A Basic Music Sequencer for Games
- 6.6 An Interactive Music Sequencer for Games
- 6.7 A Low-Level Sound API
Pour autant, je ne peux pas juger de la partie concernant le graphisme, la première concernant la programmation générale mélange les bons conseils - macros, fonctions inline - et les très mauvais - code auto-modifiant - quand certaines parties sont plutôt inutiles - les générateurs de nombres aléatoires -. La partie sur l'audio, nouvelle, commence par des évidences pour qui connaît les patterns, mais la suite est pertinente.
La partie mathématique commence quant à elle par une optimisation des calculs flottants. Actuellement, elle ne sert sans doute plus aussi utile, mais la suite est intéressante, par exemple calculer les paramètres pour une trajectoire bien précise. La partie sur l'intelligence artificielle est la suite de celle de GPG en partie - les machines à états -, parle de micro-threads implémentés en assembleur - à utiliser avec parcimonie, ce n'est pas portable -.
Dans l'ensemble, ce livre est intéressant, mais à prendre avec des pincettes.
Commenter Signaler un problème
Ceci est une référence à avoir qui contient la connaissance et l'expérience de plus de 40 développeurs de jeux.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Vector Game Math Processors
Résumé de l'éditeur
- Comprenez tous les aspects de la programmation vectorielle avec le PowerPC, l'Altivec, le MIPS, l'architecture x86 et autres processeurs SIMD
- Apprenez à utiliser des jeux d'instructions vectorielles divers
- Découvrez comment programmer avec des plateformes publiques et privées avec une approche vectorielle
- Explorez les fonctions trigonométriques et les mathématiques vectorielles avancées, incluant matrices et quaternions
- Apprenez à propos des vertex shaders.
- Incorporez du code vectoriel ou pseudo vectoriel dans vos propres projets
Sur le CD compagnon, vous trouverez le code des exemples discutés dans le livre. Les fichiers sont compatibles Mac, Windows et MIPS.
Édition : Wordware Publishing - 507 pages, 1re édition, 1er novembre 2002
ISBN10 : 1556229216 - ISBN13 : 9781556229213
- Introduction
- Coding standards
- Processor differential insight
- Bit wrangling
- Vector addition
- Vector multiplication & division
- Special functions
- A wee bit o' trig
- Matrix math
- Geometry engine tools
- Vertex & pixel shaders
- Video codec
- Vector compilers
- Debugging vector functions
- CD contains example code
Le public visé est clairement les programmeurs désireux d'optimiser leur code intensivement. Si vous commencez à développer votre propre outil, passez votre chemin et revenez ici au moment de l'optimisation. Logiquement, l'auteur propose principalement du code assembleur - syntaxe Intel, si je ne m'abuse, donc pour GCC, il faudra modifier le code pour l'utiliser -, et ceci sur plusieurs pages.
On appréciera le fait que l'auteur ait construit son livre sur plusieurs plateformes, même si certaines sont désuètes à l'heure actuelle. Le principal à retenir est que même les plateformes actuelles peuvent bénéficier des optimisations présentes dans le livre. Si MIPS a presque disparu, la Xbox 360 et la PS3 sont basées sur un ou plusieurs PowerPC, donc cette partie est tout à fait pertinente.
L'auteur entame aussi les quaternions, les shaders, ... mais n'achetez pas le livre pour cela, il existe d'autres livres consacrés à ces sujets, ils les méritent bien. En conclusion, ce livre est indispensable pour ceux qui doivent optimiser sur plusieurs plateforme des calculs scientifiques ou pour les jeux vidéos.
Commenter Signaler un problème
- Comprenez tous les aspects de la programmation vectorielle avec le PowerPC, l'Altivec, le MIPS, l'architecture x86 et autres processeurs SIMD
- Apprenez à utiliser des jeux d'instructions vectorielles divers
- Découvrez comment programmer avec des plateformes publiques et privées avec une approche vectorielle
- Explorez les fonctions trigonométriques et les mathématiques vectorielles avancées, incluant matrices et quaternions
- Apprenez à propos des vertex shaders.
- Incorporez du code vectoriel ou pseudo vectoriel dans vos propres projets
Sur le CD compagnon, vous trouverez le code des exemples discutés dans le livre. Les fichiers sont compatibles Mac, Windows et MIPS.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Algorithms and Networking for Computer Games
Résumé de l'éditeur
Algorithms and Networking for Computer Games, Second Edition is written from the perspective of the computer scientist. Combining algorithmic knowledge and game-related problems, it explores the most common problems encountered in game programing.
The first part of the book presents practical algorithms for solving “classical” topics, such as random numbers, procedural generation, tournaments, group formations and game trees. The authors also focus on how to find a path in, create the terrain of, and make decisions in the game world.
The second part introduces networking related problems in computer games, focusing on four key questions: how to hide the inherent communication delay, how to best exploit limited network resources, how to cope with cheating and how to measure the on-line game data.
Thoroughly revised, updated, and expanded to reflect the many constituent changes occurring in the commercial gaming industry since the original, this Second Edition, like the first, is a timely, comprehensive resource offering deeper algorithmic insight and more extensive coverage of game-specific networking problems than ordinarily encountered in game development books.
Algorithms and Networking for Computer Games, Second Edition:
Provides algorithmic solutions in pseudo-code format, which emphasises the idea behind the solution, and can easily be written into a programming language of choice
Features a section on the Synthetic player, covering decision-making, influence maps, finite-state machines, flocking, fuzzy sets, and probabilistic reasoning and noise generation
Contains in-depth treatment of network communication, including dead-reckoning, local perception filters, cheating prevention and on-line metrics
Now includes 73 ready-to-use algorithms and 247 illustrative exercises
Algorithms and Networking for Computer Games, Second Edition is a must-have resource for advanced undergraduate and graduate students taking computer game related courses, postgraduate researchers in game-related topics, and developers interested in deepening their knowledge of the theoretical underpinnings of computer games and in learning new approaches to game design and programming.
Édition : Wiley - 416 pages, 2e édition, 25 août 2018
ISBN10 : 1119259762 - ISBN13 : 9781119259763
Algorithms
- Random Numbers
- Noise
- Procedural Generation
- Tournaments
- Game Trees
- Path Finding
- Group Movement
- Decision-Making
- Modelling Uncertainty
Networking
- Communication Layers
- Compensating Resource Limitations
- Cheating Prevention
- Online Metrics
L'approche se veut indépendante de tout langage ou moteur de jeu, les auteurs n'écrivent que du pseudo-code. Cette manière de faire rappelle des racines académiques (tout comme le style de rédaction, relativement sec) et permet de présenter les algorithmes dans toute leur généralité, sans bruit en provenance d'une API ou l'autre. Cependant, certains pourront regretter la méthode, puisqu'il faut alors plus de temps pour appliquer un algorithme à son cas particulier — ce qui n'est sans doute pas un mal, chacun devant être plus ou moins spécialisé au type de jeu développé. À ce niveau, la partie réseau reste bien plus dans l'abstrait et s'éloigne des considérations pratiques d'implémentation.
Néanmoins, l'ouvrage n'est sûrement pas le plus abordable, au vu du contenu hautement technique qu'il présente, avec des développements plus académiques que pratiques. Par exemple, les premiers chapitres sur la génération de nombres aléatoires et de bruit nécessitent des prérequis en mathématiques non négligeables ; il n'empêche que cette partie est extrêmement instructive.
Les auteurs présentent un certain nombre de références vers la littérature, notamment scientifique, liées aux problématiques évoquées tout au long du livre. Ces liens permettent souvent d'approfondir le contenu ; cependant, on pourra regretter que toutes ces références ne soient plus accessibles (notamment, sur les techniques d'équilibrage utilisées dans Age of Empires II, sorti en 1999). Malgré tout, bon nombre de ces références ont été mises à jour par rapport à la première édition.
En bref, cet ouvrage peut être recommandé aux personnes qui souhaitent se lancer dans le développement de jeux vidéo, après quelques premiers développements. Il leur permettra de s'améliorer significativement dans une série de domaines spécifiques aux jeux vidéo et ignorés dans la plupart des cours d'algorithmique (par exemple, pour le déplacement d'unités sur un terrain).
Commenter Signaler un problème
Algorithms and Networking for Computer Games, Second Edition is written from the perspective of the computer scientist. Combining algorithmic knowledge and game-related problems, it explores the most common problems encountered in game programing.
The first part of the book presents practical algorithms for solving “classical” topics, such as random numbers, procedural generation, tournaments, group formations and game trees. The authors also focus on how to find a path in, create the terrain of, and make decisions in the game world.
The second part introduces networking related problems in computer games, focusing on four key questions: how to hide the inherent communication delay, how to best exploit limited network resources, how to cope with cheating and how to measure the on-line game data.
Thoroughly revised, updated, and expanded to reflect the many constituent changes occurring in the commercial gaming industry since the original, this Second Edition, like the first, is a timely, comprehensive resource offering deeper algorithmic insight and more extensive coverage of game-specific networking problems than ordinarily encountered in game development books.
Algorithms and Networking for Computer Games, Second Edition:
Provides algorithmic solutions in pseudo-code format, which emphasises the idea behind the solution, and can easily be written into a programming language of choice
Features a section on the Synthetic player, covering decision-making, influence maps, finite-state machines, flocking, fuzzy sets, and probabilistic reasoning and noise generation
Contains in-depth treatment of network communication, including dead-reckoning, local perception filters, cheating prevention and on-line metrics
Now includes 73 ready-to-use algorithms and 247 illustrative exercises
Algorithms and Networking for Computer Games, Second Edition is a must-have resource for advanced undergraduate and graduate students taking computer game related courses, postgraduate researchers in game-related topics, and developers interested in deepening their knowledge of the theoretical underpinnings of computer games and in learning new approaches to game design and programming.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
- la partie algorithme énonce des évidences ou des trucs qui n'ont rien à voir avec le réseau
> à se demander ce qu'elle fait là hormis grossir le livre
- la partie réseau survole l'aspect communication et aborde à peine les concepts intéressants de dead reckoning et synchronisation
> pour la communication je préfère Unix Network Programming, Volume 1: The Sockets Networking API
> pour les concepts gameplay je n'ai pas encore trouvé de livre intéressant à partager
Game Engine Black Book: Wolfenstein 3D
Résumé de l'éditeur
Édition : CreateSpace Independent Publishing Platform - 316 pages, 1re édition, 5 septembre 2017
ISBN10 : 1539692876 - ISBN13 : 9781539692874
Pour ces raisons, le premier chapitre du livre replace le lecteur dans l’écosystème informatique du début des années 90 et détaille la conception d’un ordinateur compatible IBM. Ainsi, il est à même de juger de tous les obstacles rencontrés par l’équipe d’id Software. Ensuite, les créateurs du jeu sont présentés ainsi que les outils qu'ils avaient à leur disposition et ceux qu’ils ont eux-mêmes créés pour leurs jeux. Tout cela pour arriver à la partie principale du livre, la découverte et l’explication des techniques et astuces utilisées pour créer le jeu comme il est, et surtout, pour rendre son gameplay rapide malgré des ordinateurs dépourvus de capacité pour les jeux vidéo. Tous les aspects du moteur : rendu, son, gestion de la mémoire… sont décrits et après la lecture, le lecteur pourra se sentir capable de recréer le jeu.
Le livre est d’autant plus intéressant qu'il contient une préface et des commentaires de John Carmack ainsi que de nombreuses anecdotes sur la création du jeu.
En résumé, c’est un livre technique et passionnant qui permet de mieux se rendre compte de ce qu’est Wolfenstein 3D et du travail qui a été réalisé pour lui donner vie. Aussi, c’est une occasion pour se souvenir de ce qu’était la programmation d’un jeu vidéo à cette époque.
Commenter Signaler un problème
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Et le raycasting n'est qu'une petite partie du bouquin. Ce qui est intéressant, c'est toutes les petites merdes des PC et des OS de l'époque qui obligeaient à faire plein de bricolage:
->L'OS ne pouvait adresser qu'1 Mo de RAM, même si on en avait plusieurs dans sa machine. Pour pouvoir tout adresser, il fallait installer des drivers sur sa machine. Et bien sûr, il y avait plusieurs drivers différents avec des API complètement différentes, les applis qui avaient besoin de RAM devaient donc toutes les gérer. Et pour pouvoir en profiter, il fallait expliquer à l'utilisateur comment installer ces drivers.
->Et même pour le 1er Mo de RAM, il fallait se faire chier à construire un pointeur sur 20 bits pour pouvoir y accéder, sinon on n'avait accès qu'aux 64 premiers Ko.
->Il fallait gérer 3 marques de cartes son différentes, plus le bipeur de la machine quand l'utilisateur n'en avait aucune, chacune avec ses spécifités et ses limitations. De plus, chaque son devait être sauvegardé en 3 versions différentes, pour avoir la meilleure qualité possible selon la carte de l'utilisateur.
->Rien que le fait de rafraîchir un écran en 320x200 en VGA assez vite était compliqué, car pour être plus rapide, les cartes VGA avaient leur framebuffer répartis sur 4 banques séparées, dans lesquelles il fallait bien sûr écrire à la main
->Pour être optimisées pour la rasterization après un raycast, les sprites étaient stockés dans un format bien particulier. Pour gérer le scaling des sprites en software, pour ne pas avoir à scaler le sprite à la volée, ce qui serait lent, le programme générait au lancement un tas de fonctions de scaling qui retournaient directement les pixels à afficher.
->Et il fallait faire tenir le tout dans une seule disquette de 3 pouces et demi, pour que le jeu puisse être partagé le plus facilement possible :p Donc il a fallu ajouter de la compression à tout ça
J'oublie sûrement plein de trucs, et j'ai peut-être déformé certaines choses (j'avoue que je n'ai moi-même pas tout compris ) J'ai trouvé ça assez motivant à lire, on se dit que si on arrivait à faire tout ça à l'époque, avec toutes ces contraintes, on n'a aucune excuse pour ne pas arriver à faire le jeu qu'on veut aujourd'hui. Et à tous ceux qui fuient le C/C++ parce que "il faut gérer la mémoire"... Au moins aujourd'hui, on peut pointer où on veut dans la RAM sans avoir d'abord à créer un gestionnaire de mémoire pendant 3 semaines :p
Ce concepte peut être appliqué à des jeux actuels plus lourds avec des effets de lumière, bump mapping sur un pc plus récent tout en réduisant l'utilisation d'une carte graphique.
Ultimate 3D Game Engine Design & Architecture
Résumé de l'éditeur
Édition : Charles River Media - 518 pages, 1re édition, 1er décembre 2006
ISBN10 : 1584504730 - ISBN13 : 9781584504733
- Introduction to game engines
- Engine core
- input, sound and networking
Graphics and environments
- Rendering systems
- Rendering scenes and scene graph
Physics, AI and scripting
- Physics
- Artificial intelligence
- Scripting
Demos
- Game Demos
Game over
- Conclusions
Ce livre ne présente pas la hiérarchie du moteur, la seule chose qu'on voit, c'est des cases représentant les classes, rien d'autres. On parle d'UML, mais cela n'a d'UML que le nom... Ensuite, la qualité du code est... déplorable, vraiment. Pas de const-correctness, on utile des char* pour les paramètres qui sont transformés en std::string juste après !! Du grand n'importe quoi. Dans le même genre, on crée des classes avant de les utiliser alors que le livre indique de ne pas le faire ! Enfin, ce livre sacrifie à la tradition, du code sur plusieurs pages parfois, alors qu'il est présnet sur le CD et sur le site Internet, pourquoi gaspiller des pages pour ça ?
Bon, dans la partie des bonnes choses, il y a le fait que ce livre couvre presque toutes les parties d'un moteur de jeu vidéo, et multi-plateforme. Des entrées à la physique, en passant par le graphisme - 3D avec OpenGL ou DirectX - et l'IA, la gestion de ces systèmes est exposée. Si certaines parties présentent une abstraction d'autres bibliothèques interchangeables - comme pour le graphisme -, ce n'est pas le cas pour toutes, comme la phsyique.
En parlant de la gestion de la physique, elle dispose d'une bonne partie du livre pour exposer son fonctionnement et sa manière de fonctionner, même si elle est relativement limitée, pour l'instant.
On regrettera que l'exposé se fasse sur une version 0.5 d'un moteur en évolution. On regrettera aussi l'exposé du fonctionnement du scripting, sachant que c'est légèrement faux - compilé ou interprété, il peut toujours s'agir d'une machine virtuelle pour un langage de script -, et qu'on aurait pu prendre des pages pour mieux présenter l'architecture du moteur...
Pour conclure, il faut voir que ce livre est, à ma connaissance, le seul livre complet sur un moteur de jeu vidéo. Il existe des livres plus complets sur ces sous-parties - surtout moteur 3D -, mais rien sur la totalité. Allen Sherod est aussi l'auteur d'un livre sur les structures de données orientées jeu qui va être mis à jour en mars 2007, il devrat être du même niveau que ce livre-ci.
Commenter Signaler un problème
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Data Structures for Game Programmers
Résumé de l'éditeur
Édition : Premier-Trade - 976 pages, 1re édition, 1er octobre 2002
ISBN10 : 1931841942 - ISBN13 : 9781931841948
- Concepts
- The Basics
- Recursion and Trees
- Graphs
- Algorithms
- Appendixes
Maintenant, le point négatif est que tout ce qui est exposé est montré comme si rien n'était présent dans la STL. A sa décharge, le livre expose ses programmes avec Visual C++ 6.0, qui est connu pour sa non conformité au standard actuel. Mais dans le même temps, on appuie beaucoup sur le C, plutôt que sur le C++, dommage.
En ce qui concerne le contenu, beaucoup de classes sont disponibles pour faire ce qui est proposé dans ce livre. Boost propose presque tout, que ce soit les graphes, les tableaux de taille fixe, les nombres aléatoires, ... ce qui fait que ce livre est bien pour les gens qui veulent savoir comment ça marche, mais à ce moment, autant prendre un livre sur les structures de données et algorithmes en général récent...
Commenter Signaler un problème
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Beginning C++ Game Programming
Résumé de l'éditeur
Édition : Course Technology PTR - 335 pages, 1re édition, 1er mai 2005
ISBN10 : 1592002056 - ISBN13 : 9781592002054
- Types, variables, and standard I/O: Lost fortune
- Truth, branching, and the game loop: Guess my number
- For loops, strings, and arrays: Word jumble
- The standard template library: Hangman
- Functions: Mad Lib
- References: Tic-tac-toe
- Pointers: tic-tac-toe 2.0
- Classes: critter caretaker
- Advanced classes and dynamic memory: Game lobby
- Inheritance and polymorphism: Blackjack
Oui, il parle de bases de programmation en C++, mais franchement, les exercices dans un bon livre sont tout de même plus judicieux que ces espèces des jeux où on montre surtout comment il ne faut pas programmer ! - pas de fonctions, puis timidement 2-3 choses -. En fait, tout est abordé en surface, sans vraiment donner de solides raisons de faire ceci ou cela.
Ne vous laissez pas avoir par l'aguicheuse introduction de ce livre, en fait à la fin vous ne serez capable que de faire un super jeu à plusieurs sur le même ordinateur, avec juste le clavier et la ligne de commande. Autant garder cet argent pour acheter un vrai livre de C++ ou sur les jeux.
Commenter Signaler un problème
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Game Programming with Python, Lua, and Ruby
Résumé de l'éditeur
A propos de l'auteur
Tom Gutschmidt has been a freelance technical writer for the past two years, with articles mainly appearing on Earthweb, Gamelan, and Developer.com. He also worked as an editor for the RPG website GameBanshee for the year 2001. Currently he is the youngest member of a small development team in an encryption and key management company (Widevine Technologies). Gutschmidt has worked on a number of open source game projects, do freelance work currently making web based games, and actively work on mod development. His current projects include running an online gaming site that focuses on NWN mods and flash game development. The site has a small but regular following. He is wrapping up production on a full length NWN game mod that is in the late stages of beta testing.
Édition : Premier Press - 472 pages, 1re édition, 1er décembre 2003
ISBN10 : 1592000770 - ISBN13 : 9781592000777
Part ONE: Introducing High-Level Languages
- Chapter 1. High-Lavel Language Overview
- Chapter 2. Python, Lua, and Ruby
Part TWO: Programming with Python Language Features
- Chapter 3. Getting Started with Python
- Chapter 4. Getting Specific with Python Games
- Chapter 5. The Python Game Community
Part THREE: Programming with Lua
- Chapter 6. Getting Started with Lua
- Chapter 7. Getting Specific with Lua Games
- Chapter 8. The Lua Game Community
Part FOUR: Programming with Ruby
- Chapter 9. Getting Started with Ruby
- Chapter 10. Getting Specific with Ruby Games
- Chapter 11. The Ruby Game Community
Part FIVE: The Warp Up
- Chapter 12. Using Python, Lua, and Ruby in Development
J'ai réfléchi au sujet, mais je n'arrive toujours pas à comprendre pourquoi un tel livre a été publié. Passons les bien trop nombreuses fautes dans le texte, qui sont particulièrement évidentes pour que je m'en rende compte, le texte étant en anglais. Niveau édition, c'est même pire puisque l'on se retrouve avec par exemple des diagrammes décrivant l'historique des langages : le diagramme sur le Python décrit en fait Lua, celui sur Lua décrit Ruby et celui sur Ruby est un groupement des trois... Enfin des deux autres.
On peux vraiment se demander à qui est dédié ce livre. D'un côté l'auteur s'engage dans des discussions de plusieurs paragraphes sur ce qu'est un langage de programmation, un processeur (!), les commentaires (!), mais dès qu'il s'agit de sujets un minimum plus ardus, il les traite en une ligne, en indiquant pourtant que c'est là le coeur du sujet ! Alors quand en plus on nous dit que les commentaires en C sont constitués d'une ligne préfixée du symbole #, ça tourne au ridicule absolu !
Et ce n'est qu'un exemple parmi tellement d'autres ! Le livre entier est constitué d'erreurs et de fautes grotesques, preuve d'une incompréhension (incompétence ?) totale de l'auteur des sujets qu'il traite. La partie sur le Lua ne sert vraiment à rien. On retrouve une liste extrêmement pauvre de projets utilisant ce langage, alors que la même liste, plus complète cette fois, se trouve sur le site du langage. De même, on nous décrit les quelques fonctions de LuaSDL ainsi que l'API Lua C ; bibliothèques que les documentations respectives ne pourront que bien mieux documenter.
Tout dans ce livre est traité... Enfin traité... N'est discuté que comme faisant état d'existence, sans maîtrise aucune de l'auteur sur ce dont il parle, et se paie le luxe de fautes syntaxiques non seulement dans le corps du texte, mais aussi dans le code ; on aurait au moins pu penser que l'auteur maîtrisait un langage parmi les trois, même pas. Un programmeur expérimenté ne pourra que rire (jaune), mais ce qui est le plus pathétique c'est qu'un débutant apprendra tout ce qu'il ne faut pas faire sans s'en rendre compte, et risque d'en avoir pour longtemps à s'en remettre. Vous pouvez (devriez ?) oublier définitivement ce livre.
Commenter Signaler un problème
A propos de l'auteur
Tom Gutschmidt has been a freelance technical writer for the past two years, with articles mainly appearing on Earthweb, Gamelan, and Developer.com. He also worked as an editor for the RPG website GameBanshee for the year 2001. Currently he is the youngest member of a small development team in an encryption and key management company (Widevine Technologies). Gutschmidt has worked on a number of open source game projects, do freelance work currently making web based games, and actively work on mod development. His current projects include running an online gaming site that focuses on NWN mods and flash game development. The site has a small but regular following. He is wrapping up production on a full length NWN game mod that is in the late stages of beta testing.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Software Engineering and Computer Games
Résumé de l'éditeur
Édition : Addison Wesley - 648 pages, 1re édition, 1er décembre 2002
ISBN10 : 0201767910 - ISBN13 : 9780201767919
- 1. Projects and Games.
- 2. Basics of Software Engineering.
- 3. The Pop Framework.
- 4. Object-Oriented Software Engineering.
- 5. Software Design Patterns.
- 6. Animation.
- 7. Simulating Physics.
- 8. Critters.
- 9. Sprites.
- 10. Games.
- 11. Collisions.
- 12. Listeners.
- 13. Shooters and Bullets.
- 14. 2D Shooting Games.
- 15. 3D Shooting Games.
- 16. Sports Games.
- 17. Selection Games.
- 18. Interesting Worlds.
- 19. More Ideas for Games.
II. TOOLS AND TECHNIQUES.
- 20. Using Microsoft Visual Studio.
- 21. Tools for Software Engineering.
- 22. Topics in C++.
- 23. Programming Windows with MFC.
- 24. 2D and 3D Graphics.
- 25. Windows Graphics.
- 26. OpenGL Graphics.
- 27. Menus and Toolbars.
- 28. Mouse, Cursor and Keyboard.
- 29. Dialog and Splitter Views.
- 30. Serialization.
- 31. Sound.
- 32. Bitmaps.
Appendix A. The Windows Keycodes.
Appendix B. Instructor's Guide.
Appendic C. The Pop Help File.
Quelques chapitres sont consacrés aux jeux qui ont été réalisés avec cet outil, et ce sont de bons petits jeux d'étudiants que le prof avait demandé de faire. Bon, on voit que ça sert quand même un peu.
La deuxième partie est consacrée à tout ce qui touche à Windows, comment se servir de Visual Studio, enfin plein de petites choses, mais bon, en tout, ça fait 648 pages à parler de la surface du génie logiciel, sans une fois aller au fond des choses. Enfin, c'est l'impression que j'ai eue. En conclusion, on ferait mieux d'acheter 2 livres parlant plus en détail du génie logiciel et un livre parlant de la conception des jeux, on en retirera plus que ce qu'apporte ce livre.
Commenter Signaler un problème
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Programmation des jeux
Résumé de l'éditeur
- Implémentez l'interaction avec le joueur via des périphériques d'entrée comme le clavier, la souris ou des manettes de jeu.
- Concevez et développez un moteur de jeu
- Initiez-vous à l'animation de sprites
- Découvrez les principes de la programmation graphique sous Windows
Édition : Pearson Education - 401 pages, 1re édition, 23 novembre 2004
ISBN10 : 2744018309 - ISBN13 : 9782744018305
- Notions de base de la création de jeux vidéo
- Petit manuel de programmation de jeux sous Windows
- Création d'un moteur de jeu
- Les bases de la programmation graphique des jeux vidéo
- Dessin d'images bitmap
2. Implémentation de l'interaction avec les joueurs
- Contrôle des jeux avec la souris et le clavier
- Amélioration des entrées avec la manette de jeux
- Etude d'un jeu exemple : Brainiac
3. Animation des jeux au moyen de sprites
- Introduction théorique aux techniques d'animation
- Mettre les objets en mouvement au moyen de sprites
- Gestion d'un monde de sprites
- Un exemple de jeu : Henway
4. Sonorisation des jeux vidéo
- A propos du son et de la musique numériques
- Lecture de sons Wave sous Windows
- Lecture de musique MIDI
- Un exemple de jeu : Battle Office
5. Techniques d'animation avancées
- Animation de l'apparence des sprites
- Création d'arrière-plans pour les sprites
- Un exemple de jeu : Meteor Defense
6. Donner de l'intelligence aux jeux
- Création de jeux dotés d'intelligence
- Un exemple de jeu : Space Out
Inclus : le Cd-ROM avec :
- Codes sources
- C++ builder 5.5 et 6 en version évaluation
- 3 chapitres bonus
+ bonne introduction à l'API win32 et aux système de ressources
+ très didactique
+ conception d'un moteur de jeux 2D
+ introduction à certain concept des jeux vidéo (state pattern, sprites, …)
- une utilisation pas très poussée du c++ et des concepts objets (ce qui le rend abordable aux débutants).
+ très didactique
+ conception d'un moteur de jeux 2D
+ introduction à certain concept des jeux vidéo (state pattern, sprites, …)
- une utilisation pas très poussée du c++ et des concepts objets (ce qui le rend abordable aux débutants).
Commenter Signaler un problème
- Implémentez l'interaction avec le joueur via des périphériques d'entrée comme le clavier, la souris ou des manettes de jeu.
- Concevez et développez un moteur de jeu
- Initiez-vous à l'animation de sprites
- Découvrez les principes de la programmation graphique sous Windows
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Foundation Actionscript 3.0 Animation: Making Things Move!
Résumé de l'éditeur
In this book Keith Peters guides you through some basic animation theory and then demystifies the math and physics behind creating realistic animation, looking at trigonometry, velocity and acceleration, and bouncing & friction.
This book will teach you how to use Flash ActionScript to move the objects in your movies, rather than letting Flash's tween engine do it for you. The benefit of this is smaller, more realistic, more dynamic interactive movies that seem to come alive on your screen. Almost all of the code featured in this book will work fine in either Flash MX 2004 or Flash 8, and with a few minor adjustments, most of it can even be applied to Flash MX.
Although the text covers many advanced math and physics concepts, making for very realistic motion, there’s no need to worry, even if you're a relative newcomer to programming and the last math class you took was in high school (and even if you barely remember that!).
This book first covers everything you need to know to get started: the principles of animation, and the basics of ActionScript, trigonometry, and Flash rendering methods. You’ll work your way through slowly, from using code to move a single object across the screen to creating complex systems that really push Flash's capabilities, with topics covered including collision detection, particle attraction, and kinematics. The book concludes with looking at 3D animation techniques, including building a basic 3D engine, 3D lines, fills and solids, and matrix math.
Once you come to grips with the ideas presented here, you'll find yourself creating all manner of exciting animations and games!
Édition : Apress - 568 pages, 1re édition, 8 avril 2007
ISBN10 : 1590597915 - ISBN13 : 9781590597910
http://www.amazon.com/Foundation-Act.../dp/1590597915
Vous trouverez des explications très claires sans l'emploi d'un vocabulaire pointu.
C'est vraiment une approche très fun de la simulation physique car l'auteur nous présente les différents concepts de manière très visuelle en les accompagnant avec plein de métaphores.
Ce livre est bien évidement adaptable à tous langages, et si vous souhaitez le
suivre en AS3, il ne revient que très peu sur les bases du langage (mais honnêtement quand vous venez de langage tel que le Java/C/C++/C#, c'est extrêmement simple à lire).
Ce livre mérite d'être lu par tous les passionnés de développement de jeux !
Commenter Signaler un problème
Foundation Actionscript 3.0 Animation: Making Things Move! de Keith Peters
Je me permet d'attirer votre attention sur ce livre qui fut une vraie révelation pour moi:
http://www.amazon.com/Foundation-Act.../dp/1590597915
Vous trouverez des expliquations très claires sans l'emploi d'un vocabulaire pointu.
C'est vraiment une approche très fun de la simulation physique car l'auteur nous présente les différents concepts de manière très visuelle en les accompagnant avec plein de métaphores.
Ce livre est bien evidement adaptable à tous langages, et si vous souhaitez le
suivre en AS3, il ne revient que très peu sur les bases du langage (mais honnetement quand vous vennez de langage tel que le Java/C/C++/C#, c'est extremement simple à lire).
Ce livre mérite d'être lu par tous les passionnés de developpement de jeux !
Panicq
In this book Keith Peters guides you through some basic animation theory and then demystifies the math and physics behind creating realistic animation, looking at trigonometry, velocity and acceleration, and bouncing & friction.
This book will teach you how to use Flash ActionScript to move the objects in your movies, rather than letting Flash's tween engine do it for you. The benefit of this is smaller, more realistic, more dynamic interactive movies that seem to come alive on your screen. Almost all of the code featured in this book will work fine in either Flash MX 2004 or Flash 8, and with a few minor adjustments, most of it can even be applied to Flash MX.
Although the text covers many advanced math and physics concepts, making for very realistic motion, there’s no need to worry, even if you're a relative newcomer to programming and the last math class you took was in high school (and even if you barely remember that!).
This book first covers everything you need to know to get started: the principles of animation, and the basics of ActionScript, trigonometry, and Flash rendering methods. You’ll work your way through slowly, from using code to move a single object across the screen to creating complex systems that really push Flash's capabilities, with topics covered including collision detection, particle attraction, and kinematics. The book concludes with looking at 3D animation techniques, including building a basic 3D engine, 3D lines, fills and solids, and matrix math.
Once you come to grips with the ideas presented here, you'll find yourself creating all manner of exciting animations and games!
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?