Posts

Showing posts from November, 2018

Making the Gun: The Devil's in the Detail

Image
In this blogpost, I will tackle the details on the gun, as well as applying materials to it. Modelling Details My first order of business was adding the front sight. I created it by adding a Polygon Cube , which I then subdivided height-wise into three pieces. By dragging the new top edges out and playing with them for a bit, the sight took on the right shape. Next I created the back sight. I began with a Polygon Cube , which I subdivided, this time both height-wise and depth-wise. I extruded its left and right bottom faces, then adjusted its width and height to match the schematics. Once that was done, I created two more Polygon Cubes. I used these to perform a boolean operation on the original, finally getting the shape of the back sight. The cylinder has a rectangular shape with rounded edges cut into its right side. I used the Bezier Curve Tool to create the shape, converted it into a planar and extruded it. Then I had to find the right angle to cut it out at, so ...

Making the Game: The Opening Act

Image
Starting Robotrooper: Simulation felt like a rude awakening. You launch the game and all of a sudden you're standing in this unknown place, holding a gun, being told what to do. To ease the player a bit more into the game, I added a splash screen , where the player is prompted to press any key to begin the game. However, the game does not yet begin, because I also added difficulty settings . So the next thing the player does is pick one of them. They are casual , standard and rigorous (or easy, normal and hard, if you will). These change the amount of lives the player has and the amount of lives the turrets in the game have, as well as the speed at which they shoot out projectiles. Also, no hints are offered after dying and respawning at a checkpoint on the rigorous difficulty. Implementation The "Title Screen" widget is created and added to the viewport from the Level Blueprint . The Level Blueprint is ideal for code that is not reusable, i.e. executi...

Making the Gun: The Rest of the Owl

Image
In my last blogpost, I created the first half of the gun. In this one, I am going to detail how I finished the rest of it. The first thing I did was add a view of the gun from the back. This was to help me with modelling a thin panel which appears in front of the grip. A simple shape, created by stretching a Polygon Cube and Bevelling its edges. Once the panel was done, I switched the top Polygon Shelf out with the Curves / Surfaces Shelf . Using the Bezier Curve Tool I drew a rough shape of the grip. The tool didn't seem to behave like it does in Illustrator which I am used to, so I did not get the shape I desired straight away. After some googling, I found out I could go back and SHIFT + RMB click on individual points with little difficulty, editing their type and curvature. SHIFT + RMB clicking the curve also brings up the option to Open or Close it, which came in handy since I couldn't get the first and last point to connect in another way. Now it was...

Making the Game: Game Over, Game Paused

Image
Simulation was mostly feature complete. There were puzzles, hazards and collectibles. One of the big, important missing features though was  death . The player's health went down, sure, but it could keep going down indefinitely. Well, no more! Game Over When the player reaches 0 lives, the Game Over Screen now appears. From here, the player can either choose to restart from the beginning or to quit the game. Simple and effective, I'd say. Implementation The previously created "Lose a Life" event now checks whether the current health is less than or equal to zero. If it is, the "Death" event begins. This turns off player control through a newly added "Can Control" bool (when the bool is false, all control the player has is gone). I set the Player Controller 's Show Mouse Cursor bool to be true, so that the player can interact with the "GameOver" screen. Then, the screen itself (or an instance of its widget , rather) is cr...

Making the Gun: Broad Strokes

Image
In this blogpost, I am going to show you how I created the preliminary version of the first half of the gun model. Breaking It Down The lecturer advised us to first break down the parts of the model we're about to make into primitive shapes, so that's the first thing I did. The cylinder is... well, a cylinder . And the barrels are also cylinders, but they are hollow. Thankfully, Maya has a primitive for that, called a pipe . So to create the cylinder, I went into the Polygon Shelf up top and created a Polygon Cylinder .  I played around with its transform until it matched the schematics (and other reference images). Then I turned on Interactive Creation (Found under Create -> Polygon Primitives ) and created a Polygon Pipe . I dragged my mouse to adjust its width, height and inner thickness. Then I hid the previously created cylinder using CTRL + H, because it was getting in the way of the front view of the gun. I moved the cylinder into place, once ag...

Making the Game: Messaging System

Image
Sometimes, I need to relay a message to the player, either to alert them of something (like activating a checkpoint, or collecting an Activation Core) or to give them a hint in case they're struggling. For these reasons, I created a system to display a message on screen. For starters, I created a Text variable on the player called "Message" which will store the message that is to be displayed. To control how long to display the message for, I have a bunch of nodes connected to the player's Event Tick . If the Message is empty (checked against Get Empty Text node), the nodes don't run. If the message isn't empty, but a boolean value called "Message Shown" has not yet been sent, the current message is stored in a variable called "TempMessage" and the bool is set to true. Message Shown being true stops the previous nodes from executing, letting a Delay of 4 seconds finish. Once the Delay is done, the value of "TempMessage...

Making the Gun: Setting Up

Image
To begin modelling the gun, I had to set set up my Maya modelling environment first. I opened the Scattergun schematic in Photoshop and cut out the side, top-down and front views of the gun from it. Then, in Maya, I used the Viewport Layouts tab bar on the left-hand side to switch into the four viewport layout, with top-Y, front-Z and side-X ortographic cameras as well as a normal perspective one. From the top of the side-X viewport I accessed the View menu, where I found the Image Plane  sub-menu and finally selected  Import Image . Then I selected the side view image of the gun. I did this for the other viewports and images as well. Of course, the images were all on top of each other now. I approximately readjusted their locations and rotations using the Tool Box options on the left, then I used the Channel Box 's transform attributes options for more precise positioning. Then I brought up the Outliner (scene hierarchy) from the Viewport Layouts tab bar a...

Making the Game: Stuff to Kill, Stuff to Get

Image
Hello and welcome back to another post about Robotrooper: Simulation 's development. Today I want to share with you two new interactables I added into Robotrooper's world - the hostile Turrets and the valuable Activation Cores ! What You Give Is What You Get Turrets first appeared in the previous Robotrooper game. However, I was determined to make them and the player's interactions with them a bit more interesting this time around. This is of course where the shockwave gun comes into play. The key to defeating turrets in Simulation is using the shockwave to redirect their fire back at them (or another turret in the room). Oh, and you have to defeat them to actually make progress! This is because Cube Keys in certain rooms are now inactive until the room is cleared. More on that later. Implementation Turrets are initially inactive. They are activated when the player triggers the checkpoint they are tied to. This is usually the checkpoint for the room the...