Zedutchgandalf's State of Mind

Post-mortem of Murder Island for #GPCv17 (part 2)

In this part I’ll describe some of the things I would have liked to do with Murder Island, but could not do given the limited time and resources.
First off, I wanted the people to still be at the location they were at at the end of the simulation. Then you have to travel around from location to location to interrogate them. This travelling around would also come with a cost (probably time), so you have to carefully decide where to go next (by, for example, guessing where people are based on when other people last saw them).
Every location you visit should then have a background image (which I couldn’t find) and the people that are at that location should be integrated in that ‘background’ image. For example, if person A was at the bar, he could be sitting at a table. You then would have to click them to interrogate them. The weapons would also be hidden at these locations (based on where they were at the end of the simulation), but more or less hidden, so you would have to look really good if you wanted to find them (instead of asking other people). This would make the game somewhat more interesting (I think, I can’t know for sure without actually making and testing it). It would definitely make it look a lot nicer.
Secondly, people now literally tell you everything and everyone they saw, no exceptions. I would like it more if there was some more ‘intrigue’ to the situation on the island. People would lie to you to hide what is really going on. For example a guy cheating on his wife with person B would deny having seen person B without anyone else around. But person B would tell you that she saw that guy, so you can still solve the puzzle. Also, people could not tell you they saw the weapons they were carrying themselves. This would be very easy to implement, so I could have done it, but that would make the game a little too hard in this prototype in my opinion. Also, the murderer should always deny having seen the victim or the murder weapon or having been at the location of the murder. This would certainly add more depth to the game, since you don’t know who you should trust and who is lying.
Another thing I didn’t add, is sound. Partly because HTML5 is still a bit wonky regarding sounds, but mainly because I didn’t have enough time (and I didn’t think it is that necessary). If the locations-system (where you visit the people at the locations they were at at the end of the day) would be implemented, every location should probably have different BGM, fit for the scene. E.g. something sounding like the sea at the docks or at the wrecked ship, some relaxing music at the inn, etc.
I would also probably change the way the remaining time is shown. RIght now it’s just a timer in the top-right corner. But I would love something a bit more ‘abstract’ that would show the day is passing, for example the sun rising and setting in the background and a colored “overlay” depending on the time (e.g. everything getting a bit orangey near the evening and dark when it’s night). This would probably make you feel “hunted” (is that the right word?) if it’s getting late and you still have no clue what the solution is. But again, I can’t know for sure unless it gets made and tested…


Finally, here are some statistics (gotta love numbers!) about Murder Island:
In the first 24 hours, 143 people played Murder Island. This might not sound like much at all, but it’s the most I’ve ever had in the first 24 hours after release.
Nearly two thirds of that was people playing the mobile version. Which is a bit surprising, since I released that version more than 12 hours after the initial release. I’m pretty sure I’ve got to thank @McFunkypants for that!
The average time people spend on the game is around 7 minutes and 35 seconds for the normal version, and 10 seconds less for the mobile version. I think that’s about one game’s worth in time.
Both versions see about 25% of people returning (which is also a pretty good number for something like this).

If you’ve got any questions or want to know more, please tweet or mail me!
Check out the other entries for #GPCv17!
You can still play Murder Island here!

Grtz,
- Zed.

Post-mortem of Murder Island for #GPCv17 (part 1)

When the two themes for the Game Prototype Challenge v17 where announced, I really didn’t know what anyone could possibly do around the themes “Island” and “Entanglement”. But the more I started to think about it, the more I liked these themes. There’s really a lot you can do around it. Especially with the somewhat abstract concept of “Entanglement”. This has been confirmed by the great diversity among the different entries so far (the challenge ends in a few hours at the time of writing). I have played all entries so far, and am planning on writing small reviews of every game after the contest has finished.

