ScummVM .NET

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

User avatar
clone2727
Retired
Posts: 1611
Joined: Fri Jun 09, 2006 8:23 pm
Location: NJ, USA

ScummVM .NET

Post by clone2727 »

Happy April Fools' Day! Thanks to ST for providing a screenshot of one of his Groovie C# tools.


No, we're not moving to a new website. I'm proud to announce the new ScummVM rewrite in C# for Windows Phone 7 and Xbox 360 ports. This does not include any of the previous "ScummVM-XNA" code and is all new code based on our current working tree.

The Windows Phone 7 port has been the main target of our work as I'm more familiar with the touchscreen controls. It shouldn't be much more work for the Xbox 360 port since I'm going through the XNA Game Studio. Since going through each engine is very tedious work, I've only worked on the engine I'm most familiar with: Groovie. And, I think the results speak for themselves.

I'll have the source code up on GitHub soon, but here's a brief snippet of some working converted C# code.
Last edited by clone2727 on Mon Apr 02, 2012 12:01 am, edited 1 time in total.
ILikeThoseOldGames
Posts: 23
Joined: Mon Aug 30, 2010 6:00 pm
Location: Germany

Post by ILikeThoseOldGames »

Sounds interesting :).

But today is April's Fools Day, so is it a joke?
GarethP
Posts: 10
Joined: Wed Nov 27, 2013 10:53 am
Location: Mountain View, CA

Post by GarethP »

So if somebody decided to take this on for real, would they be considered crazy?
User avatar
clone2727
Retired
Posts: 1611
Joined: Fri Jun 09, 2006 8:23 pm
Location: NJ, USA

Post by clone2727 »

No, calling that person crazy would be too kind.
User avatar
md5
ScummVM Developer
Posts: 2250
Joined: Thu Nov 03, 2005 9:31 pm
Location: Athens, Greece

Post by md5 »

Well, there's the SCUMM XNA project, written in C# and specifically targeted for the SCUMM engine, based on ScummVM's codebase:

http://xnascumm.codeplex.com/
GarethP
Posts: 10
Joined: Wed Nov 27, 2013 10:53 am
Location: Mountain View, CA

Post by GarethP »

I've been spending the last couple of weeks having a play around with this notion. Might take a while but I reckon it can be done.

Estimate I've got about 50 - 60% of the core scummvm project ported with an effort to stay as true to the original code as possible at the moment (short of where .Net simply does not have equivalents).

The main things I've had to account for so far is anonymous enums and multiple inheritance.

The enums I've either named or broke into individual const values. The latter Ive been extracting out into interfaces with the implementation being dropped into each class (there might be a tidier way to do this but for now it works).

Oh and of course most global stuff has been dropped into classes as static methods / vars.
User avatar
clone2727
Retired
Posts: 1611
Joined: Fri Jun 09, 2006 8:23 pm
Location: NJ, USA

Post by clone2727 »

The reason this made a good joke last year was because it was so ridiculous that we didn't think anyone could possibly be serious about porting the code base. Ten years and 1.5 million lines of code is not a small amount. By Ohloh's estimate, it's about 439 person-years of work to develop the code. Not to mention, ScummVM is still a moving target.

So when I said calling you crazy for wanting to duplicate this was too kind, I wasn't joking around.
User avatar
criezy
ScummVM Developer
Posts: 955
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Post by criezy »

clone2727 wrote:Ten years and 1.5 million lines of code is not a small amount. By Ohloh's estimate, it's about 439 person-years of work to develop the code.
I am guessing he is not trying to port all the backends code (otherwise he is even more crazy that I imagined). But still, that is a lot of effort.
clone2727 wrote:So when I said calling you crazy for wanting to duplicate this was too kind, I wasn't joking around.
Aren't we all crazy? :P
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Post by LordHoto »

criezy wrote:
clone2727 wrote:Ten years and 1.5 million lines of code is not a small amount. By Ohloh's estimate, it's about 439 person-years of work to develop the code.
I am guessing he is not trying to port all the backends code (otherwise he is even more crazy that I imagined). But still, that is a lot of effort.
I think the backend code is the least part of our codebase. It's roughly 70k lines of code.
GarethP
Posts: 10
Joined: Wed Nov 27, 2013 10:53 am
Location: Mountain View, CA

Post by GarethP »

So far just working on the main scummvm project. I assume that's what you refer to with back end?

If I get that done id like to implement one maybe two engines probably start with the scumm engine to keep in the spirit of things. Although this all grew out of an interest in the inner workings of SCI.
GarethP
Posts: 10
Joined: Wed Nov 27, 2013 10:53 am
Location: Mountain View, CA

Post by GarethP »

Well, that and a surface RT.
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Post by LordHoto »

GarethP wrote:So far just working on the main scummvm project. I assume that's what you refer to with back end?
The backends are rather about the platform specific code, i.e. the code which is in backends/.
GarethP
Posts: 10
Joined: Wed Nov 27, 2013 10:53 am
Location: Mountain View, CA

Post by GarethP »

Ah got it.

No I'm doing a little more than that :)
GarethP
Posts: 10
Joined: Wed Nov 27, 2013 10:53 am
Location: Mountain View, CA

Post by GarethP »

Posted what I have so far to

https://sourceforge.net/projects/scummvmnet/

Its the last 3 weeks worth of work, still much to be done but its a start...

Right now I'm focusing on the VectorRenderer, there seems to be a pretty close correlation between VectorRenderer and the Graphics class, should I consider this a direct mapping? (i.e. wrap VectorRenderer around a Graphics object?)
User avatar
DrMcCoy
ScummVM Developer
Posts: 595
Joined: Sat Dec 17, 2005 1:33 pm
Location: Braunschweig, Germany
Contact:

Post by DrMcCoy »

You're missing license information. The Sourceforge summary should say which license the project is under (since it's a ScummVM derivative, valid licenses are GPLv2, GPLv2+ and GPLv3), there should be a LICENSE or COPYING file in the project's root directory and the individual files should also state how they're licensed.

Apart from that, I for one still think you're off the rockers.
Locked