[Scummvm-devel] Pseudo-3D adventure games / 360 degree panoramic adventure games

Bastien Bouclet bastien.bouclet at gmail.com
Sat Dec 29 21:52:40 CET 2012


I'm the main author of the Myst 3 engine in ResidualVM and it seems
appropriate I share my experience regarding its development.

The 360 degree view is done by mapping 6 textures on the faces of a cube.
This is the easiest part, and I agree no true 3D rendering system would be
needed for it.
The game also displays movies in the view. This is done by rendering an
alpha-blended textured quad, not aligned with the cube faces. Maybe the
alpha-blended projection would be slow on the less powerful target
platforms if it was done by software. The game also uses transparency on
various occasions (the cursor, the light flares, the overlay movies, ...).
It's nice having OpenGL take care of it without much effort.
The game also has some yet to be reimplemented "texture effects", used for
example to simulate the water movement. The original engine computed the
effects on the CPU. I remember having to disable the water effects on my
computer when the game came out. I'm pretty sure the mobile targets are not
going to be powerful enough to cope with these effects if they are
implemented using software rendering. However, it's likely nowadays mobile
GPU could render them fast enough if they are done using a shader.
Additional and optional features could be added at a low cost using OpenGL,
texture filtering being one of them.

While reimplementing the Myst 3 engine I really liked beeing able to use
OpenGL, because it meant I had a perfectly working, powerful and versatile
mean of rendering 3D scenes. It was easy and fast to try my understanding
of the original rendering code.

To be clear, I'm perfectly happy with the Myst 3 engine being in
ResidualVM, since this is what ResidualVM is designed for. I would benefit
ResidualVM as a whole if more engines were to be added. Some of the backend
related code could use having more hands around potentially working on it.
Even if I can't speak for aquadran and Somaen, I'm quite sure we'd
cheerfully welcome the Ring engine in ResidualVM.

I'm afraid the 360 degree rendering code we could add to ScummVM would not
be generic enough, the games needing more than just displaying a cube or
sphere projection. Myst 3 being a perfect example.

Bastien

2012/12/29 Marcus Comstedt <marcus at mc.pp.se>

>
> Willem Jan Palenstijn <wjp at usecode.org> writes:
>
> > Exposing 3D functionality like this via OSystem sounds like it would be
> a step
> > towards 3D too far. I think we should keep our backend/engine interface
> > strictly 2D.
>
> I haven't looked at the Myst 3 code that was talked about, but I
> imagine that to use OpenGL for accelerating this kind of game, you
> would actualy have one single flat quad covering the entire screen,
> and then use a (single) custom fragment shader to do the actual image
> transformation.  So it wouldn't actually be 3D functionality you'd
> need to expose, but shader functionality.  Still, it's a bit unclear
> exactly how this interface should look to be generic enough and still
> not expand outside the intended scope.  Maybe someone could whip up an
> API suggestion to serve as a base for discussion?
>
> In fact, maybe the API should simply provide cylindrical and spherical
> projections of bitmaps as hardcoded functions?  Do all the games use
> similar enough projections that you can just parametrize it?  (I
> assume that all games based on QuickTime VR do.)
>
>
>    // Marcus
>
>
>
>
> ------------------------------------------------------------------------------
> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
> MVPs and experts. SALE $99.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122912
> _______________________________________________
> Scummvm-devel mailing list
> Scummvm-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scummvm-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20121229/f185da58/attachment.html>


More information about the Scummvm-devel mailing list