Sunday 12 January 2014

Christmas Blog Update - December 2013



Wowza, its Christmas and nearly the end of 2013, and i'm half way through the first year of University. The past few months have defiantly been interesting and productive. Firstly the big move to a big city from a small rural island, was the first challenge I had to overcome, but after about a month I felt I was starting to settle in and get a routine going. This blog update is to prove that I am in fact still alive (just about) after a busy Christmas 'break' catching up and revising everything that we covered during the first semester of University, mostly Programming! I will hopefully resume blogging on a weekly basis until the end of this term when the workload once again reaches that tipping point.

SoulBound Update

Over the last month me and the team have been focusing on the design and how the mechanics will work, including our ambitious but vital Spirit World mechanic as this is what makes our game different, and without it the game becomes a generic Zelda style RPG. Basically the player will be able to access the parallel spirit world in two ways, either by dying or at specific points throughout the level, which would act as checkpoints (Kind of like DmC). When in the spirit world all of the enemy characters will turn into their spiritual versions of themselves, which could either be easier or harder to defeat than their physical selves. An example of this would be a typical fantasy troll, which are not that intelligent and somewhat weak minded, but they are very powerful and dangerous due to their size and power. In this example the player would be much better of facing this enemy in the spirit world. If the player dies instead of entering via checkpoint it will be more of a second chance of mechanic (Similar to Gears of War and Guild Wars 2) where you would have to defend your physical body from spirits in the spirit world, and then resurrect yourself by searching for a specific item in the spirit world. Once you die in the spirit world its game over and you restart from last save.

That's it for this week, finally here is a link to our website and the most recent logo for SoulBound

Voodoo Gaming - http://www.voodoo-gaming.net/projects/soulbound/


  

Sunday 24 November 2013

Weekly Update 4 (18th November - 24th November)




Just a short blog post this week, with just a few updates as I am very busy hitting deadlines, and preparing for the mid-term presentation for Project Emperion. Also to be covered this week briefly will be the big news that the next generation is finally here! 

Whats been posted over the Week?

Again, only one update this week, due to work deadlines. This blog post called 'Project Emperion - UDK Basic Animation Example', included a short video simply demonstrating a few animation examples, and showing our flame torch particle effects. This video will be shown during our presentation, that we are having a test run on Wednesday for the final assessed presentation in a few weeks. This will allow us to practice our presentation skills in front of a large audience, and receive feedback on what we should change/improve over the next few weeks. After the presentation there will be a short Q&A, where lecturers and peers and ask questions about our game, which we may have not been clear during the presentation.

Another video that we will show during the presentation, which I haven't posted to the blog, is 'Project Emperion - Basic Combat and Level Demo'. This shows what we have got so far, in terms of map, camera and combat system. Its really basic and all of the assists are only placeholder so far, but its good to just show that we have actually started production and its not just words.

Finally, the group has decided on a official name for Project Emperion, which is SoulBound. Further updates will be titled SoulBound Update, instead of Project Emperion Update. Reasoning behind the name will come clear in future updates, when story/plot is finalised. 


What's going on in the Gaming World?

The next generation is finally here! Well for the US anyway, as the PS4 won't launch in the UK, and many other countries around the world this Friday. Both consoles have had various problems, which seem to be happening far to often. This is simply because of the internet, everyone who has a problem is likely to post about it over, Twitter, YouTube and forums etc… This makes it seem like a lot more people than there actually is are having problems with next-gen(now current-gen?) consoles. Sony announced that they only 0.4% of their PS4s produced and sent around the world will have issues. Microsoft has yet to confirm exact statistics, but lets hope its not widespread.

Personally I have got my Day One Edition - Xbox One, sitting at home awaiting my return this weekend, but I am planning on getting a Playstation 4 as soon as I can afford it, properly sometime next year.



Next week I will post about the industry lecture I attended last week, from the lead programmer at Codemasters. 

Saturday 23 November 2013

Project Emperion - UDK Basic Animation Example


This video below will be used within our mid-term presentation to showcase how our group will be using the animation tools within UDK (Matinee), to dynamically change our tech demo level during play. All the models within the scene are only temporary and will be developed over the coming months to fit our final level and art style. Finally the video also shows our torch particle effects and a basic cinematic camera in action. More project updates soon…





Sunday 17 November 2013

Weekly Blog Update 3 (11th November - 17th November)




Introduction

