Jump to content

Would A Mod Similar To Myth Be Possible?


slipshod
 Share

Recommended Posts

Hi everyone,

I'm not sure how many (if any) of you are familiar with the old Bungie game Myth.

Basically it had a 3rd person viewpoint with rotating & panning camera, almost identical to 0AD, but there was no resource management. You played through a series of levels, each of which told part of the storyline, and you fought battles with the units you were given. All the emphasis was on detailed battle tactics, managing small numbers of melee, missile and explosive units against AI controlled enemies, which were scripted to either march in patrol, search & attack or defend something.

The physics was quite good, with grenades that sometimes bounced or dudded, units that flew apart in pieces when blown up, projectiles that could be accelerated by explosions & sent flying around the landscape, which could be scarred by explosions and blood.

There seem to be very few "real time tactics" games like this in existence, and while Myth hasn't entirely died yet its not far off, plus its still not freely available. So I was wondering, would it be possible given the design of 0AD to create a Myth-like mod for this engine?

Edited by slipshod
Link to comment
Share on other sites

Thanks for your reply.

By "major piece of coding", do you mean changes to the C++ core of 0 AD, or do you think a Myth-like mod would be possible via Javascript etc? If the former, then it wouldn't be a mod of 0 AD as it'd mean having to make a fork of the game, which would be a major undertaking indeed.

Right now I'm trying to decide whether 0 AD is a good starting point or whether I should look for another engine that might prove more suitable. If a fork would be necessary then perhaps 0 AD isn't the ideal engine to use, which would be a real pity there's a lot to love about it, and it seems close to Myth already in much of what it does.

Edited by slipshod
Link to comment
Share on other sites

