Presentation is loading. Please wait.

Presentation is loading. Please wait.

ENVyMyCar a Multi-player Car Racing Game for Teaching Computer Graphics Fabio Ganovelli Massimiliano Corsini Visual Computing Lab, ISTI - PISA.

Similar presentations


Presentation on theme: "ENVyMyCar a Multi-player Car Racing Game for Teaching Computer Graphics Fabio Ganovelli Massimiliano Corsini Visual Computing Lab, ISTI - PISA."— Presentation transcript:

1 eNVyMyCar a Multi-player Car Racing Game for Teaching Computer Graphics Fabio Ganovelli Massimiliano Corsini Visual Computing Lab, ISTI - PISA

2 Before starting... meet: SoftOGL how to make your students hate you

3 2006:: appointed contract professor at University Of Siena for the course of Fundamental of Computer Graphics 7 weeks 42 hours (middle term test and lab included) ‏ 9 students Pisa Siena

4 Possible Course Program Introduction (history, uses, trends...) ‏ general notions (rendering paradigms, hardware...) ‏  tranformations  rasterization  lighting and texture mapping  final project: simple projects using OpenGL... I could have done this way... still...

5

6

7 Course project: SoftOGL.sf.net Implementing a working OpenGL-like graphics API benefit: to make the students gain a solid understanding of CG algorithms

8 namespace softogl{ namespace impl{ // DDA segment rasterization // void DDASegmentRasterization(Segment2d s,int size=1){ // implementation // } // Bresehnam segment rasterization // void BresenhamSegmentRasterization(Segment2d s,int siz = 1){ // implementation // } // Polygon Filling // void PolygonFilling(Polygon2d p){ // implementation // } // }// end impl namespace sdk{ //... }// end sdk }; students: iplementation me: environment and SDK tools

9

10 SoftOGL first day, Feb 27, 2006

11 last day, April 9, 2006

12 Mistakes programming skills :( little sense of achievement :( way too much work for the number of credits given by the CG course :(

13 2007:: My collegue Massimiliano was appointed contract professor at University Of Ferrara Pisa Siena Ferrara

14 Goals of the course project Give them a reachable target Generate cooperation and competition between students Make them learn some CG Set the students in a common framework without too much specialized tasks Do not burden them with non-CG problems

15

16 yeah..

17 eNVyMyCar.sf.net a Multi-player Car Racing Game for Teaching Computer Graphics

18 Concept A software framework implementing a simple multi-player car-racing game over a LAN Student's task: implement a client for the game:  RENDER the scene interactively  take the user input doesn't it remind you something?...

19 Goals of the course project Give them a reachable target Generate cooperation and competition between students Make them learn some CG Set the students in a common framework without too much specialized tasks Do not burden them with non-CG problems

20 Envy factor At any moment, a client may send a snapshot of its view to all the others connected NVMC_Server

21 Goals of the course project Give them a reachable target Generate cooperation and competition between students Make them learn some CG Set the students in a common framework without too much specialized tasks Do not burden them with non-CG problems

22 Elements of the Scene Static The street The buildings The trees Tunnels... Dynamic (state) ‏ The cars sun position p 0 p 1 p 2 p 3 p 4 p 5 p 6 p 7

23 \ NVMC Architecture

24 #include extern NvmcClient cli; void draw_scene(){ cli.UpdateScene(); /*.....*/ cli.UpdateScreenshots(); } void process_event(....){ switch(..) { case... : cli.Command(COMMAND_INCREASE_SPEED); break; case... : cli.Command(COMMAND_DECREASE_SPEED); break; case... : cli.Command(COMMAND_TURN_LEFT); break; case... : cli.Command(COMMAND_TURN_RIGHT); break; case... : cli.Command(COMMAND_BRAKE); break; case... : cli.Command(SEND_SCREENSHOT);break; } int launch_viewer(){ }

25 making a circuit NVMC provides a simple code to convert a bitmap in a circuit

26 Implementation the simpler the better:  C++  VCG for geometric concepts (vcg.sf.net) ‏  QT for networking and multi threading  whatever you/they like for GUI (sdl -glut -qt) ‏ used with: Windows (.net), Mac (xcode), Linux (eclipse/Kdevelop)

27 Goals of the course project Give them a reachable target Generate cooperation and competition between students Make them learn some CG Set the students in a common framework without too much specialized tasks Do not burden them with non-CG problems

28 Incremental learning Basic features (the minimum required) ‏  geometric transformations  lighting  texturing terrain and buildings rolling steering putting on its place scaleplace the car in its current position

29 Make it interesting The students are given a list of possible features to implement, e.g.:  impostors for the trees  motion blurring for speed  lens flares  dynamic reflections on the car  projective texturing for the car lights Each feature brings some points

30 Encourage clean code code must be modular: if student A includes features written by student B it is a bonus for both  Q: How do you know who did it first?  A1: trust them source code is open: envymycar.sf.net  CVS repository  A2: have a look to the commit timestamps

31 Goals of the course project Give them a reachable target Generate cooperation and competition between students Make them learn some CG Set the students in a common framework without too much specialized tasks Do not burden them with non-CG problems

32 Conclusion NVMC was used in 2 courses in 2006 and in one course in 2007 (just finished) ‏ The feedback of the 39 students of these courses was very satisfactory (after the usual it's-too-much-work default complaint) ‏ problems can be in the background knowledge of c++ and the bit of Stl they need to know.

33 Future Work Implementation is quite poor:  no collision detection  only flat circuits ...other things we can put there having time.. Set up a public NVMC server for students of different campus to show off

34 Thanks! thanks to: all our students who worked with nvmc Renata Otfinoswka for all the drawings


Download ppt "ENVyMyCar a Multi-player Car Racing Game for Teaching Computer Graphics Fabio Ganovelli Massimiliano Corsini Visual Computing Lab, ISTI - PISA."

Similar presentations


Ads by Google