The general idea I went with was that of being “entangled” in the intriges surrounding a murder on an island (conveniently called ‘Murder Island’). The final product contained less intriges than I would have wanted though. But the general idea is still there, and I feel like that’s what counts in a prototype. The story of the game is procedurally generated. While the game is loading, it creates the six main characters (I just call them person 1 through 6), the six weapons and the seven locations and than just places every person and every item at a random location (completely random, they could all start at the same place, leaving all the rest empty). Then the 12 hours in which the murder happens are emulated. Every person gets a role at it’s creation (e.g. “murderer”, “weapon’s collector”, …) and acts during those 12 hours as it’s role predicts. For example, there are the roles of “murderer” and “victim”. The person with the role of “murderer” will always try to pick up a weapon and follow the person with the “victim” role. Then when they are alone at the same location, the murderer kills the victim. The actual roles are actually a bit more complicated, but I won’t digress on that too much here. Besides the murderer and victim, there are also two weapon collectors, which pseudo-randomly move weapons around. And there’s a “detective” and “detective target” role. The detective basically behaves the same as the murderer in that he keeps following his target around. Now that I think of it, this isn’t all that useful anymore, since you know from the start who the victim is (I wasn’t intending to do that when I designed the game). In the original design of the game, you don’t know immediately who the victim is, and then you could be misled by the detective and his target, thinking they are the murderer and victim (although you could find the detective target in the world, but not the victim - but more on that later). Every location and person keeps track of everything that happens around them during this emulation. People keep track of everyone they see and the items they see lying around or in the hands of other people. Locations keep track of which items are lying around and which people are at their location. They use this information to form a timeline. This makes it very easy to later look up if someone has seen an item or someone else. I just have to look it up in their respective timelines. I was surprised how easy it was to implement a system like this in Javascript. Actually, the only thing that didn’t go right from the start, was the rendering. Especially animating the questions. If you’d take a look at the source code, you’d see that I’ve used quite a lot of “hacks” in order to get everything to display right. And it still sometimes doesn’t, but I can’t seem to find out why. Luckily this only happens rarely, so I don’t think it’s too much of a problem.

Another thing that caused a lot of problems was cross-browser compatibility. Browsers don’t even keep track of where the mouse is in the same way. Why don’t they just standardize these kind of things and all browsers keep to the standard? Browsers now implement parts of the standards they like, and do something completely different for the rest. That’s just retarded. For example, in Chrome and Safari you’re able to get the location of the mouse cursor inside the object it’s hovering over (in my case the Canvas displaying the game) with the variable “offsetX”. But in Firefox this variable doesn’t even exist. Nor does there exist an alternative. So in Firefox, you have to use the variable holding the position of the mouse on the screen (“clientX”) and substract from that the location of the Canvas-object (“offsetLeft” and “offsetTop”). And there are a lot of little annoying things like this. It almost makes me want to use some kind of pre-made game engine instead of my own HTML5 “engine”… Firefox also seemed to have some difficulties displaying a lot of .svg-images on the screen at the same time. Some of the images simply wouldn’t display. And every time you reload, the ‘broken’ images are different ones. So I converted all .svg’s I used to .png’s and only used those if the player is using Firefox. That’s why the quality looks worse on Firefox than it does on, say, Chrome or Safari. When I optimized the game for mobile devices, I didn’t have to do anything for iOS devices, everything worked fine as it was. Android, however, was an entirely different story. One of the main drawbacks of Android-devices is, in my opinion, that there are so many. And they all have different specs. And different browsers which don’t follow standards but instead decided to do things their way… Devices running Android 2.3 (and earlier, I suppose), can’t display .svg’s at all. Luckily, I had to use the .png’s for players using Firefox, so it was just a matter of updating my browser detection script to be able to detect if someone is using Android 2.3 and if they are, to make the game use the .png’s instead (which it already did if the player was using Firefox).
HTML5 + JS is a versatile, easy-to-use and fun environment to code in. But all the different browsers can be so frustrating…

Anyways, that’s it for part 1. I’ll probably write part 2 tomorrow, since it’s already getting quite late and I’ve got some other work to do. I’ll discuss some of the original design plans/ideas and why I had to cut them in the long run. I’ll also talk a bit more about what I would’ve done with the game if I had more time. And I’ll start posting the first reviews of the other entries.

If you’ve got any questions or want to know more, please tweet or mail me!
Check out all entries for #GPCv17 here!
Click here to play Murder Island on your PC.
And here to play it on your mobile device (let me know if something doesn’t work).

Grtz,
- Zed.

#GPCv17 - Progress!

My entry for the Game Prototype Challenge #17 is nearing completion!
With two more days to go, my game is about 99% finished. All that’s left to do is to make a win- and a lose-screen. The rest of the game has been tested (a lot) on all kinds of browsers and I’ve adjusted it every time so it would work on that browser. That took a lot of my time today. That and family coming over. But in the end, I’m happy with the little work I did.
There’s a lot I would have liked to implement in the game (I think I’m going to call it “Murder Island” for obvious reasons). But there simply isn’t enough time in one week to do some of the stuff I would have wanted to do. I will write about it in the post-mortem though. And maybe one day I’ll make it. This is after all the PROTOTYPE Challenge for a reason, isn’t it? If a prototype is fun, you should make a game out of it.
Tomorrow I will probably spend the time making final adjustments to the game and try to finish it a couple of times without cheating. That will be interesting. :P
I will probably upload it tomorrow. So if the name doesn’t change by then, you’ll probably be able to play it tomorrow in the evening (or whatever time it’ll be in your local time zone) at www.zedutchgandalf.be/games/murder-island (link doesn’t work at the time of writing, obviously).

