My BSc in Computer Science – Results Summary

The past three years at the University of Hull have flown incredibly fast; A good sign, that I have thoroughly enjoyed my time there studying for my BSc in Computer Science with Games Development. In fact, it was probably one of the best decisions I ever made, despite how hard it was to take up the challenge as a 27 year old with commitments and nearly 10 years since prior academic study.

My plan will now be to continue on at Hull University to study a post-graduate MSc degree in Computer Science. Relocation and seeking employment will be on the cards aferwards, but I can rest assured having ‘put my all’ into the past several years, I am proud of the results I have acheived and I certainly never expected to do as well as I did, acheiving a First Class honours degree. Below is a summary of my results from the past three years:

Year 1

Module Mark Credit
Computer Systems 73 20
IT and Professional Skills 80 20
Programming 1 92 20
Programming 2 96 20
Quantitative Methods for Computing 87 20
Software Engineering and HCI 77 20
Year 1 average

Year 1 average

Year 2

Module Mark Credit
2D Graphics and User Interface Design 89 20
Advanced Programming 83 20
Artificial Intelligence 78 20
Networking and Games Architecture 88 20
Simulation and 3D Graphics 94 20
Systems Analysis, Design and Process 83 20
Year 2 average

Year 2 average

Year 3

Module Mark Credit
Commercial Games Development 81 20
Games Programming & Advanced Graphics 94 20
Mobile Devices and Applications 83 20
Visualization 86 20
Development Project 88 40
Year 3 average

Year 3 average

 

A ‘Mature’ Reflection:

To any people out there reading this who may fall into the mature student catagory of being a little older and thinking of studying a degree, I would say this; If you are passionate about the subject that you want to study, have proven your interest in it through personal projects, and can cope with the lower standard of living while you study, then go for it and don’t look back. It’s not just about career development, but also a time of personal acheivement and self discovery, where you can find much about your own abilities that perhaps you never knew you had. I think many people can muddle on in life not knowing if they would be any good at ‘this’ or ‘that’. A formal degree can help answer this, giving you confidence in that discipline, which can be it’s own reward. When you realise that generally speaking, unless your lucky enough to be the next Einstein, people achieve great things not through raw intellect or genius, but ‘hard work’ and effort. In this regards, mature students probably have a motivational advantage, since they have more to lose, less time to dawdle and life experience to help them focus.

 

Advertisements

OpenGL Cross-platform PC/PSP Game Coursework

Last semester as part of the Advanced Graphics module of my CS degree at Hull University, we were tasked with a group project to produce a cross-platform OpenGL mini-game for the PC and Sony PSP based on a specification. The game premise was to move around a 3D ‘maze’ consisting of four rooms and connecting corridors, avoiding a patrolling AI that would shoot you if within its line of sight. The objective was to collect 3 keys to activate a portal to escape and beat the game.

The groups were selected at complete random with 4 members. As per usual, group coursework assignments are particularly difficult due to the extra concerns of motivating members and assigning work and by year 3 of University, you get a good idea on the best way of operating within them to secure good grades. I went in with the mindset of doing as much work as possible after we assigned tasks. Hopefully each would carry out their allocated work, if not, I’d just go ahead and do it, no fuss. Luckily one chap in my group was a friend and he did an excellent job coding the AI, mini-map and sound while I worked on coding the geometry, camera, lighting and player functionality etc.

1

Mini-maze model

Static environment lighting

Static environment lighting

Cross-Platform Limitations:

Having worked with OpenGL and shaders last year for my 3D ‘The Column‘ project, it was some-what limiting when I realised that the PSP didn’t support them and that fragment-based lighting was a no go. With one requirement of the game being a torchlight effect that illuminated the geometry, this would therefore mean that for PSP compatibility, vertex-based lighting would need to be implemented and that meant tessellation of primitives to prevent the lighting looking very blocky and…well very 90’s. Luckily the PSP did atleast have support for VBO (Vertex Buffer Objects) which meant effectively each tessellated model could loaded onto the graphics card only once to improve performance.

Unified Code

An interesting aspect of this project was the required consideration for a consolidated code-base that where possible allowed shared functionality for both the PC and PSP platforms i.e limiting how much platform specific code was used. This was essential since the game would be a single C++ Solution for both platforms.

I designed the code structure based around principles Darren McKie (the course lecturer) described, and produced the following class diagram that reflects the final structure:

Unified Cross-platform Class Diagram

Unified Cross-platform Class Diagram

The majority of game code resides in ‘Common Code’ classes that are instantiated by each particular platform ‘Game’ object. Certain code such as API rendering calls were kept platform specific but made use of the common classes where necessary. A particular nice way of ensuring the correct platform specific object was instantiated was carried out using ‘#Ifdef’, ‘#ifndef’ preprocessor statements and handled by a ‘ResourceManager’ class.

As mentioned earlier, per-vertex lighting had to be implemented due to PSP compatibility. A primitive with a low number of vertices would thus result in very blocky lighting. To prevent this I created a tessellation function that subdivided each primitives vertices into many more triangles. I played around with the tessellation depth to find how many iterations of subdivision could be achieved before inducing lag and was very happy with the lighting result considering there is no fragment shader; a given for today’s modern pipelined-based rendering.

Active Portal

Active Portal

The PSP implementation proved more tricky due to getting to grips with the PSP SDK and having access to very little documentation, however the game was successfully implemented onto a PSP device and ran with decent performance after compressing the textures down and removing geometry tessellation to allow for the PSP’s limited memory capacity.

The game was written in C++ and  the following libraries and software were used:

  • GXBase OpenGL API
  • Sony PSP SDK
  • OpenAL
  • Visual Studio 2012
  • Paint .Net

The “dumbing down”of the games industry

Technology has moved on in the games industry, that’s for certain. Hardware, programming languages and business processes have all improved i’m sure many would agree, but does the Nth fold increase in technology also translate 1-to-1 to game play and design?

I’ve been thinking a lot about that question and I’d first like to set some context by going back to a time before PC gaming was conceived or even the first 90’s era consoles were around to change the demographic of the average games consumer forever. The days of the Commodore Amiga in fact is what I want to go back to, an era that few under the age of 25 will have ever experienced during it’s peak. The Amiga i’m confident in saying was massively ahead of it’s time in terms of hardware and gaming innovation, and not just a little bit. Built on top of the great success of it’s precursor the Commodore 64, it’s perhaps unsurprising why the system has such a mythical “stuff of dreams” status now, like did it really happen or was it just my imagination?

A Past Era:

Launched in 1985 (Amiga 1000), specs wise it featured an 8-bit 4 channel stereo sound chip, CPU co-processors (unheard of at the time) and graphics capable of up to 4096 colours at a max resolution of 640×512. These specs were incredible and it took other systems such as the NES or PC DOS gaming over 7 years to get on par with the Amiga. Now it’s all good listing specs but lets put that into perspective by comparing with another system of the day:

Shadow of the Beast – Amiga – 1989

Ninja Gaiden 2 – 1990 – NES

For reasons like the comparison above, it’s startling to me that so few gamers today have perhaps even heard of the Amiga, and strange how the NES and Sega Master System shook the world of gaming forever when they arrived despite being hugely inferior. To me as a kid in the early 90’s, I looked at the NES and thought…whats the big deal, I’ve been playing better looking and sounding games then that for years!  Shrugged my shoulders and went back to playing my dads Amiga 500. I guess looking back I was lucky to have access to an Amiga and be part of the game hobbyist scene back in the day when your average person just didn’t play computer games.

