eNVyMyCar - PowerPoint PPT Presentation

About This Presentation
Title:

eNVyMyCar

Description:

a Multi-player Car Racing Game. for. Teaching Computer Graphics. Fabio Ganovelli ... software framework implementing a simple multi-player car-racing game over a LAN ... – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 35
Provided by: vcgIs
Category:
Tags: car | envymycar | game | racing

less

Transcript and Presenter's Notes

Title: eNVyMyCar


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
(No Transcript)
6
(No Transcript)
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 size1)
// .................implementation............
...... // // Bresehnam segment
rasterization // void BresenhamSegmentRasteri
zation(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
(No Transcript)
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
Ferrara
Pisa
Siena
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
(No Transcript)
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
(No Transcript)
23
NVMC Architecture
\
24
include ltgame_client.hgt 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)br
eak 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
(No Transcript)
29
(No Transcript)
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!
http//envymycar.sf.net
thanks to all our students who worked with
nvmc Renata Otfinoswka for all the drawings
Write a Comment
User Comments (0)
About PowerShow.com