DCUG Developer’s Journal #4

Howdy folks!  Time for another dev journal!  This one covers a range of topics but focuses on the addition of new characters to the mod’s massive roster.

First off, I am proud to announce that I’m no longer the only storyteller that will be featured in the DCUG!  Since the very, very beginning, one of my great hopes for this project was that it would serve as a springboard for others to tell their own stories in my version of the DCU.  I envisioned it as a massive sandbox that other DC fans could play in and help me flesh out.  Several folks started various projects to contribute, but they all eventually fell through for one reason or another, most because people just got busy with real life.  I actually still have a partially completed campaign called “Monkey Business” written up that a great guy named lmalonsof and I were working on back in the day, featuring a team-up of DC ape villains.   It promised to be a blast, and I should probably dig it out and try to finish it up one of these days.

Anyway, the new (and, really, only other) member of the DCUG team goes by Or Wolvie, a fellow FF modder who started a very promising project a few years ago but put it on hold after running into technical difficulties (I still hope he’ll finish it one of these days!).  I asked him if he’d like to tell some of his own stories in the mod, and to my delight, he agreed.  I gave him his pick of characters and teams, and he dreamed up some really fun adventures for Green Arrow and for the Teen Titans.  He’s well on his way to having his two new campaigns scripted up, and hopefully I’ll have some previews of them to share before too terribly long.  I for one am really looking forward to them!

Now, on to the update!

In preparation for the finale for the JLA/JSA crossover, I’ve been working on adding some new characters to the mod.  My plans for the mission involve a host of villains of the two teams, drawn from all points in time.  I find myself needing some more of the JSA’s villains, as they were relatively poorly represented previously.  This seems like a good opportunity to offer some reflections on my design philosophy and some info on how characters are built.

It starts with tracking down or requesting the art assets for a character.  At this point, almost any comic character you can imagine has been created, at least in some fashion, by our wonderful FF community.  So, I created my wishlist of JSA foes, posted on Freedom Reborn, and within an afternoon, the community pointed me to where I could find all of them.  Then it’s just a matter of dropping the meshes, skins, and keyframes into the FFvTTR Custom/Library/Art/Characters directory, where I can check them out with the CharacterTool.  When I have chosen the ones I want, I launch the current DCUG build and use the in-game character creator, which is wonderfully flexible and user friendly, to create a character file, or “Herofile”, which records and interprets their stats (like strength, speed, agility, etc.), powers, attributes (like if they can fly or climb walls), material type, and voice.  I often use existing HF packs as a starting point, but I always customize the characters with my own interpretation.

The DCUG was the first mod I ever created, and my character design philosophy has evolved a bit since I made all of its characters.  Now, this means I have to keep an eye on myself so that I don’t screw up the balancing by designing a character the way I did for my more recent mods like Marvel Adventures.  In general, my biggest priority for the early DCUG was comic accuracy and breadth, and I would just provide enough powers and abilities to capture the character, not paying as much attention to playability and fully realizing them as I could have.  I’m in the process of going back and polishing the existing characters to reflect a more comprehensive approach, and I’m building new ones with a more thorough eye as well.

I put more focus on making characters interesting to play and filling each one’s Herofile, giving them a full range of 10 powers whenever possible, as many attributes as made sense, and generally trying to use all available slots.  So, the first new characters I was developing were JSA foes, as I mentioned, and they posed a challenge because I really wasn’t all that familiar with them, having read few of their stories.  Fortunately, the Internet is full of information on ridiculous minutia, like the powers of 3rd stringers like The Fiddler.  My go-to sources are Ben Reily’s excellent Marvel RPG page, which, counter-intuitively, also has info on DC, and the great site Rapsheet, which has info on comic villains.

So, I built the Fiddler, giving him a range of powers to represent his magical violin (yes, that is a real thing in the DC Universe.  Aren’t comics grand?).  I also gave him some neat FFX (Freedom Force community expansion) attributes that allow him to use his music to affect the actual environment of a level.  He can do things like bring inanimate objects to life to fight for him.

I also built The Gambler, who is just a normal human with trick guns and knives.  He proved a challenge because of his limited powers.  While FF is perfect for depicting super-beings, it can get a little tough when you’re making normal humans with any variety or interest.  Fortunately, The Gambler has enough gimmicks to keep him interesting, and I came up with a fun HF.

I also started working on the old war comic classic, the Haunted Tank!  That’s right; after previewing the art for this formidable fighting machine in the last journal, its now actually playable, though I’ll probably keep tweaking it.

