Multimedia Fusion 2 is getting right on my tits.

I think I get why I’ve been developing ULSG so slowly recently. It’s not the heat or anything distracting like that. It’s motivation. But not in the “I’m making this game but no-one actually cares” sense, because I know that’s not true. MMF2 is the problem.

I’ve been doing some work on ULSG for the past few days, on both V13 and V14. V13’s not so bad, probably because it’s coded so inefficiently, and that’s the way MMF2 prefers you do it. However, V14 has been a nightmare.

It has severe problems sometimes which literally make no sense. For example, you can group objects into “Qualifiers”, and you can address all the objects in a qualifier at once. Sounds good. Works well in some situations. However, when it comes to choosing a specific object in the qualifier depending on an object’s alterable value, MMF2 poos itself.

Let’s take the main menu that I’m developing as an example.
Here you're supposed to see the concept for the V14 menu system.(That’s just a concept image, but it will look almost exactly the same in-game, just with a background and some other changes. :))

I have an object which keeps track of the current selection in the main menu, called “CurrentPositionInList”. It increases when you move down, and decreases when you move up. In each of the menu options is a value called “PositionInList” which basically says where the menu option is in the list. For example, the Single Player option has a value of 1. Multiplayer has a value of 2. And so on. The idea is that when “CurrentPositionInList” and any of the menu options’ “PositionInList” values are equal, that option should poke out to the right to show it’s the current selection. If not, it should go back to where it was. So if CurrentPositionInList is 1, Single Player should poke out, and all other options should slide back to where they were.

What’s the problem? Well, if you compare CurrentPositionInList with PositionInList, all options pop out for some reason. However, if you compare PositionInList with CurrentPositionInList, it works fine. SENSE. IT MAKES NONE. It’s like MMF2 is saying 1 is equal to 1 in one direction, but 1 is not equal to 1 in the other direction! WHAT THE…?!

That’s not the worst problem, oh no. You see, even if I ignore this stupidity and just compare PositionInList with CurrentPositionInList without questioning how it works in that order and not the other, then if you select any of the last four options in the menu, they slide out just fine, but WILL NOT SLIDE BACK TO THEIR OLD POSITIONS WHEN DESELECTED. And that makes EVEN LESS SENSE. They’re in the same group. The formulae I’ve written to make the options slide out and slide back are perfect, and I know, because I’ve used them elsewhere, and the first six options use the same formulae and work just fine. There’s NO PROBLEM AT ALL, but it doesn’t work. And this isn’t one of those bugs you can never seem to spot for hours on end, oh no, this is actually MMF2 being a dumbass.

How do I know that? Because I just wrote the exact same code for each individual object instead of using a qualifier, and it WORKS FINE. Great, but that’s 10 times less efficient. And there was nothing wrong with the old code! And the worst part – if something needs changing in these menu objects, I need to go through every object and change it, which is the exact reason why V13 is so tedious to code now! No matter how hard I try, I CAN’T write V14 perfectly efficiently, because of how dumb MMF2 is.

I love how easy MMF2 is to use. But I hate how frustrating it is to find out that one of these progress-halting bugs is actually caused by MMF2 itself, and not me. I’ve NEVER had this problem with C#. Which is why I’m seriously considering this to be my last game with MMF2. If so, Dragon Storm will be ported to C#.

But anyway, might as well update on progress. πŸ™‚ ULSG V13 is slow as usual, but it’s going fairly well. Just another four challenges to update, then some more testing, then I’ve gotta do the last of the Achievements. After that, Lame Survival Mode updates, and that’s everything. πŸ™‚ Then, I’ll need to decide whether to scrap multiplayer and leave it for V14, or fix it up a bit and release it with a disclaimer saying it’s experimental and therefore buggy and crap. πŸ˜›

ULSG V14, despite the retardation of MMF2, is actually going quite well. Keyboard and controller support are both there, but there’s a bit of a problem with controllers – if one is unplugged and then reconnected, ULSG won’t pick it up again until I repoll the controllers. And I can’t just constantly repoll them, because it drops the FPS to zero for about half a second every time I do it. Again, a bug which isn’t my fault; it’s the joystick extension’s fault this time. I’ll have to figure out some sort of workaround for that. Something that pauses the game when a controller’s been unplugged should work. SHOULD. Might not. This is MMF2, remember. πŸ˜›

The profile menu is much more advanced than V13’s…
Here you're supposed to see a picture of the V14 sign-in screen, but WordPress is shit, so you can't.V13 has a really lame system – it doesn’t actually scan for files, it just ASSUMES you delete and create all profiles in-game, which is just stupid. V14 scans for valid profiles properly, and puts them in a pretty list. It also figures out whether the profile is from V13 or V14. It can create new profiles, delete profiles and rescan without exploding. The only thing left is to allow players to convert their V13 profiles to V14 ones. You’ll lose almost everything, but in return, you can keep up to 14 levels of experience, and you’ll get bonus Creditz. Maybe even an exclusive ship or Booster! *audience OOOOHHHHHs*

The gameplay is very easy to implement right now – ULSG isn’t a particularly complicated game at its core. πŸ˜‰
ULSG V14 GameplayAlmost everything to do with the core gameplay works. Multipliers spawn and can be collected, but MultiMultipliers don’t spawn yet. You can even get Insane Stunt Bonuses. The new Awesometer works, and the new Miss Counter fills, but nothing happens when it reaches 100%. You can shoot and destroy Failiens, and scoring works just fine – you can’t crash or level up yet, though. πŸ˜‰

