Sunday, March 25, 2018

Game Jams

I've wanted to make a post about game jams for a long time, but never got around to it, but now that I attended and won one last week I figured it was as good a time as any.

So what is a game jam? Basically it's a get together of people who are into making games, and you'll get a theme and have a set amount of time, generally a few days, but sometimes just a few hours.

I've attended a handful of game jams over the last few years, most of them single day affairs put on by GameCraft.it.

Sometimes I've been part of a group, but mostly I've worked on my own. It's always a wonderful creative experience to sit down with a bunch of people and just do what you love the most for hours. There are no excuses and the deadline forces you to get to it. Sure it's sometimes stressful and your resulting game will not always be great, but you'll always learn a lot.

So on March 16th I attended a game jam at St. James College in Cork.

The theme of the game jam was:
"There are two things you need for an adventure, a treasure map and someone dumb enough to go with you."
Which is apparently a quote from "The Young Offenders", which I have not seen. But it seems people in general just took the quote literally and made games about going on an adventure.

I was in the mood to work on my own, so I got started on brain storming ideas.

At first I was all about thinking up a cool map game mechanic and thought about doing first person where you were actually looking down at a map, but I couldn't really think of an interesting way of doing it that was realistic with the time restraints. I then had the idea of simply making the whole game board a treasure map. This fit together with another idea I've had to make a game in 3D, but with simple 2D billboards sticking out of it and being used for characters, with a camera that only pans, my thought has always been that you would be able to put together a nice look in a short time for a game jam like this, so I've wanted to give it a try for a while.

Secondly I was thinking a lot about the companionship part of going on an adventure and on foolhardiness etc. I quite quickly had the idea of having some kind of AI that you needed to proceed through the game. My initial thought was little guys around the map that you had to convince to follow you and then use up to solve different puzzles to progress in the map.

I quickly realised that having various followers and various puzzles would be way too ambitious and decided that you would have a single follower and use him as a weapon against simple enemies.

This was basically as far as my planning went, I probably used around 40 minutes brainstorming this and doodling ideas.

I figured I'd try and set up the world quickly and think a bit more about the game play details in the meantime.

I modelled a very simply map model and made a nice map texture for it. Then I drew a mountain and a tree texture and set it up in unity. This screenshot was taken later when the characters where added as well, but it's a good picture of the map.


The only thing that I'd really like to improve about the look of this (other than the shitty quick textures). Is the transition from the mountains into the map, I would love to figure out some way where they would fade in perfectly.

After I had the map more or less up and running I turned my attention to the player and minion.

The player controller was simply a rigidbody with force being applied to it from axis input, so it could be controlled by a gamepad controller.

Next the minion was made, also a simple rigidbody and this one simply moved towards the player whenever it was further than a couple of units away from it.

I then made a simple throwing mechanic: Pressing the "Fire1" input (A on the Xbox controller I used) would cause the minion's rigidbody to be kinematic and for it to be a child element of the player and located over the player's head. Then pressing "Fire1" again would cause the minion to go back to being non-kinematic and not parented and add force in the direction the player was pointed. Tadaa, you could now throw the minion.

At this point, both the player and the minion were simply made of cubes that made it possible to see what way they were pointed. This worked well, but they of course didn't look very good in the nice 2.5D world I had set up. More on that in a bit.

This had already taken hours to get working, Unity had crashed repeatedly on my crappy laptop and I was figuring out how some of these things should work along the way.

I hurried onto the Enemy.

The enemy ended up being extremely similar to the minion, as soon as the player got within a certain range of it, it would keep running towards the player. The enemy was slower than the player and the minion.

I set up a life variable of 100 for both the player and the enemy and made it so the player lost 30 points if it touched the enemy and the enemy lost 30 points if they got hit by the minion.
I also gave both player and enemy knock-back on taking damage.

This sort of worked, but was very buggy, sometimes many hits would be registered on top of each other etc.

I kept working on this and in the end I used raycasting to solve a couple of issues. I made it so the player shot a ray to check if the minion was in front of it and it would only work to pickup the minion if it was, so you could not simply call the minion back to you from wherever it was and I made it so the minion shot rays downwards to figure out when it was airborne and only did damage to the enemy if it was airborne and only moved towards the player if it was on the ground. This made the game feel much better to play.