As I went, my list of new characters to add continued to grow on me, as it always does, and I cast my net wider. I designed and added a number of JSA villains, but I also ended up adding some Firestorm foes and some members of the Suicide Squad that I had previously missed, taking advantage of some really lovely new skins/skopes by FR member Laughing Paradox.

In this batch of characters I ended up adding:

  • Abra Kadabra
  • Baron Blitzkrieg
  • Captain Comet
  • The Enchantress
  • The Fiddler
  • The Gambler
  • The Icicle
  • Javelin
  • Killer Frost
  • The Mist
  • The Muse
  • Nemesis
  • Plastique
  • Shade the Changing Man
  • Slipknot

After I had finished my designing and testing, it was time to add the characters into the mod itself. There are a number of ways to do this. My favorite has always been a special Rumble Room (the game’s sandbox mode) gametype that adds included characters to the games .dats, or data files. However, in my current Windows 10 build, that gametype doesn’t work quite right, being super, ridiculously slow, so I went with my second favorite, which is Alex’s fantastic Herotool. It has a ‘send to dat’ feature that is very strong and at this point may well be better than using the in-game method.

Now, you might think that’s the end of the process, but it is really just the beginning. Now comes the hard work. First, I went through and wrote all the strings entries, which provide the ‘cleaned-up’ names of characters and powers, biographies, and mouse-over descriptions. This is a little detail I’ve always been very intentional about including in my mods, and it is rather painstaking work, going line-by line, thinking up (hopefully) clever descriptions and names for powers and taglinles. Honestly, it’s one of my least favorite parts of the process.

With that done, it’s time for customizations. FFX has given mod makers and players an incredible set of tools to customize their FF experience. It lets you do all kinds of things that the base game doesn’t. For example, The Enchantress can transform regular items in her environment in interesting ways, like transmutating a street light into a poisonous gas cloud, while Abra Kadabra can trap his enemies in a crystaline cage with its own hitpoints. Some of these FFX additions will work ‘out of the box’ but a lot of them require at least an extra step of customization or setup, especially some of the coolest ones. I’ve given several of these charaters FF1 style active defenses, meaning they’ve got forcefields that have a limited hitpoint pool and can actually be battered down, but that took a few extra steps and some editing of files.

Once all of that is done, then I go through and choose voicepacks appropriate for the characters, drawing on the massive library I’ve acquired over the years, which was hugely expanded by VPMAX, the community voice pack…pack. Those final touches done, it’s time to re-brand all of the new characters with the FFX Control Center, which helps the game identify and understand them, and then it is time to test them out!

Hopefully, everything works right!

In this case, things went relatively smoothly, and I was on to other matters.

As is always the case, I was working on several things at a time, just as I remembered something or as a thought grabbed me. In my various modding meanderings, I also happened to solve a mystery that was partially responsible for me abandoning my Aquaman campaign way back when! I had a lot of big plans for that storyline, and they involved trying things I had never tried before, like adding new objects and maps into the mod. I had a mission planned that would use a huge freighter as a battle scene, and I even managed to track down a mesh for a freighter that I could use. I tried everything I could think of to get that mesh to show up properly in the game, but I never got it to work. However, my recent exprience with the map issues for my JLA campaign showed me the answer. Instead of trying to add the boat as an object, I just added it directly to the map. That still took some doing, but I eventually figured it out, and I now have a way to tell stories I’ve been wanting to tell for years and years!

And that is all the news from the DCUG at the moment! The roster grows, and things proceed apace. Please check back again soon and see what else is in store. Look for some information about Or_Wolvie’s new campaigns soon!

DCUG Developer’s Journal #2

Hoo-boy, things have certainly not gone more smoothly since my first journal entry.  This campaign has given me even more troubles.  I encountered a whole set of problems I’d never seen before and just about gave up hope for the finale of the whole darn arc I’m working on.  In the process, I learned a whole lot about maps and objects that I never knew, though I still couldn’t solve my problems.  The good news is that this story has a happy ending, even if it was really in doubt there for a while.

So, when last I left you, I had just finished up mission #14 and had it basically working, so I got started on testing #15.  As with the previous mission, I had already written, scripted, and mapped this one, so testing was all that was left.  It proved to be just as temperamental as its predecessor, but the script problems were magnified by a map problem.  In this mission, the gathered heroes from #14, Green Arrow, Green Lantern, Flash, and Superman, with Batman as an ally, had to rescue the remaining Leaguers, who were once again scattered across different diskworlds.

