Outpost Universe Forums

Projects & Development => Outpost 2 Programming & Development => Topic started by: Vagabond on December 01, 2019, 09:46:26 PM

Title: OP2 Mission SDK Version 4.1.0 in development
Post by: Vagabond on December 01, 2019, 09:46:26 PM
Hooman and I have been integrating some minor enhancements to Outpost2DLL, HFL, and OP2Helper that should at some point culminate into a formal release. All three projects have been touched so far. I will try and post a change log in the near future with what has been done to date.

If there are any community inputs (fixes that have been made, unreported bugs, or feature requests), it would be nice to express them soon before it firms up.

I know TechCor had some updates to HFL in his own repos that would be nice to open pull requests on to review. I think sirbomber may have had something as well and we were trying to get it setup on GitHub or something, but my memory of the details is hazy now.

I think this will be a non-breaking change with only one deprecation, so should be easy to slide into anyone's current mission development (if any is happening right now outside of a couple of my own pet projects)?

Also related, Hooman has written up Readmes for most of the projects. If you are looking to get started on programming a new mission, it would be a good read. The Level Template has been overhauled a bit as well.

Title: Re: OP2 Mission SDK Version 4.1.0 in development
Post by: Hooman on December 02, 2019, 12:27:09 AM
Yes, feedback would be very useful. In particular, the LevelTemplate (https://github.com/OutpostUniverse/LevelTemplate) project has updated instructions on how to use it. That should cover the software needed, with links, and the general workflow to get code compiling and testing new levels in game.

So far most recent improvements to the MissionSDK are pretty minor convenience changes. They have been starting to accumulate though, so they will eventually result in a new release. If anyone is doing any level development and they find rough corner cases, or things that are awkward or unpleasant to use, we'd love to hear about it so we could improve the experience. These can be really minor things, such as missing or poor documentation of a particular method, or awkward multiline code constructs for something you feel should be expressed as a single line, or functions with hard to remember parameters that are hard to read at the call site.

For an example of a recent change, to load a vehicle in a garage, it used to look something like:
Code: [Select]
truck.PutInGarage(0, garage.Location().x, garage.Location().y);

The first parameter, the 0, is not very self documenting as to what it means. It's actually the bay index. To improve readability we've introduced an enum for the bay index so the code can instead be written as:
Code: [Select]
truck.PutInGarage(Bay0, garage.Location().x, garage.Location().y);