Seventh week of Big Game project

This week I have worked on a lot of different artifacts. There has been a lot that have needed bug fixing and I had to take care of that. The first thing I started working on was fixing our experience system because it did not update on the network. For some reason I got a null reference error when I was using children of a gameobject so to fix this I made the children into their own gameobjects and the null reference problem was fixed.

The second fix I had to do was to add some rules to our capture zones. With the addition of neutral npc’s (npc’s that belong to neither team) that is supposed to block the teams from capturing the zone they are protecting, I needed to make sure that the teams cannot capture the zones before the npc’s are dead. To do this I made a list to which I added the neutral npc’s when they are created and deleted them when they died. If the list is empty the timer for capturing the zones are able to increase or decrease.

Sixth week of Big Game project

Time is flying past and soon it is time for GGC. We had a lot to do this week and we were supposed to have our feature freeze after this week.

However, I could not work as much because I got sick halfway into the week and was bedridden for the remainder of the week. But what I did get done was that I created control nodes that the teams can take over to gain presence on the map. When the team’s champions capture a control node the commander gets the ability to build structures around that node and the node passively increase the commander’s income. The control zones have a smaller circle that is supposed to be a king of the hill type of point on the map where the team with the most players inside the circle gains control of the node. This is achieved with a trigger collider and one list for each object. I then compare the size of the lists and the team with the largest gain influence of that node.

I also continued my work on our big create Snappy. I added some network code so that the code I had previously done would update over the network. Snappy currently adds all targets within a radius around it to a list. It then targets the closest player and chases the target until it reaches it and then attacks.

Next week we will have our feature freeze. There are still some core mechanics that we need to implement but we will keep it short so that we can start to work with polishing our game.

Fifth week of Big Game project – Alpha

This week we had to crunch to get our alpha up and running. It was exhausting but it felt very rewarding when we finally had a game playable at the end of Friday.

I started the week with working on the experience system. The plan was that everything that you could kill would grant experience. So to do this I created a script that I could attach to every gameobject that could die. The script works as this; it have a value that determines how much experience the object will give, it have a collider that add object within a radius of the object to a list and when the object dies it gives experience to the first object with the same tag as the object that killed it.

I wanted a system that is easy to maintain and modify so our designer can work very efficient and do a lot of tuning with how long it takes to level and how much the different parts of the game reward the players.

Fourth week of Big Game project

Image

Time flies by and it is soon time to have an alpha presentation of our game. I would say that we are slightly behind schedule and that the next week will be critical in our development, but I still have complete faith in the team and that we will be able to catch up and present a complete alpha with all our features in the game.

This week I have worked on a fog of war system for the game. It was a lot trickier than I thought and after a lot of hours I still cannot say that the fog of war is completely finished. The fog of war is an image effect that covers the whole map in a dark color that is done with a shader. The shader lowers the alpha of pixels in a circle around a “client” so it looks like it is brighter around the clients. What needs to be done is to turn off rendering on objects that are in the fog and turn it on when they are visible.

I have also started to implement Snappy. Snappy is the large creature in the picture above. What I have managed to code so far is to trigger the idle, run, attack one  and attack two animations of the model and I have added the different states for the object.

A lot needs to be done next week and I am looking forward to having a very busy schedule next week.

Third week of Big Game project

Base

 

This week has had its up and downs. Some days the work has been really slow and some the day has gone by in a blink of an eye.

My planning for this week was to create the Commander for the game. The scope of this project was to create a Commander with a resource system that can place new structures on the map. To get this to work I had to create some assets. I created a building that was identical to the real building but without all the components, I saved the rigidbody and collider components so that the commander can not place buildings inside of other buildings or obstacles. When the commander place a new building I instantiate a building that will later be the construction animation, while the building is getting built its health value goes up all the time until the building is completely built. When it is completely built the final building is instantiated with all its functionality.

During gameplay the commander can press on buildings to select them, when a building is selected the commander can perform actions tied to that building. As of now the commander can only perform actions with our barracks and the only thing it can do is to move the waypoint which the soldiers use when they spawn to move towards.

