Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port missions to the new Lua API #5490

Closed
2 tasks done
Mailaender opened this issue May 30, 2014 · 16 comments
Closed
2 tasks done

Port missions to the new Lua API #5490

Mailaender opened this issue May 30, 2014 · 16 comments

Comments

@Mailaender
Copy link
Member

Mailaender commented May 30, 2014

The new https://github.com/OpenRA/OpenRA/wiki/Lua-API has landed in #5190. Time to update the maps and enhance the standard library. Some shared deficiencies of both old and new Lua API:

Red Alert

Mission Basis Assignee PR Status
allies-01-classic old Lua @Mailaender #6377 done
allies-02-classic old Lua @Mailaender #6379 done
allies01 legacy C# redundant
allies02 (co-op) legacy C# @obrakmann #11316 done
allies03 (co-op) legacy C# @Mailaender #11679 done
allies04 (co-op) legacy C# @Mailaender #11702 done
desert-shellmap old Lua @pchote #5190 done
fort-lonestar legacy C# @Mailaender #5469 done
intervention old Lua @obrakmann #6762 done
monster-tank-madness legacy C# @abcdefg30 #6552 done
soviet01-classic legacy C# @Mailaender #6796 done
survival01 legacy C# @abcdefg30 #6934 done
survival02 legacy C# @abcdefg30 #7164 done

Tiberian Dawn

Mission Basis Assignee PR Status
gdi01 old Lua @Mailaender #5782 done
gdi02 old Lua @obrakmann #6324 done
gdi03 old Lua @Mailaender #6795 done
gdi04a old Lua @obrakmann #6762 done
gdi04b old Lua @obrakmann #6762 done
gdi04c old Lua @obrakmann #6325 done
nod01 old Lua @obrakmann #6326 done
nod03a old Lua @obrakmann #6327 done
nod03b old Lua @obrakmann #6328 done
shellmap old Lua @pchote #5190 done
@obrakmann
Copy link
Contributor

@pchote said some time ago on IRC that he didn't want to the lua lib to be ported 1:1. It sounded like he already had an idea of what it should look like. @pchote, can you please give a quick outline of what you had in mind?

@obrakmann
Copy link
Contributor

I added the Allies02 (non-classic) mission to the list. It was a two-player coop mission that looked quite nice, and people have been asking if coop missions were possible.

@Mailaender
Copy link
Member Author

I also suggest that we give @ScottNZ's custom made allies02-04 a better/less-confusing name and remove the -classic suffix from the original campaign maps to bring them in line with the Tiberium Dawn mod. I also liked the improvements in allies01 with a bigger map, more enemies, the new oil derricks and controllable cruisers.

@abcdefg30
Copy link
Member

Could somebody assign me to "monster-tank-madness", please?

@Mailaender
Copy link
Member Author

Done.

@Mailaender
Copy link
Member Author

@pchote
Copy link
Member

pchote commented Oct 24, 2014

I think it's important that we define a list set of rules and changes for the mission ports that we can then apply uniformly. I found it very frustrating to waste an engineer in the new Allies03 port because I didn't realize that it would sabotage instead of externally capture. It also feels a bit weird to disable the fog of war in TD, but not in RA.

Some potentially tricky issues are:

  • Fog of war (are there any missions that become unreasonably difficult if you can't see areas you have explored?)
  • Multiple building queues in TD throwing off the balance.
  • Externally capturing engineers in RA.
  • Changes in the tech trees and unit functionality (e.g. thief -> hijacker, SSM launcher -> SAM launcher).
  • Changes in difficulty because of our balance changes (e.g. GDI04c)
  • Secondary objectives: we should add them where they make sense, but some of the existing ones feel forced.

IMO our goal should be to make these missions feel natural within our new gameplay. This means that we will need to make some changes to work around changes and inconsistencies, but we certainly should not make changes motivated by lazyness ("it's too much work to script X to match the original, and we have already changed Y and Z so it's ok" is a cop out).

On the other hand, I think that applying a blanket "absolutely no changes from our MP units" would be a bad idea. Squad-based missions were a big part of the original games, and our MP rules for e.g. tanya/commando and aircraft auto-takeoff ruin this feel.

Again IMO, here's some initial thoughts towards some conversion guidelines:

  • Enable the fog of war for all missions.
  • Add scripted entry sequences instead of starting with a block of units on the map.
  • Adjust RA missions to use external engineers and thief -> spy.
  • Disable auto-attack for commando/tanya missions.
  • Disable unit bounties in RA (especially the squad based missions).
  • Test, Test, Test... and then adjust the enemy unit placement to address any balance issues.

@obrakmann
Copy link
Contributor

I agree in principle, even though I'd solve some things differently. I really dislike external captures, for one.
Edit: I also don't quite understand your obsession with replacing pre-placed units with reinforcements.

Just one comment, though:

Fog of war (are there any missions that become unreasonably difficult if you can't see areas you have explored?)

Off the top of my head, gdi06 comes to mind, where you control a commando and have to avoid a patrol of buggies that passes by in regular intervals. If you can't see when the patrol passes, it becomes trial and error (error = instant death).

@pchote
Copy link
Member

pchote commented Oct 24, 2014

I really dislike external captures, for one.

Me too, but I think it is more important to not have units work completely different between the two modes. I would be quite happy to see both SP and MP engineers shift back to normal capturing.

Off the top of my head, gdi06 comes to mind

We could solve cases like this with a scripted camera at a key place, possibly tied in with a secondary objective.

@cjshmyr
Copy link
Member

cjshmyr commented Oct 24, 2014

I would be quite happy to see both SP and MP engineers shift back to normal capturing.

Wouldn't oppose this

@phrohdoh
Copy link
Member

If by normal capturing we mean entering/consumed; 👍

@obrakmann
Copy link
Contributor

Another rule I'd like to see enforced: disable viceroids in TD missions.

@Mailaender
Copy link
Member Author

Enable the fog of war for all missions.

Somehow the original gdi01 C# hack script had fog of war disabled and I copy pasted it everywhere. This seems more like an accident. 👍 for fixing that everywhere.

@Mailaender
Copy link
Member Author

We can add @ScottNZ's take on allies-01 as an additional difficulty like @abcdefg30 did in #8359.

@obrakmann
Copy link
Contributor

We're finally done with this \o/. Only took more than two years ;)

@abcdefg30
Copy link
Member

🎉 🎉 Good job everyone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants