Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Series 40 Developer TrainingВведение в разработку 3D игр дляNokia Asha телефоновMichael Samarin, Ph.DDirector,Developer Tr...
Восстановить             интерес к Привлечь    Mobile Java                                       Обзор 3Dвнимание к       ...
Series 40» 675 Миллионов устройств» 3.9 Миллионов скачиваний ежедневно» Ценовые категории 35 – 140 Евро» Игровые студии с ...
http://youtu.be/AnD0nfAwNUY
Nokia X3-02     Nokia Asha 303      3D: от 30 до 40 FPS
http://youtu.be/4wsGh-AOSzE
› Объектно-Ориентированное 3D          › Основано на Scene GraphJSR-184   › Один из MIDP JSR          › Очень компактное A...
M3G ТурAPIs и Инструментарий
Компактное API, всего 30 классовAnimationController   IndexBuffer        RayIntersectionAnimationTrack        KeyframeSequ...
› Immediate mode             › Аналогичен по идеологии               OpenGL          › Retained modeРежимы       › Основан...
Scene Graph        Background         Mesh          Group        Morphing MeshWorld                   Skinned Mesh        ...
›   World                   › Задний план (Background)              ›   Morphing and Skinned Mesh  Наиболее         › Аним...
public class SimpleWorld extends MIDlet {    Canvas3D canvas3D;         public void startApp() {        canvas3D = new Can...
public class Canvas3D extends Canvas            implements Runnable {     public Canvas3D(){     }     public void paint(G...
public class Canvas3D extends Canvas            implements Runnable {                                       private Thread...
setFullScreenMode(true);                                       thread = newThread(this);public class Canvas3D extends Canv...
public class Canvas3D extends Canvas            implements Runnable {                                       graphics3D.bin...
public class Canvas3D extends Canvas            implements Runnable {     public Canvas3D(){                while (running...
ClausHöfele         http://www.ibm.com/developerworks/wireless/library/wi-mobile1/         http://www.ibm.com/developerwor...
private static final byte[] VERTEX_POSITIONS = {     -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1,     -1, -1, -1, 1, -1, -1, -1...
// Create vertex data.VertexBuffer cubeVertexData = new VertexBuffer();cubeVertexData.setDefaultColor(0x000000FF);VertexAr...
Material material = new Material();material.setVertexColorTrackingEnable(true);Appearance appearance = newAppearance();app...
Light light = new Light();light.setMode(Light.SPOT);light.setSpotAngle(80);light.setSpotExponent(0);light.setTranslation(0...
Демонстрация
http://youtu.be/JAP0y9moeao
http://youtu.be/i51juyXAW-4
› Сериализует полный Scene           Graph  M3G    › Анимации, Текстуры, итд.ФорматФайлов   › С компрессией         › Хоро...
setFullScreenMode(true);public class Canvas3D extends Canvas   thread = newThread(this);            implements Runnable { ...
Blender 2.49
› Blender Plugin for 2.49             › Автор Nelson Games:M3G Export   › http://www.nelson-games.de
Демонстрация
M3GToolkit   › http://www.java4ever.com/
“Bebe”   › Blender Scene Model   › Автор David Sanguinett
Демонстрация
http://youtu.be/V6Zy1NFFGrk
http://www.developer.nokia.com/Resources/Library/Java
Демонстрация
› Размер Java Heap (1 – 4 MB)         › Размер JAR файла ( 1 – 2 MB)         › Скорость процессораВажно:   › Размер экрана...
Textures by: http://www.filterforge.com, http://www.squidoo.com
http://youtu.be/O36PQOGMqMM
Nokia C2-02
http://youtu.be/aolNL0jQ940
http://youtu.be/3a-LqHrVbko
http://youtu.be/Z8B07rp0N_I
Спасибо!  @MichaelSamarinhttp://www.futurice.com
Введиние в разработку 3D игр для Nokia Asha телефонов
Введиние в разработку 3D игр для Nokia Asha телефонов
Upcoming SlideShare
Loading in …5
×

Введиние в разработку 3D игр для Nokia Asha телефонов

965 views

Published on

В этом вебинаре вы узнаете как создавать настоящие трехмерные игры с момощью современной реализации Mobile Java JSRs на телефонах Nokia Series 40 семейства Asha. Мы ознакомим с деталями процесса создания 3D игр: планирование и построение игровых уровней; освещение и уровень реализма; сравнение создания игровых персонажей вручную и с помощью пакетов трехмерного моделирования; анимация и поведение игровых персонажей; решения менеджмента памяти и текстур; стратегии пользовательского ввода; оптимизирование исполнения программ для различных ориентаций экранов и моделей телефонов. Обзор скорости трехмерной графики на различных телефонах Nokia Series 40 семейства Asha.

Published in: Technology, Art & Photos
  • Be the first to comment

  • Be the first to like this

Введиние в разработку 3D игр для Nokia Asha телефонов

  1. 1. Series 40 Developer TrainingВведение в разработку 3D игр дляNokia Asha телефоновMichael Samarin, Ph.DDirector,Developer Training and EvangelismFuturice Oy
  2. 2. Восстановить интерес к Привлечь Mobile Java Обзор 3Dвнимание к 3D Краткий Примеров в3D API для JSR-184 JSR-184 NetBeans и Nokia (M3G) (M3G) Nokia SDK Series 40 для тур 1.1 for Java (Asha) создания игр
  3. 3. Series 40» 675 Миллионов устройств» 3.9 Миллионов скачиваний ежедневно» Ценовые категории 35 – 140 Евро» Игровые студии с которыми придется соревноваться: EA, Gameloft, Rovio, India Games
  4. 4. http://youtu.be/AnD0nfAwNUY
  5. 5. Nokia X3-02 Nokia Asha 303 3D: от 30 до 40 FPS
  6. 6. http://youtu.be/4wsGh-AOSzE
  7. 7. › Объектно-Ориентированное 3D › Основано на Scene GraphJSR-184 › Один из MIDP JSR › Очень компактное API M3G › Быстрый цикл разработки › Оптимизировано для небольшого объема памяти и бюджетных CPU › Отличная реализация на Series 40
  8. 8. M3G ТурAPIs и Инструментарий
  9. 9. Компактное API, всего 30 классовAnimationController IndexBuffer RayIntersectionAnimationTrack KeyframeSequence SkinnedMeshAppearance Light Sprite3DBackground Loader Texture2DCamera Material TransformCompositingMode Mesh TransformableFog MorphingMesh TriangleStripArrayGraphics3D Node VertexArrayGroup Object3D VertexBufferImage2D PolygonMode World
  10. 10. › Immediate mode › Аналогичен по идеологии OpenGL › Retained modeРежимы › Основан на Scene Graph(modes) › Весь Scene Graph может быть сохранен в / загружен из файла › Полноценно описан M3G формат › Режимы могут быть свободно использоваться одновременно
  11. 11. Scene Graph Background Mesh Group Morphing MeshWorld Skinned Mesh Sprite 3D Group Sprite 3D User Object Group Camera Light
  12. 12. › World › Задний план (Background) › Morphing and Skinned Mesh Наиболее › Анимированная геометрияИнтересные объектовScene Graph › Mesh › 3D Геометрия видимых объектов Элементы › Sprite 3D › 2D изображения в 3D пространстве
  13. 13. public class SimpleWorld extends MIDlet { Canvas3D canvas3D; public void startApp() { canvas3D = new Canvas3D(); Display.getDisplay(this).setCurrent(canvas3D); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }}
  14. 14. public class Canvas3D extends Canvas implements Runnable { public Canvas3D(){ } public void paint(Graphics g) { } public void run() { }}
  15. 15. public class Canvas3D extends Canvas implements Runnable { private Thread thread; public Canvas3D(){ private long startTime; } private Graphics3D graphics3D; public void paint(Graphics g) { private World world; } private Camera camera; public void run() { private boolean running = false; }}
  16. 16. setFullScreenMode(true); thread = newThread(this);public class Canvas3D extends Canvas startTime= System.currentTimeMillis() implements Runnable { graphics3D= Graphics3D.getInstance(); public Canvas3D(){ world = new World(); } camera = new Camera(); public void paint(Graphics g) { floataspect = (float) getWidth()/ (float) getHeight(); } camera.setPerspective(30.0f,aspect, 1.0f, 1000.0f); public void run() { world.addChild(camera); } world.setActiveCamera(camera);} running = true; thread.start();
  17. 17. public class Canvas3D extends Canvas implements Runnable { graphics3D.bindTarget(g); public Canvas3D(){ world.animate( } (int)(System.currentTimeMillis() - public void paint(Graphics g) { startTime)); } graphics3D.render(world); public void run() { graphics3D.releaseTarget(); }}
  18. 18. public class Canvas3D extends Canvas implements Runnable { public Canvas3D(){ while (running){ } repaint(); public void paint(Graphics g) { Thread.sleep(20); } } public void run() { }}
  19. 19. ClausHöfele http://www.ibm.com/developerworks/wireless/library/wi-mobile1/ http://www.ibm.com/developerworks/wireless/library/wi-mobile2/
  20. 20. private static final byte[] VERTEX_POSITIONS = { -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, -1, 1, 1, -1};private static int[] TRIANGLE_INDICES = { 0, 1, 2, 3, 7, 1, 5, 4, 7, 6, 2, 4, 0, 1};
  21. 21. // Create vertex data.VertexBuffer cubeVertexData = new VertexBuffer();cubeVertexData.setDefaultColor(0x000000FF);VertexArray vertexPositions = new VertexArray(VERTEX_POSITIONS.length / 3, 3, 1);vertexPositions.set(0, VERTEX_POSITIONS.length / 3,VERTEX_POSITIONS);cubeVertexData.setPositions(vertexPositions, 1.0f, null);// Create the triangles that define the cube; the indices point to// vertices in VERTEX_POSITIONS.TriangleStripArray cubeTriangles = new TriangleStripArray( TRIANGLE_INDICES, new int[]{TRIANGLE_INDICES.length});
  22. 22. Material material = new Material();material.setVertexColorTrackingEnable(true);Appearance appearance = newAppearance();appearance.setMaterial(material);// Create a Mesh that represents the cube.Mesh cubeMesh = new Mesh(cubeVertexData, cubeTriangles, appearance);cubeMesh.setOrientation(20.0f, 1.0f, 2.0f, 3.0f);cubeMesh.setUserID(1);world.addChild(cubeMesh);
  23. 23. Light light = new Light();light.setMode(Light.SPOT);light.setSpotAngle(80);light.setSpotExponent(0);light.setTranslation(0.0f, 0.0f, 3.0f);world.addChild(light);
  24. 24. Демонстрация
  25. 25. http://youtu.be/JAP0y9moeao
  26. 26. http://youtu.be/i51juyXAW-4
  27. 27. › Сериализует полный Scene Graph M3G › Анимации, Текстуры, итд.ФорматФайлов › С компрессией › Хорошо определенная структура
  28. 28. setFullScreenMode(true);public class Canvas3D extends Canvas thread = newThread(this); implements Runnable { startTime= System.currentTimeMillis() public Canvas3D(){ graphics3D= Graphics3D.getInstance(); } Object3D[]objects = Loader.load("/cube.m3g"); public void paint(Graphics g) { world = (World)objects[0]; } Camera camera = world.getActiveCamera(); floataspect = (float) getWidth()/ (float) getHeight(); public void run() { camera.setPerspective(60.0f,aspect, 1.0f, 1000.0f); } running = true;} thread.start();
  29. 29. Blender 2.49
  30. 30. › Blender Plugin for 2.49 › Автор Nelson Games:M3G Export › http://www.nelson-games.de
  31. 31. Демонстрация
  32. 32. M3GToolkit › http://www.java4ever.com/
  33. 33. “Bebe” › Blender Scene Model › Автор David Sanguinett
  34. 34. Демонстрация
  35. 35. http://youtu.be/V6Zy1NFFGrk
  36. 36. http://www.developer.nokia.com/Resources/Library/Java
  37. 37. Демонстрация
  38. 38. › Размер Java Heap (1 – 4 MB) › Размер JAR файла ( 1 – 2 MB) › Скорость процессораВажно: › Размер экрана: 240x 320, 320x240, 128x160 › Тип ввода: T9, Qwerty, Touch-And-Type › Nokia Device Matrix › Remote Device Access
  39. 39. Textures by: http://www.filterforge.com, http://www.squidoo.com
  40. 40. http://youtu.be/O36PQOGMqMM
  41. 41. Nokia C2-02
  42. 42. http://youtu.be/aolNL0jQ940
  43. 43. http://youtu.be/3a-LqHrVbko
  44. 44. http://youtu.be/Z8B07rp0N_I
  45. 45. Спасибо! @MichaelSamarinhttp://www.futurice.com

×