Halomods Community Portal: Megalo Engine - Halomods Community Portal

Jump to content

  • 3 Pages +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic

Reach
Megalo Engine

Bungie's most recent MP engine, as seen in Reach

#1 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 04 June 2011 - 05:44 AM

So, I noticed Megalo Script recently started to gain some more inquiry recently. I figure I'd try to describing some of the system from what I've been able to reverse engineer, since I started around the time the Chess variant came out. I'm doing a more complete post here to try and avoid the bitches and complaints last seen in the Pelicangate scandal over at HBO. I figure the best way to start this is to work my way from the top to bottom. So we'll start with the UI aspects (what players are most familiar with), then transition into the actual guts.

Besides the user configurable Name and Description fields in a variant, the variant itself also has three base string values that the variant editor uses (these values are not configurable by the user). I'll just get this out of the way, as it's just interesting to note: all the variant's various strings can be defined for all supported locales (ie, English, Spanish, etc). Those three "base" string values I talked about are the Name, Description, and Category. The base name would be like "CTF" or "Slayer". The category is how the UI sorts the variant into somewhat neat little lists. Of course, that shit gets really painful to browse when you have dozens of variants in one category.

The variant also has user options. These options are what the player can edit. The megalo script itself uses these options in the actual trigger logic. An example of a user option would be "Flag Carrier Cooldown", in the case of CTF. THe variant can also define "hidden" options. These aren't configurable by the player, but a game designer up in the Ivory Tower, can. An example of where they use "hidden" options is in the Slayer variant. They have a game type option, which has options like 'SWAT' or 'Bro Slayer'. This enables them to easily build on and add to the base Slayer variant.

The variant also defines its engine icon, so that's not actually a fixed thing. Potentially, you could have a Slayer variant display with a CTF-style icon.

Building on how customizable Megalo variants are (at least to the game designers), they can easily define variant specific game statistics. For example, CTF has a statistic for flag returns. It's all defined by the megalo variant itself, it's not hardcoded.


Getting a little bit deeper, the variant can also define objects which a map variant must have placed. If the map variant doesn't have any instances of these expected objects, then that's when you run into the "this map isn't compatible with this variant blah blah" message.

There are obviously HUD widgets too (eg, the speedometer in Race), but I haven't really gave them too much of my attention.

The actual script part of a Megalo variant is pretty frickin' crazy. However, I'll save that for a future post :P.

#2 User is offline   leor 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Joined: 05-May 11

Posted 04 June 2011 - 07:02 AM

Can't wait :)

Very interested in the possibilities of this combined with forge...

#3 User is offline   TCK 

  • Script, AI, UI widgets, cutscenes, solo gameplay.
  • PipPipPip
  • Group: Members
  • Joined: 05-May 11
  • LocationSC

Posted 04 June 2011 - 07:17 AM

So this script which they use to define the gametypes is the same script used all throughout Reach to plan encounters and whatnot?

#4 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 04 June 2011 - 04:23 PM

Megalo Script is ENTIRELY different from their Blam\HaloScript

FyreWulff asked some nice questions in the Q&A thread at b.net. I don't have time right now to try and answer every one, but here are a couple answers from what I know:

1. From what I've been able to reverse engineer, I would probably guess they have a visual editor for MegaloScript, in the same fashion as Unreal's Kismet. However, Jeramiah explicitly says "Megalo is the custom scripting language" in his post, so I could be wrong, or they could have both a visual editor and a textual editor.

3. I'm sure the system known today as their Megalo engine has been in development since at least Halo 3. The need for the system was probably associated with the need to extend the life of games made with the engine and also to be able to allow designers and or programmers to fix/tweak game types, without actually touching game code, especially in post-ship.

6. Different parts of a Megalo game variant have different size constraints. Overall, the total raw size of a variant is roughly 62KB.

#5 User is offline   DEElekgolo 

  • Member
  • PipPip
  • Group: Members
  • Joined: 05-May 11

Posted 04 June 2011 - 09:30 PM

So we will essentially be able to program our own game-types.
This also seems prone to other exploits though.
Do you see any forge-related information that can be exploited?

#6 User is offline   Xerax 

  • Double Faggot
  • PipPipPip
  • Group: Members
  • Joined: 07-May 11
  • LocationLondon, UK

