Caper Corp. is nowhere near even approaching the mere concept of alpha, much less completion. That said, I like to write about the development of the games I’m working on from time to time. This is one of those times.
Most of the work over the last week on Caper Corp. has been to get stair connectivity working. So, as it works now, I place Stair objects in every floor plan that I make in the editor. The Job system (the Job being my script classification for a high-level caper) then determines what level template to use, and the level system generates a level from a series of floor plans that match that template. Templates being, at the moment: casinos, banks, and hotels (I’m thinking about making “Surrealist” an actual template whose jobs consist of illogical parameters too). Anyway, the level generates the entire building for a job from a series of floor plans. Each floor plan has all of its necessary objects pre-placed by the designer (me) so stairs aren’t created in super absurd areas of the floor. This will result in variations from floor-to-floor, since I don’t want to hold myself to rigid floor dimensions/standards for every floor plan, but I think that’s okay. The stairs are then generated from the lowest floor to the top. Half of the upper floor’s staircases are used for current floor (the lowest) to the upper floor levels, connections are generated, and the unused staircase on the lower level is disabled so the player never knows it’s there. The algorithm then goes up to the next floor, uses all remaining staircases to generate connections to half of the next floor’s staircases. This results in all stair objects being used, remainders being discarded, and a surprisingly simple and error-free procedural algorithm that I wrote in twenty very focused minutes of work one night.
And then an hour or two of bug-fixing the next morning because nothing ever is that simple.
Next on the list, since I’m still kind of making up the actual core game as I go along, was to start adding some of the more heist-y elements to the game to get that game logic in. I know I can do a top-down shooter pretty well since I’ve done it before in Asplode! and all of the subsequent prototypes I’ve made that I never took very far, so my goal right now is to make sure I can do the pseudo-stealth/sneaky stuff. I added a security camera and a light security terminal (and a player spawn point object, but that’s boring). I also realize, now, that I should have added a laser trip or motion sensor or something so I could setup linking triggers/objects with their security consequences. Anyway, I got those three objects in and realized I have like a nine-step process to add new object types to the game/editor, but once they’re in they’re theoretically flexible, so I’m tepidly okay with that. I was actually kind of surprised that they saved/loaded just fine when all was said and done (a revelation which, also, is somewhat concerning) and I was able to make some improvements to the editor along the way.
With the camera in, I need a way of displaying its field of view, so I’m also going to start tackling the lighting system for the game. Ideally, I won’t have to resort to tile-based lighting like most Rogue-likes (and, I think, Monaco), and can instead use the style present in the following screen shots. Problem with this style is that it’s per-pixel lighting and actual shadows are being cast/received, so the potential performance hit may be significant. I’m really hoping that the fact that none of my objects or shaders are complex allows me to use a decent number of lights without penalty. I’ve had to start adding actual height to some of the objects in the editor so that shadows will be properly cast, too, which made for a neat Unity editor shot of my test bank level:
The next development goal is to properly expound on the mechanics of some of the security objects. The first step of this is to start establishing some of the higher-level parameters of the job (the heist) and the integrity of a floor’s security (and that of the building as a whole). This will start getting into the basic logic for infiltrating a building at the beginning of the job which, from where I am right now, is probably the biggest unknown in the game’s development. I don’t really plan on having an elaborate tactics/planning stage like the early days of Tom Clancy’s Rainbow Six, but I do want to simulate that same sense of intentionality to the early portion of each job. Wen a player starts a new heist, I want the various characters involved in the job to all be on nothing more than reconnoissance duty. The gameplay goal being to scope the building out — at least the floors that are readily accessible for the ‘public’ (those whose entry won’t start requiring active infiltration) — and getting operatives in place before actively beginning the caper.