Week 1: Back to work

Just a quick post this week. Sorry it’s late, but (as I will soon explain) there is a good reason for it!


So we are back at uni now. And we’re jumping straight into development. As our lecturer explained it: Semester 1 – make a game; Semester 2 – make it good.

Strangely, I have found myself doing almost no game development at all this last week. I’ve been totally taken up with documentation and scheduling. Part of this is due to assignments for uni, but also we have let our documentation slip a little over the break, so there is a bit to catch up on. It’s not as fun as game development, but it’s pretty important stuff, and letting it slip is not really in our best interests.

I’ve also worked out a timeline for our production this semester, including lock dates for features and levels, a rough testing schedule and major milestones.

I’ve set our major milestones around public play-testing opportunities. And that leads into the reason there was no post last night – we were running a play test at the IGDA Melbourne meet up.

We set up our latest build of LVL2 on a table and let a bunch of game developers loose on it. This was a very different experience to the Open Day play test. Game developers bring a different mind set to playing and observing games, so there was a lot more effort put into breaking things. And there were quite a few things that got broken…

On the one hand, this is great! We found out a bunch of stuff in our game that can be exploited or broken if the player does something that we hadn’t expected. Now we can go back in and try to mitigate that. On the other hand, we didn’t really manage to find out if any of the changes that we had made in response to the Open Day play test had worked, due to the different play styles of the testers.

But overall this was a very worthwhile experience, and we’re going to try to go along again as many times as we can before PAX.

And our big news – we’re going to be in the Bar SK Work-In-Progress Wednesday event for August!

So if you’re keen to check out where we are at, and maybe give us some helpful play testing data, come down to Bar SK on 23 August!

 

Mid-Year Break 8: Initial Public Offering

A whole heck of a lot happened this week – so there’s going to be a fair bit to cover here…


The main event of the week was the first public demo of LVL2 at Swinburne Open Day. I’ll get to that in a bit though, first I need to cover all the stuff that we did to get ready for that.

First of all, we needed to get our game into a playable state, and that meant we had a lot of work to do to make sure all of the systems that we had made were playing well together, that all of our levels linked together properly, all of the puzzles within each of the levels were solvable and that all of the other stuff like UI, menus, audio, particles and so on were in place and working properly.

This pretty much just boiled down to playing through the game a whole lot, and noting down everything that we noticed as broken. Then we’d go and fix all of those things and play it a bunch more.

But throwing a massive spanner into the works of that process was some sort of problem that was causing the game to fatally crash both within Unity and within a .exe build. This cropped up on Thursday and Friday immediately before Open Day.

Pretty much the worst thing that we could have happen at this point.

And just to add a degree of difficulty to fixing it, this would only happen to two of us. The other tester did not see this problem at all.

So: Sleuthing time. We had two initial candidates:

  1.   On Wednesday, one group member had accidentally been working in a newer version of Unity than the rest of us. We would expect this to cause some problems, but not really anything of this magnitude, and not without causing any other problems.
  2.   Also on Wednesday someone’s computer powered down in the middle of pushing a commit into our repository. Again, this shouldn’t cause this sort of problem, but we had isolated the problem as starting immediately following this commit.

So we spent a good couple of days trying to work out what was causing this crash, and how we would work around it. If we couldn’t fix it we were going to have to revert to an earlier version of the game, and lose all of the work we had done over the days since.

And then, we decided to look at what had been added to the game in that commit. There were a bunch of art assets, an animation, and a trail renderer on our player character.

So we turned the trail off – and the problem was gone.

And there was much rejoicing. Though we lost probably a whole day of testing and fixing to tracking down this one problem.


So – we returned to our proper schedule of playing the game a lot, then fixing what was broken.

And it was about 6pm on Saturday (aka, the day before Open Day) that we discovered that exiting the final puzzle of the game would cause you to spawn inside the ceiling.

Like so:

Now this was not what was supposed to happen. And seeing as how this only happened right at the end of the game – and only if you played through the entire game, it took a while to notice – and a long time to test any solution.

This one turned out to be related to the way we were recording and recovering position data on level transitions.

Basically our game works by travelling from Level 1 into Level 2 (which is a small space within Level 1), then down again into Level 3, then back up into Level 2 and then Level 1 and exit.

In travelling from Level 1 to Level 2 the game would record the game state of Level 1 so it knew where to return you to later on. But when you went from Level 2 to Level 3 the game would overwrite the Level 1 data with the Level 2 data. Then, when you returned to Level 1, the position and game state data were gone and the game would panic and throw you into the roof.

But we worked it all out, and by 2AM of the morning before Open Day we had a stable build ready to go!


And then Open Day went really well!

Plenty of people played Level2 and I manged to record a bunch of data to improve the game.

Probably the most important facts I took away were:

  1.   People played all the way through to the end, regardless of skill level or how difficult they found it. This was really great to see, as it meant we had the difficulty/frustration level at about the right point. No-one just breezed through the game, but no-one rage quit after only a few moments either!
  2.   And flowing on from that – our test build was way too long to play through. As a single player game, we couldn’t host multiple players at once, and with everyone wanting to play all the way through to the end, we often had one person playing for more than 10 minutes. And when we get to PAX that just isn’t going to fly.
  3.   But our levels and puzzles are mostly pretty solid. They still need work, but it’s the sort of work that makes existing puzzles better, not the sort of work that requires entirely rethinking your puzzle creation philosophy.
  4.   And always double and triple check all of your cables and screens and computers and audio and have spares of everything (we had a faulty data cable on our setup which had to be replaced before we could properly set up).