Posted 04 June 2011 - 09:37 PM

View PostDEElekgolo, on 04 June 2011 - 09:30 PM, said:

So we will essentially be able to program our own game-types.
This also seems prone to other exploits though.
Do you see any forge-related information that can be exploited?

I'm sure if they release a tool/method to create gametypes, it will be tied into a Bungie.Pro Subscription to prevent exploiters. And i'm sure they will also make sure that nothing bad can be done with it, just make a game that isn't as good as it could be alot better.

#7 User is offline   INSANEdrive 

  • INSANE "Maxiumus" drive
  • PipPipPip
  • Group: Members
  • Joined: 18-May 11
  • LocationCell Block #Q

Posted 04 June 2011 - 10:21 PM

View PostXerax, on 04 June 2011 - 09:37 PM, said:

I'm sure if they release a tool/method to create gametypes, it will be tied into a Bungie.Pro Subscription to prevent exploiters. And i'm sure they will also make sure that nothing bad can be done with it, just make a game that isn't as good as it could be alot better.

Like some sort of inbrowser/sign-in with the UI of dropdown menus of HMT? A very interesting idea. It would kind of be like modding I guess, but with Bungie's blessing. ( A definite plus since that's what dropped halo modding like a stone last time, among other things)
I don't think they would let us flat out code though, because the would require more trust to the internet the would be advised, presuming they would do such at all, unless they had some sort of built in security...or... something.

Its fun to dream...perhaps this Idea is what they may present during Bungie day.

#8 User is offline   Xerax 

  • Double Faggot
  • PipPipPip
  • Group: Members
  • Joined: 07-May 11
  • LocationLondon, UK

Posted 04 June 2011 - 10:41 PM

View PostINSANEdrive, on 04 June 2011 - 10:21 PM, said:

Its fun to dream...perhaps this Idea is what they may present during Bungie day.

Oh boy, that would bring back my love for Bungie. At an exponential rate.

#9 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 05 June 2011 - 01:13 AM

View PostDEElekgolo, on 04 June 2011 - 09:30 PM, said:

So we will essentially be able to program our own game-types.
This also seems prone to other exploits though.
Do you see any forge-related information that can be exploited?

Assuming anyone ever released an editor, yes, you could script your own MP variant.

I don't see where you're getting the idea that this could lead to exploits. The variants are only for the Megalo engine (which is separate from Firefight and Forge). To top it off, you have to be in-game before any kind actions are ran. To top that off, all actions are specific to in-game objects and players.

Like say, the Megalo engine is different from their Forge engine. The only real reason you have to select a game variant before you start a Forge session is so that the Forge engine can determine what object ids are usable with that variant (eg, "inv_slayer" or w/e). Else you just go into basic editing and you don't have any object ids which you can assign to objects you place.

EDIT: Oh and for the time being, I'm going to hold off on answering detailed questions in case they get asked in the b.net thread and they (Bungie) want to answer it in a BWU. After they do an article or highlight in a BWU, I'd be open to answering questions. For the time being though, I suggest you all ask your questions in the b.net thread (unless it's very specific to how the system works under the hood, in which case they probably won't give a full answer). I got bashed for ruining an egg last, more than likely someone will try bashing me for trying to steal the BWU's (or article) thunder (hey, I enjoy reading them too!)

This post has been edited by kornman00: 05 June 2011 - 01:31 AM


#10 User is offline   leor 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Joined: 05-May 11

Posted 05 June 2011 - 10:36 PM

Can you release some of the decompiled gametypes so we can start thinking up ways to mod. I think alot of the action sack ones would be very interesting. Invasion ones would be cool too in order to create some active scenery like on boneyard and spire.

#11 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 05 June 2011 - 11:35 PM

Since I don't know what kind of language they based MegaloScript after (assuming there is actually a "language", eg C++, element to it) I can't "decompile" it to something average joes can herp-derp at. On top of that, I haven't finished figuring out what all the various actions actually do; I'm still figuring stuff out. Remember, this isn't blam script.

#12 User is offline   Cryptokid 

  • Newbie
  • Pip
  • Group: Members
  • Joined: 09-May 11

Posted 06 June 2011 - 02:03 PM

