So last weekend I had the pleasure of helping run the Lincoln site for Global Game Jam 2015. I worked with Kieran and we made a really odd game called “Big God, What Do?” which is about a tribal god and his little villagers. Here’s the little blurb taken directly from our submission on the GGJ website:
“Big God, What Do?” cry the tribes-people of a small, jungle village. The idol in the center of town stirs to life and an ethereal voice echoes around the near vicinity: “Okay, guys, you need to bring me some pigs and throw them in the fire.”
BGWD? is an experimental multiplayer game where one player assumes the role of an ever-present deity whose belief is slowly dwindling. This player has to yell orders to his followers in game through the shrine in the middle of the map, then the other players must go forth and collect the items he needs. There is a catch, however: the villagers can only hear their god when they are very close to the shrine, and the things that the god needs are constantly changing.
The game was really fun to make, it was quite a challenge to get audio streaming across a network clearly – the final result was still rather choppy which was a shame. Unfortunately we could only get the game working on local area networks, so the game only really worked in the computer labs.
I learnt how to 3D model using a free package called Wings3D, I’ve never done 3D modelling before so I was very interested in trying it out. I don’t think I did an awful job either; apparently I went against a tonne of 3D modelling conventions, but I was bound to make some mistakes on the first attempt!
I think that after a few hours I had a reasonably good-looking low-poly art style going. I actually really love how the game looks, and I definitely want to use this kind of style again in the near future!
Oh… and I also managed to get a photo of me and Kieran where he’s not pulling a silly face:
It was very refreshing to work with Kieran on something other than Hashtag Dungeon. Working on a project for too long without a break can get kind of stale; I think this jam was exactly what I needed to remind myself that I love making games and that I can work on whatever I want, whenever I want.
It was definitely a great jam and I had a tonne of fun! Roll on the next game jam I’m hosting in March!
So the game now has a death state for the poor little fish. They have a health variable that drops drastically when the shark takes a chunk out of them, when it drops below 50% the fish begins to bleed into the water… it’s at that point the fish is pretty much screwed. Suddenly the theme from JAWS kicks in and the fish runs for its life from the pursuing shark – who is hot on its bloody trail.
I’m pretty happy with both the feedback you get when attacking and being damaged now too: sounds and masks both give the player a satisfaction from chomping down on the fish. It is a great deal of fun both to play as the hunter and the prey and for completely different reasons (the thrill of the chase and the fear of being caught respectively).
I really love the way that the shark moves and how it appears through the dense underwater fog – it looks very similar to videos of real sharks I’ve seen on documentaries in the past!
Amelia has also been working hard on making a replacement for the place holder prey model – its starting to look really promising! Here is a picture she sent me earlier of the adorable little thing (ignore the untextured eyes…):
I’m looking forward to doing a LAN game of this with a good ten or twenty of the little blighters all hiding from the shark! Here’s hoping that I can get the rest of the game polished up and ready before the end of the month!
Today was my first day back at university! So it was time to start working once again on my Games Engines assignment. I’ve fixed a good couple of bugs today including an annoying little problem I had with the PhysX cloth occasionally becoming too still and therefore not updating with the rest of the scene – I tried adding a constant force to it… but it didn’t seem to work at all – then I found a really nifty little function:
That pretty much fixed one of the biggest problems I’ve been having without much fuss at all. Occam’s razor eat your heart out! So now the cloth ‘wakes up’ every frame and no longer stops working properly if left alone for too long. I’ve also changed the colours in the game and made the blocks explode into a shower of debris when the ball collides with them… just to make the game a little juicier.
Another important part of this assignment is the collection and analysis of user data. One of the ways I’ve decided to implement this is by getting the computer to do most of the work and record my data into several files at run-time. The first piece of data I’ve decided to record is the location of the ball in space… this allows me to see where players mostly die and where the ball travels most often. I played a single game and then made the data I collected into a graph… here are the results:
This graph could also be considered as a really dodgy version of a heat-map. I can see where the ball tends to be often by looking at the concentration of points in certain areas – this could be useful to see if players have trouble getting the ball to land on the bat in a certain place or (as the case above suggests…) where they have used a strategy to destroy blocks vertically without risk of angles interfering!
After a few hours of fiddling with sizes today I’ve finished texturing the character models for the crowd simulation. I’m using Oliver’s original textures as I want to focus on the body-shape changes and how they affect the visual variety right now. Next on my plate are the wonderfully time-consuming process of fixing all the normals… I’d lie if I said I was looking forward to that bit…
It’s not overly noticeable from the photo above as everyone is rather small, but there is most definitely an increase in the variety between the people in the original simulation and the new one! My hope is that I can run a test alongside the ones I have planned which uses extra textures… this will help me develop a conclusion as to whether the geometric variety is less important than the texture variety or not.
So I’ve not really blogged much about what my third year project is actually about, so I’ll do a little post now about it, and how things are developing so far.
My project’s title is “Towards Developing Character Visual Variety in a Crowd Simulation Program” and it’s pretty much that: Developing a way of generating varied characters in a crowd simulation!
When simulating crowds in virtual environments, specifically games – it is often the case that models will be re-used, lowering visual variety in the crowd. This project aims to address the problem of re-used models by developing a procedurally generation system in OpenGL to generate more varied character models. The project will then be evaluated using focus groups and a “spot the same models” activity similar to that of McDonnell et al. (2008).
So I’ve been working towards developing a method of generating characters in real-time based on manipulating a base character using several different visual variation techniques the main being:
- Mesh Deformation based on William Herbert Sheldon‘s Somatotype Theory.
- Randomly generated Heights and Widths.
- Randomly chosen Bodies and Heads.
- Randomly generated colour differences in certain areas of character models.
I’m working on Oliver Szymanezyk’s crowd simulation program that he is developing for his post-graduate research project. He’s been working on creating a more realistic crowd simulation in which members of the crowd interact with each other in groups and not just as individual entities:
I’ve been tasked with making the characters more visually varied in the scene. If you look at the video and then at my screenshot below you can notice the differences I’ve added in so far between the old version and my current implementation. Ignoring the texturing problems on the bodies of course… I’m working on editing the texturing soon – since I’ve added in all these new vertices to the body I’ve got to change the way the body reacts to texturing.
After a great deal of painful fiddling with OpenGL vertex arrays and raging over little buggy rendering issues, I’m finally getting somewhere with this final year project! I’ve got my model (mostly) finished, and I’m happy with the results – might do a few more edits before I sign off on it, but the models are looking a great deal more varied than they originally were.
I hope to have the models completed one-hundred percent by early January so then I can hit my deadline for starting the evaluation process of my project. Then I’ll get on the typing up of my final submission… I’ve got most of my notes collated together, it’s just a matter of pulling it all into one epically sized document!
So I just started work on my first jam for Ludum Dare. I woke up kind of late this morning so I’ve only just started programming and brainstorming for the game… whoops! This dare’s theme is “You are the Villain!” which I hope will lead to some awesome games in the end. I’ve still got fond memories of playing Evil Genius very late into the night during my teenage years and relishing every minute of it.
After a chat with Alex Saye I’ve decided on my final idea for the game, you play an evil CEO of a giant corporation. You have decided to call a meeting of all investors in order to reveal your dastardly bastardly evil plans for world domination. Of course not everyone in your company is particularly happy with this change in the company’s image… so you have to “deal” with them.
Each person at the table will have a ‘fear’ meter which will slowly drain, when it reaches the bottom they’ll dart for the door and try and escape. You have to kill them before they leave the room and blab about your plans to the local authorities. To begin with I’ll add trapdoors to the game as the most basic trap… I’ll add more if I have time. (Shark Pits, Fire-Traps, Acid Showers etc. etc.)
I hope to have a basic prototype completed before I go out tonight for a few drinks with my brother. Then I’ll polish it up early tomorrow and feature creep late into the afternoon! I’m not expecting to enter the competition this time around… considering this is my first Ludum Dare and I’ve not really planned ahead for it – so I’m not really prepared for super late-night crunches right now.
Oh, and good luck to everyone else I know who is competing!
Today I managed to get back into the computer labs to continue work on my PhysX assignment. The plan right now is to have about 90-100% of the implementation done before I leave for home on Thursday – when I get home I won’t be able to work on the code properly as I don’t have the right set up on my laptop. Today I implemented a scoring system now and physics feedback for when the ball hits a block. I’ve also added rotating motor joint objects on either side of the screen to enhance gameplay.
Tomorrow I hope to add in lives and an end-game mechanic. Then do some cool stuff to make the bricks explosively shatter everywhere when they’re hit. (Not sure how I’m going to implement that yet… probably with an array – but we’ll see how much time I have to do it!)
Today I received my initial mark and feedback for the first Advanced Games Studies assignment, I got 79% which is a reasonably safe 1st. It also means I don’t have to work on sprint 2 to improve my grade, which gives me extra time on my dissertation, and I like extra time for everything!
I’ve also implemented some more stuff in my PhysX Games Engine assignment, there are now blocks that the ball destroys when it hits them, I’m pretty happy with it (The video below doesn’t show the ball reacting to the blocks, but it does now… trust me.) This coming week I hope to finish implementing some extra PhysX features like joints and convex objects in order to get a higher grade!
I’ve also hit 20,000 words in my novel, I should hopefully have a complete first draft by the end of December. I’ve had a look into getting it printed, 100 copies should cost around £300… which is steep but I can reclaim the costs if I sell the books for £5.00 each. Where I’m going to get the initial funds from I do not know, but hopefully I’ll have a job come summer to pay for it! I’ve also looked into releasing it for the Kindle, which could be a cool idea.
To quote my old history teacher Dr. Perry: “Happy days chums!”
Now for a well deserved drink in the nearby student pub!
I implemented the basics of my breakout trampoline idea today in our Game Engines workshop, it works reasonably well. I’ve added a ‘shoot’ mechanic which stretches the cloth into a bouncy trampoline, launching the ball into the air! I’ll probably have to make the ball bounce higher in the final version, as it doesn’t go too far right now… might have something to do with its weight or the gravity in the scene.
One thing I need to work on is the collision detection between the ball and the cloth below – even after having increased the thickness of both the cloth and the collision skins, it will occasionally fall through when the cloth is subjected to high powered forces. But this is a prototype after-all so it’ll be fine in the long run!
So I really wanted to use cloth in my Game Engines assignment. Our task is to re-create the basic idea of breakout but with interesting PhysX mechanics added into it. I’ve come up with the following idea to implement cloth into the game:
A piece of cloth is attached to two boxes by its edges like a suspended parachute. The games ball then lands in the centre and then rolls into the centre. When the player holds down the space bar, the two boxes move away from each other, making the cloth pull upwards quickly – the resultant force should propel the sphere up into the air!
The player then has to control the two boxes in order to re-capture the ball and then fire it off in different directions (depending on where it is on the piece of cloth…) in order to destroy the blocks above. Of course the cloth will be un-tearable so that the ball won’t crash through and ruin the game.
I’m going to try and implement this over the next few days depending on how much work I can get done on my dissertation project. I am not sure if the sphere will actually collide correctly with the cloth, so this will be an experiment to see if the idea is actually viable as a method of gameplay.