It's been another busy week at University, and its not going to get any easier anytime soon as we draw closer to unit deadlines! This week I will discuss whats been going on, with the blog and my course. I will also give a quick update to Project Emperion including, a few basic plot/story details which will tie into the games mechanics. Also a possible name for the game that the group has agreed on.

Whats been posted over the week?

Once again there has only been one update to the blog over the week, which was about the coursework section of the 3D Modeling unit on my course titled, 3D Modeling Proposed Artefact. This will be the first of many updates about my coursework progress to be posted on the blog since as mentioned in the post, I have to submit a reflective report with all of the problems etc.. I encountered during the creation of the model, which by the way is the ever popular, Boeing AH-64 Apache Attack Helicopter. In short post I introduced the unit, and the artefact I want to make, including some blueprints and reference images that I will be using extensively throughout the academic year, to make the model as realistic as possible. After the modeling process is complete, I will look at animating the rotor blades which I can include in the scene fly through video, that is part of the assessment.   




What have I learnt in this weeks lectures?

In this weeks programming lecture and seminar we covered what pointers are in C++ and how they are fundamental in games programming, especially console programming (which is a optional unit in the second year) because of extreme memory limitations. Pointers are used in C++ to store temporary data in memory known as the 'free space', and once that data has outlived its usage, such as an integer variable (typically 4 bytes in memory, doesn't look like much but mounts up when building a game!) it can be deleted and the memory will be returned to the 'free space' so that it can be used later in the program. The important thing to know and understand is that to declare, lets say a integer variable, a * symbol must be used to tell the compiler that this new variable is a pointer. This then pulls memory from the free space, exactly the right size for the data type and puts a virtual bookmark where this data begins. This bookmark/pointer can then be referenced anywhere in the program just like a normal variable. We can also use the & symbol with a pointer to assign another variable to use the data from that bookmark/pointer.


Project Emperion Update

This week the group has spent the majority of the time during group meetings, developing the plot and revolving game mechanics around it. Also we have decide give our game a official name, Soulbound. This will become clear when I update the blog in the future when the plot has been fully discussed and confirmed. 

   




Thursday 14 November 2013

3D Modelling Proposed Artefact




What's the Unit About?

In this post I'm going to cover what I have decided to model for my core 3D modelling unit at University. The task is to create a 3D Model with basic animations, which demonstrate what has been learnt throughout the course of this unit. This model must be completely made from scratch, and not downloaded pre-made (obviously), also we cannot use tutorials found on the internet, as it will be identical to the tutorials model. At the very least the model must contain:
  • Mesh Edited Objects
  • Lofting
  • Spline Surfaces (NURBS)
The model must be made within 3Ds Max, and should be shown to the examiner in the form of a 30 second video, demonstrating animation etc… In addition to the artefact, we will have to produce a 1,000 word reflective report, which will be about how you went around creating the model, all of the problems you encountered along the way and how you got around them, to produce the finished model. 

My Proposed Artefact

We had a lot of freedom on what we could choose to model, but it had to be real, man-made and couldn't be character models, or weapons such as knifes or guns, since they are too simple. After searching thin internet extensively for possible models, I came across a model, that I thought would be both challenging but possible for me to produce. This is an Boeing AH-64 Apache attack helicopter, very famous in both the military and gaming world, as seen in games such as Call of Duty. I have included Below are a few reference images and blueprints that I will be using, and I will be updating the blog with my progress up till the hand in date which around March 2014. 















Saturday 9 November 2013

Weekly Update 2 (4th November - 10th November)


In this weekly update I will cover what has been posted on the blog, which actually isn't much this week as i've been quite busy with University work, but I still have a few things to cover from this week that haven't been blogged about, namely an Aardvark Swift industry recruitment lecture I attended on Wednesday. This week I will also give an overview on what has been covered in lectures this week, namely programming and 3D Modelling. Finally I want to cover this weeks top game industry headlines, which like the past month has obviously been dominated by next generation news covering Microsoft's Xbox One and Sony's PlayStation 4, leading up to their launch later this month!


Whats been posted over the week?

Other than the delayed weekly update for last week, there has only been one post. That focuses on what I have been busy with over this week, Project Emperion. 'Project Emperion - UDK Third Person Camera' is a small post containing the embedded first video uploaded to our projects YouTube channel and a short description of what it shows, which is our complete 3rd person camera working in UDK, that has been completely scripted within Unreal Script. On a side note, when working with UnrealScript I have been using the Unreal X editor (can be downloaded here) as it seems the easiest to use and get running the quickest, also the free licence can be used for commercial use, compared to alternatives such as within Microsofts Visual Studio, which would be preferable as this is what we use in the programming unit of the course. But for it to be compatible with UnrealScript which is a variation of C++, Visual Studio requires a extension to be installed called nFringe that can only be used for non-commercial use on a free licence.


Aardvark Swift Industry Recruitment Talk


On Wednesday this week we had a representative from Aardvark Swift come in to the University to give students who are interested in getting a job in the games students a lecture on how to beef up yourself and be attractive to potential employers who you may apply it work for in the future. The two main ways that he covered were your CV and Portfolio. 

It was really interesting to see how to change my bog standard generic current CV which is suited for every industry, to focusing on whats important to include for getting noticed in the games industry, by making your CV stand out as much as possible on the employers desk. This includes adding a short 'Profile' section at right at the start of the CV which should be the first thing the employer sees underneath your name and basic contact details. This profile should be a short and simple section spanning just a few sentences, written in a 3rd person perspective giving the reader a summarised version of your covering letter, including your best traits, to help make it easier to see if you fit the job description. It is important to change this for every employer and/or job you apply for to make it more personal for the employer, so that they can see you are perfect for the job and the company. With this he also discussed that its incredibly important to do research on the company you are applying to work for, as many graduates don't do this and look stupid in the interview when asked on what games they like, that have been made by the company. Also some graduates don't even research where the studio is located!

It is vital to get your portfolio looking amazing, since this is the only way that employers can see what your capable of, and see if you can really 'walk the talk'. Its best to make your portfolio online, so you can also build a online presence and get feedback from viewers, who could be not only employers, but people already in the industry. It is important to join social websites such as Linked In and twitter, as you can find game developer groups and post a link to your portfolio website asking people to give their opinion on it. He also noted that employers may not even use recruitment agencies to look people, but instead only post them on their website and social networks such as twitter, so its important to follow as many games studios that you are looking to work for in the future as possible. Your portfolio  should be aesthetically pleasing and easy to navigate to where your work is and how to contact you. You should only include your best work within your portfolio, or at least make this the most visible, also for programmers its important to possibly include a snippet of code that you are most proud about from a specific project, such as a inventory or camera system. Employers do like to look at how you layout your code and the style in which you write, such as camel case and adding comments where appropriate, because studios like to keep to a specific convention set by the lead programmers. Comments are good to include as it is important to show that other members of the programming team could easily understand what a specific piece of code does.

Finally he covered that a great way to get noticed in the industry is to take part in events such as game jams, which are usually sponsored by developers or publishers, and judged by developers, many graduates get offered a job after taking part in a game jam and making something good. This is something I will look at doing next year and beyond, once I know that my my game development ability is good enough to make a game from start to finish. 


What have I learnt in this weeks lectures?

In my programming lecture this week I covered what are and how to use functions. Which I already knew a bit about after coding a few projects in Unity C#, but they are slightly different to implement in C++. Functions are used to break down tasks into smaller tasks, such as respawing a player, that would call a function similar to resetPlayerPosition() and resetPlayerHealth(). Including functions in long complex programs is vital, as it helps clean up your code, by writing less in the main() function. Repeating long sections of code is very time consuming and problems could occur due to miss typing. Also if you wanted to change a simple element of these long sections of code, you would have to go though each one and modify them individual. Functions are your best friend in this situation, as all you need to do is write out the section of code once when initializing the function, and then declare it with a simple line of code wherever you need it within your program. When you modify the initialization code it will automatically change for everywhere you declared it. You can also initialize a function with parameters, which are data types used within the function, this is shown below. Finally you can make the function return some data for the rest of the program to use, such as a result of a multiplication, this is also shown in the example below. 

// Initialize an integer answer container to 0

int theAnswer = 0;

// Initialize a new basic function, to return an integer and have two integer parameters

int nameOfFunction(int x, int y)
{
       theAnswer = x+y;

       return theAnswer;
}   

// Declare the function within main and output the return value 

main()
{
       nameOfFunction(5,5);
       cout << theAnswer << endl;
}

This simple function would result in the program displaying 10 in the console.

What's going on in the Gaming World?

The first story I would like to talk about, is one which has been going on for weeks now, the xbox one 720p fiasco. This story has fired up the tension on the internet between the xbox and playstation 'fanboys', this is due to the revelation that some games, i.e. Call of Duty: Ghosts will be running at full native 1080p while the xbox one will only get 720p native. These numbers may not sound interesting, but the level of detail between them is defiantly noticeable, so I can understand the outrage. The fact this is for Call of Duty is irrelevant, its a real problem if many titles in the future display this difference between both consoles. Now this could either be difference could either be laziness by the developer, porting to different consoles and not individually optimising them. Or it could be far worse, and due to the fact that the xbox one cannot handle it, even though Call of Duty isn't known for its graphics quality, if this is true, then we may never see the xbox one match up to the PlayStation 4 in this aspect, which is a real downfall, not just for Microsoft but for the industry as a whole, as it is great to have healthy competition. In my opinion, this is due to the developer not spending enough time with the console to be able to properly optimise it, I still think they were focused on getting the current generation consoles looking as good as possible, since they have the largest install base for the foreseeable future. Some other games such as Forza 5 will be running at 1080p native, so its defiantly possible. Also both consoles won't be able to reach 1080p, with Battlefield 4. Anyway, I'm sure we we will learn  all of the dark secretes about the next generation consoles once the embargo has lifted and we get our hands on them later this month.

The last story I wanted to mention another next generation story about someone who managed to get an xbox one early from the retailer Target. Before he's was eventually banned until release he managed to get enough hands on time to give out some interesting details about the console, these are listed below and can be found in the original story here

  • A cold boot (from off to operational) takes 17 seconds. It was timed with a stopwatch.
  • loading an installed game (Call of Duty: Ghosts) takes between 15 and 20 seconds.
  • The console “looks solid, feels heavy, great quiet fan, good ports. Doesn’t look flimsy at all like 360.”
  • The controller “is very interesting. The triggers are firmer and don’t go down as much as 360, LB and RB are bigger, thumbsticks grippier.”
  • Downloading the day one patch took 2 minutes with Moonlightswami’s internet connection that features 65 Mb/s downstream.
  • The update started as soon as the console was booted up.
  • Clothing options for the avatar transferred over from the Xbox 360 seamlessly.
  • Both the console and the power brick are very quiet while operating.
  • After a few hours of operation the console was “a bit warm, but not hot,” still quiet.
  • The power brick itself was “barely warm” after three hours.
  • It took about 30 minutes to fully install Call of Duty: Ghosts, which is a 49 GB installation.
  • Games are playable after they are past 50% installation.
  • Installation started automatically as soon as the disc was inserted.
  • Kinect voice commands are very responsive. Moonlightswami had to repeat them only when they were uttered too quietly or there was too much noise.
  • Apparently it even detected correctly the voice of a friend via Skype on Moonlightswami’s PC.
  • Holding the Xbox button on the controller pressed brings up options to turn off the system or the controller.
  • There’s only Online and Offline status available, no busy or away.
  • Music and TV Apps available are: Audio CD player, Hulu, Skype, Blu-Ray Disc, Netflix, Skydrive, NFL.
  • Power brick label: Input 100V-127V 4.91 A, 50/60 GHz. Output 12V 17.9 A 5VSB 1.0A.
  • Video options: Resolution: 1080p or 720p, HDMI or DVI, Color Depth: 24 30 or 36 Bits per pixel, TV RGB limited or PC RGB full
  • Audio options: HDMI: Stereo uncompressed, 5.1 uncompressed, 7.1 uncompressed, DTS digital surround. Optical: Stereo uncompressed, DTS Digital surround.
  • Kinect’s cord is 6 feet long, HDMI cable is 5 feet, the power cord is quite long as well.
  • The start dashboard has three tabs: Pins, Home and Store.
  • The customization options for the tiles of the dashboard have “every color in the rainbow and more.”

Notification of his console being banned from xbox live. Microsoft later informed him and the media that his ban would be lifted on the consoles official release. - Image Source

Friday 8 November 2013

Project Emperion - UDK Third Person Camera


This is the first of many development updates that will be first uploaded to our YouTube channel, then posted to the blog. This video is just showing off our 3rd person camera, that I managed to do within Unreal-script, by studying a range of tutorials from different sources, such as the official UDK forums. I also used what I have read so far from 'Unreal Development Kit Game Programming with UnrealScript - Beginners Guide', and some C++ elements learned so far in my programming unit at University, including Arrays and conditional statements.




More coming soon...