Until then, here’s another screenshot:

Don’t forget to tweet or to pay me a visit!

Grtz,
- Zed.

#GPCv17 - Graphics!

I spent most of yesterday and today working on displaying everything on the screen instead of using the console, as I had been doing. I know I’m not good at making nice graphics (I’m trying to learn in between coding and work) and I didn’t want to use pixel art for this game, so I decided to give opengameart.org a go. At first, the collection is a bit overwhelming, but as soon as I really knew what I wanted, I found a lot of useful stuff on there. And after all, it’s still a hell of a lot faster than drawing everything myself… I also ended up using openclipart.org, another neat site, although it’s not really game-oriented. But (almost) everything on openclipart is in the public domain! Really useful!

Here’s a little teaser to show you the art style:
image

Please bear in mind this is only a prototype. I’m making this game, in less than a week’s time, for the Game Prototype Challenge #17.
Most of the graphics-stuff was actually done yesterday. I had a LOT of other work to do today, so I didn’t spend nearly as much time on the game as I would have wanted to. The little time I had to work on this game, I used to tweak the graphics a little and to improve performance and memory use (a lot).
I also changed the design quite a lot. I like it more as it now is.
I’m planning to spend most of tomorrow implementing the final controls (it’s all weird key combinations now) and probably tweaking some stuff.
I hope to have a playable version by tomorrow night. Then I can spend the weekend playing - tweaking - playing, and making this thing compatible with different browsers. Hopefully.

I’m happy with how smooth everything is going. HTML5 + JS is a nice combination for making videogames, albeit not all that performant. But it’s so easy to use I don’t mind for a game like this :P.
I’m really looking forward to see what everybody else has come up with and to play some of the other games!
I’ll probably post some reviews for the other #GPCv17 games on here after the jam is over.
Please tweet me any suggestions and/or questions you might have!
And if you’ve got time/no inspiration, check out some of @iandioch’s really great idea’s at his new blog!

Grtz,
-Zed.

#GPCv17 - Day 1 recap

So, I’ve decided to participate in #GPCv17. The themes this time are “ISLAND” and “ENTANGLEMENT”.
I had a hard time finding an idea I was satisfied with at first. But after some browsing on the internet, I did come up with a cool idea. Nothing’s been set in stone yet so I don’t want to elaborate too much about it on here. Basically, it’s about a murder on an island that you have to solve. You are basically “entangled” in a web of intrige on an “island” (see what I did there? :D). The “entanglement” part will come from other parts of the game as well, but I won’t spoil that (yet).
It’s technically a challenging game because of some of the stuff I’m using. I’ll probably write a post-mortem about it once the game has been released and maybe remember to put a link here. If not, just look at some of the next posts, it’ll be there.
Today I mostly designed the game. I started coding as well, but only setting up all objects I need and a bit of the basic stuff. I don’t have any art yet. I haven’t even decided what kind of art I want to use (although I do have a pretty good image in my head). It was mostly just planning today…
I am making the game in HTML5 + JavaScript without any engines or external libraries.
I will also release this game as my entry for #1GAM April, so the other stuff will have to wait a bit. Not much significant work has been done on the JavaFX engine or my site since last time. I did however finish the second of those four University projects today! Hooray!
Don’t forget to check out OneGameAMonth.com! And tweet me!

Grtz,
-Zed.

Minor update and Vault remake

This will be a rather short post, just to give you guys a quick update on how everything’s going.
First and foremost, I’m porting my own Java game engine (I used it in Vault and some other stuff, most of which I can’t talk about yet) from Swing/AWT over to JavaFX 2.0. This is a pretty big deal because the AWT-Swing combination I was using doesn’t work on Mac with JRE 7. AWT doesn’t like Apple Java 7. At all. Development on that is going rather smoothly, JavaFX is pretty easy to use and very user friendly. It will also make it a lot easier to use sound from now on, since the Java sound machine has been changed quite a bit going from JRE 6 to JRE 7. Using JavaFX will also make it really easy to port my games to tablets and smartphones (it will have built-in touchscreen support etc.).
And, maybe the most important part if you’d ask me, it will give a huge boost to performance!
I’ll probably redo Vault in the new engine for my April #1GAM. With some extra stuff added, of course.
In other news, I probably won’t be partaking in Ludum Dare 26. My girlfriend has got a rather important match (she does Judo) the same weekend and I want to be there by her side. Maybe I’ll have enough time to still do LD26 the same weekend, but I doubt it. If I do, however, I’ll probably release the Vault remake in May or June, since those both are really busy months at University.
Another reason I’m writing a quick blog post about this is that I’m building a new website, and I want to test to see if the RSS script does update smoothly when I write a new blog post. Maybe I’ll post screenshots from the new site this #ScreenshotSaturday, or from development on the engine. Whichever I can show by then. =P

Grtz,
-Zed

#1GAM February and March

I did not write anything last month because it’s rather hard to find time for writing these things. But I’m still participating in One Game A Month!

Last month, February, I uploaded a Snake game heavily inspired by the Snake games on old Nokia phones. That was a fun project since I had never programmed Snake before (lol) and I liked trying to make it as close as possible to how I remember the original ones. I then added this “5 Second” mode just for diversity. You can find Snake! 3210 here. The 8 bit music I used is public domain. If I ever find the original files and authors again, I’ll be sure to post them on my site. Both songs are 8 bit remakes of modern songs (although I did slow one of them down :P). I don’t think there’s much more to say about that game. You can always ask me anything via mail or via Twitter.

I have just uploaded my March entry to onegameamonth.com, so you can check that one out there! I did rush it quite a bit in the end, so you probably will find some problems… If I ever have time, I’ll try to finish it. I had a really though time making this one, not so much for the mechanics (in basics it’s just a plain RTS) but due to private problems. And getting tendinitis in my right hand (I wasn’t able to code anything for over a week). And becoming rather ill. Which cost me another week of development time. In the meantime, work for Uni just kept piling up. Right now I have 4 projects waiting for me which all have to be due in 4 weeks. One of them is a rather small JS application but the 3 other ones are pretty big things. And I have to start work on all 4 of them… As you might imagine, this isn’t really encouraging.
That’s why I ended up rushing the March game. And that’s why I’m releasing the source code under the LGPL. You can find all source code on GitHub. I also released it as part of the “OneGameAMonth” organization on GitHub, so if you’re a member of that, you should already have access to everything.
Maybe someone else finds time to squash some of the bugs or update the AI a bit. Or maybe I’ll come across the code in a few months and decide to finish it after all :P.
For this game I took a bit of a different approach to development. Most of the time I start with developer art or really, really simple pixel art when coding a game. But this time I started purely with the mechanics, rendering everything as plain squares: 

This did allow me to focus more on the game mechanics than dealing with missing resources and other bullshit that happens when rendering stuff. I also used Slick2D instead of coding everything myself (as I usually do). I had used Slick2D in the past but I didn’t like it that much. But it has had some giant updates the past months and I do like the new version. It’s not as customizable as I would have wanted, but it gets the job done quicker than doing everything yourself.
After I had the core mechanics down, I started drawing some sprites:

The only ‘problem’ I’ve had with this is that sometimes Slick2D wouldn’t load the sprites properly. I fixed it by catching all exceptions (I hope I got them all) and trying to reload the missing files. This seems to work as I never had any problems after that.
I did not get to doing animations nor sound however. This makes everything rather fast sometimes as it’s a lot harder to see what the opponent is doing. If you run the game from the command line, you can somewhat see what he’s doing if you read stdout. But this is really not the way I would ideally want it to be. The AI itself is really rushed too. It just checks if it has to help another one of it’s towers and does so if needed and then it looks for the weakest tower that isn’t his and attacks that one, except if it thinks it’s better to attack the player. A really, really simple implementation… And quite easy to beat. And just now I remembered one of the debugging ‘cheats’ is still in there, so it’s really easy to win a.t.m. :P. I’ll get that out first thing in the morning.

So, in general: terrible time management and a lot of misfortunes have made me rush out the game in the end. I’ll definitely try doing a better job for the next one.
First completely implementing the mechanics and only after that’s done starting work on the graphics was nice, since I could really concentrate on the mechanics and work them out just like I wanted them to be. I don’t think it can work for every game, but it did work for something as “static” as this. I will probably try this again in the future.
Slick2D has become a nice library. I would recommend it to people who don’t have a lot of time to make something themselves.

I think that kinda wraps everything up for now. If I think of something else tonight or tomorrow, I’ll probably post an update/extension to this post. But now I just want to sleep…
You can always reach me via mail or Twitter for just about anything.
Make sure to check out my previous OneGameAMonth games, if you hadn’t already. And take a look at other games on there.
Remember to leave some fan mail if you like their game! <3

Grtz,
- Zed

P.S. I did make this Turing-complete cellular-automaton in HTML5 somewhere in between February and March. Maybe I’ll turn that into some sort of game one day….

OneGameAMonth

I will be participating in OneGameAMonth this year.
In fact, I just submitted my first entry. I wanted to make something new, but real life happened. I had to move to a new place, there have been some issues in my family, I had exams at Uni and I became rather ill. Weather in Belgium really sucks most of the time :P
I did start working on a new project, but it’s far from finished. So I decided to use Vault, my last Ludum Dare entry. I didn’t even had the time to make it somewhat better. And I still have to write a post-mortem…
I did however get to test some HTML5 stuff, and I’m really loving it! :D
I will definitely use HTML5 in one of my next games for 1GAM.
I also got around to making a prototype of an old project I once started with a friend of mine. It’s a card game with some very interesting ideas. We’ll see where we go from here, but I would certainly like to finish it :)
You’ll probably hear more about that later.

As for my next 1GAM entry, it’ll probably be HTML5. I’ve got two ideas going on a.t.m. One is an Asteroids clone with an interesting twist, the other one is a roguelike. Kinda.
I’ve got lots of other ideas running through my head, but I haven’t decided which one’s I’ll keep and which one’s I’ll discard.

I’ll try to blog some more, since it’s apparently been over a year since my last entry.I’ve stopped doing the YouTube stuff because it was just way too time consuming. I did become a YouTube partner though, so maybe I’ll make use of that later on. :P
I still have some unfinished videos lying around. Maybe sometime I’ll get to editing and uploading them. But probably not…

Anyway, in two weeks Uni starts again and I’ll be taking a Python course. So I’ll probably do at least one game in Python this year.

That’s all for now. Thanks for reading! It became a bit longer than I had expected it to, but then again, I had a lot to say :P
Also, check out onegameamonth.com! Play some games, give feedback and make some games yourself if you’re a dev (or aspiring to become one)!

Camtasia.

Hey guys!

It’s been a long time since I’ve made any videos. Well, to be more precise, since I last uploaded something to YouTube.

This is because I normally use Camtasia to film all of my videos, but a week or so ago, Camtasia decided to not start up again. Ever. I was working on a complete new series (that even had nothing to do with Kongregate) but I’ll have to postpone that apparently.

I haven’t made any badges of the day for a while since there was something wrong with Kongregate’s launching of the BOTD. As some of you may have noticed, Kongregate launched them at totally random times, sometimes having the same badge for over 48 hours, sometimes having a new badge within 12 hours… I could not make a daily vid because of that ( I actually do have other things to do, believe it or not :P).

Also, University has started last month, so I don’t have time when the BOTD gets released to record and publish it immediately. I will however continue doing those new badges, your requests and challenges (maybe even some quests). And if I have any time left, I’ll try to do some other, random badges. That is, if Camtasia decides to work again, someday…

I’m sorry I couldn’t show you how to do the Skyrim quests, as those were/are probably quite challenging for some people.

That’s all I wanted to say. Thanks for reading, and I hope I get to make a new vid very soon! (I already contacted TechSmith - the company behind Camtasia - several times, but they don’t answer support apparently…).

Doing the Worm Badge, medium

Today I present you with a new format! :D

I’ll take a look (as much as possible) at the latest added badge on Kongregate. I film the first time I play the game, so you get all the weird stuff and my weird reactions to things. There might be some cutting around if things get to boring or if I die and have to start all over all the time. But I won’t cut if I die once (or twice or more, as long as it doesn’t get boring).

And today is the first episode in that brand new series (I don’t have a name for it yet, so please suggest :p).

I’ll do the BOTD things starting from tomorrow (or possibly the day after, but I’m aiming at tomorrow :-) ).

And furthermore, this is the first video where I audio-commentate. I hope my voice doesn’t bore you to much or anything.
Please react to all these changes and I’ll make sure to take every single comment into account for the next video!

Here’s the link to the latest vid: http://www.youtube.com/watch?v=jyMKaKK1hqg