In the middle of the week I took some time to rebuild our tower code to improve their targeting. They now will always prioritize the soldiers even if there are champions closer than the soldiers as long as they are in range.

During the week the programmers of the group had a meeting with Jerry for some choaching. I felt that the meeting was pretty rewarding and I got encouraged to read up on coroutines, which I did. My first impressing is that coroutines are very useful and simple to use.

Overall the week has been pretty good from a production standpoint. A lot of code has been coded and our game has improved a lot. My own work have been decent but I look to improve during next week.

 

Second week of Big Game project!

So this week has been filled with tasks that have felt as if progress are going sideways. The plan was to start merging what I had done last week into an alpha version of the game, but as it is with most programming there were some obstacles right from the start of the week.

The first obstacle was that our AI monsters did not have pathfinding so they kept getting stuck in objects. To fix this I had to learn how to implement A* correctly. After watching some youtube tutorials I felt that I had a slight clue how it works so I tried to implement it. Implemention went smoothly but I had trouble to limit the monsters movements, the troubles I had was that the monsters moved on different paths and did not move correctly towards their targets. Later in the week I got some animations and models that I implemented into the game with limited problems.

The second problem was to get all our towers, monsters and spells to collide with the right targets. To solve this we ended up creating different layers for spells and actors which I then applied to all the actors and spells we are using in our game.

At the end of the week it all ended up pretty good. We have a version of the game where we can move around a champion in our world and it can cast spells on monsters and towers.

For the next week I am planning to remake the AI to work much more fluid and add target priorities to make the AI much smarter in the way it choose target.

First week of Big Game project

As the title suggests I recently started a course called Big Game project. During this course I will, together with a group, create a vertical slice of a game, that we will continue to work with after this course. The game that I will work on is a MOBASA, Multiplayer Online Battle and Strategy Arena, that we are calling Eternal Resonance Arena, E.R.A. The game is team based where two teams face each other. Each team have a commander; that plays an isometric real time strategy game, and a champion; that plays a battle arena character. Together the champions and the commander will work together to kill the other teams commander structure and the team that kills the other teams structure wins. The game is set in a steampunk environment with islands that float in the sky. We are developing the game in Unity using 3 programmers, 3 artists and 1 designer. We are estimating an alpha in the coming weeks and a beta 4 weeks after that.

 

What I have done this week:

On Monday everyone started the week by writing an ambition document. Everyone in the group had the same ambitions for this project, a very polished product that we can continue to work with after this course is done. When that was done I did some research on A*, a pathfinding algorithm, and it looks like something that I will use for the creeps in a later development stage of the game. I need to do several optimization checks before I dare to implement it into the game, because of that it will not be in the game for alpha.

On Tuesday I started programming the states for the creeps. At this stage the creeps had an idle, patrol, chase and attack state. In idle the creeps switched to patrol, this state was mostly so I could initialize variables before it runs update code. In the patrol state the creeps moved towards pre-set waypoints on the map,  while patrolling they would scan an area for champions and move to the chase state if they found one. In the chase state the creeps simply moved towards the target at all times and if the creeps got into range they would switch to the attack state. In the attack state the creeps started their specific attack and then return to the chase state. After I completed all the states I started working on the different attacks for both a ranged creep and a melee creep. The ranged creeps shot a projectile towards a target and the melee creep performed a whirlwind attack.

On Wednesday I created a barrack structures that create creep units. I created settings to make it easy for our designer to change the density of creeps that spawn and how often they spawn. After lunch I got a tower mesh from one of our artists that I tried to make rotate. But after much struggle we noticed that the pivot point was wrong and when we updated the mesh I got it to work immidately.

