I only had three days to work on my game this week, and I spent all three of them trying to implement player combat abilities. I created a collision box around the player, which would set a variable to true whenever a popcorn enemy overlaps with the box. Whenever the player presses their left mouse button, the game checks if the variable is true. If the variable is true, then the popcorn disappears, with chaos physics to be added later. However, the code has a major bug that sometimes prevents the player from dealing damage. I may need to use an alternative method to get around it, which will take time to research and implement. With only a week left to complete my prototype, this is the last step I need to complete in order for my game to be playable. There are a few minor things I'd like to add, but they aren't important until I finish everything else.
Schedule
0 Comments
Most of this week was spent fixing bugs and adding functionality to the popcorn's attack. I managed to fix the issue of some popcorn kernels not moving towards the player, so now every one works properly. To code the attack mechanic, I gave each popcorn a collision box that extended outwards in a sphere. If the player entered the collision box for more than one second, the popcorn applies 10 damage (10% of the player's health). The one-second delay is there to ensure that the player won't get instantly killed if it moves toward a popcorn. I also added a cartoonish punching noise that plays whenever damage is dealt. My plan was to also add an animation in which the popcorn swings its "arms" around, but it wasn't working because the popcorn doesn't have a traditional human-shaped model. Next, I have to make it so that the player can attack the popcorn back. I plan to add more sound effects, chaos physics, and an animation if possible. That is the last part of the game that needs to be coded, but I expect that some tweaking will be needed to make the game enjoyable.
Updated schedule Coming into this week, the two biggest items that still needed to be added to my game were the enemy AI and the combat mechanics. I spent this week adding some basic follow-player AI to my popcorn, using an online tutorial. Each individual popcorn kernel has a pawn sensing component that allows it to automatically lock onto the player's current location once it is within range. I encountered several issues while incorporating this, so far I've been able to solve some of them, but not all. Once I get figure those out, the next step is to add combat mechanics to both the player and the popcorn. After that, it's just a matter of bug fixes and playtesting, and then my game should be fully playable.
Updated schedule: https://docs.google.com/spreadsheets/d/1WUDJpe2Qy8QYgWznZu8HuiYQHJQVCJZZSnhb9iHVRs8/edit?usp=sharing This week, I started to get through the bulk of the coding required for my game. I created logic that contained a win condition, loss condition, and timer for the game, based on the FPS shooter activity from earlier this year. Once I had done that, I added a health bar to go along with the timer. At the moment, there is no way for the player to take damage, which is what I'm about to work on next. Each popcorn kernel needs some basic AI to guide its movement, as well as a system of attacking the player once it's within range. It's hard to tell how long this will take, but it's one of the only major parts of the game that I haven't done yet.
Additionally, I added a couple ambient sounds to enhance the gameplay experience. I also updated my schedule spreadsheet to adjust for this week's progress. https://docs.google.com/spreadsheets/d/1WUDJpe2Qy8QYgWznZu8HuiYQHJQVCJZZSnhb9iHVRs8/edit#gid=0 This week, I focused on coding some of my game's logic, as well as adding a few miscellaneous things to the map. Most of the mechanics in my game aren't too complex, but I'll likely spend a long time coding them nonetheless. I started out by creating a basic UI and timer for my game using blueprints. The timer starts at 3 minutes as soon as the player presses the start button, and the game is lost as soon as it hits zero. The next thing I did was create a blueprint for the "plug" mechanism, which the player will have to interact with in order to win the game. This will activate the win screen, which I am in the process of making. In the future, I plan to learn how to create an animation for the plug coming out of its socket. The last thing I did was add a few text renders to the maze, which guide the player through the game's basic controls. At the moment, I am on-track with my schedule sheet, so no edits are needed.
This week, I mainly focused on adding the final textures to my game, as well as patching any errors in my map. This involved sculpting the game's landscape and adding invisible barriers to keep the player from leaving the intended area. I ran into some trouble when trying to create a transparent texture, but I figured it out after some experimenting. I also created textures in Photoshop for the trees, popcorn, and scarecrow, replacing my placeholder textures. Unfortunately, I still haven't found a fix to the visual bug with the corn texture. Aside from that issue, my game's map is completely finished. Next, I'll have to code my game's logic, as well as enemy AI. The game needs to have a basic timer, UI, combat system, win condition, and a health bar for the player. I will likely need to find some Youtube tutorials to help me out, but thankfully I'm not trying to do anything too ambitious. Lastly, I updated my schedule spreadsheet to reflect my current progress.
https://docs.google.com/spreadsheets/d/1WUDJpe2Qy8QYgWznZu8HuiYQHJQVCJZZSnhb9iHVRs8/edit#gid=0 During the 3rd quarter, my main focus was improving my skills in Unreal Engine while simultaneously developing the concept for my game. I think I have made great progress on both of those things, having already completed the level design, whiteboxing, asset creation, greyboxing, and some of the texture creation for my game. While my work isn't perfect, my game is starting to come together. I believe that my Unreal skills are good enough for me to complete my game's prototype by the early May deadline, but it really depends on how complicated my game's code is. Using blueprints is easily my weakest area of game design, but thankfully I planned ahead and made sure that none of my game's mechanics were too elaborate or ambitious.
Going into the 4th quarter, I have just over a month to complete my prototype. Most of that time will be spent coding, and the rest will be dedicated to texture creation, playtesting, and bug fixes. I'm hoping that I won't have to cut anything out of my game in order to hit the deadline, as I often underestimate how much time a task will take to complete. I have already made several changes to my game, and will likely make several more before it is complete. So far, I've enjoyed game design, but I don't know if I'll continue it as a hobby after this year. I had fun creating my storyline, level design, and concept art, but working in the Engine itself can often be tedious. Nonetheless, the skills required to make an engaging game can also be applied to many other fields outside of game design. This week, I focused on greyboxing my game by importing models for the different objects/NPCs. The popcorn and microwave models were custom-made in 3DS Max, transferred to Unreal after a few crashes. Since I want quality graphics to be a main component of my game, I went ahead and created a couple textures in Photoshop. They aren't perfect, but they work pretty well overall. Unfortunately, my attempt to re-scale the corn texture led to a visual bug that I will have to fix later on; I may have to obscure some of the corn with other objects. Next week, I'll try to create the last few textures I need, attempt to fix any visual bugs, and find an animation for my character using Mixamo. Once that's done, the rest of the prototype will mostly just be coding the logic of my game. It's likely that I'll need to consult several online tutorials to help with that, but most of it should be fairly straightforward.
This is the greyboxed version of my game, which was focused on replacing placeholders with actual models, as well as creating custom textures for each object. I imported my microwave texture from 3DS Max and placed it in the center of the maze, and I also brought in the model for the popcorn kernels (once Unreal stopped crashing). The NPC placeholder at the spawn area was replaced with a scarecrow model that I found on CGTrader. Once that was done, I began creation on a few custom textures in Photoshop. I made textures for dirt, corn, and autumn leaves, with the intent to make the landscape feel like a farm. Some textures had to be scaled up or down, which unfortunately created some issues with overlapping textures. Hopefully I can finalize the map next week and move on to making the game's code.
A whitebox is a simple outline of a game level that helps to establish the game's layout and scale. I spent some time creating a whiteboxed version of my game before beginning the more complex asset creation. I used an orange sphere for the player spawn, and rainbow spheres for enemy spawn locations. When the game is finished, these spheres will be replaced with custom enemy models. I also used landscape mode to create a hilly, slightly forested environment that surrounds the maze. This is more for aesthetics and doesn't have a big effect on the gameplay. Now that the whiteboxing is done, I'll focus on creating detailed textures for the corn maze, grass, farmhouse, and other assets in the game.
|
AuthorThese are my thoughts and reflections about the skills that I've acquired in this class. The views and opinions expressed in this blog are solely those of the author and do not represent those of Chapel Hill HS or Chapel Hill-Carrboro City Schools. |