Posts

Showing posts with the label Unreal Engine

It's Gun All Wrong, Or the Struggles of Importing

Image
One final thing I have to do before I am done with the assignment is of course to combine the game and the gun I made into one! In Maya, with the gun group selected, I went into File ->  Send to Unreal -> Selection . Then I selected my Unreal Project and named the exported file. I was presented with some more export options, but I didn't modify them to see what happens. It seems the paint I applied to the gun couldn't be exported. Ah well! Then I switched into Unreal. Here I was presented with yet another window with options. Again, I didn't change any of them to see what would happen. After the import process finished, I got several errors: No smoothing group information was found in this FBX scene. After looking around in the exporter in Maya, I realized including " Smoothing Groups " was one of the options of the export. Checking this seems to have resolved the issue. ShockwaveGun_BackSight has degenerate tangent bases which will result...

Making the Game: Final Touches

Image
With the gun complete and the game as well, there are only a few more things left to do in the game project before I put them together. Cleaning Up the Project Having a messy project usually wouldn't matter too much, as long as the person (or people) working on it know where everything is. However, a messy project can be difficult to navigate, especially after long periods of time or if new people are being brought on board a project. That's why I'm going to clean my project up to a more acceptable standard! The World Outliner allows for easy access to all the objects in the scene. However, if they're not categorised properly, accessing them can be a right pain. Thankfully the Outliner does allows for proper categorisation through the use of Folders. I chose to sort my objects by their room and type. So all the floors in Test Chamber 01 will be in Test Chamber 01/Floors . As for my project folders, they are already properly categorised and clean......

Making the Game: Adding Style, Part 2

Image
As promised in my last post, this post will go over how I added sounds and some other cool "effects" and stuff into the game. Let's start with audio, shall we? Audio Throughout its development, Robotrooper: Simulation was completely silent. This isn't good, as games usually can't rely on their visuals alone. Simulation is no exception. Implementing audio isn't the hard part, at least not for me personally. Finding the right sounds is. Fortunately, I have a large library of downloaded sounds at my disposal, most of them from the numerous free #GameAudioGDC Bundles. The audio that I ended up using are: 17 REVERSE EFFECT from Free Sampler by Bingoshakerz ( Free license ) BASS - C - Sick Neuro Shred from Orgasmic Glitch Hop FREE by Black Octopus Sound ( Free license ) 05 Melody Loop Cmin 140Bpm from Future Chill 10 Free Sounds by Production Master ( Free license ) SpaceShip Engine Large Loop 00 from Sci-Fi Sound Effects Library by LittleRo...

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 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 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 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...