My suspicion is that you'd need to do some C++ work, though as I'm very much a lightweight scripting-wise (I'm the AI scripter) I'm not the best person to ask on where the core engine stops and the JS starts. 0AD would probably be quite a suitable engine though; I doubt there are many other freely available engines that will give you much closer to what you want.

Link to comment
Share on other sites

By "major piece of coding", do you mean changes to the C++ core of 0 AD, or do you think a Myth-like mod would be possible via Javascript etc? If the former, then it wouldn't be a mod of 0 AD as it'd mean having to make a fork of the game, which would be a major undertaking indeed.

I've never played Myth and don't really know what's involved, but I'd imagine pretty much all the gameplay changes could be done in JS (perhaps after some minor fixes to the engine to expose stuff like terrain data to scripts - I'd be happy to do that if mods need it), though in some cases it might be impractical due to performance issues or wanting to reuse existing C/C++ libraries (especially for physics etc). Implementing new gameplay features with C++ isn't hugely harder than with JS, though - they both use the same extensible component system, where features can be added without impacting on any of the other features, so you can make changes without incompatibly forking the engine. Probably the biggest pain is with distribution (a script mod is much easier than binaries that have to be recompiled for every platform), but I think it'd likely be possible for the standard 0 A.D. distribution to include some components that aren't used by 0 A.D. itself but can be used by mods, if there were some that were useful and mostly complete, so hopefully that wouldn't be a serious issue in practice.

Writing a game is still a huge amount of work even when building on a usable engine (which is why we haven't finished 0 A.D. yet), but I don't see any fundamental problems that would make it harder to build on than many other engines :)

Link to comment
Share on other sites

If anyone's interested, the Myth 2 demo is still freely available (http://tain.totalcod...i-demo-mac-os-x and http://tain.totalcod...i-1-7-2-windows), and will provide a far better illustration of what I'd like to help create than me talking for ages here :) Even better, plenty of videos exist such as

.

In terms of changes that'd be required, and please bear in mind that I'm still an absolute n00b when it comes to how 0AD works, first and most obvious would be the need to allow levels that don't require resource gathering/building at all. The units you start with are the units you'd have to work with.

Less obvious are more subtle gameplay issues. The implementation of unit pathfinding and combat in Myth is far more detailed, and controllable by the player at a much deeper level, than is possible now in 0AD. Tell a bunch of units in 0AD to move somewhere, and they'll move into a formation and try and hold it while moving to the destination. When a unit gets too far out of sync with the others, it suddenly puts on a burst of blinding speed to get to where its supposed to be. When the bulk of the units arrive at the destination, any units left lagging behind stop where they are. In Myth, units only adopt the formation specified by the player (there are quite a few to choose from) when they reach the destination. In between the starting point and end point, each unit has its own path calculated independantly of the others, and there's no sudden rushing to get somewhere as each unit can only move at its set pace. Each unit will keep moving until it arrives at the destination, even if its long after the others arrive.

In 0AD, tell two groups of units to move through each other to a destination on the opposite side of the other group, and they'll meet in the middle, get stuck, then suddenly turn on their burst of speed and scatter around each other. In Myth, the units will more smoothly slide through gaps between other units, or recalculate common-sense paths around the blockage. Also in Myth, the user can click on a destination and drag the mouse to show the direction units should face upon arrival. I haven't found out yet how to do this in 0AD.

In 0AD I've seen units chase a fast target (eg a swordsman chasing a deer), and swinging his sword while quite distant from the target unit. In Myth units only use their attacks when in range. I'm sure the more I look the more differences I'll find. Watch the youtube video - you'll see units move smoothly past each other, walk around blockages or wait until a path clears, and units responding precisely to player commands during battle with everything kept under control.

If I can summarise, a Myth-like game sees units as individuals, which must obey defined limitations such as their speed, turning rate, attack distances and so on. In comparison, once units given orders as a group in 0AD their seen as members of that group, and rules are "broken" to keep the units in their place in the group or to get past obstacles. The aim of a Myth-like game is to get straight into the nitty-gritty of tactical combat, with the ability to micro-manage units & have them behave logically and predictably being paramount. In 0AD combat is less important than the resource work that precedes it, which is common to many RTS games: click the enemy and the units win or lose on their own, but never mind you can create more units.

There's obviously a lot more, such as projectiles units in Myth can pick up that give them special attacks, units that can blow themselves up damaging all others within a radius, units that can heal other units, and so on. There's also the whole multiplayer aspect, the different types of games and scoring methods. For single player there's the ability to script actions of enemy units, and determine win/loss conditions based on seizure of a destination point, or killing a certain enemy unit etc etc. There's the use of the left mouse button to select in 0AD, and the right button to tell selected units to do things. In Myth its left mouse button for both, which is very fast and intuitive, probably stemming from Myth's release for early Macs with their single mouse button. Oh, Myth has flying units as well.

After this of course is the huge task of creating the artwork; not only the maps but the new units as well.

I'm very aware of how much work creating a Myth-like game would be regardless of the engine used, and to me the first consideration is how difficult it would be to get the basics of gameplay working properly (pathfinding etc). Once thats solved I believe the project will then be feasible, and work on the remaining aspects can be planned and commenced. Btw I don't think replicating Myth is either possible or wise; just making a medieval or fantasy-based 3rd person Real Time Tactics game would be enough to start with.

Anyway, thanks for your reply Philip, I'm really impressed not only by the amazing progress you guys have made with 0AD, but also your willingness to consider adding features that might benefit other games using the engine!

Edited by slipshod
Link to comment
Share on other sites

While I'm sure there's a lot of special stuff that's needed for a Myth game there sure are things which should be done for 0 A.D. in any case. The pathfinding could definitely use improvement (though for the main game it will as you say deal more with groups/formations than individual units). Removing the economical side is as simple as not giving any units the ability to gather/build (and not having any buildings/any buildings which can be used for economical purposes).

Link to comment
Share on other sites

In terms of changes that'd be required, and please bear in mind that I'm still an absolute n00b when it comes to how 0AD works, first and most obvious would be the need to allow levels that don't require resource gathering/building at all. The units you start with are the units you'd have to work with.

That should be easy to do - just edit the entity template XML files and remove the "Builder" and "ResourceGatherer" components (and probably get rid of any "ResourceSupply" etc too), and the units will be unable to build or gather anything.

About unit movement: the formation behaviour is pretty much all handled by scripts, so those could be changed to make each unit in a group move independently. Improving the behaviour of two groups of units travelling through each other in different directions is probably more complex and would need changes to the C++, but we probably want to improve that for 0 A.D. anyway. The unit movement code is probably the most complex single feature of the gameplay code (it's something like five thousand lines in total, including pathfinding and formations etc, with lots of subtle interactions between different parts), so it's certainly not straightforward to make major changes to it, but I think it should be possible to build what you want by reusing much of the existing code (particularly the pathfinders) with some effort.

Link to comment
Share on other sites

Great stuff guys, thankyou! To me the pathfinding is key, so its what I'll concentrate on first. Its great to know that a lot of may be possible through scripts to begin with as well. You've given me enough info to know that the project looks feasible, and hopefully it could benefit 0AD as well, so I've decided to give it a go and see where it takes me.Right now I'm just one person looking at this on his own in limited spare time, so my progress will be necessarily limited. If I can get to a point where I have a working proof-of-concept, hopefully I'll be able to start building a team (there's no way on earth I could do this by myself) and see this through to completion, but first things first I guess.If anyone has any further comments, suggestions or advice it goes without saying that I'd love to hear them.

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...