<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=DE link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Nice!! Didn’t think of that.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
opensim-dev-bounces@lists.berlios.de
[mailto:opensim-dev-bounces@lists.berlios.de] <b>Im Auftrag von </b>Dahlia
Trimble<br>
<b>Gesendet:</b> Dienstag, 27. Januar 2009 09:02<br>
<b>An:</b> opensim-dev@lists.berlios.de<br>
<b>Betreff:</b> Re: [Opensim-dev] weird idea #2: inworld applications<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'>Not sure how to get a c64
emulator to work in opensim, but if it can be done it should be playing
Habitat: <a href="http://www.youtube.com/watch?v=VVpulhO3jyc">http://www.youtube.com/watch?v=VVpulhO3jyc</a><o:p></o:p></p>

<div>

<p class=MsoNormal>One solution may be to stream a video of the emulator
display.<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal>On Mon, Jan 26, 2009 at 11:51 PM, Dirk Krause <<a
href="mailto:dirk.krause@pixelpark.com">dirk.krause@pixelpark.com</a>>
wrote:<o:p></o:p></p>

<p class=MsoNormal>Hi,<br>
<br>
this thing came up when I was thinking about what to do for OpenSims 2nd
birthday.<br>
<br>
I thought it would be really funny to reconstruct the Sony Home Arcades in
OpenSim, basically for giggles. I unfortunately don't have access to Sony Home
for now so I don't know exactly what effort it means to model this, being not a
good builder myself (for reference - <a href="http://tinyurl.com/def8fn"
target="_blank">http://tinyurl.com/def8fn</a> )<br>
<br>
The interesting point would be the ability to play either MAME or C64 games on
the machines in these 'OpenSim Home (tm) Arcades'. So I looked up a C# c64
emulator on the web ( <a href="http://tinyurl.com/bobw9y" target="_blank">http://tinyurl.com/bobw9y</a>
) but then came to think where such an emulator would run.<br>
<br>
(the following holds probably true for all kinds of applications running in the
OpenSim context, namely:<br>
- graphic-heavy c# or c++ applications<br>
- flash/silverlight/moonlight applications<br>
- 'co-browsing', works in Rex with this nice trick: <a
href="http://therexfiles.cybertechnews.org/?p=183" target="_blank">http://therexfiles.cybertechnews.org/?p=183</a>
)<br>
<br>
So, to stick with the arcade example, the good question is - where does the
process run?<br>
I think there are these possibilities in general<br>
1) SERVER - the application totally runs on the server side. One av takes over
the game machine and his key strokes are transmitted to the server (via HUD?)
and the emulator creates the graphic output. This would be a series of textures
(not really good) or a video stream of sorts.<br>
2) CLIENT - the applications totally runs on the client. This is possibly the
easiest way to implement it (and out of scope for opensim-dev) since it needs
hacking the client. But just for the record: as soon as the client detects
arcade.jp2 as the texture, it fires up ye old space invaders and renders2texture
the graphic output to the client.  Other people would see either<br>
a) nothing but the standard texture as long as they are not playing it or<br>
b) a screenshot every 5 secs or so,  since the client sends every 5 secs
or so a screenshot to the server, updating the view for the cheering bystanders<br>
c) the real game, since their clients also fire up the emulator, receive the
key strokes from the current player (while they are near him) which must be
sent from the server of course.<br>
3) BOTH- the application runs on both server and client with synchronicity
calls every N secs with some prediction by the client side when the calls don't
get through fast enough (basically like networked physics in professional games
works)<br>
<br>
All in all you are in synchronicity hell the more 'real' the output for
everyone gets because there can be no real simultaneousness.<br>
<br>
So sorted by applications:<br>
- Physics:<br>
either only server sided (like it is now) which is sufficient for most use
cases, or both when the physics is fast and heavy like in games.<br>
- Video:<br>
Number 2c is used to play video in SL right now - one av activates the script
that start the media playing on all clients in the vicinity. if they didn't
activate media support then they see nothing. If they did the video starts on
all clients, probably 1 to N secs off each, depending on their network, also
slowly drifting into asynchronicity the longer the video runs. If it should be
more synchronous then a streaming server is mandatory.<br>
<br>
- Turn based games<br>
could be implemented completely on server side. So a simple text adventure
(Zork, anyone) or even a MUD could be implemented even on a different server
with a gateway of sort. Come to think of it this could even be a tty terminal.<br>
  Same goes for<br>
- co-browsing web pages, powerpoint projectors<br>
Could be either server sided (like it is now via the php render trick) or
client sided (via the Rex trick)<br>
<br>
So the interesting part stays where to implement, say, a moonlight application?
Let's say people want to create micro/casual games or small apps,then it would
be interesting to see whether there would be an infrastructure to hook these
things into?<br>
<br>
I would even go so far that there could be a mechanism that handles LL or OS
scripts in a way that it either runs on the client (libomv Test.exe with some
script) or on the server side (the existing scripting architecture).<br>
<br>
Best regards,<br>
 Dirk/Barth<br>
_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><o:p></o:p></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</div>

</div>

</body>

</html>