I want to help!

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

Moderator: ScummVM Team

Post Reply
User avatar
spookypeanut
ScummVM Developer
Posts: 159
Joined: Tue Sep 12, 2006 9:35 am
Location: St Albans, UK
Contact:

I want to help!

Post by spookypeanut »

I thought about asking on the IRC channel but a) that scares me and b) I thought there may be others in my position who are scanning the forums.

I want to help the development team of scummvm, but have little programming experience. Ironically, I help undergraduate students learn programming, but my knowledge is pretty much limited to fairly basic c (I can just about figure out what the compress_*.c are up to, for example, but when I tried looking at the c++ code for one of the engines, my head nearly popped off :shock: ). I have a pretty good knoweldge of bash scripting, perl.

Is there anything that less experienced programmers can do to aid development?
User avatar
Vinterstum
ScummVM Developer
Posts: 580
Joined: Sun Oct 16, 2005 6:59 am

Post by Vinterstum »

We're always in a big need of people to help document things :). The code, especially. The IRC channel is a good place to start.
clem
Posts: 2159
Joined: Mon Oct 31, 2005 11:14 am

Re: I want to help!

Post by clem »

spookypeanut wrote:but when I tried looking at the c++ code for one of the engines, my head nearly popped off :shock: ). I have a pretty good knoweldge of bash scripting, perl.
same with me. according to the devs objectifying engines should be straightforward, but I failed miserably at trying that :]

I guess you could give it a shot, though :)
User avatar
sev
ScummVM Lead
Posts: 2301
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Re: I want to help!

Post by sev »

spookypeanut wrote:my knowledge is pretty much limited to fairly basic c (I can just about figure out what the compress_*.c are up to, for example, but when I tried looking at the c++ code for one of the engines, my head nearly popped off :shock: ). I have a pretty good knowledge of bash scripting, perl.
I must confess, but ScummVM is more C than C++ due to its nature. Moreover, some engines are plain C wrapped into simple objects. So it's not difficult as it appears. Of course, if you looked at our GUI code or SCUMM engine code, that could really scare you, but there are much, much simpler things in those 400,000+ lines of code :)

spookypeanut wrote: Is there anything that less experienced programmers can do to aid development?
Of course. ScummVM is a big project. What I can come up with right now:
  • AGI engine. It is pure C now, and needs improvements, particularly, bugfixing with use NAGI code as a reference. NAGI is more compatible with games, but it uses GPL-incompatible license. Also as clem said, you may try yourself in objectizing, though, aquadran have done most of the work (uncommitted)
  • SAGA engine. However, this involves Reverse Engineering and work with x86 assembler. The work consists of "fixing" engine, so it will let IHNM work (and perhaps other games too)
  • Implement MS DOS port.
  • Develop GUI code. Say, we have FR for loading savegames from the launcher, also there are couple small FRs open (currently they're assigned to me). Consider GUI TODO
  • Implement internationalization of GUI. Now we feature full Latin1 font which could be substituted, say, to Cyrillic fonts by means of GUI themes. So it is really possible to implement "language packs" which could be selectable by our theme selection dialog
  • If you're familiar with audio generation, there are TONS of bugs/misses there
  • Investigate memory leaks on engine restarts. I.e. that will allow game restarting from the launcher
  • implement proper Kanji display in SCUMM engine. There is a demo which uses those, so FM-TOWNS full gmae is not required. There are also koreanization patches for several games.
  • Add sound to MM C64
  • Bug fix MM NES
  • Implement proper walking code for SCUMM V0-V2 games
As you may see, there are plenty of work to do. I did not mention more complex things here, and many things in the list above are pretty simple, just big. Also don't forget about zillion of bug reports which require work too.


Eugene

PS. And we're nice there on #scummvm ;)
User avatar
md5
ScummVM Developer
Posts: 2250
Joined: Thu Nov 03, 2005 9:31 pm
Location: Athens, Greece

Post by md5 »

Implement proper walking code for SCUMM V0-V2 games
Pardon the stupid question, but can't this be taken from the code used in the newer SCUMM games (where it works)? I thought that's part of the game logic, after all
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3558
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

md5 wrote: Pardon the stupid question, but can't this be taken from the code used in the newer SCUMM games (where it works)? I thought that's part of the game logic, after all
I believe that's what we do now. Fingolfin wrote a lengthy mail about it to the ScummVM mailing list some time ago. (I didn't expect you to know that, of course, but it explains things better than I could.)
jamyskis
Posts: 14
Joined: Mon Dec 04, 2006 10:04 pm
Location: Germany

Re: I want to help!

Post by jamyskis »

sev wrote: Add sound to MM C64
I'm not an experienced programmer myself (I do some work in C++ writing my own games, but ScummVM is way beyond my capacity - I use Allegro, and could never write my own sound or graphics code) but wouldn't the open-source SIDPLAY project be a good partner in this respect?
User avatar
sev
ScummVM Lead
Posts: 2301
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Re: I want to help!

Post by sev »

jamyskis wrote:wouldn't the open-source SIDPLAY project be a good partner in this respect?
Excatly. In fact, it is not a requirement to write SID emu from the scratch but there are few issues to keep in mind. First, we would like to avoid additional dependencies, so source of that emu should be included in ScummVM source tree. Second, the code in question has to be GPL-compatible, Then, it should be mature.

Speaking of SIDplay, and particularly libsidplay. It is GPL and mature, good. But the library itself is over 10,500 lines of code. Definitely an overkill. We don't need a full-blown SID emulator.

So as a solution, somebody could take some small(er) SID emu, throw away unneeded code, and put into ScummVM. Just take a look what was done for NES APU (engines/scumm/player_nes.cpp and .h). It is lightweitght, accurate and GPLed. Quietust wrote that code.


Eugene
Post Reply