<br><br><div class="gmail_quote">On Sun, Aug 1, 2010 at 8:08 AM, Johannes Schickel <span dir="ltr"><<a href="mailto:lordhoto@gmail.com">lordhoto@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Sat, Jul 31, 2010 at 9:07 PM, Eugene Sandulenko <<a href="mailto:sev@scummvm.org">sev@scummvm.org</a>> wrote:<br>
> Hi Team,<br>
><br>
> Recently I got sources for fan game Broken Sword 2.5. The sources were<br>
> passed under full GPL 2.0 license which means that we can use them as<br>
> is.<br>
><br>
> Thus, I have a question. What do you guys think about adding support for<br>
> this game? Any objections?<br>
><br>
> Short info about it:<br>
><br>
> - The game is free (<a href="http://baphometsfluch25.de" target="_blank">http://baphometsfluch25.de</a>)<br>
> - Written in C++ (sometimes a bit over-engineered, though)<br>
<br>
</div>Do they use exception handling? I think we have that disabled,<br>
especially since a few of our ports would not support this at all. So<br>
if they would do that I guess some of our ports won't be able to<br>
support it, unless we change the code to do more C like error<br>
handling.<br></blockquote><div><br>Based on my review/work so far, exceptions are only used insofar as to throw fatal errors. These are being replaced with standard ScummVM error() calls, so it won't be an issue.<br>
</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
> - The engine is under 20k lines of code<br>
> - With Lua coupled together the engine is under 35k lines of code -<br>
> The scripts are Lua-based (2.6 MB of them in the game data :) )<br>
<br>
</div>Do we plan to have the Lua sources in ScummVM for that too, or will we<br>
use an external LUA reference for that?<br></blockquote><div><br>Since Residual is the only other game I'm aware of with a similiar Lua implementation, it'll probably stay within the Broken sword 2.5 engine. Although if other games in the future also make use of it, who knows. :)<br>
</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
> - There is some little amount of OpenGL used for SFX which will be<br>
> eliminated<br></div></blockquote><div><br>Actually, Sev likely meant 'GFX' here. The release notes state "Furthermore there is a library called "glsprites" in the "util" project. This is a small library I wrote that renders 2D sprites using OpenGL. It is released<br>
as GPL along with the rest of the code.". I haven't actually looked at it, but Sev already thinks that it should be easy to convert to use the generic graphics backend.<br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">
> - Main hero is drawn with vectors<br>
> - The engine runs 800x600 24-bits (I think it could be squized into<br>
> 16-bits)<br>
<br>
</div>I thought our current "true color" API in OSystem is designed to allow<br>
backend conversion. Then again I think we specifically ruled out 24bit<br>
colors, i.e. only allowed 16bit and 32bit storage. So does this engine<br>
use 32bit for storage of a pixel internally? Or does it really use a<br>
24bit per pixel? If that is not the case I would probably say we<br>
should go with unchanged graphics and let the backend worry about the<br>
real pixel depth it uses (and thus the conversion). That should allow<br>
us to transparently support the "real" color depth later.<br></blockquote><div><br>My cursory review of the GFX indicates that it does use a 32-bit colour buffer internally.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
> - The code is well commented... in German (the function names and<br>
> variables are all in English)<br>
<br>
</div>Sounds fine. </blockquote><div><br>Yes; thank goodness the *methods* weren't also in German. ;)<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
> - Original engine has every library incorporated into engine (almost<br>
> 260k lines of code). Examples: zlib, libvorbis, libogg, libtheora.<br>
<br>
</div>I hope we won't do that though ;-).<br></blockquote><div><br>Yes, the plan is to do all possible refactoring right at the start, rather than having a project added that duplicates several already existing libraries. To that end, the project isn't actually yet fully compilable under ScummVM - we're currently gradually going through the source files and making conversions, including:<br>
- Changing the formatting to ScummVM conventions<br>- Doxygen-ifying comments<br>- Translating German comments to English - lots of copying and pasting into Google Translate :)<br>- Converting standard C++ constructs to ScummVM equivalents - this includes things like std::vector->Common::Array, std::string->Common::String, and so on.<br>
- Completely replacing some of the support classes where necessary with 'ScummVM versions' that will use the ScummVM library.<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
><br>
> Dreammaster and me already started work on it, but would like to<br>
> continue work right in the trunk.<br>
><br>
> So what would you guys say?<br>
<br>
</div>Personally I am all for doing this in trunk. Furthermore I have to say<br>
I am really surprised that we nowadays would do that in trunk, from<br>
the discussions in the past it always looked like people were<br>
suggested to do that off trunk. I am really thrilled about that.<br></blockquote><div><br>My only concern with putting in the trunk is that if it gets done
immediately, do we, and can we, disable Buildbot from trying to compile
it? There will obviously be a lot of errors until the basic reworking
(as per above is complete).<br>
<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><font color="#888888">
// Johannes<br>
</font><div><div></div><br></div></blockquote><div> </div></div>Regards,<br><br>Paul<br>