PDA

View Full Version : Version Control - MS/Hired Gun Developer please help



UXB
July 10th, 2007, 07:30 PM
As I expected I am now having a hard time with version control with maps submitted to Halo Maps for hosting. People are renaming map file names and submitting them, however they are the same map under several names or the same map as already in the archive. I am also getting maps named the same (file name and embedded map name) that are different but have no way unless I play both maps of telling if it is different from what was released. I need some help.

The problem is that unless I load a map within the game and look at it I can't tell if it is different from others in the archive. Right now because of the small numbers of maps I can remember them, but soon (very soon) I will not. I also can not trust people to even know anything about version control or change their actions.

The only solution I can see for this is to develop a program that can check the map checksum, and then store it in the DB in the same way that the Halo 2 Game determines if the map on the server is different from the map on the client. I don't know how that is accomplished.

This is what I know:

The file name of the map is irrelevant
A checksum of the entire file is not used because I copied a file then hex edited a small portion of clear text at 1A04h where the scenario name appears and Halo 2 thought they were the same level.These are the questions:

How does Halo 2 determine that the map on the server is not on the client? What methodology does it use?
If a checksum is used is it calculated at map creation/compilation and stored in the map file? If so where?
Is the checksum (assuming it is the method) calculated by Halo 2 "on the fly" at load time?I am begging MS/Hire Gun for some assistance with this issue and not for them to do anything but just to supply information so that I can develop what ever program I need to insure that duplicates maps are not placed in the file archive.

Dennis
Webmaster Halo Maps website

bum has knife
July 10th, 2007, 07:43 PM
I forwarded this to our lead dev. We're looking into it.

Zeph
July 10th, 2007, 08:16 PM
A checksum of the entire file is not used because I copied a file then hex edited a small portion of clear text at 1A04h where the scenario name appears and Halo 2 thought they were the same level.

O_____O
How exactly did this title get certified for Live again?

jahrain
July 10th, 2007, 08:20 PM
You could just get the checksome of the file via the rar or .zip file as it keeps a check32 checksome of the file in the rar or .zip header. If they are different maps, they will have different check32 checksomes.

Kornman00
July 10th, 2007, 09:50 PM
Halo 2 runs the checksum starting after the map header, which is at 0x800 (the header is 2048 bytes).

Kornman00
July 11th, 2007, 06:16 AM
I just had an idea. Maybe you can setup a system that is for beta maps only (for which ever game it belongs to). Then the user can upload the final which then flags those betas as deprecated and deletes or removes them (however you want to handle them).

UXB
July 11th, 2007, 12:31 PM
You could just get the checksome of the file via the rar or .zip file as it keepsI thought that at first but as I demonstrated the checksum of the file is not the checksum of the map.

Halo 2 runs the checksum starting after the map header, which is at 0x800 (the header is 2048 bytes).Ahhh.. This is a start, now the question is does the game store the checksum in the map or calculate it at program load time?

I just had an idea. Maybe you can setup a system that is for beta maps onlyI actually started to work on this concept a while ago. I was planning on having a beta upload with registration and checkout of the maps, mandatory feedback in order to be in the beta program and get more maps and user controlled uploads of their maps. But then I realized that the basic concepts of even simplistic version control was so far over the heads of the bulk of the people making the offending maps that I would be spending hours on a system that would only benefit the very few who already understood the idea of versions and managed it without my assistance. Quite frankly it was easier to enforce it with Halo CE because the map name WAS the version control. That is not the case in Halo 2 Vista.

Besides I am absolutely paranoid about unmonitored and un-reviewed uploads to my company servers. It's not that I don't trust people... actually it is.