So if I am reading this right, this script allowed them to make the insane game variants and then put them into the game? If they can do that with mp components could they not also do that with things such as adding custom armor?

#13 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 06 June 2011 - 07:36 PM

No. No, no, no, no.

Megalo doesn't ADD new resources or CHANGE existing data. It dynamically controls the execution of the MP engine, hence "script", using what is already there in the engine and map. It can't remove bloom and it can't add new armor. It is strictly related to the MP engine and how it is executed.

Hope that didn't come off as being a jerk, I'm just trying to set the record straight.

#14 User is offline   Cryptokid 

  • Newbie
  • Pip
  • Group: Members
  • Joined: 09-May 11

Posted 06 June 2011 - 07:55 PM

View Postkornman00, on 06 June 2011 - 07:36 PM, said:

No. No, no, no, no.

Megalo doesn't ADD new resources or CHANGE existing data. It dynamically controls the execution of the MP engine, hence "script", using what is already there in the engine and map. It can't remove bloom and it can't add new armor. It is strictly related to the MP engine and how it is executed.

Hope that didn't come off as being a jerk, I'm just trying to set the record straight.


Its fine, I understand. I am still slightly confused though. Was I right about the insane gametypes part? If not, then how did they just add those like they did?

#15 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 06 June 2011 - 08:02 PM

With the Megalo engine, the scripts define the actual game variant. So making Halo Chess is done the same way they make Slayer. The variant logic is no longer hard coded, as it was in previous games. All of the logic is placed in the Meglo Script, which the engine then uses to simulate a game.

#16 User is offline   Xerax 

  • Double Faggot
  • PipPipPip
  • Group: Members
  • Joined: 07-May 11
  • LocationLondon, UK

Posted 11 July 2011 - 10:40 PM

Have you looked into Megalo anymore? If you have, anymore infomation?

#17 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 12 July 2011 - 04:22 AM

Since the last post, not really. Overall, I've only worked on bare minimal code just to prototype some stuff (mainly, just reading and analyzing game variants, but writing them back wouldn't be that big of a problem) to figure out how I want to try and integrate support for this stuff in another project. I was hoping they would have made their news post already so I could just piggy back off of it, but there hasn't been any sort of when or where on this.

#18 User is offline   Xerax 

  • Double Faggot
  • PipPipPip
  • Group: Members
  • Joined: 07-May 11
  • LocationLondon, UK

Posted 07 August 2011 - 09:27 PM

View Postkornman00, on 12 July 2011 - 04:22 AM, said:

Since the last post, not really. Overall, I've only worked on bare minimal code just to prototype some stuff (mainly, just reading and analyzing game variants, but writing them back wouldn't be that big of a problem) to figure out how I want to try and integrate support for this stuff in another project. I was hoping they would have made their news post already so I could just piggy back off of it, but there hasn't been any sort of when or where on this.

if you released source to extract and inject the varient script (it you can do that currently). I'd love to have a poke around.

#19 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 26 August 2011 - 03:07 PM

http://halo.bungie.o...alobulletins/11

Quote

Will all the changes being made with the Classic portions of the update translate into custom game options that we can use, or will it all be integrated into the gametypes and be un-changeable? - Time Glitch

I'll let Frankie take that one.

"The Title Update will not give users discrete control over specific granular elements, but you can simply save the new elements from Matchmade types and use them as a the basis for your own customs. It's not ideal (adding a new UI layer was out of scope) but it won't take more than ten minutes of browsing to get all the stuff you want/need. And we'll constantly be populating Matchmaking lists with updated stuff."

That pretty much tells me the TU is going to feature new MegaloScript actions, which will be how they implement the "classic" mode

#20 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 27 August 2011 - 11:04 PM

Actually, after attending the Anniversary panel yesterday and having spent some time playing the new maps, I'm thinking they just added some new data fields which tweak certain aspects of the sandbox, instead of doing it all based on scripts (as that would just waste script space anyway).

When I was playing the new Prisoner (with the "No Bloom Slayer" or w/e gametype), I didn't notice bloom on any weapons except for the sniper rifle. I could have sworn they futzed with the grenade toss tho...my tosses in that game (didn't seem like it in others) seemed to be coming up short, like the gravity was higher on them.

Share this topic:


  • 3 Pages +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic