Wednesday, 13 May 2015

Summing Up

Hello, readers, for what will likely be the final time.

Well, the dissertation is over; I set it up, carried it out, and now here we are, waiting for the grades to be distributed.

Not really sure what to say, now that I'm here. Thanks for the support? It's been fun, I guess?



Truth is, it's been a project. I set deadlines and worked on them, sometimes I hit them, sometimes I missed them entirely. I think I'm satisfied with the result of the dissertation, as I've learnt a thing or two over its course that I doubt I would have otherwise.

The goal was to get me learning C# to an applicable degree, and I think I've succeeded with that. Even if I can't quite nail every single line of code off by heart, or if I don't know every technique in the book, I know where to look to find them now, and I have a much larger backlog of my own code to look at for help.

And on top of that, I've learnt more about using Unity; working on six projects (five more than I would have originally this year) in the engine will do that, I suppose. So I've got that going for me, as well.

And finally (at least in this little list I'm doing), I've continued to learn more about myself and my ability to self-manage. Throughout the project, I failed to hold myself to deadlines when I became complacent and allowed the work to pile up until the last minute. Whether this is an issue with my time management or simply a lack of motivation to hit the deadline, I'm not sure. But those are areas that I can work to improve on.



So, then, for things learnt over the course of the dissertation, we've got:

  • improving my knowledge of C#.
  • improving my ability to use the Unity software.
  • improving my understanding of my own ability to self-manage.
I'd call those useful skills, with the career I have in mind. I probably could have made better use of this dissertation and my time this year in general to improve my coding skills, but then I could have done a great deal worse. I'd call this a fairly good result in that range of possibility.

Maybe about a 12 or 13 on a d20 roll.



So, then, where do we go from here?

This blog is pretty much done. I doubt I'll have any further use of it once I've received my grade. However, depending on how things turn out for me, I may begin another development blog using this same profile, so if you're desperately interested in reading more of my exploits in game development, then keep an eye on it.

As for me, hopefully my work this year will give me at least a passing grade, and I'll graduate from UCS this summer. Once I'm sure I've got the marks to leave with my degree, it'll be onto job hunting for me. With any luck, I'll be able to find a decent position suited for my abilities and preferences with game development, and start making games, as well as a modest living. With a little more luck, I'll be able to do it quickly once my grades are secure.

I'm apprehensive to push my luck with any speculation beyond that.



It's been an interesting year, full of learning and the like. Hopefully, I'll be alright going forward, with everything I've been taught. Only time will tell.

Have a very good day, and a wonderful year, readers. Wish me luck!

Friday, 8 May 2015

Second Semester Final Project COMPLETE

A fine day to you, readers.

Well, I certainly had some interesting coding problems in the final run-up to completion; I managed to completely lose track of the way the code worked for the sideways perspective of the game-view (necessary to ensure proper generation of the levels via the code), and ended up having to make a bunch of edits and compromises to the way it works on the fundamental generation code.

But, it's good that I encountered these problems when I did, rather than any later; the issues have been resolved, even if I'm not overly fond of the resolved result. It's really just niggling annoyances, things like having to switch the "width" and "height" variables around in some places, but not in others, makes the code less user-friendly and intuitive. But I made a number of comments explaining it where it's needed, and it's not a serious problem either way.

With those bugs out of the way, I am happier to say that, after the tutorial levels (the first four grids, which introduce the base mechanics of the game), there are two further levels. They're not as refined as a professional level should be, but they're enough to demand some thought from the player before making a move.



Personally, I'm happy for these two levels to roughly represent some later stages of gameplay, the first one showing perhaps an early to intermediate level, and the second a more advanced stage, either intermediate or late level, requiring more careful thought and possibly some experimentation by the player.

Along with the other levels, this should draw a rough picture of how the game will stand if development of levels were to continue without any additional mechanics or features. Of course, that isn't to say that more mechanics couldn't be introduced, and many puzzle games make great use of adding more elements to the gameplay, making the game more and more advanced as the player continues to play.

If I had to guess, the most likely route of new mechanics would take one of two forms: new Bubble types that interact with the rest of the grid in different ways (perhaps popping different patterns of surrounding Bubbles, or which only affect other Bubbles if popped directly). The other possibility would be some restricted player ability to add Bubbles to the board themselves, letting them bridge or fill in gaps on the board, which would function nicely with the "Line" Bubbles, which require that constant bridge to continue going.

Overall, I'm satisfied with this game where it stands. I've learnt a bit about managing grids in code (such as via Multidimensional Arrays), and maintaining absolute understanding of the way the code may compensate for in-scene variances, especially with variances of perspective.

And that's that. The end of my dissertation. I've handed in all of the Conversion Phase and Final Project files, and all that's left to do is to wrap up this blog and call it a year. I'll post another update tomorrow with my full thoughts on the dissertation, including how it went, what I learnt, how much I'm going to miss all of this, the usual stuff.

But, until then, I'll just say thank you, readers, and have a wonderful day.

Wednesday, 6 May 2015

Second Semester Final Project Update 4

Hello once again, readers!

Well, this is the final update for the Final Project, both of this semester, and of the dissertation!

Progress has been somewhat slow over the past few days, with me taking a more relaxed workload in face of the end of the year, but progress has still been made in many areas of the game.

First, there's a bunch of new things to improve my game:

A restart button, allowing the user to completely reset a level at any given time, restoring the bubbles on the field and the number of clicks they have available. This really just does the same thing as starting a new level, calling most of the same functions, excluding those which progress the game by increasing the Current Level number.

More fixes to the game code, allowing the size of the grid to be set larger and larger (on a level to level basis), without any elements (such as bubbles or parts of the board) being cut off by the camera. This is really just a few extra lines of code which change the position of the camera based on the size of the grid that gets loaded; simple fix, but it works for all grid sizes tested so far.

Tutorial-style text, which is displayed during the early levels of the game to help the player understand exactly what's going on and how to play the game, without simply trying out a bunch of random inputs. Trial-and-error (in my opinion, at least) isn't the best way of teaching a user how to make use of the most basic mechanics of this type of game. I also threw together a basic arrow in 3DS Max, imported it into Unity, and duplicated it a few times in a Prefab object to make a simple indication system, marking out particular bubbles of interest for the player.






Thus far, it's been a decent few days for the project. My main concern going forward is design for the mid-to-late game levels; I still have to put a lot more time and thought into it, but from my early attempts, it's proving much more challenging to come up with sufficiently difficult bubble layouts than I anticipated.

I'll give it a good go, but that may be the weakest part of my project upon its conclusion, which is unfortunate considering that this is a puzzle game I'm trying to make.

Just a reminder, the final submission date of this project is Friday the 8th of May, giving me a limited time to finish it up. I'll post a final update on Friday, summarising my final progress, as well as a closing post, wrapping up the dissertation and giving my thoughts on the project as a whole and the progress I feel I've made during it.



Until then, I wish you a very good day, readers.

Friday, 1 May 2015

Second Semester Final Project Update 3

A fine day to you readers!

It's been a busy couple of weeks. My group project final presentation was completed yesterday, with a long run-up of prioritising bug fixing the game over sleep, along with everything else. That regrettably includes the dissertation project, meaning that progress since the last update has been minimal.

With today being scheduled as the final day of the project, I am forced to conclude that the final project simply isn't in any kind of state to be called done; in its current state, it barely constitutes a proof of concept, let alone a prototype. On top of this, there is still plenty more for me to learn from the game, regarding both code and the Unity engine.

For these reasons, I have made the decision to extend the deadline of this project to the final deadline of the dissertation, Friday the 8th of May, giving myself another week to continue learning and refining the game.

Honestly, I personally doubt that the project will surmount to anything incredible even with the extended deadline, but perhaps I will have enough time to make something that demonstrates at least some basic competence with Unity and C#.

A final post concluding this project should follow on Friday at the latest, with perhaps a mid-week update of progress, to keep readers of this blog informed.



Until then, have a fine day readers!