Ultimately hardware isn’t everything and the reason why the consoles made such an impact boils down to price and the fact that children could have one in their bedroom (myself included). Gaming wasn’t just for powerful multimedia systems anymore, consoles brought relatively cheap systems that every family could afford to have and thus marked the final death knell of the Amiga platform by the mid 90’s. Commodore had squandered a huge technological advantage for years and it’s failure to react to rising competition brought it to it’s knees. It’s also worth noting that as a games platform the Amiga was massively successful in the UK and across Europe, but did less successfully in the US primarily due to a larger interest in the Japanese arcade gaming culture rather then home computing. Thus the majority of Amiga games (of which there are literally thousands) were made in Europe and in fact the UK pioneered much of the games programming advances of the age that led to some greatly successful games. British studios like Sensible Software and the Bitmap Brothers, and publishers like Psygnosis are legendary and we owe them a lot for what they achieved back in the day, much of which is taken for granted now and forgotten as the fast moving games industry moves ever on like a enraged bull, never stopping to look back at lessons already learned decades ago.

Chaos Engine – Amiga – Bitmap Brothers – Subtle complexities to a simple game

The Stifling of Innovation and Creativity:

To the topic at hand and the question I started the article with. Has game play and design regressed since those days and if so why? Bluntly and unequivocally yes in my opinion,  but the why of it will take some explanation. To understand why you have to look into the past of gaming hence my above context on the Amiga, it’s unavoidable and not simply nostalgic musings. It’s the logical thing to do when analyzing something that has been great in the past, and has become less great over time. As admitted, graphically things have improved, but the root of problem is something that has caused a stifling of innovation leading to regurgitation of the same copy-cat game over and over with different artwork for years on end. The end of the 90’s was perhaps the last true great period of games innovation and creative freedom that professional games developers had. You only have to look at the quality titles released on the PC between 95 and 99 to realise this.

I’ve researched various articles and read interviews featuring leading people who worked in the earlier days and you see similarities in how they view the industry and how it has changed for developers. The core of it seems to be due to the refusal of the increasingly powerful publishers to fund games that at not a 100% safe bet (Call of Duty, Halo etc) and this has led to a massive drop in innovation that is only now perhaps being turned around by the injection of new creative blood by the Indie developer scene. Fueling the increasingly tight and controlling grip of publishers is the increasing vast sums of money that the industry now generates. Many people ARE aware of the lack of innovation but perhaps feel that there’s just no ideas left? Well there’s plenty of ideas around, the problem is that no large publisher would touch it unless it’s proven and that’s the crux of it.

Populous 2 – Amiga – Bullfrog

John Hare, a founder of Sensible Software (one of the biggest and most successful games company’s of the 80’s and early 90’s) gave a brilliant frank and interesting interview on You Tube where he discusses that during those days, publishers were happy to have talented people on board and they pretty much left you to make what you were passionate about and encourage you to push your creativity. It’s not surprising then that if you were ever motivated to go back and play Amiga games now and get over the aging visuals, you’d find a myriad of game genres, some still today undefinable such was the creative freedom back then. This issue of publishers forcing developers to copy existing games, adding just a new paint job is paramount to what is holding back the games industry in my opinion. Yes there’s Kickstarter and Steam Greenlight and they are all well and good, but I feel that the large publishers need to have a dramatic culture change if were are ever truly going to return to a golden age of innovation in game play concepts, design and execution. Perhaps the Indie scene will be the catalyst that fuels the publishers to change and allow more freedom to professional studios?

While the Amiga had it’s day, its fair to say that it was a very 2D orientated  platform and with the coming of 3D and it’s dominance in professional studios it’s not surprising that small man teams of maybe 3 or 4 can no longer produce the par standard graphical expectations in games expected for modern AAA title publishers, whom require dozens of developers and artists and millions invested to produce some of the photo realistic wizardry modern shelf titles feature. But are the incredible graphics and animation a fair trade for the disadvantages it brings?