Those powerup bars are my pride and joy at the moment. πŸ˜€ They’re different colours now, which looks nice. They slide into the correct position automatically when created, and smoothly fade in and out when time’s running out. They also count down much more smoothly. And the best part – if a powerup bar runs out and leaves a gap, other powerup bars will slide up and close the ugly gap! πŸ˜€ I even had a try at animating the different powerup symbols, and did quite well for once – they look great! I’m especially proud of Quad Damage – two red particles spin around the lightning bolt. πŸ˜€ Sure, it’s not much, but I didn’t think I could make it look that nice. πŸ˜‰

So ya, that’s my update for now. I’ll keep pressing on with V13, and I’ll try not to go too mad with V14. πŸ™‚

Advertisements

I’m getting ahead of myself a bit…

This has always been a problem of mine. πŸ˜›

I’m really eager to get started on ULSG V14. Like, REALLY eager. Leaving behind that messy bunch of code that was in V13, starting V14 from scratch, no old code in the way, being able to build it MUCH more efficiently thanks to my improved programming skillz… I can’t wait. πŸ˜€

In fact, I can’t wait so much that I just went ahead and made a start, even though I’ve still got a bunch of things left to do to get V13 finished. πŸ˜› I’ve done this a few times before for other projects – Beat The Computer 3 was finished before Beat The Computer 2, which was (hilariously) never completed, and I started on Special Services Team Gold before completing the normal edition, both of which were dropped. πŸ˜› It’s not just games, either – I actually started writing parts for Dragon Tail 2 about 75% of the way through the original Dragon Tail, and I started work on Streets of Goong: Stage 8 before finishing Stage 7. It’s a bad habit. πŸ˜›

I’ve not spent TOO much time on it, really… well… okay, maybe I sort of have. πŸ˜› I took an old 3DS Max scene of the ULSG V14 logo that I started a while back, messed around with it, changed the “V14” part of the logo to look way cooler, and played with some animation. I also found a piece of music to use as the intro theme, and hence tried to make the animation sync with that. πŸ˜€

After a while, I managed to get God Rays working, added some motion blur, did a load of test renders, then when I was happy, I started rendering the entire animation, which basically made my computer unusable for several hours. 18 hours, to be exact. It also upped my CPU’s heat to around 82C for the entire duration, too. :S

However, GOOD NEWS! One, my overclock is very stable, two, I made some more progress on Patapon 3, three, the Carmageddon IP doesn’t belong to Gay Enix anymore and a new one’s being developed by Stainless (the ORIGINAL devs who I love, so this new one is going to be epic), and four, the animation looks BETTER than I thought it would. πŸ˜€ Oh, and five, Multimedia Fusion 2 now seems to be able to draw things on top of videos. πŸ˜€ It used to only be able to draw UNDERNEATH vids, last time I checked, at least, which wasn’t very useful. πŸ˜›

Here’s a teaser of my CPU’s 18 hour shift… πŸ˜‰

The flashing “press any button” notifications are selected randomly from a list. Just a little extra thought. πŸ˜‰ As you may have noticed, as well, the game detects happysticks… um, joysticks, at startup. So yes, ULSG V14 will have controller support. πŸ˜€ It sounds easy, but it’s currently my biggest hurdle.

Some people might have several controllers for their PC, and they might not all be the same. I have no idea how Windows identifies game controllers, and the MMF2 extension that I have can’t get the ID of a game controller. What’s more, if the player unplugs both of their controllers and plugs them in in a different order, ULSG will pick them up in a different order.

“Why do you care?” you ask? Well, picture this. Player A starts playing ULSG with an Xbox controller, which is the only controller plugged in, and hence is Controller 1. They configure it to their liking, and the mappings are saved in their profile. However, the next day, Player B wants to join in and play 2-player, but uses a different type of controller, which is plugged in first, and hence becomes Controller 1, whereas the Xbox controller becomes Controller 2. Player A will sign in with his profile, but since Controller 1 is now a completely different device, his mappings are going to be all screwed up.

What I WANT to happen is for the controller’s identifier to be stored in Player A’s profile. When the game starts up and Player A signs in, ULSG will look at every connected controller, find the one which has a matching identifier, and respond to input from that controller.

Hmm… but I CAN get a controller’s NAME. That could be stored as a group name in an INI file… and when a player configures a controller, their config is stored there… and multiple profiles could save different mappings under that group… I may have figured it out… MAYBE. πŸ˜›

Haha, wow. Back when I started V13, I didn’t even think HALF as deeply into ANY feature. Even the V14 profile select window I finished last night is already more stable and foolproof than V13’s. πŸ˜€ I have a load of things planned out for V14, as well – apart from the 4-player local multiplayer and Infinity Mode, there’ll be new ships, Drones and Special Modules (Special Modules will be known as Boosters in V14). You’ll be able to tweak the duration of powerups, and you won’t need to be an achievement whore to unlock everything, because things will cost Creditz instead. πŸ˜€

Anyway, yeah yeah, gotta get V13 finished FIRST. πŸ˜›