At this point I had almost used up all the time of the game jam. And the player, minion and enemy was still just ugly blocks and I had no menu screen or game won screen.

I decided to go for making the look consistent and spent the last hour making some drawings for the player and enemy and in the end using the same drawing as the enemy for the minion as well. Since the player was now in 2D you could not see which was he was pointing in 3D space. As a quick solution I added an arrow what would indicate this, it looked a bit out of place, but no one seemed to think twice about it when playing the game.

So here is the final game in action. I was really happy with how it turned out at this point, but a bit sad that I didn't have time to make a menu and that I never got around to making some kind of "bridge" for going across the tear that was in the beginning of the map. Also life bars over player and enemies would have been a really nice touch.


So the incredible thing was that, dodgy as I felt the game was a lot of people really liked it, especially the art style, so the game ended up winning the game jam.

So here is me looking all confused and happy:


And here are the prizes I won:


If you dare to try this very broken prototype of a game you can get it on itch.io here: https://arnklit.itch.io/strange-company

Game jams a always a lot of fun and I always feel energised and creative after attending one, but winning one was even cooler. 

I've been working a lot on some new projects lately which I hope to share soon and this definitely made me supercharged to work on my games.

Friday, March 23, 2018

2018 Quick Update

So just a little general update. So as you might have figured out the Jousting game got put on hold and I have not done any work on it for a while.

I think I once again made two very common mistakes: 1. I didn't stay in the white-boxing prototyping stage until I actually had the gameplay finished, I just couldn't help myself and started working on graphics. 2. Even though I really tried to control myself, the scope got away from me.

So I took a little break from everything, but now I'm really getting back into several little projects and I will be posting a lot more in the coming months, including a little post a bit later today about Game Jams.

Monday, February 6, 2017

Jousting in Virtual Reality - Week 5 - Horses and Tilts

So I've been working quite a bit on the game, but didn't really finish much. I basically finished the horse and the tilt divider. See before and after of the horse below with the tilt divider in the background.




Obviously I'm way behind my schedule and it has now been further disrupted by some vacation coming up in march.

At the pace I'm going now I think a more reasonable schedule will be to finish the playable demo of the first level before going on vacation on 10th of March. I'll need to make a new schedule though.

I'm planning to spend most of next week doing some programming and see if I can get the game to work a bit better and maybe make the replay system work.

Sunday, January 29, 2017

Jousting in Virtual Reality - Week 4 - Time Out



Nothing much to show this week. I did get some work done, but the week mostly disappeared in a family emergency and some quality time with my girlfriend.

The schedule is definitely slipping further though. I'll have to see where I'm at, at the end of next week and plan accordingly.

Monday, January 23, 2017

Jousting in Virtual Reality - Week 3

Another busy week comes to an end and another week where I fall further behind my schedule. I think I did a lot of good work this week, but everything is just taking way longer than I had hoped.

First of all this weeks work:

I jumped around a lot in what I worked on to not get stuck on anything. I worked first on the horse and went back to it several times. The base mesh is almost done and ready for sculpting and texturing and making armour. The big reason I didn't finish is that I have not decided how I will handle the mane which will be a pain if I want it to look nice. I could definitely have called this done at an earlier point, but the more I get into this project the better I want it to be.


What I spend even more time on than the horse was the knight. I decided to go all out on the quality of this model, since I will be using the same model for the squire model which will have a face and uncovered hands.


In between struggling with the horse and the knight I worked on other little things like the tent, which I decided to spend a bit of time taking almost to completion to get an idea of how my final assets would look. I'm pretty happy with the result I was able to get with some clever modelling and cutout transparency for some of the cloth.


I also spent some time doing some tests on making sky-boxes which I have never done before and feel like I found a really good way of making them, the current one is just a poorly made one out of some images I found on google, but I think it shows the idea.


As you can see in the above image I also added some temporary trees which are just simple planes with another googled image on. I actually spent a few hours playing around with building my own detailed trees and I went about it in a horrible way. I'll revisit this later if I need real trees, otherwise I'll just paint a good 2D texture myself and do planes.

