[WIP] Zeus: Pre-alpha 1 release

Everything about HD, MD, and their mods.

Moderator: Halo Moderators

Locked
Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus 0.3c

Post by Sparky » Thu Sep 13, 2012 3:53 am

0.3c release

- fixes LOTS of security issues that are issues no longer! :D (yay)
- streamlines stuff so you don't see the debug info anymore
- still only reads halo demo / trial map header data
- most checks are in place now, preventing the upload of unrecognized files and unsupported map files

getting there...

been working harder than the SATs on this for the past three days. Finally have something nice to show for it, too! ;) A few more days, and I'll have a full-fledged map metadata editor up and running online, possibly ;) This is, after all, a learning experience for me, hands-on as I go. So it's rather slow as I discover things intuitively and read up on the php.net manual pages. The basics are in place now, and I've streamlined up through the second page. Next version might possibly have a redoing of the editor files, or maybe just a bunch more functions to use to analyze different map file types. Either way, I've got to silently let the editor page know what kind of map file it is so it knows how to parse it. For tomorrow or later today. Pulled several all-nighters in a row and I have to sleep now.

Catch you later.

Enjoy Zeus 0.3c! (you should see what kinds of tests I pulled out during the development of this security version... pretty crazy stuff... map file names like nobody's business haha).

http://zeus.blamdevcom.net/
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: [WIP] Zeus

Post by Sparky » Thu Sep 13, 2012 5:58 pm

Mgalekgolo wrote:... idk, sparky IS a god...
i give it 2 years
Nice estimation, Mgal. However, you'll note that the first two years were spent trying to decide what language to use to program this. I distinctly explored the Obj-C / Cocoa option and features, while learning along the way, and now decided that PHP is better... and also now I'm more prepared to work with PHP and found a niche of time to get some quality development work done on Zeus.

This is the majority of the reason why you see ANY functionality several years after I've started planning Zeus.
Monk34 wrote:If you make this app and it doesn't work on my shitty old 10.4 PPC, I might kill someone.
This has been in the back of my mind for some time, and you'll notice how a web site is platform-independent.

You could even use your Wii to mod halo maps! Or if you have internet on your TV, you could use your TV to mod maps... or your cell phone... or whatever. (I don't think toasters support internet access yet.) Heck, Taxi could mod halo maps from within a taxi if he wanted to.
Either you are groping for answers, or you are asking God and listening to Jesus.

User avatar
zapconquest
Ranger
Posts: 1336
Joined: Sat Dec 09, 2006 11:31 am
Location: on a secret mission in uncharted space
Contact:

Re: Zeus

Post by zapconquest » Thu Sep 13, 2012 8:13 pm

Hi Sparky :) Highlighting text is really slow in the editor? Anyway cool to see you've started working on this thingy =] OT: Hey taxi =]

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Fri Sep 14, 2012 4:02 pm

zapconquest wrote:Hi Sparky :) Highlighting text is really slow in the editor? Anyway cool to see you've started working on this thingy =] OT: Hey taxi =]
Disable images, refresh the page, then try it. It might be the background animated .gif, depending upon your computer and browser. Which computer and browser are you using?
Either you are groping for answers, or you are asking God and listening to Jesus.

User avatar
zapconquest
Ranger
Posts: 1336
Joined: Sat Dec 09, 2006 11:31 am
Location: on a secret mission in uncharted space
Contact:

Re: Zeus

Post by zapconquest » Fri Sep 14, 2012 5:31 pm

Sparky wrote:
zapconquest wrote:Hi Sparky :) Highlighting text is really slow in the editor? Anyway cool to see you've started working on this thingy =] OT: Hey taxi =]
Disable images, refresh the page, then try it. It might be the background animated .gif, depending upon your computer and browser. Which computer and browser are you using?
2010 Macbook Air and google chrome

TaxiService
Night Stalker
Posts: 6887
Joined: Thu May 24, 2007 5:52 am
Location: 41.896198, 12.4165945
Contact:

Re: Zeus

Post by TaxiService » Fri Sep 14, 2012 10:23 pm

Hay there zap :] what's going on? (maybe let's chat in the collective instead?)


also whooppedoo
Image

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Sat Sep 15, 2012 1:36 am

TaxiService wrote:Hay there zap :] what's going on? (maybe let's chat in the collective instead?)


also whooppedoo
Image

The relevant code for this limited analysis is as follows, and I would appreciate any additional help with this... but I don't really need it I guess? LOL. Basically, it's a one-shot task to convert all my Eschaton plugin data to this kind of array data format:

Code: Select all

<?php


// ----- //

// Map file data analysis
// Include this in the Zeus Editor in order to parse the map file metadata
// Contains arrays for each tag type, INCLUDES OFFSETS AND LENGTHS to be handled on the display php page
// Based upon Sparky's Plugins for Eschaton 0.8.1a
// An alternative approach would be to parse the plugins which are xml files. This would allow extensibility and might be used in the future for this purpose: to extend the development for other file types (and to other communities' file types)

// ----- //

// Reset the variables used on the page so we can use them in these other php files
// Copy-pasted from the "zeus_editor.php" page

// Set file paths back to their appropriate locations

$mod_info_files_upload_directory = 'mod_info_files/';	// If you change this in the second file, change it here in the editor also; I'm trying to have this not be a global variable.
$mods_upload_directory = 'mods/';						// Same thing here.

$mod_info_file_path = ( $mod_info_files_upload_directory . rawurlencode($_GET['user']) . "-" . rawurlencode($_GET['title']) . "-" . $_GET['time'] . ".txt" );		// mod info file location

// Again, reverse-engineer this and synchronize with the second php file before this editor file
//	$user_mod_variables = ($username . "-" . $mod_title . "-" . $time_stamp . "-");
//	$uploaded_mod = $mod_upload_directory . $user_mod_variables . basename($_FILES['mod']['name']);

$mod_file_path = ( $mods_upload_directory . rawurlencode($_GET['user']) . "-" . rawurlencode($_GET['title']) . "-" . $_GET['time'] . "-" . rawurlencode($_GET['file']) );

// ----- //

/*

VARIABLE NAMING SCHEME KEY:

Halo 1				=	h
Halo Reach			=	r
Halo 2				=	h2
Halo 3				=	h3

Demo/Trial			=	d
Full (retail)		=	f
Custom Edition		= 	c

Xbox				=	x
Xbox360				=	x360
PC					=	p
Mac					=	m
Vista				=	v

Scenario Map File	=	o
Bitmaps Map File	=	b
Sounds Map File		=	s
LOC Map File		=	l

*/

// start with map header variables

$hdmo_header = 
	array
		(
			"offset map type"				=>		0x2,
			"length map type"				=>		2,
			"garbage"						=>		"",
			"offset head string"			=>		0x2c0,
			"length head string"			=>		4,
			"offset meta size"				=>		0x2c4,
			"length meta size"				=>		4,
			"offset game build version"		=>		0x2c8,
			"length game build version"		=>		13,
			"offset game id"				=>		0x588,
			"length game id"				=>		4,
			"offset map name"				=>		0x58c,
			"length map name"				=>		32,
			"offset map size"				=>		0x5e8,
			"length map size"				=>		4,
			"offset index"					=>		0x5ec,
			"length index"					=>		4,
			"offset foot string"			=>		0x5f0,
			"length foot string"			=>		4,
		);


Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Sat Sep 15, 2012 9:02 pm

0.3d release

I need to:

- fix the strip() for the form fields
- fix it so the formatting of the user mod notes is maintained
- add upload progress bar for the first page so you're not sitting there wondering when it'll be done uploading
- continue along with the tag metadata

What I did:

- revised organization of the editor files
- added new field processors for security and to prevent displaying of unwanted spaces and such
- added user-submitted notes to the editor
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Wed Sep 19, 2012 11:20 pm

0.4 release

I think you'll like this one. Go check it out!
Either you are groping for answers, or you are asking God and listening to Jesus.

Fonzeh
Ranger
Posts: 1894
Joined: Tue Oct 16, 2007 3:57 am
Location: "I didn't just take your mom out to dinner. I ate your mom for dinner."
Contact:

Re: Zeus

Post by Fonzeh » Thu Sep 20, 2012 3:48 pm

Image
G[v]N wrote:HUGE NOTIFICATION
THIS GRAVY HAS BRAINS
Mota-Lev was here 30/4/2010@2:18pm
Image

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Fri Sep 21, 2012 2:22 pm

The lag is from the animated .gif combined with the transparent image on top combined with the form field.

So what I've done was to use a small .jpg file, not animated, as the background image. Try it now. The page will load much faster also.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Fri Sep 21, 2012 9:05 pm

Prospective release of version 0.5 is October 1, 2012.

Version 0.5 will be something like:

- You upload the map file
- You edit the metadata of various tags
- Changes are saved dynamically to the server
- You can mod a map at the same time as someone else by sharing the URL of the Zeus Editor page
- You can download the current version of the map file from the server to your hard drive, where you would be able to play it in Halo. This would be the only way to keep a single version of the mod. But you could simply upload this to the HDM wiki or to mediafire, or even back to the BlamDevCom server through the Zeus upload form, so you have several options for backing up your map files at different versions. (If a multi-modder is abusing your map file, there is no way to undo their changes. Don't share your multi-modding session URL with anyone unless you want them to be able to modify the map file! You can download the map file to your computer, of course provided you have a hard drive on your device.

I'm also planning to support bitmap image display and sound tag playing from within the editor. This will be done by using pre-uploaded bitmaps.map and sounds.map files on the server, where the data offsets referenced by the tags in the map files would mean displaying and playing those offsets in the bitmaps.map and sounds.map files. Something along those lines. I'm not quite there yet, but it seems a straightforward task that would only take a day or so to implement. What you would be able to do is link to another bitmaps.map and sounds.map file... so at the top of the editor, you would see something like this:

Active Bitmaps.map file: (URL)
Active Sounds.map file: (URL)

Which means that if you wanted to modify the bitmaps.map or sounds.map files using Zeus, you could upload your own version of the file (this is to discourage piracy -- so there won't be any map files available to download directly from the server without uploading them first) and then modify it as you wanted, then copy/paste that URL into the fields above. Your scenario map would then be displaying the images and sounds from those resource maps you uploaded and hypothetically modified. (There will be default values for the URL which link to the default Halo bitmaps.map and sounds.map files, which you can't download from the server.)

Afterwards, I'll do more investigation of using http://www.khronos.org/webgl/ to display the map scenarios from within the web browser. So this will functionally bring Zeus up to par with Eschaton's basic metadata editing and swordedit's basic scenario viewing.

Along the way, there should be provisions for uploading and modifying tags by themselves -- such as Eschaton .meta tags and the Halo Editing Kit's tags and the Halo Hacking Kit's tags (these are all essentially the same) -- and importing them into a loaded map file. The simplest approach allows you to start with a tag and modify it by itself just like you can upload a map file and modify it by itself, and to allow you to upload a map file and then directly import a tag file in any format into that map file.

Something like a button which says "Add tags to map" from within the Zeus Editor, which lets you choose the directory containing tags to upload (multiple selection is supported) and then displaying the list of recognized tag files (all the data for each tag must be available, or else it won't register as being a recognized tag) and letting you check through this list before finally importing them into the map.

You would also be able to save and import .png and .wav files into your map and on the server. Note that these won't be accessible except through the Zeus Editor, so you can't use the URL of the uploaded image file to show all your friends that you are adding it to a map file or converting it into a tag...

The "holy grail" of this is to be able to go to the Zeus Editor, start a new tag, import the tag into the map file at hand, download the map file, and play the map file in Halo. I'd like to stick to working with actual tags, actual map files, and actual assets which would be .wav files for sounds and .png files for images. This should be fun. It means also viewing and manipulating the scenario in an interface similar to swordedit.

Once I get this done with Halo 1, applying it to other versions of Halo should be straightforward, since this is all a learning process for me along the way. (I am becoming very familiar with the PHP documentation at php.net, haha.)

Every one of these changes will be another decimal of the version number, so Zeus 1.0 will have complete functionality for Halo 1 map and tag files. Zeus 2.0 would support Halo 2 map files also, etc.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Sat Sep 22, 2012 4:23 pm

Thanks to Slappey and the folks who contributed to this map reading tutorial.
Either you are groping for answers, or you are asking God and listening to Jesus.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Zeus

Post by Sparky » Sat Sep 22, 2012 6:15 pm

I'm considering using or getting ideas from https://github.com/josephg/ShareJS , however, it's basically what I was already going to do, so it might save me some work?

I've shared Zeus with the Gearbox Software Forum community.
Either you are groping for answers, or you are asking God and listening to Jesus.

Samuco_

Re: Zeus

Post by Samuco_ » Fri Sep 28, 2012 2:20 pm

I am still not entirely sure how you are going to use OpenGL to make the actual map editor aspect.
OpenGL (as far as I am aware) runs using javascript - which is clientside rather than PHP which is serverside. I suppose you could use wrappers or whatnot to talk back to the PHP server, but idk.

Locked

Who is online

Users browsing this forum: Ahrefs [Bot], Bing [Bot] and 35 guests