Drongo's Mods and mission building

Started by =JpS=SgtRock, November 21, 2021, 09:06:56 AM

Previous topic - Next topic

=JpS=SgtRock

I know, I know. I can't seem to settle on a consistent set of tools!    ::) :o

I had high hopes for using the ALiVE (Advanced Light infantry Virtual Environment) mod. It's been around a long time, is still in active development, and has a really solid team of developers behind it. The challenge with it is there is no good way to modify the virtual elements based upon player actions. That makes using it for any sort of persistent campaign fairly problematic. I eventually had to give up on it for the time being.

I started experimenting again with several of Drongo's collection of mods.* He has added some pretty interesting features since the last time that I played around with his stuff. Limited persistent saving options for longer campaigns, environment interaction so players can fulfill logistics roles, UI enhancements, artillery improvements, air operations, support for better AI commanders, etc.

Over the past few weeks I have have been re-learning the ins and outs of MP mission development and roughing out the start of a long term mission on a really nifty looking map called Isla Abramia. The mission isn't in a playable state yet. I'm maintaining a git copy in the usual place if you're interested in seeing what I've got so far. As always, any comments and/or development assistance would be truly appreciated.

*Specifically, Drongo's Map Population, Command Enhancement, Enhanced Interface, Air Operations, Artillery, AI Fire Support, and DYEL.

=JpS=SgtRock

