WC1/2 clone (NOT remake) proposal

Nicely done.

Oh, do you plan on using the tool to convert all of the ship graphics? I've wanted to do something in Flash using the Wing Commander graphics, but the only WC1 graphic viewer I know of has color issues. Is it possible you could export them to a recognizable format that supports alpha channels, be it .PCX or .PNG? .PCX would be with the palette data intact, giving us a pretty much perfect rip, for recoloring. .PNG simply because it'd be easier for flash animators.
 
Looking at the Pygame documentation, PNG exporting should be a trivial addition to the code. I'll see about doing a simple executable package once I get back into the code.
 
Sorry I haven't posted any updates in a while, been busy moving. I haven't made terribly much progress, but I do have the start of a working talking-head engine. I can select a mission and a bar conversation, and the appropriate characters are drawn, and move their mouths and eyes in the correct fashion. No text shows up, partially because I haven't decoded the fonts yet, but I probably will just not bother with that for now and use some other font instead. Also, the locations of expressions seem to vary with the person talking. Shotglass and Paladin look dead perfect, but Angel's eyes and mouth end up floating off to the side of her head. There's no branching, and briefings and debriefings don't work. So like I said, it's a start. :)

Would it be terribly cheeky to ask you to send me a breakdown of the file formats?

Camp.xxx
briefing.xxx

I'm still slowly learning VB (due to intense workload) and I have to admit that you are much much better at this. This is my first attempt to hack files using a Hex editor after all and although I have uncovered much, there is also much that will either take me time or is simply beyond me.

You mentioned the files are split into tables, so could you let me know at what addresses these tables begin and end, where the first block begins and ends (eg the 13 entries that make up each briefing), how long each block is and if you know them, what each bit of data does within a single block?
Or alternatively give me some good advice on viewing and organising the data so I can interpret it better (priting bits out was very useful, but it's a bit to huge a file to print the whole thing.

If you can, wonderful, if you can't cool too. I figured asking was worth while as it seems a little silly to have 2 people investigating the same files.
 
Would love to see a little code that allows you to view the cutscenes from the game (ie the briefings and bar convos) - would help shades for instance!
 
I think ZOmegaZ work will bear more fruit in that direction as he is pouring old WC1 resources and data into a new engine.

My project is simply to write a WC1 mission/campaign builder & editor with a friendly windows interface.
 
Would it be terribly cheeky to ask you to send me a breakdown of the file formats?

Camp.xxx
briefing.xxx

I'm still slowly learning VB (due to intense workload) and I have to admit that you are much much better at this. This is my first attempt to hack files using a Hex editor after all and although I have uncovered much, there is also much that will either take me time or is simply beyond me.

You mentioned the files are split into tables, so could you let me know at what addresses these tables begin and end, where the first block begins and ends (eg the 13 entries that make up each briefing), how long each block is and if you know them, what each bit of data does within a single block?
Or alternatively give me some good advice on viewing and organising the data so I can interpret it better (priting bits out was very useful, but it's a bit to huge a file to print the whole thing.

The files I linked to above contain the format information you want. For example, where each table is in the file is contained in the first table, which is at the beginning of the file. I may update the format files with an example some time, just for grins. And my code should be much more instructive in accessing and organizing the data than anything I could post here would be. It's a relatively simple matter to modify the code as it stands to output any given block of data from the briefing or camp files.

I have managed to get a little work done. The talking head is less buggy and has correct text now, and basic branching code has been implemented. I've got structures in place to handle persistent game variables, like pilot kills and such, so that the branching has something to work with. I'm hoping to release some new code within two weeks, including a functional talking head system and a graphics converter. The briefing simulator will definitely work with bar scenes, but I haven't started on briefings and debriefings yet. Those are much more complex, more backgrounds to account for. We'll see how far I get. :)
 
Apologies for the bump, but I need to keep my eye on some of the documentation in this thread, after madmans post on my thread made me go back into my editor tonight :)
 
I actually started working on this again for the first time in a while. I now have a functional room engine, which will display the rec room and the barracks and transition between them. All clickable hotspots are in place in the rec room, and conversations play as appropriate for the mission selected. If I stay on it, I'm hoping to have the entirety of the rec-room/barracks functional within a few weeks. After that, the briefings and debriefings still need quite a bit of polish. And then finally, the flight engine, which will take for freaking ever. :)
 
This sounds like an interesting project, but I'm afraid you're going to run into limitations with pure SDL when you start work on the flight engine. SDL uses software rendering, which is very slow, and you'll have to update the screen many times a second in the flight engine. Also, SDL in itself doesn't support rotating and scaling of 2D images, which is a must for a Wing Commander 1/2 like flight engine. I'd advise you to use SDL as a window context wrapper for OpenGL, which will give you full hardware rendering and easy rotating and scaling of sprites. Does Pygame support OpenGL through SDL?
 
You're quite right, Pygame is definitely not the way to go for the flight engine. I was looking at PySoy for that, since I wasn't planning to go deep enough to develop my own 3D engine. If it comes to that, though, I may just.

You can use OpenGL through Pygame, I understand, but I don't know enough about it to comment more intelligently than that. :)
 
I haven't heard of PySoy before and I'm wondering if you really need a proper 3D engine? Isn't the Wing Commander 1/2 engine just 2D bitmaps scaled to simulate distance? That should be more than possible with OpenGL... which is surprisingly easy to use in an SDL context. I feared diving into OpenGL myself, but as soon as I had a simple sprite rendering procedure set up, it's a breeze.
 
A proper 3d engine isn't strictly necessary, no, but it does make the engine much more extensible in the long run. Also, it cuts down on having to implement my own collision code. :)
 
Ah, I thought you'd abandoned this. Nice to see you haven't.
I've a quick question for you...
When deconstructing the campaign/mission/briefing did you ever come across anything which signified they type of mission it was? Like escort or indeed what you were escorting?
I imagine this has to be in there somewhere to allow the program to choose suitable music and for keeping track of win/loss debriefings and mission branching.

I ask, as I have been unable to identify how the game engine works this out.
 
Back
Top