Level design is something that has most certainly suffered from the introduction of vastly detailed environments now expected in any FPS game. It’s a simple matter of complexity, the more you introduce into a scene, the longer it takes to produce. The longer it takes the less time you have to make complicated and intelligent level design. Thus many “on rails” shooters are just that, a monorail ride with the occasional dead end to “confuse” said player and following satellite navigation way points that show up on your automap, even if the game is set in a medieval fantasy universe *cough* Skyrim.

Personally speaking photo real graphics are not a fair trade and ultimately it’s the game play that keeps you playing a game long after you’ve become desensitized to the pretty visuals. Many hugely successful Indie titles have shown this, surely it’s time for the big AAA studios and publishers to say “let’s strip down the cluttered visual complexity, take a risk and focus on game play “. Wouldn’t that be something? That and actually playing games rather then spending 30% of your time watching dialogue cut scenes. At times I think games have forgotten their roots in the arcade, and have borrowed far to heavily from Hollywood.

A change in audience & social gaming:

Another key factor in the the evolution of the games industry is tied with in turn the evolution of it’s audience. Back in the Hobbyist days of gaming, a period i’d widely class from 1980-1999, most people who sat indoors playing video games were looked at a bit strangely. They were geeks, nerds, predominantly male and it most certainly wasn’t a cool thing to do. They were probably above average at school and i’d be as bold to say statistically more intelligent or at least have an intrigue in things they didn’t understand. This would manifest itself in a way that if you presented a challenging game to a geek, they would be much more likely to try and figure it out and spend time trying to overcome the complexities, like a piece of homework or a maths question. A less motivated individual with less intrigue would put the game down, upset about it being too hard and never play it again. Therefore the audience in a nutshell back then was more mature and forgiving about games and it allowed a degree of freedom to developers to really go to town on sophisticated game play elements that would take time to master and learn, but ultimately paid off long term over simple repetitive games.

Now as pretty much most are aware, nowadays games on the whole are streamlined and simplified for the new average audience demographic, whom is not a geek, nerd or in fact *shock* actually male. Social gaming has brought women into the gaming consumer audience and rightly so, women should be part of it. Men too have lapped up the new social gaming phenomenon but irrespective of gender which is irrelevant, the key point is that the “nerd gamer” is no longer the average demographic and thus games are now being effectively aimed at less patient, casual orientated “non-gamers”. Social games are not games in their truest purest sense, they are not escapism, or adrenaline pumping or a visual feast or inspiring, they are simply a feedback-response stimulus loop that passes time for the bored individual. Engineered game play featuring staggeringly simple repetitive tasks with a carrot style reward at the end. Real games ARE more then that aren’t they? I think so.

Conclusion:

The whole evolution of the industry is a double-edged sword. It’s not all bad certainly, there’s never been an easier time to get into the games industry and there’s certainly a lot more jobs around with better pay then there used to be, however along with vast sums of money has come the bureaucracy that is rife within what is essentially a creative industry and there are startling parallels with the movie industry. Like with games, the increasingly powerful few have begun to control too much of what directors make and the many unneeded remake movies are effectively synonymous with the copy-cat games made today in the games industry. But, I wont lay the blame just on publishers. John Hare mentioned something regarding the fact that the industry is saturated with content and most of it not good or to a high enough quality. This waters down the expectation of what a good game actually is, and with more and more game developers coming into the mix this could spiral further. His solution? Less developers/designers and who are to a higher standard. Is that the answer? I’m not sure but poor games will in-turn inspire more poor games, it’s a vicious circle that we must break and ultimately in my opinion it should start from the top AAA studios and work it’s way down, not the bottom up.

It’s a topic I feel passionate about and there’s no easy answers but that’s my take on it and an opinion from someone who has played far too many games over the past 29 years and hope to influence the games industry in some way (even if just a nano) by making games myself. I hope that in time, developer creativity will flow however it wants wherever it wants and only our imagination will limit where games can take us.

Lemmings – Amiga – DMA Design