Other things I worked on that are not really worth showing yet was a barrel and the tilt divide.

So I'm a bit disappointed with my results this week, hopefully next week I will have a bunch of finished assets to show off instead.

So onto the schedule, obviously I'm falling behind, so I'm pushing the schedule a week, here is an updated version:

Schedule

Week 1-3: Done

Week 4: Finish all the modelling and texturing of the knight, the squire, the horse, the lance, the shield and the quintain. These are all the models that are close up and will affect functionality since they will be rigged. If there is any time left, start rigging or work on the remaining models.

Week 5. Make a version of the game with the two mini games, and the first arena with real graphics (use hero knight for both players) and a menu. Put the game on itch.io and have people on Reddit try it out.

Weeks 6-9: Build the rest of the game. Model the remaining models and implement the different knights with different difficulty. Game should be feature complete. Upload updated version to itch.io and get more feedback / bugs.


Weeks 10-12: Implement sound and music and polish and fix bugs. SUBMIT GAME!!!

So as you can see I've basically just stolen a week from sound and bug fixes to have another modelling / texturing week. Next week looks pretty unrealistic as well, but I do know that I'm over the worst modelling wise with having basically finished the good base meshes for the two most complicated things.

The current week 5 is where things will get really hairy, just doing the rigging and animation for the horse, the knight and the squire, will take a lot of time and then I should actually also make the gameplay work quite a bit better before I show it off to anyone, but I really want to get to a place where I have pretty decent graphics and gameplay and I can show it off...

Sunday, January 15, 2017

Jousting in Virtual Reality - Week 2

Another busy week, I didn't work on the game as much as I had hoped, but I still get quite a bit done on the design. Get ready for lots of pictures.

I Started out with some helmet designs, thinking that that would be where most of the personality of the character would come from.


I then tried for some full armour, I ended up going simpler and simpler, thinking that you start out as a poor knight with crappy armour before working your way up.
 Tried with some horse armour... I don't like drawing horses.
 Ugly squire
 Overview for the first tilt-yard.

A quick sketch of the first tilt-yard.

Concept for the stands.

I then made a simple box version of the tilt-yard in Unity and grabbed a screenshot.

I then did this final concept of the tilt-yard on top of it.

So there you have it, I wish I'd gotten a bit more done, especially a full concept of the knight could have been cool. I did not do as much work this week as last. I had to force myself quite a bit to sit down and draw instead of just working on the game or starting with the modelling. But I'm happy I did this.

A few things I didn't get around to, I didn't do a design for a second level as I had initially planned, from what I'm learning along the way I think it will take too long to make two levels for now. If I feel differently later on I will have to revisit it.
I also didn't design any audience. I'm pretty sure at this point that the audience will only ever be seen far away and will be some kind of sprites. So obviously they don't need a lot of detail, but they do need to be different. I haven't exactly planned out what to do about them yet, but I don't think I need to worry about full designs really.

So next week will be utterly insane as far as I can see. I'm supposed to model, texture and rig: The main character, the horse with armour. The stands, the tents, the trees, the landscape, the sky box. We'll see how it goes.

Sunday, January 8, 2017

Jousting in Virtual Reality - Week 1

What a week. I've been putting in as much time as I could on the Jousting game this week and I almost got to the point I wanted.

I managed to get to a point where you can joust against an opponent and knock them off their horse and they can do the same to you. You also both have shields.

There is a point system, you get one point for breaking a lance on the shield and two points for knocking the opponent off. And the first to get 5 points wins, if both get 5 points in the same round, it goes into sudden death.

I also rewrote all the code I had written in the first prototype in a way better way after thinking about the logic of the game. This is actually the first time I really feel I've started writing code in a way that works well with Unity's component based approach.

The big things that I did not manage to make work was:

  • That the enemy doesn't change it's attack at all, I don't think this will be too bad, I just didn't get around to it. 
  • That there is no playback of the collision afterwards. This will be really difficult, I want this to be in the game, but I'll need more time.
Here is a video of the game at the moment:



Next week will be design. Maybe I'll work a bit on the prototype/alpha as well, but mainly I'll be doing all the concept and design drawings in 2D.