Well, I had hoped to get to some fun stuff BUT I still couldnt get from under the hood. The last couple weeks I've concentrated on programming and streamlining the troop assignment code. I was really conflicted for a while about how I wanted player to be able to issue squad orders. I need them to be able to pick the building entry point, select objective points inside the building and assign a squad to those objectives. I also need the player to be able to do these things quickly so they feel as if they are really issuing orders and not 'programming'.
For a while I was split between shrinking the building into view, using a popup overlay and the system I developed. Eventually I settled on my current system. When the player goes into 'XRay Mode' the building slides into center view so the player has a better view of the revealed interior. The player can easily toggle between the available entry points (ATM ground floor or rooftop). The player then places objective markers inside the building for that entry then assigns troops to the entry point.
So its (1) Pick Door. (2) Place Markers. (3) Assign Troops - A similar system is used to drop flags and assign troops to them. In addition the player can also summon troops to load into his chopper by lowering the ladder and assigning troops to the chopper. (the rotating star highlights the current squad assignment.)
I open the video by displaying the procedure in slow motion. Once in XRay mode I toggle the entry door I want used for marker and squad selection (each door has a different highlight color). Instead of moving the chopper, the direction keys move the XRay cursor. Drop objective markers for that door then assign troops to that door. At 1:50 in the video I show how fast that process can be completed (and my brother is 2X as fast as me). I'm equally as fast using the keyboard or controller.
Eventually in-game troops dropped on the roof will execute rooftop orders and ground floor troops will start heading for the building. Troops will fight to the markers then proceed to the closest exit. I'm pretty happy with the system overall. Its simple, speedy and the first time someone does it they'll basically 'get' it. I'm adding a further tweaks to it but they wont add any further complexity for the player.
This turned out to be one of those 'You'll Love Me Tommorow' updates. GameMaker has a unique data container called an 'Object'. To create a visible 'object' you assign a sprite to give it a face then from that point forward you have incredible flexibility in the use of that object (and all objects of that type). These objects can be easily moved, hidden, depth sorted, collision detected, etc. GameMaker is built primarly to manipulate 'objects' but can be programmed traditionally where you move and manipulate 'sprites' (pictures with no special attributes).
Objects can be a little data heavy since each object has a LOT of built-in variables that you can access to manipulate them. That said I've not yet felt the slightest performance issue related to using them sooooo I turned EVERYTHING into an object. This allowed me to easily give my windows 'health' for the glass breakage feature I showed last update. It also makes it easy for my XRay cursor to know when its touching another object plus tells me exactly which object it is. Its already making my life easier and its going to make adding squads to building that have object based floors, walls, ladders much easier for my AI engine.
So this update knocked out a lot of the 'under the hood' stuff. Next I'll be converting the Xray blue icons. These will be used to place the building obstacles, mission objectives and cash (right now they're all coins when the glass breaks). I'm also anxious to do a graphics cleanup for the ground and parallax layers. After that I'll take a pure fun week and add weapons to the chopper before I tackle squad animation, AI.
* XRay - Building Centered View
* XRay - Select Entry Door
* XRay - Place Door Specific Objective Marker
* XRay - Assign Troops to Specific Entry
* GUI Usage Steamlining
* EVERYTHING into OBJECTS!! (GameMaker Advantage)
Engine: GameMaker:Studio 1.4.1474 - 1.4.1567