1 Welcome to the… EiffelMedia release 0.7.0 presentation.
-
Upload
aubrey-stokes -
Category
Documents
-
view
217 -
download
0
Transcript of 1 Welcome to the… EiffelMedia release 0.7.0 presentation.
![Page 1: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/1.jpg)
1
Welcome to the… EiffelMedia release 0.7.0 presentation
![Page 2: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/2.jpg)
2
Overview
• Introduction
• Project presentations– installer– motion jpeg support– collision detection– improved audio API– pause (10‘)– widget library– network API– input devices and vision2 widget– extensions
• Questions
![Page 3: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/3.jpg)
3
Introduction: A Few Figures
• Number of mails: 1000
• Number of files: 13000
• Lines of code: 94000
• Number of classes: 600
![Page 4: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/4.jpg)
4
Installer/Packet-Generator
Goal: Automation of the release mechanism using scripts and template-files for multiple plattforms
(Win XP, Debian, Mac OS X)
Robert Weiser
![Page 5: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/5.jpg)
5
Example Demonstration
Example Demonstration
Installer / Packet-Generator
![Page 6: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/6.jpg)
6
Windows Release
• All examples are being compiled.
• All needed EiffelMedia-files are being copied to a temporary folder and all scripts to a temporary scripts folder.
• The script inserts the correct version info and executes InnoSetup-Compiler which creates installers using the given templates for the student and the adminstrator releases.
Installer / Packet-Generator
![Page 7: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/7.jpg)
7
Linux Debian Release
• All examples are being compiled.• The files needed for making the Gobo,
EWG or EM package are being copied to a temporary folder and all scripts to a temporary scripts folder.
• The first script substitutes the version info. The second script parses the package information files and creates a directory-structure according to this files. It inserts the necessary control files and makes a Debian-package using the standard Debian packaging tools.
Installer / Packet-Generator
![Page 8: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/8.jpg)
8
Mac OS X Release
• All examples are being compiled.• The files needed for making the Gobo,
EWG or EM package are being copied to a temporary folder and the corresponding scripts are copied to the same folder.
• The first script substitutes the version info. The second script compresses the files into the needed format and creates a bill of materials. After that it appends a ‘.pkg’ or a ‘.mpkg’ to the package folder to create a Mac package.
Installer / Packet-Generator
![Page 9: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/9.jpg)
9
Motion Jpeg Support
Goal: A fully functional smjpeg decoder for EiffelMedia with start, stop and pause video
Jonas Rutishauser
![Page 10: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/10.jpg)
10
Example Demonstration
Example Demonstration
Motion Jpeg Support
![Page 11: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/11.jpg)
11
Impressions and Conclusions
• What was working?– recognise and load files– playing video
• Problems– audio data
• needed buffer• multithreading made troubles• closing mixer leads to deadlock
– multithreaded read• SDL thread caused crash• audio callback didn‘t work
Motion Jpeg Support
![Page 12: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/12.jpg)
12
Impressions and Conclusions
• Patterns– factory
• What would I do better next time?– avoid multithreading
Motion Jpeg Support
![Page 13: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/13.jpg)
13
Collision Detection
Goals:– detecting collisions in 2D scenes– ease of use– versatility– optimization
Ueli Weiss
![Page 14: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/14.jpg)
14
Example Demonstration
Example Demonstration
Collition Detection
![Page 15: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/15.jpg)
15
Impressions and Conclusions
• Research
• Time management
• Patterns
• Future work
Collition Detection
![Page 16: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/16.jpg)
16
Improved audio API
Goals:– handle more file formats– mixing of multiple channels– applying effects on sound
Marco Stöckli, Marco Senn
![Page 17: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/17.jpg)
17
Patterns and ease of use/learning
• Patterns– factory-pattern for loading files– singletons for shared access
• Ease of use / learning– very simple audio players– self-explaining examples
Improved audio API
![Page 18: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/18.jpg)
18
Example Demonstration
Example Demonstration
Improved audio API
![Page 19: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/19.jpg)
19
Conclusions
• Positive things– implemented basic parts fast and
soon– audio used by others, so tested– use of widgets allowed great example– good teamwork with project lead and
others
Improved audio API
![Page 20: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/20.jpg)
20
Conclusions
• Negative points– bugs in header wrapper (EWG) – too many different versions between
groups (EWG, Gobo, SDL, ...)– multithreading with sdl_mixer caused
problems, so single-threaded network API was too late for internet audio stream
– effects caused strange problems on Eiffel 5.6
Improved audio API
![Page 21: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/21.jpg)
21
For the next time
• Changes for next time?– synchronize versions– standardize coding style
Improved audio API
![Page 22: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/22.jpg)
22
• Coffee time!
• 10 minutes
![Page 23: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/23.jpg)
23
Widget Library
Goal: Implementation of a widget library in EiffelMedia
Julian Tschannen
![Page 24: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/24.jpg)
24
Components, Widgets and Dialogs
• Objects on scene– 2D
• widgets• dialogs
– 3D• OpenGL
• Widgets– panel, label, button, slider, list, combobox,
scrollpanel,…
• Windows– window, message dialog, file dialog
widget library
Widget Library
![Page 25: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/25.jpg)
25
Themes: Factory + Delegates
• Factory– factory per widget type– task
• create delegates for new widget objects
• Delegates– delegate per widget– tasks
• drawing• layout related input handling
Widget Library
![Page 26: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/26.jpg)
26
Themes: Delegates, Colors and Fonts
• Theme options– delegate factories– colors– fonts
Widget Library
![Page 27: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/27.jpg)
27
Example Demonstration
Example Demonstration
Widget Library
![Page 28: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/28.jpg)
28
Network API and Multiplayer Framework
Goal: An easy to use TCP and UDP protocol stack as basis of a multiplayer game framework.
Martin Seiler, Yves Alter
![Page 29: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/29.jpg)
29
Classic Networking: Transport Layer
• TCP– connection based– reliable– event based
• UDP– connection less– unrealiable– classic polling and also– event based
Network API
![Page 30: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/30.jpg)
30
Classic Networking: Application Layer
• HTTP 1.0– GET and POST requests– also allows to connect to virtual hosts
(a HTTP 1.1 feature)– used for online highscore system– may be used to receive website
content
Network API
![Page 31: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/31.jpg)
31
Example Demonstration
Message Client
Echo Server
Network API
![Page 32: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/32.jpg)
32
Multiplayer Concept
Multiplayer Framework
![Page 33: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/33.jpg)
33
•20, C•24, B•28, C•31, B
Peer A Peer B
•24, A•30, D•31, A
List of pending events
List of published events
Event, ID 31
Ack for event 31
ID 31
ID 31
Success agent
2PC Event System (1)
auto-remove
Multiplayer Framework
![Page 34: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/34.jpg)
34
•20, C•24, B•28, C•31, B
Peer A Peer B
•24, A•30, D•31, A
List of pending events
Event, ID 31
ID 31
ID 31
Success agent
2PC Event System (2)
auto-remove
Ack for event 31 lostAck for event 31
List of published events
timedcallback
Multiplayer Framework
![Page 35: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/35.jpg)
35
•20, C•24, B•28, C•31, B
Peer A Peer B
•24, A•30, D•31, A
List of pending events
Event, ID 31
ID 31
ID 31
Timeout agent
2PC Event System (3)
auto-remove
Ack for event 31 lost
List of published events
removeaftertimeout
timedcallback
Multiplayer Framework
![Page 36: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/36.jpg)
36
2PC Events: Summary
• Every event must be acknowledged.
• Events will be resent, if remote peers did not acknowledge in time.
• Two cases:– success: All peers responded with an ACK in
time.– timeout: At least one peer did not respond in
time. No consensus reached!
• An event will be published only once on the remote peer.
• Slow compared to ‚normal‘ events.
Multiplayer Framework
![Page 37: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/37.jpg)
37
Summary
• Positive– event based network API– no data polling necessary– easy object synchronisation and
event sending
• Negative– lots of problems with threading
attempt– multiplayer framework not very
reliable for errornous data.
Network API / Multiplayer Framework
![Page 38: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/38.jpg)
38
Input Devices and Vision2 Widget
Goals:– Implementation of:
•CD-Rom Subsystem•Joystick Subsystem•Vision2 Widget
– An example for each part
Pascal Rota
![Page 39: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/39.jpg)
39
CD-Rom Subsystem
• Overview– wrapper of SDL CD-Rom– get various information from CD-Rom
devices and CD‘s– audio CD handling
• Encounter Problems– Find out what is managed by SDL and
what not
Input Devices and Vision2 Widget
![Page 40: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/40.jpg)
40
Example Demonstration
Example Demonstration
Input Devices and Vision2 Widget
![Page 41: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/41.jpg)
41
Joystick Subsystem
• Overview– wrapper of SDL joystick– get various information from joystick
devices– joystick events (axis, button, balls,
hat)
Input Devices and Vision2 Widget
![Page 42: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/42.jpg)
42
Example Demonstration
Example Demonstration
Input Devices and Vision2 Widget
![Page 43: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/43.jpg)
43
Vision2 Widget
• Overview– widget for vision2– support of everything from
EiffelMedia
• Encountered Problems– understanding how SDL and vision2
works– differences between windows & linux– SDL Hack for windows
Input Devices and Vision2 Widget
![Page 44: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/44.jpg)
44
Example Demonstration
Example Demonstration
Input Devices and Vision2 Widget
![Page 45: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/45.jpg)
45
EiffelMedia Extensions
Goals:
Make the life of programmers a little bit easier.
Urs Dönni
![Page 46: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/46.jpg)
46
Projects
• Highscore– Local and remote highscore
management
• Resource generator– Generates classes to load resources
• Settings generator– Generates classes to handle settings
EiffelMedia Extensions
![Page 47: 1 Welcome to the… EiffelMedia release 0.7.0 presentation.](https://reader035.fdocuments.net/reader035/viewer/2022062517/56649ee45503460f94bf3718/html5/thumbnails/47.jpg)
47
Example Demonstration
Example Demonstration
EiffelMedia Extensions