Saturday, 21 December 2013

Work hard, play hard!

The last few weeks we worked really hard. With great teamwork we managed to create a demo of our game, which will be in a playable state during the midterm presentation. This list includes just a few features of our demo: - Multiplayer play (although not very polished yet, it works!); - Randomly generated level; - Fancy particles; - Working AI (An enemy is placed in the level and follows the player. Path-finding works, obstacles are avoided). - HUD - Weapons We also had a few struggles, but we solved a lot of them. A good example of this is the following image. Here you can see how we tried to create muzzle flash (effect when you shoot a gun) with a particle system. As you can see it’s not really how it should be. The effect in the image under it is a bit smaller, but it’s a lot more realistic!



So close...

On Thurday 12th December, we had a busy day. After a very interesting seminar about Logic we had a meeting with our tutor. After that, we worked the whole day to get our demo finished. We worked 6 hours non-stop and achieved a lot in this timespan. So, when you’ve done a lot on a day, what do you do the next day? You work more! We had some fun with playing the game, and developing the game a bit more.To celebrate we finished the demo, Jurre brought some drinks and M&M’s to the working room. Here you can see some nice pictures of it.


As you can see in these pictures, we were working hard! But a good game also requires a lot of testing. So we were playing hard as well. Some...rather interesting bugs were found. We had one bug where the player would turn into an automatic turret. That was obviously not intended. Another bug that we found a week afterwards was also… interesting. At one of our weekly meetings, I found out that I could not open the game anymore. A random exception, which couldn’t even be explained by our lead programmer (!), occurred. According to Visual Studio, a music file was missing. This was really weird, since I was sure I had the file. I tried to open it in VLC Media Player, and there was no sound playing because it was muted. I unmuted the sound and try to run the game in Visual Studio again, and it worked! Our conclusion: VLC Media Player is the best debugging tool ever. In other news, LSDude has been making outstanding progress. We hit a few brick walls due to the fact that everything that happens within the game is networked (singleplayer is also just connecting to a local host) but as soon as those problems were ironed out, it was smooth sailing all the way. After our (mostly horrible) test on Logic last Thursday we decided to work on LSDude a bit more before the holidays since some people would be on vacation. A lot of minor things were fixed or added, such as a healthbar above each ghosts’ head and an indicator showing how much health the Dude has left. Jordy also got around to creating a new background music that didn’t loop every ten seconds and boy does it sound sweet, although not when four people are playing it simultaneously out of sync...

Current status of the game

Some progress on the wave system was also achieved. Currently there is a really simple system which starts with spawning one ghost. When that one is killed, two will be spawned. After those two ghosts, tree will be spawned etc. When we tried this with 200 ghosts, we got some really weird exceptions. Thanks to some awesome critical thinking of Kevin, we managed to find out what the cause was. Apparently, Windows 7 had some buffers for TCP messages set to 8KB, instead of the possible maximum of 64KB. In Windows 8 the buffer is set to 64KB, which was the reason why some people encountered the bug and some did not. Kevin managed to override this Windows 7 setting which ensures that people with Windows 7 will not get the exception. You may wonder why a really high amount of 64KB data is sent in a really short period of time. Well, the reason is that our networking part needed some optimization. For every ghost that was spawned, a separate TCP message was made. As you may know, TCP messages have a big header. When the message is sent over IP (that’s the case here), the header gets even bigger. So you can probably imagine that total size of the messages of all those 200 ghosts are kinda big… Kevin managed to fix it, though. Instead of 200 separate messages, 1 big message is now sent. This concludes our last blogpost of the year. Happy holidays everyone! -Luuk & Jurre

Friday, 6 December 2013

Particles workshop and stuff!


So… New week, new blogpost. A lot of stuff has happened past week, so let’s just start off this post with an article by Luuk about the particles workshop, after which we'll give a brief summary of what has been going on with LSDude as of last week!



Particles Workshop

On thursday 28th November, Robert and Luuk did not attend the usual meeting with our tutor. Blasphemy! Why did this happen? Well, they both had an acceptable excuse, because they went to the particles workshop of DGDARC. At the workshop, they learned a whole lot about the theory of how particles can be used to greatly improve the look of a game. Two people from Abbey Games first gave a presentation about what particles are and how you can implement them in a C# project with XNA. After this presentation of roughly one hour, the attendees of the workshop could toy around with particles. Tigran of DGDARC gave us a C# project in which a basic particle system was implemented. At first, the assignment to recreate some cool particle effects Tigran had created was given. But, when we had recreated some of these effects, we noticed it is awesome to toy around and see what is possible with these particles. Luuk found out that it isn’t hard to let a program crash if you use a lot of particles (150000 per second!). Robert created a lot of cool effects which make use of a mouse. Effects where particles are emitted at the current location of the mouse and will travel to the location of the mouse a few seconds later were also created. This effect could come in handy for LSDude, since it looks like as if you used LSD or another halogenic drug….Not that I would know how this would look like. I´m not saying that- Let’s move on. Robert also found it interesting to create a particle system which involves fire. I think he might be a pyromaniac.
At about 17:00, the workshop was over. All of the attendees greatly enjoyed it and learned a lot. We also learned that working with particles isn't as hard as we previously thought. I am sure we can use the gained knowledge to greatly improve LSDude! It might be a challenging task to accomplish that we can use particles in LSDude easily, but we will surely try our best and figure it out!

Our thanks goes to Abbey Games and DGDARC (especially Tigran) for giving us the opportunity to deepen our knowledge of particles!

- Luuk



This is isn’t the only thing we’ve done all week of course. While Luuk and Robert were out having fun playing with fire, the rest of the team went on and made some final decisions about how we want LSDude to be played. You can read all about this in our Designdocument which will be linked (it’s in Dutch). We also got around to assigning which elements of the game everyone would be tackling and defining a general team-structure. so without further ado, here’s a list of our ‘functions’ within DeltaGames:
Luuk van de Wiel: Teamleader
Kevin Deelen: Lead Programmer
Robert Groot: Lead Artist
Jurre Berkhout: UI Design
Jordy van Opstal: Sound design
Koert Hup: Level design
Ricardo Scholtus: Gameplay

While these may be our ‘functions’ they don’t have to be necessarily strict: If Koert, for example, has problems with something he can always ask someone else to help him. The focus with these functions is to force people to go in-depth into a certain topic, while making sure they don’t lose the big picture and only get to work on their assigned function. Also, seeing as we are working with Kevins framework (GFrame©) we assigned him the function of lead programmer. He will most likely help the rest of the team when they’re having trouble with a certain aspect.
The rest of the functions were more or less assigned with personal preference in mind.

Furthermore, the game itself is making great progress as (nearly) all basic functions are implemented or being implemented as we speak. This is mostly the work of Kevin, who apparently has quite a lot of spare time to work on LSDude outside of school hours. This past week our focus has mainly been on getting local local co-op working - we had some problems with new clients not showing up on the host side -  while Koert en Jurre made some rad drafts for the HUD and possible colours to be used throughout he menu’s.

Link to our designdocument.