So we still have some work to do to get this to a place that is ready for PAX – but we are in a much better position than we were heading into the mid-semester break.


Because right off the back of Open Day, we started back at Uni Monday. So we have something like 80 days to get this game ready to fly at PAX and show off at one of the biggest gaming conventions in the southern hemisphere.

But, people travelled around the world in that long, how hard can it be to make a great game? Right?

Mid Year Break 7: Levels Within Levels

The last week has been all about pulling everything together and getting our game ready to show at the Swinburne Open Day, which is the coming Sunday.

This is going to be our first big public show of LVL2 so this is all quite exciting. And also a little scary!

We have three levels ready to go, and all of our mechanics set up and ready to play. We still need to do a whole lot of polish cos everything is in a very raw state at the moment.

Due to the fact that we have scrapped our previous game and started over from scratch over the winter break, we are essentially 12 or so weeks of development behind the other groups in the class. I think we’ve put in a pretty good effort to get ourselves back up to speed, but we are going to be showing a game that is significantly less polished and tested than our colleagues.

I’m going to be doing my best to keep this in mind as people play our game, but we’ll have to see how I go with that.

But before we get to that, we need to pull everything together.

Really all we still have to do is connect all of our levels together, test them, get some new audio and sound effects, make sure all of our art and assets are in place, build and implement a new UI system, get all of the menus and sub-menus plugged together and test everything as many times as possible.

Easy right?

Ahem.

The thing we’re going to have to concentrate on this week is making sure we know exactly what jobs need doing and exactly who is going to be doing them. On reflection this was a real problem last semester. A lot of times we would meet up as a group and find that various people had not done their tasks because they were waiting on somebody else to do something else, or they thought that it was someone else’s tasks, or any other number of excuses.

I’m also pretty concerned that a few people appeared to have just tapped out altogether. Now, whether this is a result of it being mid-semester break and them taking that 100% seriously, or whether it’s a case that they are just done with this project I don’t really know at this stage. Regardless, we pretty much have to move forward under the assumption that they are no longer contributing to the project and it’s on the rest of us to get everything done.


In other more cheery news (this under the line bit is quickly becoming my favourite) I have officially published a game!

It’s a narrative adventure that I made in Twine last year.

You can play it in your browser by going here: https://kipslife.itch.io/babel

It’s called Babel and is about an ill-fated archaeological party searching for the site of the Tower of Babel.

also created my first ever Twitter bot. @Towns_of_Aus is a bot that tweets out facts about little known Australian towns twice a day.

It’s probably still a little repetitive at the moment, but I have some ideas about how to make it a bit better. It kinda reads a little bit like a Dwarf Fortress summary at the moment, so I’m gonna have to do some work to make it sound a bit more natural.

I made it using cheapbotsdonequick.com and it was really easy to set up and get running. I would recommend giving it a try!

Mid Year Break 6: Me Myself and UI

OK, no more wallowing in self reflection, this week I’m actually going to talk about making some stuff!


This week I’ve been working on our main menu.

I posted a pick of our logo last week, but if you missed that, here it is again!

I’m using this as the basis of the games main menu, with each of the letters being a button. The first “L” will start the game, the “V” will display the game controls, the second “L” will access the credits, and the “2” will quit.

Our artist made all the parts into separate assets so that I was able to build the landing screen in Unity so that it looks exactly the same as the logo.

Then I set up each button to load the respective menu page, or to load the game or exit, or whatever. It did the job that it was supposed to, but it wasn’t particularly exciting or pretty.

One of the key concepts of our game is “Levels within Levels”. Within each level, the player can enlarge certain objects and enter them, to find entire new levels within. Basically, rather than finishing a level and entering the next, the next level is within the level currently.

So to step into this mindset, I made an animation to draw the camera into each button as it is pressed – like so:

That made the buttons feel a little more dynamic, but the info on screen was still a little static.

Here is the instructions page as an example:

This page would just appear once you entered into the “V” in the logo. This time, I decided to animate all of the icons jumping up from the bottom of the page and settling into place in a kind of cascading effect.

It ended up looking like this:

Which looks pretty nice I think.

Obviously these are all works in progress, and are likely to change before we are done, but it’s a pretty simple addition and adds a bit of pop to the game when we have people come and play and show it off.

Clearly, we still need to make the actual game. That bit is pretty important.

But to close – here is a GIF of everything added together:

Disclosure: I am not a UI designer and haven’t had any specific UI training. This is just a record of my bumbling through the process and learning to make something that looks good. Feel free to take whatever lessons that you want from this, or to quietly scoff at my amateurism.


Whew – feels nice to actually be talking about making something.

So, if anyone has looked, I had a bit of a boo-boo over the weekend, and the last post has been lost. (If anyone is downloading and saving posts as they read them it might be recoverable? That’s probably not happening…)

Anyway, I now have an SSL certificate installed and have set up some security measures as well as automated backups.

Kinda learning/making this blogging thing up as I go, so it might be a rocky trip but we’ll end up somewhere…