I didn't do much over winter break. I mostly focused on trying to put out some fires with the bugs in the game. Did some, such as now preventing the rider from being able to mount the dragon from any distance. I also spent a good amount of time trying to get the verticle island movement working again, with mixed results. I was hoping to get a first playable by the end of Winter Break, but obviously that did not happen. However I will still continue to try and put out the various bug fires in this game.
0 Comments
The last two weeks were very productive for finishing/adding features to the game. I got the shooting to the point where it's a complete representation of the mechanic fit for the Alpha build. The health system is also implemented (although only complete enough to show the mechanic in the build). One of the biggest problems I had was making events that worked perfectly on the server work on the client as well. Sometimes I'd get just the server working, other times the client would seem like it worked but not show on the server, vice versa, and more. Looking back near the end of the quarter, despite fixing a lot of our gameplay design, adding networking to the game was a huge challenge. We understood it would be, but it's still impossible to have predicted the amount of time that went in.
Along with the implemented mechanics, I finally fixed a ton of bugs that were in the game. The HUD now works client side and on the dragon, no grappling to yourself or falling while grappling, and lots of other small less noticeable bugs that piled up. Pros: Many bugs fixed Health and Shooting in the game (albeit still buggy) Very productive Cons: Not as many features as I hoped by now Always more bugs Despite being productive when I was on campus, when I was away for the vacation I didn't have access to Unreal. Thankfully my computer just got fixed and it won't be a problem for winter break. Hours Worked: 38 These passed 2 weeks were suffering. After meeting with our Adviser last week following our previous presentation, we set up a large amount of milestones to achieve before the Alpha pitch. A crazy amount of time was spent all over the project, adding new feature, fixing bugs, and integrating art assets to try and reach the alpha deadline. Personally, I spent majority of my time on many new features, including fixing timer/win state, working on dragon combat/cross hair aiming, large amount of bug fixing, and integrating both the new environmental art assets and dragon effects/animations into unreal. New Map with Environment: Part of the Dragon BP Pros: More work has been done, art has finally been integrated, networking in better condition, nearly all functionality of dragon and riders in, Island vertical movement integrated, code not fully implemented yet though. Although rough, we have enough functions in to get a good game in for beta.
Cons: Networking is destroying us. Every function we try to add, we must spend another day or two figuring out how to get it to work over the server. Just getting everything to work on both server and client has severely affected our progress, and there is no easy solution to it. I am wholly convinced that if we weren't convinced by the faculty in week 4 to adopt networking and have local multiplayer, we would have nearly all of the functions we cut already. Hours worked over passed 2 weeks: 39 hours
On the programming side of our team a lot of things were accomplished. First and foremost, our 3 main programmers worked together for many hours and were able to find a fix for our biggest game breaking bug, hooray! This bug made it so the inputs done on the client side game was not being read by the server. The fixes were applied to all the characters and we no longer have this issue. Kevin also continued his work on the AI behavior trees for our island movement and made great progress. The islands will now move around each other when connected to the main base islands instead of just getting stuck. Josh spent time getting combat into the game, as well as working to retarget the default Unreal animations to the male character that Sally brought into the game. Pat worked on remaking the main menu UI for the game. Ruben updated our menu AI so that IPs can now be manually entered in the game instead of hard coding it into the game like it was previously done.
On the art side a lot of progress was also made. Ricardo and Rob did another motion capture session and were able to clean up all the data and even started applying it to our male character. Ricardo worked on rigging our alpha dragon in preparation for the animations and implementation into the game. Sally worked on finishing up the rig for the female character as well as going back and adding additional armor to both the male and female character. Healthy started work on environmental ruins for the game as well as creating monoliths and altars for the island capturing system. Matt and Rob worked on creating modular building assets so that buildings can easily be created in engine. Riley finished up the rough alpha dragon model and created a bow and arrow model for the male character.
In other news!! We were contacted by the Drexel Audio Post Club and we were assigned 3 juniors and 1 senior! We can't wait to get to know them and know what they are focusing on so we can figure out all of the audio for the game. The past 2 weeks had a good amount of progress on the coding side, although still not as much as we'd like. One big thing we tackled was the discovery of a major game breaking bug in our game, where client side controls were not being replicated over to the server, and the client could not function correctly. This took an entire weekend to solve, but we eventually discovered what the problem was, that basic Unreal Inputs on the client would not be read by the server, and that specific events must be called that would be replicated over to the server must be used. Once this was found, the fix was then applied to all existing dragon and and player functions. On my own programming work, I have gotten some more work done with the AI. While I have not set up AI behavior trees, I have found a work around using Unreal RVO collision avoidance, which after a good amount of time spent experimenting with, I was able to get it so the floating islands AI now see each other, no longer phase through one another, and actually try to move around other islands when they realize their path is blocked Some other minor edits have been done also been done, such as adding a round timer and making it so islands move to the correct position when captured, instead of only partially close to the correct position. I also attempted to implement the Alpha version of our dragon, but was unable to due to my unfamiliarity with Animation retargeting. Sally will try later
Pros: Lots of programming bug fires put out Islands now have smarter AI Can finally move onto more game programming such as Win States, vertical island movement, and Sudden death Cons: Unplanned bug fixing has put us back a few days even more Coding in general is still more behind than I'd like Art is also behind The last two weeks were pretty productive when it came to getting hours in on the project. Unfortunately, most of that didn't translate in to new features for the game. Two weeks ago, we discovered a game breaking bug in the networking. Client side players could run around and jump in the server, but anything else they did wouldn't carry over. For example, if the client were to grapple or try to fly, they would experience severe jittering without going anywhere. From the server player's point of view, they wouldn't be doing anything. Ruben, Kevin, and I spent almost all of our hours that week working on it, and finally figured out how to correctly communicate between the client and server in blueprint. Last week was more about actual features. Sally brought the first rider character in to Unreal and retargeted it to the default animations. My first job was reapplying old features to make sure they worked. After that, I got an aim feature working, as a step towards combat. The player can zoom in and look around. This bends the skeleton accordingly, and plays the aiming animation (a placeholder for now). Pros: A lot of work was done on the game Part of the weapon is done Cons: A lot of hours went in to fixing networking Spent a lot of time unsuccessfully learning IK in Unreal The big challenge I've been working on for the past two weeks is the custom character controller. So far I've been able to create the simple stuff like walking, running, jumping, etc. However, there are more specialized movement states I'm having trouble with. The main one I've been sinking time in to is the wall grapple. It needs to have a moving towards grapple target state, and a state where it's attached to the wall. Both of these have been giving me trouble. Speaking of the grappling, I've been working with Ruben to figure out how best to implement my work in to the networked game, and discovered that the way I was previously doing grappling wouldn't work. Originally it worked by having a separate object in the world attach to the player, and that would be the grapple. Unfortunately, that won't work when all the players spawn in at once. Because of that, the grapple is defaulting to firing from the center of the character, rather than the wrist, which feels like a step backward. Right now I'm making it so that the grapple is a part of the character blueprint, which should fix the problem. The past 2 weeks have been extremely productive for myself. The first week was spent primarily on setting up the map of the game and creating the logic of the moving islands and the logic of the islands being captured. This took an extremely long time due to my unfamiliarity with the AI and Navmesh systems of Unreal. This was done by connecting small, AI controllers, at the bottom of the floating islands which then drive the movement of the islands. This creates a pretty good movement, however they currently cannot see the borders of the other islands due to the way the navmesh works. Once this worked I was able to move on and set it so islands can be captured by players, and move to their respective bases. Next, I had to set up the logic of how the islands lock themselves and connect to the main base island of the team that captures it. This works off of 2 arrays which always fills the first open slot in the array. The logic of this got pretty funky, but works well After this, Ruben and I had spent time integrating our two separate projects together. This took some time, and file management got somewhat out of control, but the networked splitscreen now works on my map. This broke some of the current logic of the game as they were incompatible between the two maps, but Ruben is currently working on fixing that. Also I got perforce set up this weekend, so now the entire team can access the perforce server, checkout blueprints, and edit the project. I am still not entirely sure how to make branches of the main project, but that will be figured out this week
These last two weeks I spent a lot of time working on the project. The problem the game had prior to these past two weeks was that we could not assign teams to the players after joining the host game. Now the teams will spawn in the correct locations based on which team they are assigned. This took a lot longer than expected using the blueprint system in Unreal. The issue with the set up the blueprint is that it technically lies to the user as of now and doesn't actually tell the game the game which team is which so this week I plan to fix that and actually have the players tagged to specific teams.
The programming team was also able to combine the various builds we were working on into a master build. This is great because we have a working demo of networking spawning with teams consisting of riders and dragons. Pros: We have a decent demo I completed my goals for the weeks Cons: There is still some catching up to do We need to tag the players to the correct teams to have this truly work #ruben #squadgoals |
Write something about yourself. No need to be fancy, just an overview. Archives
January 2017
Categories
All
|