Fortunately, I had learned from the previous problems, and I anticipated some of the issues in this mission.  I started all of the encounters off at once to avoid the non-completing encounter bug.  Still, I had problems with the custom encounters for MM and GL.  WW’s encounter worked pretty well, but I discovered that I hadn’t created a animportrait (talking head) entry for the Amazons that provided her opponents.  Interestingly, sometimes a missing head.nif or entry will crash the game, sometimes it will just show a dialog balloon with a blank space.  I’m not sure what causes the different reactions.

This instance only resulted in the latter, thankfully.  I was able to fix MM’s encounter by doing the same thing I had one with Flash, using two different encounters with two different MMs, to get both the rescue and the alliance.  This one provided an extra challenge, though, as with so many more characters in play, it isn’t as easy to make the substitution and teleportation as seamless and unnoticeable.  Complicating the matter further, the encounter in question is a ‘Rescue Fire,’ which means the diskworld is sort of a hot place, and my players aren’t going to want to hang around there!  I’ll have teleport my new Jonn to the old one and hope for the best.  Here’s the pertinent script.

#———————————-

Encounter: Burn1
Type: Rescue Fire
Allies: martian_man named jonn
Marker: desert5
Primary Objective: “Save the Martian Manhunter from his fiery prison” for 1000 prestige
Next: If All Congregated: Burn4
Next: If None Congregated: Final2

Ally Congregates Cutscene:
Camera on jonn
jonn says, “Thank you my friends, once again, I owe you my life. I would not have lasted long in this fiery world. these flame creatures seem to be everywhere, and the ground burns constantly.”
flash says, “Don’t worry about it, J’onn, that’s what we do. Now let’s get out of here!”
green_arrow says, “Right, just one more little lost lamb and we’ll have the whole set. Maybe then I can go home!”
Fade for 1 seconds

#———————————-

Encounter: Burn4
Type: Custom
Actions: allies become controllable, allies fight villains, allies follow heroes, allies remain after encounter ends
Allies: martian_man named bob
Marker: bottom2
Next: None

Alert Cutscene:
bob teleports to jonn
jonn teleports to bottom1
jonn is killed
jonn is destroyed
Unfade for 1 seconds

#———————————-

It was here that I really ran into problems, the first of many in this batch of testing, unfortunately.  The GL encounter was only partially working, but the real problem was that my heroes teleported onto the center of the map…and then couldn’t get off of it!  They teleported into the middle of a number of turrets, which were on the edges of the disk, and the team literally could not move to them or reach the Lantern to free him.  There was some type of issue with this particular diskworld that made its edges impassable.  I tried tweaking it in Nifksope, but no luck.  I really don’t know enough about meshes OR maps to figure this out.

So, I had to adjust my story, throwing out that entire encounter or reworking it to fit somewhere else.  I chose the latter, moving his encounter to the final disk, a Timemaster-flavored world, and I switched up the plot slightly.  I’m fairly happy with the results, but it gave me a bad moment or two.

Of course, that was nothing compared to what happened when I went on to #16.  You see, that problem I had with the outskirts of that one diskworld, in the final Timemaster map I was using for the grand showdown with the Key, the ENTIRE map was impassable.  My heroes couldn’t go anywhere, and if I teleported them around with console commands, they would slowly slide back to where they came from.

Once again, I examined the terrain.nif, but I couldn’t make heads or tails of what I was seeing.  I posted on FR, and fortunately, the ever-awesome Detourne_me came to my rescue.  He didn’t know how to solve the problem, but he got me looking in the right directions.  He pointed out that the actual play area of the map was a giant game object, not part of the map itself.  I checked the object attributes of the “cog_massive”, digging through FFEdit’s manual to make sure that it had all the necessary attributes, but no luck.  It’s worth mentioning that there are explanations for each of the mysteries (to me at least) template attributes in the manual.  If you’re ever tying to figure them out, you can check objattributes for a complete listing.

(One of the stages of my frantic attempts to save the map made the cog disappear entirely!)

I checked the terrain itself, which DM had suggested might be the culprit.  Its bottom surface, far below the giant spinning cog, was composed of two levels, and each had an “AREA_UNPASSABLE” label.  DM posited that this might cause problems to anything over such an area, so I tried renaming them.  Progress!  Unfortunately, this only got me one step closer.  Now my characters could move…on the very bottom level of the map, as they would fall through the cog any time I teleported them up there.  I fought and fought with this thing before I hit on a solution.  I finally just copied the cog object directly onto the terrain.nif.  It took a few tries, but I got it right, and I finally had a workable map!  Now I only had to get the script working!