Thursday started with me doing collision on the tower and then I created the towers attack. Currently it is a projectile effect but that will change for beta to a pulsing cirlce on the ground. After lunch the programmers sat down and started discussing code structure and how we were going to make objects interact with each other. We will make each gameobject have an attribute script, this script will hold every attribute that an object can have. Each ability that gameobjects will use will hold a spell attribute script, this script hold the damage, damage type and duration of the spell it is attached to. This system makes it easy to adjust values in the inspector of Unity. When a spell, for example, collides with an object it calls a globalscript that calculates the damage based on the spells attributes and the objects attributes.

On Friday I finished the restructuring of ranged creeps and towers. After that I went to see other classmates pitching their game designs for this course. There was one interesting card game that got pitched that I would be interested to see get greenlit.

This week have been very productive and we have come a long way on our project. I really hope that we will have an alpha finished next friday and I think that we will finish in time.

I hope you could understand my scribbles and I promise to improve until next time.

Game Night week

This week has been a very busy one. At the start of the week we had a testing session with Marcus where we explained our board game to him and got some valuable feedback. On Wednesday we tried to apply some of them but got stuck very fast. We had a lot of problems getting unstuck so in the end we scrapped most of our ideas and started over with a really good brainstorming session.

With the new system our game felt more engaging and more fun. I still feel that there is something missing but at least now it is playable. On Thursday we improved the visuals of our game and updated every piece that would be used in the game. We got new models for our in game currency. We painted our game board and all the tiles. I felt that it made the game more interesting.

On Friday I went to Stockholm and Tekniska museet where I showed Tribal Marathon on Game Night. We had some amazing feedback on that game and a lot of people wanted it released so they could play it. The trip was really amazing and I cannot wait for GAMEX next week.

The goal for this week was to iron out our game mechanics and write a game design document. We did not have time to create the game design document but I think that the result of our brainstorming have ironed out our game mechanics to the point that we will be able to write on the next week without any problems.

That is all for this week. See you again next week.

Welcome to the week of hell

This week has almost come to an end. I meant to write in the beginning of the week but I have not had time to do so. This week has been the start of hell. It started with us having our assignment in advanced game design to create a board game and getting our assignment in Serious Game. And guess what, it is to create a board game! Only that we only have two week to complete this assignment. In the upcoming weeks I have to write a postmortem and design document in advanced game design and a postmortem for serious games while having enough time to work with my two groups and creating the board games. Welcome to hell.

One of my individual goals for this week was to start blogging more. I cannot say that I have completed this goal and I only have myself to blame. I have prioritized working before writing.

To actually talk about the work I have done this week; in advanced game design I have worked in my group to get a prototype that we could have other groups test at the end of the week. We did some solid work on Wednesday and we got our game working. Something that went really well was our prototyping; we built small and expanded with a system at a time. When we got all our units into the game we felt that it was playable but it will still need a lot of tuning. Our saboteur unit feel very out of place and does not impact the game that much which we need to solve. We also have no way of lowering other players points so if one gets close to winning the other players cannot catch up. We have thought about adding stealing to the game but we felt that we should wait with adding until the other groups have tested our game.

In serious games we have prototyped and found a game that we think will be interesting and serve the purpose of the course. We chose to research and create a game about the problematic about overfishing. I think that our solution will show the problem in a fun way. The game works like this; there are three boxes that represent oxygen level, algae level and fish level. One player plays as the health inspection and his / hers job is to keep the oxygen and algae level down and fish level up. The other player plays as a fisherman, his / hers only job is to catch as many fish as possible. The game is divided into the seasons of a year and during one season the players will try to pass laws that work in their favor. To pass these the players have lobby points. They each try to pass one bill at the time and the person that bets the most lobby points on a bill, pass his / hers law. The bill then plays during the different seasons.

I think I have managed to sum up my work for this week. Hopefully the text has some structure and decent grammar. I really have no clue how to end this wall of text so I am going to end it right now.

Beginning of a new era

The time has finally come for me to start the blog that will focus on my studies during my second and third year at Campus Gotland. I am currently taking the courses Advanced Game Design and Serious Games. This blog will be closely tied to my work during Advanced Game design.

Today I got the assignment to create a board game design together with my group. I am very excited to hear what kind of idéas my friends have.