Not Found
This week my goal was to start getting the graphics engine back on schedule by implementing Point Light Shadows, Particle Systems, Deferred Decals, and SSAO.
While I didn’t manage to get to SSAO, I managed to get all the other features working! They could still use some fine tuning and extra functionality (e.g. aliasing issues on shadows at max distance), but this will be better to tweak once we have the final level geometry in place. Plus, managed to fix a few old issues.
Goals for next week are to get SSAO done, as well as Crespular Rays and Foliage Rendering (which most likely will be just tweaking the normals for leaves). Ideally, it would also be great if I could get some time to start on cloth simulation.
Morale is pretty good right now for this week.
This week, we set out to help out the team in implementing functionality in different areas since the backend is more or less done.
We ended up working on basic gameplay mechanics that allow basic events to occur, such as picking up a key, unlocking a door, opening a door, healing a player, and creating win conditions.
The main problem we had here was simply creating a nice abstraction that will allow easy generation of these events and triggers. After discussion, we settled on creating three types of generic switches: trigger-based, singing-based, and raytrace-based. These can be added to any gameobject, and will refer to an Event; the Event will be customized to suit the situation, as seen in DoorEvent and KeyEvent.
We set up a very basic demonstration of the newly created gameplay, including a win condition, solely on the client side. Once we began integrating with the backend, many problems suddenly became apparent. Code that is to be triggered only on the client is only initiated on the backend. The biggest issue here is playing sound effects when special Events have occurred. Another issue is the transfer of data. We were currently sending the entire hierarchy and applying the changes in the order of the game objects. Once we started removing objects from within hierarchy, this caused transforms to be applied to the wrong objects.
We have thought up of some ways to remedy the situation, such as creating a finite state machine based flow for the audio, and sending only the deltas from the server to the clients. Regardless this will be our main tasks leading up into the next week: update our server/client communication flow to meet new requirements and continue the integration of all the features.
Despite having lots of problems on integration, it was extremely satisfying to create the small demo with the sound effects. Morale is very high.
What I did:
After some iterations the loader and js to c# compiler are completed. Tested it on one of our scenes and the output seems to look pretty good. Hopefully we’ll be able to actually get the models after some time. Planned out how we’ll be doing animation and animation states.
My unaccomplished goals:
Actually doing writing in some animation handling code. First I have to better understand the current code though. Also, did not get to ask much about gameplay code.
My new hopes and dreams:
Work on integrating animations states.
Morale:
An solid but tired OK
My goals for this week were to start revamping the sound engine and try and get it fixed on firefox as well as start working on more sound design. I continued to create more sounds for the game as well as starting to get them integrated into the demo to make sure its ready. Stephen recently presented me with a list of suggested sounds in order to let me get started on the more difficult time consuming sounds to make.
Due to the time crunch with finals and the end of the quarter on the horizon, it's really starting to get hurried. I'm feeling pretty good however and with grading out of the way I can start to contribute more on the gameplay aspect of the game and not just debugging and sound design.
This week my goals are to be able to get all the sounds for the game in by the weekend and get at least some temporary sounds in for everything so that we have a proper experience ready when we need to demo it and get testers. My morale is high and I'm starting to get really excited with how the game is progressing
My goals for this week were scene building and modeling. Like last week, I was able to make a number of assets for a level, and continued working on building the level with Stephen. I’ve started creating a number of assets for more detailing as well as larger “set pieces” for some of the bigger parts of the game.
As we are approaching the last few weeks, there will be more pressure to build out the level. Right now, I’m just working on creating models as need be and using them as needed. As we start to figure out the layout of the level, I can go to work detailing it for the final game.
This week, my goals are the same (and probably will be more-or-less the same for the rest of the quarter). I’d like to see a one or two “set pieces” in the game by next week. My morale is high and I’m getting excited to see where the final game is going.
For this week my goals were to help the team with gameplay code as well as support in massaging the server to integrate our client side and gameplay changes. Specifically we needed to implement our singing mechanism to open doors, create a representation of a key object that is able to interact with locked doors, healing items as well as an injured state for players, and creating a win condition.
We were able to accomplish most of the goals that we set out to do. Currently we still only have teapot meshes so we colored specific teapots to represent their actual game objects. For instance our red teapot represents the door, the green teapot is the key hole, the blue is the win trigger, the violet teapot is the healing item, and the small silver teapot is the key. We have abstracted out these events such that they can be attached and extended to other objects if we desire similar functionality.
The only hurdle that we have yet to cross is an issue with playing sounds on the clients in multiplayer mode. This has to do with certain events occurring on components only on the server and is not sent properly to the client. For next week, we plan to fix this bug which would require an overhaul of the way we are sending the scene between server and client. In addition, I hope to work more on additional gameplay elements.
My morale is great. I feel like the game is really starting to come along and that we can piece all of my work together and build the initial game prototype.
My goals for the week were to develop the AI and get the primary gameplay finished in order to meet our expectations for having an early alpha build for the user testing.
For the primary gameplay, I have passed that torch off to Ara and Justin to work on and have been helping them off and on. I did however work on making the camera controls better, namely the zooming which now moves smoothly instead of teleporting and the camera clipping which now properly moves off the normal of the surface it’s colliding with.
I did most of my work this week on AI, getting the pathfinding working as we have drawn it up. It took a little while, but the AI is now able to move to any point on the nav mesh using the ideal path. The way it works is that a leaf in the behavior tree will set a destination, another leaf will find the path to that destination, and the last leaf will receive the path and dynamically generate a sub-tree to move the AI each vertex along that path. To actually pass the data between the nodes in the tree, I have decided to make a map in the evil’s AI to contain the data that any node, with a reference to the AI, can grab.
I have spent some time this week mulling over the game design and trying to decipher some sort of methodology to creating our levels. The biggest question I had was: “how can I make a level, and in fact the game engaging for the players?”. Our entry point into the game’s design was to basically make a “labyrinth” for the players to make their way to the center of, but I really didn’t think it would be fun to be wandering around a complete maze trying to make heads or tails of it. This means that there’d be at least some kind of designed element to the maze. The conclusion I came to is to make the level contain a sequence of set pieces connected by maze-like corridors. The idea is that the set pieces would be self-contained areas that have cool and unique interactions for the players to engage in, while the maze-like corridors would retain some of the original gameplay ideas of being lost and separated with a hostile lurking about. Some more detail on the set pieces, they will each try to accentuate a different aspect of the original gameplay.
For next week, I want to continue developing the AI to make it more alike what I have in mind and to continue design work on the set pieces. Hopefully with a level laid out, it will make the AI that much easier to program.
I think that we are still making good headway, but I need to put in more time into design since most of the core gameplay code has more or less been implemented. I lost some of that time this weekend since I got sick, but I’m fairly confident I can make up for it. Overall, I’ll give this week some lemons and oranges and basically whatever has vitamin C.
And so Rand and Mat finally arrive at Camelyn. They seek out an inn Thom told them about earlier, and found that the innkeeper is sympathetic to their plight. Rand also meets Loial, an Ogier. The Ogier are reclusive creatures who live in the stedding. In the past, they have created many structures that are still intact after many generations. Loial decides he want to join Rand in his journey. While in Camelyn, Rand discovers there is great political tension between people who support the current regime, and those who dislike the Aes Sedai’s influence over the queen. Camelyn is crowded with people who want to see the captured false Dragon. To give context, a king of a previous age was called Dragon, and his use of magic drove him mad and he destroyed the world. And currently, a man named Logain claimed to be the next incarnation of Dragon and mustered up an army for his plans of conquest. And to add some intrigue, the Dark One has been appearing in Rand’s, Mat’s and Perrin’s dreams and claims the Aes Sedai have actually been the ones manipulating Logain and other previous false Dragons. The day the captured false Dragon was being paraded through the streets, Rand was trying to get a better view, climbed up a wall, and accidently fell into the royal palace, where he is found by the Daughter-Heir, Elayne, and her brother. Someone in the palace calls the guard and he is sent to be questioned by the queen, and thanks to some support from Elayne, Rand is set free and goes about his business.
This part actually felt out of place. We have been following Rand and Mat as they struggle with all they have just to travel to Camelyn, with the hopes that their friends are still alive. And suddenly he falls into the palace and meets the princess, who seems to have at least a positive image of him, like a scene out of a cliche fantasy story. It was a major change of pace that I wasn’t prepared for.
Meanwhile, with Perrin and Egwene, I got the escape scene I was looking forward to. Moiraine, Lan, and Nynaeve track Perrin down and discover Perrin and Egwene have been captured. Nynaeve unties the horses and Moiraine calls down thunder to create chaos, while Lan frees the two. The scene was a little underwhelming, but I guess it got the job done. They head to Camelyn and meet up with Rand and Mat.
After they meet, Moiraine announces that there has been a change in plans and needs to head to the Blight, where there are humans fighting off the Dark One’s minions, and find the Eye of the World, so that some large turning point in history will be forced to happen there. And because the dark forces are surrounding Camelyn, they need to find another way out. Moiraine requests Loial that they use the Ways, a sort of separate dimension that the Ogier used in the past to move between places quickly. However, the Ways were build by male Aes Sedai in the past, and thus became tainted as time went on, so it’s super spooky right now. Oh, and at some point Moiraine helped cure Mat from the evil dagger possessing him, but not completely.
And thus our party entered the Ways, with the guidance of Loial, and made their way to Fal Dara, a fort on the borderlands of the Blight. The Ways are corrupted, and they also discover the Dark One’s forces have also been using the ways to move around. Anyway, our party arrives at Fal Dara mostly safely and make plans to travel into the Blight and find the Eye of the World.
Many of the parts I read this week seems to be just progressing the story with nothing too interesting happening. I can’t really blame the author, he needed to wrap up all the separate stories and bring them all together for the final conclusion. But it also feels a little strange to bring up so many new characters who feel like they will contribute greatly to the story like Loial and Elayne. Well in Loial’s case, his purpose has been fulfilled by guiding the party through the Ways. But they also mention how Thom is mostly likely not dead. I am nearing the end of the book, and it feels like all these characters probably won’t have their story fully fleshed out until the sequels. Maybe it’s just how I read books, I try to understand how each character contributes to the overall story. And thus, I like predicting what purpose different characters have in the story. So I have an expectation that certain characters will have a big impact later on. But I guess this is how authors get people to read the sequels.