Fortunately, despite the fact that the big finale encounter only partially functioned, it was a very easy fix.  It features a showdown with the Key, where he is invulnerable until you destroy an object.  The CSes weren’t playing, and the object wasn’t showing up.  Turns out, I had misspelled the object name (d’oh!0 and mixed my metaphors, so to speak, in naming the Key.  You see, FF doesn’t like it when you refer to a character in two different ways.  You can use generic terms (like Villain1) OR specific names, like the_key, but you CANNOT use both, or it will choke.  So, easy fixes, and now the mission is playing quite nicely.

That wraps up this journal entry.  Please let me know if this is interesting to y’all, and if there is anything you’d like to hear more/less about, or if you’d like me to illustrate other parts of the process.

Back in the DCUG!

Historyofthedcu

Greetings Freedom Fans and Internet travelers!  This is an announcement of a current project that is near and dear to my heart: The DCUG (The DC Universe According to Grey)

I’ve always wanted to return to my first and favorite mod and tell more stories, fix it up, and polish the whole thing up.  That’s what I’m currently slaving away on.  I’ve got a TON of work to do and almost certainly unrealistic plans for its development, but I am plugging away at it.  Time is a very rare commodity for me at the moment, as I’m finishing my PhD, dealing with a fair amount of general craziness, and searching for jobs, but I still manage to put a bit of work into this monster from time to time.  There’s not even a tentative release date yet, but I will say that I’ve already written and designed a major expansion for the JLA/JSA campaign, including a conclusion to the unfinished JSA crossover.  I’m in the midst of testing that at the moment, and after that…well, I’ve got a lot of ideas and made extensive notes while traveling this summer.

This post is an announcement and a notice.  The links for the current, unfinished build of the DCUG will come down sometime soon.  I don’t know how long it will take me to finish this update/expansion, but I hope it will be worth the wait and will be a much nicer package, inside and out.

I’m also going to post every once in a while to keep anyone interested apprised of my progress.  I’ll post ‘developer’s journals’ from time to time, talking about what I’m doing, offering general commentary on the project, and probably mostly just griping about bugs!  Feel free to ask questions and offer suggestions.  Interest from the community is one of the things that keeps me going!  Now, back to work!

Ghostbusters: Trick or Terror 2 Released!

440px-RealGhostbusters_promotionalimage

Happy Halloween one and all!  I’m just BARELY getting this one in under the wire, but I am proud to release the second episode in the Halloween adventures of everyone’s favorite spirit chasers, the Ghostbusters!  Join them for another mysterious case as they are called to a foreboding locale and face strange events that just might be connected to their previous Halloween misadventure.

As before, this is a simple, one mission story, but I had a blast making it, and I hope you will have a good time with it as well.  So come on, celebrate Halloween in style, with the kings of creep, the Ghostbusters!

This release includes the original mod as well as the new mission and foes.  You can download the whole thing here:

Download it here!

Challenge the restless dead and make New York safe for her citizens!

Strap on a proton pack and make use of the Ghostbusters’ arsenal of gadgets!

Help Pete, Egon, Ray, and Winston fight back an incursion from the spirit world, and save Halloween once more!

Custom Loading and Menu Screens

FF WALLPAPER1

Howdy folks!  Lately, I’ve been getting a lot of questions about how to create custom loading and menu screens in Freedom Force vs The Third Reich.  There probably were tutorials once-upon-a-time, yet while there are some good threads about this on Freedom Reborn, there isn’t, to my knowledge, a good, clear, set of instructions on how to do this.

So, you want to give your mod a little extra bit of personality, replace the main menu with a picture of the Thundercats, the Teen Titans, or whatever your mod is about, right?  Well, the process is really quite simple.  Like most things with FF, these interface screens are really easy to customize.  It’s just a matter of replacing files in the right directory.  With the following instructions, you can replace the main menu screen, the Rumble Room screen, the loading screen, and every other game menu and loading screen.

  1. Make sure your mod has the right directory.  You’ll need Art\Library\Interface_Scenes, and at least some of the subfolders.  Which ones you need depends on what all you want to replace.  If you’ve begun your mod by copying FFX, you probably won’t have these files.  You can copy them out of the main FF Data folder, or you can grab them out of one of my mods (which all have at least some of these images replaced).  Now, the folders corresponding to the various loading screens are mostly intuitively named:
    1. mg_ff_team_main is the main menu screen, mg_rumble_room is the rumble room screen, and so on.Screenshot (24).png
  2. Each interface scene in the game consists of two parts, a texture, the actual image that is displayed, and a nif, or mesh file, which is the canvas upon which the texture is displayed.Screenshot (25)
    1. The texture will have a specific name that the nif tells the game to look for.
    2. Some of the scenes have animated or otherwise unusual nifs that can be hard to fit with a texture.  You’ll notice that the default main menu is like this, scrolling through a whole host of characters.
    3. You can replace these with simpler nifs from other portions of the game.  I’ve done this with the main menu in all of my mods, simply substituting a flat nif from one of the loading screens for the default nif.
      1. Of course, if you change nifs, you need to make sure the you rename the texture that goes with it appropriately so the game can find it.
      2. For example, the texture that goes with my chosen main menu nif is load_skyking.dds, while the default texture is made up of a number of different pieces each with a specific name.Screenshot (26).png
  3. To change the image displayed by your chosen interface screen, simply replace its texture with one of your choice.  It must be named exactly the same thing!
    1. All textures used in FF have to be square, with even dimensions.
    2. Interface scenes must be 1024 x 1024, .dds format.
  4. If you’re not sure how to save an image in .dds format, I recommend using GIMP, a free image editing program that can take a .dds plug-in.
    1. After installing GIMP, open your image with it, crop or scale to approriate dimensions, and then Export As a .dds file, named whatever your base texture is, i.e., load_skyking.dds.
  5. That’s it, you’re done!  Enjoy your cool new custom screens!

Well, that was easy, but what if you want to create custom loading screens for your mod’s campaign missions?  Well, this is also pretty simple, but it does require a few more steps.

  1. These files also go in your interface_scenes directory, but instead of replacing them, you actually need to create your own.
  2. Copy one of the comic_blank (comic_timemaster, comic_blitzkreig, etc) folders out of the vanilla Data folder and past it into the Art/Library/Interface_Scenes directory in your mod.
  3. You’ll see that it is a similar animal as the other interface scenes we already discussed, except instead of a nif and ONE texture, it is a nif and THREE textures.  This is what makes those cool fake comic covers for the game’s mission loading screens.
    1. The comic cover itself is broken into two pieces, and then there is a ‘back’ image which provides the background.  You need to replace the two textures with your own cover image chopped up into pieces of exactly the same dimensions.
    2. OR, you can do just like we did with the main loading screen, and simply replace the comic cover nif with a plain nif and only have to make one texture.
    3. Name your folder something fitting for your mission, avengers1, for example.
  4. Now comes the slightly more complex bit.  You’ll need to create entries in FFEdit for your brand new loading screens.
    1. Open up FFEdit, and make sure the Primary Data path points to your mod folder.  Now, click on the ‘Res’ (resources) tab, and scroll down until you see the ls_blank (NOT is_blank!) entries.
    2. Select one of these, like ls_01_begin, and click ‘copy.’
    3. Rename your new entry to be ls_yourmissionname.  Note, it must match exactly what the mission name is in the Campaign tab, so it is a good idea to switch over there, copy the mission name, and just paste it after ls_.
    4. Point the source of the entry to your newly created mission loading screen.  Make sure to trim the data path to start at ‘library’!
    5. Save, rinse, repeat for other missions.Screenshot (28)
  5. You’re done!  These should now display whenever you load one of the appropriate missions.

Lost DCUG Campaign

teamarrow.jpg

Howdy guys, I discovered something today while I was cleaning out some files that made me a bit wistful and nostalgic, so I thought I would share it.  Years ago I was working on my sprawling DC Universe mod, the DC Universe According to Grey, and I created the beginnings of two extra campaigns.  At some point in time, I had a computer crash and lost all of that material…except this.  I discovered a few, a very few, screenshots of one of those ill-fated missions.  This one in particular was the first mission in a Green Arrow campaign, and it featured Green Arrow, Speedy, and guest starred Black Canary.

The mission involved taking Ollie and Roy on a patrol of Star City where they would encounter various low-level thugs, meet up with the lovely Dinah Lance, and then confront Count Vertigo for the first time in the finale.  I had a short campaign plotted out, but this was the only thing done.

trickarrow.jpg

I thought I might share these images with anyone interested, so we can all look at what might have been.  Perhaps one day I will get a chance to revisit this material, but I know at least one of the maps I used no longer exists.  Anyway, I’ve asked this before, but on the off chance I might hit the jackpot, I’ll ask again.  If you had an early version of the DCUG, please check your folder and see if you happen to have any of this material.  I think some of it got out into the public, but I was never able to recover it.  Well, that’s all for now.  Thanks for taking this little stroll down memory lane with me!