#1
    TL;DR version:
    I still hope to have a playable mission up before New Year's although I don't know if I'll make it. The core of the mission is largely complete. However, MP set up led me to have to dig into (gasp) writing code for the first time in way too many years. I'm enjoying the challenge, though, so it's a win-win as far as I'm concerned. :)

    Long version:

    P.S. Almost forgot. The development work discussed below can be found here.

    I have completed the basics of what I hope will be a fun, semi-persistent mission set up. As I said, I hope to have something playable before New Year's so we can hammer on it when many people have time off between Xmas and NYE.

    So far as I can tell from the limited playtesting that I've done within the Editor:

    • Random enemy AI units are generated just fine,
    • Random friendly faction generated just fine.
    • Random side (optional) mission generation works fine.
    • I think I have reinforcements and an enemy AI High Commander set up correctly.
    • I also set up the first capture point with an associated trigger to generate a vehicle prize and a respawn point in about 20 minutes. Should be easy enough to add however many make sense on the map. :)

    Stuff that has to get done before the mission is ready to play

    • Ensure that using the Drongo commander tablet is set up correctly. Document how to activate it and use its capabilities in-game.
    • Ensure that using the DYEL mod is set up correctly. Document how to activate and use its capabilities.
    • As a player, choosing a different role. (Work In Progress (WIP) that's taken up much of my development time. More on that below.)
    • Create the mission briefing so people know what's going on.
    • Create signboards in-game to hit the highlights for those who don't read mission briefings.

    Nice to haves that are still on the back burner for future development:

    • Some sort of player ranking and economy system. For example,

      • Money and ranking points awarded for completing both side missions and main goals. Balancing same.
      • Unlocking advanced roles?
    • ?? Anyone have any ideas to suggest?

    So about the WIP around player roles. I had initially intended to just use the built-in Arma "choose your spawn point and a role" function. However, I quickly ran into what I saw as a couple of major flaws.

    First and by far the biggest problem was that I couldn't use custom loadouts. Something as simple as adding a scope to a light MG, for example, just would not work no matter what I tried. Forget about adding Drongo specific things like the commander tablet to a squad leader or officer role.

    The second issue that I ran into pretty quickly was that all loadouts were available or none were. As I was toying with the notion of being able to unlock stuff (again going back to the MG role, start with a SAW style weapon with a possible unlock of an MMG with a lot more punch), this was also a non-starter. That's a real shame because Arma 3 makes it super simple to build a custom loadout and save it as a script for use in-game. You just can't use them with the built-in loadout screen!  :o

    Finally, I want this to be a re-usable resource that can be added to any mission that we end up creating. That means I always have to think about whether what it is can be used anywhere.

    After a fruitless search for an already built mod that could do what I was hoping to do, I was forced to conclude that I was probably going to have to write something myself. Scripting in a new language doesn't scare me. I've had to dabble in everything from 6502 Assembler to Python with detours into several dialects of Basic, Pascal, COBOL, Fortran, bash shell, and a smattering of other languages along the way.

    Nope, what made me hesitate the most was building a GUI. The last time that I did one from scratch was in tkinter about 30 years ago. It's safe to say that my skills in this area are just a bit rusty. ;)

    The good news is that Youtube is an excellent resource. I've found two Youtubers in particular that did GUI building videos that have been very helpful. I also have found some other Youtubers with good editing tutorials that have really helped me understand the Arma scripting language. In addition, the Arma 3 Editor UI makes the iterative process of developing and testing a GUI much easier than it used to be with older BI games.

    I've been working with just a couple of roles while I work out the kinks. At this point I have the role GUI displaying no problem and you can choose between roles. What's missing is a display that will tell you why you might choose one role over another. The display's there but it's not filling in correctly. I think I need to figure out a variable passing issue.

    Once that's working it'll be time to start populating the data for the other roles. For this mission I'm just focused on NATO roles. However, once I have the framework done it should be easy to reuse it for just about any faction, original or modded.

    Completed roles:

    • Autorifleman - Carries the MXM and 100 round magazines. This is basically the SAW role.
    • MMG - Carries the SPMG chambered in .338. Damage to people and vehicles sits between the MXM and the Mah Deuce. I see this as more of a long range area denial role.

    Other required roles:

    • Squad Leader - Required role to call in supports. (And to manage buying AI squads?)
    • Combat Lifesaver - gets the medic trait, obviously.
    • Engineer - gets both the repair and explosive specialist traits.
    • Grenadier - Grenade launcher armed with 3GL rounds instead of the singles.
    • Marksman/Recon - Gets the laser designator by default.
    • Pilot - Can't fly unless you're willing to commit to the job.
    • Rifleman - Basic unit that everyone will spawn in by default. ACO sight added to the rifle.

    Nice to have roles:

    • Vehicle crew - Required role for operating an APC or tank. Not required for lighter vehicles.

      • Maybe use this role for manning heavy static weapons as well?
    • UAV operator/hacker
    • Combination Forward Air Controller/Artillery Spotter - Drongo's Air Ops and Artillery mods could make this a fun role to play.
    • Fireteam leader - Useful for larger squads.
    • Mortarman - My personal favorite. ;)
    • Officer - make this role the only one that can use the Drongo tablet? Still weighing the pros and cons for this. Could just limit it to SLs instead.
    • Additional weapons loadouts for roles similar to what I built for the LMG/MMG roles.
    .[/list]

    Raptor-Man

    #2
    Quote from: =JpS=SgtRock on November 21, 2021, 09:06:56 AM
    I know, I know. I can't seem to settle on a consistent set of tools!    ::) :o

    I had high hopes for using the ALiVE (Advanced Light infantry Virtual Environment) mod. It's been around a long time, is still in active development, and has a really solid team of developers behind it. The challenge with it is there is no good way to modify the virtual elements based upon player actions. That makes using it for any sort of persistent campaign fairly problematic. I eventually had to give up on it for the time being.

    If only you hosted your Arma3 server on hosthavoc - where they use this magical DLL which sends game state to a MySQL server already installed & working for other arma3 games!

    Bonus - you dont even need cpanel for it - they include a free DB for that exact purpose with your game server instances when you buy from hosthavoc.com.

    Act now to enter a more modern area of video game design! ;) ;) ;)

    On a less note satirical note:

    If you had talked to hosthavoc last year - we'd have had perm stats & probably should shifted me from those sorts of projects to deep integration.  I don't have a machine to load & compile huge MP maps, but loading up & analyzing so we can figure out what makes the systems run should be fine.

    =JpS=SgtRock

    #3
    QuoteIf only you hosted your Arma3 server on hosthavoc - where they use this magical DLL which sends game state to a MySQL server already installed & working for other arma3 games!

    Bonus - you don't even need cpanel for it - they include a free DB for that exact purpose with your game server instances when you buy from hosthavoc.com.

    Yeah, yeah.   :D ;D :D

    Doing so, though, that assumes someone understands MySQL. I know I don't. The few times that I tried to set up a MySQL database engine I never did get it running. Not running anything useful, running at all!  :P :-[  I'm good, but apparently I'm allergic to SQL engines. Or they're allergic to me.  :o :(

    Figure out what data elements are going to be of interest? Yeah, I can do that. Figure out the high level data flow? Yep, that too. Do a simple or even moderately complex entity relationship diagram? Not a problem.

    Actually set up a working SQL engine? Is that smoke I smell? ;D ;D ;D ;D

    By contrast, my efforts in GUI design, as ugly as my results are, are at least producing something that has some hope of working as designed!

    I do agree that at some point we need to figure out the database use if for no other reason maintaining player stats long term will require it. In the meantime I don't mind using Drongo's tools to limp along.

    QuoteI don't have a machine to load & compile huge MP maps, but loading up & analyzing so we can figure out what makes the systems run should be fine.

    Not sure what you mean by that. I've just been running the mission editor built into the game itself for mission building. Basically, if you can run Arma you can run that editor as long as you have a pre-built map. That's the only editing that I've done. I think the same is true for Cappy and Dark, too.

    The script editing just requires the text editor of your choice. I started out using Notepad++. I switched to Visual Studio Code when I found out that there's a plug-in for verifying correct syntax called SQFLint for Arma scripts. (SQF is the default extension for Arma scripts.) It makes debugging a lot easier.

    IOW, any machine capable of running Arma 3 at a decent framerate is more than enough machine for mission creation. This is not about building maps from scratch. That's a whole level of artistic work that I don't feel at all comfortable attempting to tackle. No need, anyway, with so many gorgeous maps already in the Workshop.

    Raptor-Man

    #4
    QuoteYeah, yeah.   :D ;D :D

    Doing so, though, that assumes someone understands MySQL.


    Hi Rock - I'm a 3 time certified dba for almost 20 years now.  Beyond sql, i also have done 50+ instances of couch & various other nosql before you toss down old school foxpro etc from 90s but that was free stuff i did as a 14yr old.

    Quote
    I know I don't. The few times that I tried to set up a MySQL database engine I never did get it running. Not running anything useful, running at all!  :P :-[  I'm good, but apparently I'm allergic to SQL engines. Or they're allergic to me.  :o

    You picked the service, but we can still go somewhere that you can use another db style if you like?

    My experiences on windows boxes have been run msi installer, create user in the GUI & go.  If you have issues on the OS end, just use one of the two MySQL db's you're paying for by pointing to the db via IP address? 

    Thus you just by passed setting up any sql engine & you can make your own test db or test table on live db.

    Raptor-Man

    If you want to control the db we get for free with arma3 server:

    http://gspdb-chi.hosthavoc.com/phpmyadmin

    No installation required just a webpage.  At the bottom of the game server control panel you can just hit login to PHP too

    =JpS=SgtRock

    Progress at last!

    QuoteAs a player, choosing a different role. (Work In Progress (WIP) that's taken up much of my development time. More on that below.)

    I FINALLY got this working tonight! Woohoo! Now all I have to do is populate the other minimal roles so I can move on to other tasks. :)


    =JpS=SgtRock

    More progress to show off. I have completed creating a set of roles that should be good to start with. See the attachments for some examples.

    Next steps:


    • Get the role GUI into the Drongo mission.
    • Verify that the basics are working.
    • Test with my local dedicated server.
    • Get some playtesting done on Llama!
    • Gather feedback and figure out next next steps.  ;)

    Raptor-Man

    Looking good!

    I'll post the working source & compiled pbo's for the event handlers to database tomorrow.