• Register

Hello! My name is Henrik and I am a programming student at Uppsala university at campus Gotland Sweden. When I am not gaming I'm programming and when I'm not programming I'm gaming. I spend each day trying to improve in what I love to do.

RSS My Blogs

Third week of Big Game project

Lillpapps Blog

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!

Lillpapps Blog

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

Lillpapps Blog

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.