Développer un jeu vidéo (quand on n’y connait rien en développement de jeux vidéo)

7843bb075c05be6886a97b77e36758ff?s=47 David
April 14, 2017

Développer un jeu vidéo (quand on n’y connait rien en développement de jeux vidéo)

Comment on développe un jeu vidéo ? Est-ce compliqué d’afficher un personnage sur l’écran et de le faire bouger par la suite ? Programmer un jeu est-il comparable à programmer un application backend ? Quels sont les outils à utiliser ? Comment rendre un jeu amusant ?

J’ai dû me poser ces questions pour réaliser mon premier jeu mobile. Ce quickie essayera d’y répondre et fera un retour sur les différentes expérimentations réalisées avant d’obtenir un jeu.

Présenté lors de Devoxx France 2017 (Paris) - https://www.youtube.com/watch?v=4X337M8kU8Q
Présenté lors de Android Makers 2017 (Paris) - https://www.youtube.com/watch?v=mSa3BVO0tvc
Présenté lors des Human Talks Avril 2017 (Paris) - https://www.youtube.com/watch?v=H7Q-BBCs_ig

7843bb075c05be6886a97b77e36758ff?s=128

David

April 14, 2017
Tweet

Transcript

  1. Développer un jeu vidéo (quand on n’y connait rien en

    jeux vidéo)
  2. David Wursteisen

  3. None
  4. John Carmack

  5. None
  6. None
  7. None
  8. Moteur de jeu

  9. None
  10. main loop

  11. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 }
  12. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 }
  13. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 }
  14. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 } 60x
 secondes
  15. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 }
  16. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 }
  17. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 }
  18. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 }
  19. public void render(float delta) {
 movePlayer(delta);
 moveEnemies(delta);
 moveWorld(delta);
 
 renderWorld();


    renderEnemies();
 renderPlayer();
 } Interface
  20. « Saisissez une citation ici. » Game programming Patterns

  21. Référentiel

  22. (0,0) (0,0)

  23. (0,0)

  24. (0,0)

  25. Physique

  26. None
  27. None
  28. Interpolation

  29. None
  30. None
  31. None
  32. None
  33. Collision

  34. collision y collision x Collision détectée

  35. collision y collision x Collision détectée

  36. None
  37. None
  38. Box2D

  39. None
  40. None
  41. None
  42. Traversable

  43. Debug

  44. Coordonnées insignifiantes

  45. hit box hit box

  46. Indicateur visuel

  47. Assets

  48. None
  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. Tooling

  57. None
  58. None
  59. Shaders

  60. void main() {
 vec4 sum = vec4(0);
 
 float step

    = iResolution.y;
 // y
 for(float i = -area ; i <= area ; i += 1.) {
 // x
 for(float j = -area ; j <= area ; j += 1.) {
 float x = v_texCoords.x + i / iResolution.x;
 float y = v_texCoords.y + j / iResolution.y;
 sum += texture2D(u_texture, vec2(x, y)) * 0.005;
 }
 }
 gl_FragColor = texture2D(u_texture, v_texCoords) + sum;
 }
  61. None
  62. None
  63. None
  64. Glow Dégradé Light effect glow Light effect

  65. None
  66. None
  67. None
  68. None
  69. None
  70. Game design

  71. None
  72. Indication

  73. Meilleure Indication Indication

  74. Indication Meilleure Indication Tap To Start

  75. Indication Meilleure Indication Tap To Start Vitesse progressive

  76. Math + graphisme + design

  77. Rendre un jeu amusant ?

  78. None
  79. L’imagination est 
 la seule limite

  80. On reste en contact ? @dwursteisen