- Details
- Category: Blog
- By Stuart Mathews
- Hits: 2590
Since Fortune favours the brave, its just over 8 weeks until I need to present my concept for a new game. Something that’s called a ‘game pitch’ in the industry.
We already hit the ground running in the first lecture by discussing an playing a board game designed by one of the course lecturers.
Basically, we had to assess what the game rules were and then play it, and then talk about what makes a game fun or challenging and then discuss how we could make it better.
— Stuart Mathews (@stumathews) September 29, 2019
It was actually quite empowering because right there you could decide to change the dynamics of the game, throw away stuff you didn’t like and add new stuff you thought was cool. And just to think, we’ve really always had the ability to define what we like or dislike if we take the plunge and take ownership and make the rules - that's the privilege of the creator, and that's something we can do in life too and not be subjected to. Sometimes we just don’t know that we can do anything, we look for permission when the choice is right there in front of you, and only you need permission from yourself. I think that’s what makes creating things so empowering – you’re the big boss dude.
The game was a strategy game like say, StarCraft or Age of Empires, where you have units and they give/take battle damage, gather resources etc. and though I've never been into turn-based games, board or virtual alike, it was fun to be doing something so radically different in a computer lab.
Mind you, at one stage they were talking about 'back in the day' playing dungeon keeper and I'm like thinking instead Doom, Quake, WarCraft etc... I ain't no dice-throwing hippie ok? I did that when I was like 4 and outgrew it, but ok, I can see how it maps to say real-time strategy games that I used to play, so that's fine by me. But dice is old school.
I got to play in a group of four people (there were 18 of us in total so around 4 groups), three of the people I’d already met very briefly in the pre-course introduction a week earlier.
Although I don’t really know these people that well - what we all have in common is that we want to learn how to create computer games and so we’re not too hung up on ceremony or bureaucracy – we just want to talk about and engage in all things games and stuff that we like.
Ok, we're not yet talking about the physics, the AI, 3D or even any programming at this stage and that's what I'm looking forward to but the ease of social integration felt great and social interaction is stimulating when everyone is interesting(and everyone's story about why they want to create games is interesting).
During the lecture, we were asked what was our favourite games and I said Kingdoms of Amalur: The Reckoning and the guy next to be nodded in approval and it was awesome because at the break we and some others got talking in the corridor about our backgrounds. It was a good ice-breaker (not like corporate ice-breakers, those are the worst!).
So far, I’ve enjoyed the interaction with like-minded people, even the group work and the lab activities are stimulating. Usually, there is always a disconnect during peer-to-peer activities which I find boring and awkward but this hasn’t been like that at all. People want and the same thing and are interested in the same thing.
This one guy was a software engineer in electronics and automation (he had a mofo beard), another was already in the gaming industry making games, another had a Software Engineering background like me, another was a consultant for IBM and others were a mixed bag really. Some were looking to break into the gaming industry, others just fascinated with the tech.
From a practical course content point of view, It looks like there is going to be a lot of content in this course and this course is setup to not only design a game concept but also ‘pitch’ it in front of your peers and then create a game prototype in Unity. All within 10 weeks! Or at least that's only the first module.
The game design and concept are more a theoretical and creative endeavour and as such will probably stretch me the most, I'm no debater, but maybe I am (sometimes a little variety and change is all your need!), however, there is a series of computer lab work using Unity which we’ll use to implement our ideas which I think will be interesting for those more technically motivated. I’ve not created a unity game, but the scripting engine is in C# so this will be interesting.
I’ve been revising my digital forensics course work each morning, and have therefore started revising for the upcoming exam which is nearly upon me. I got my last assessment back and am relatively happy with the feedback I got around my intelligence report and investigation. I’ve not yet got feedback about my interview but that went fine too.
I’ve definitely got forensics on the brain at the moment. For example, the other day, I was walking to lunch and one of the guys was talking about surveillance and my brain just flashed RIPA (Regulation of Investigatory Powers Act)! I'm also quite relating various computer crimes I hear about in the media to the laws that surround it, mostly unauthorised access, DDOS and fraud, that sort of thing...
With respects to my game dev coding project, I’ve put the brakes on it for now (timing) however I’m at a good position in my knowledge from a technical point of view. I’ve got a solid theoretical viewpoint and understanding of the concepts and having talked to my course director, we’ll be focusing more on OpenGL instead of the DirectX that I've been learning but they are much of a muchness themselves and a lot of what I’ve learnt around DirectX will be transferable so that’s ok and I’ll continue forward with it in the future. My understanding of 3D vectors, affine transformations and Matrices will still apply. So I’m happy about that.
So, while I ease back on the game programming, I have been reading about Game Architecture and Design as this is now required reading for my course.
During the week I caught up on the highlights of the Rugby World cup and this weekend I watch some more.
I Watched a bit of Athletics(World champs) and Rugby (Wales vs Australia) on T.V and I read about the new 43-year-old world-champion walker which is inspiring and well I'm not dead yet! Then again, look at Rodger Federer and Serena Williams as cases in point. Anway, Christian Coleman blew away the competition in the 100 meters but South Africa made the top 4(not bad for a 3rd world country eh?).
South Africa's defending champion in the long jump, Manyonga bailed out, unfortunately, and I enjoyed watching the Netherlands' Sifan Hussain in the 10,000 meters employ a sound strategy, to overcome Kenya's Helen Obiry and Ethiopia's Gidey and become the world champion.
Ik ga tijdens de @FBKGamesHengelo mijn Europees record aanvallen en ik kan je support goed gebruiken! Kom je me aanmoedigen? De code: FBKSIFAN25 geeft je 25% korting op je tickets! Koop ze op https://t.co/ejfeZkmUQu.
— Sifan Hassan (@SifanHassan) June 5, 2019
Tot zondag! pic.twitter.com/gxNwJA5HGf
Did some more Digital Forensics, read more of Andrew Rollings and Dave morris's Game Architecture and design"...
Now that I'm thinking about it, I’m slightly apprehensive and nervous about coming up with all the elements necessary to design a game, including thinking about the gameplay, plot, settings, story, interactivity etc. I think a large part of game design is about creativity and artistry which I’m not that well practised in. But this can change.
As with my C/C++ course that I took earlier in the year, I tend to get home around 22:30 on lecture nights but that does give me some time to think about it all on the train back. The other bonus is I tend to get a seat but strangely enough its quite busy around 20:00 onwards. I figure its the people who stay after work for drinks because they are always slightly animated.
That's my gaming endeavours at the moment. I’ve also invested part of my time to learning and defining my knowledge of number theory which has been interesting. I’ve finished reading a brief but excellent survey of Mathematics by A.D Aleksandrovy way of the first part of the book, Mathematics: Its Contents and Methods and Meaning which I’ve found both insightful and interesting. This has sparked a newfound enthusiasm for describing generalities and properties of generalities in things. Obviously quantitative generalities and spatial generalities form the basis of arithmetic and geometry and generalities of functions and dependencies are the basis of analysis.
I’ve also decided to take a course on Network Security, so that should kick off the month after my Exam and partway into my Games course which should provide an interesting contrast in the subject matter and provide some opportunity for creative time management!
I’m still not running but I’ve compensated by going to the gym before work, which is great and while it does tire me out and make my day that much longer, it does provide the necessary compromise I require. I’ve been thinking of including a run during the week but so far the balance between being healthy and not getting sick is a fine one, managed only by my perception of sleep fatigue.
- Details
- Category: Blog
- By Stuart Mathews
- Hits: 2330
This weekend I did a bit of everything which was a good well-rounded approach. I did some reading of "Introduction to 3d Game Programming with DirectX" which brings me about up to the same point as "3D Game Programming using DirectX10 and OpenGL" in terms of the subject matter covered - mostly covered the cartesian maths including matrices, vectors and linear transformations and then the 3D rendering pipeline including the basics of creating a DirectX application along with creating a basic Win32 App to house it in.
So, I'm pretty much covered in terms of the fundamentals and moving forward are more advanced and practical matters like the actual rendering including shading and other advanced methods. It's a good place to be, having covered most of the theoretical aspects allows me to start thinking about applying them. It also represents a good pausing point while I prepare for my upcoming exam on Digital Forensics.
With respects to the Digital forensics, I spent a little bit of time revising some of the fundamental from the notes I've taken throughout the year. I also had a look at a past paper to give me an idea of what kinds of things I'll need to focus on. I've yet to revise one of the bigger topics in the course which is law. Thankfully, I enjoyed studying law and made a good set of notes. Now, I just need to focus on the outline and then detail the revision so I can be articulate in the exams.
I'm not too concerned about the technical aspects of the course now having done a full practical investigation, though like the law part, the theory needs to be accounted for and as such, I'll be including all the relevant material in my revision strategy - which I'm probably going to really enjoy!
Apart from that, I have my mock-cross-examination interview coming up in about a week or so along with my induction to my game programming course so those are two things to look forward to 1) because I've not done a live interview before but I'm confident that I'll be fine and 2) I'll be starting my new gaming course!
I've also decided, rather boldly, to also take a course of Network Security which will run in parallel to my game programming course - this will cover the CCNA Security curriculum which is, after having read through it - very interesting! It will cover concepts like setting up routers, firewalls, VPNs, encryption and endpoint security. I'll also have access to the world-class Cisco online resources including network and device simulation software.
I was a bit nervous about taking on in addition, though it looks really interesting and will go a long way in increasing/validating my networking experience and progresses me a little further in my studies and of course - fortune favours the brave!
I also had a haircut this weekend and managed to find a relatively cheap place to have it cut in West-Ruislip. I spotted it while on the bus and decided to jump out and try it. Worked out well. Not as expensive as in town and not as cheap out of town - but appropriately in the middle in both respects.
So a pretty good and productive weekend.
- Details
- Category: Blog
- By Stuart Mathews
- Hits: 4029
Since Some more Direct X10, I noticed a few days ago that my tablet's charger stopped working, I ordered a replacement which arrived on Friday. I've grown quite attached to my little stupid tablet. It's really helpful to have two screens while computing(it has a nice dock that makes it slant like a laptop screen).
I decided to put windows 10 on it and that didn't work out - all sorts of problems with the media not being able to be read etc - I had Fedora 30 on it prior and was slightly regretting having removed it.
I ended up installed MxLinux which then it didn't want to work because it couldn't install the boot loader due to some UEFI/secure boot rubbish. I then decided to install OpenSuse Tumbleweed and now I'm quite pleased with it, particularly its performance, running KDE Neon. They've done great things here and now even my Gnome 3 experience under Fedora seemed so slow in comparison.
It was an early start to the gym this morning, up at 4:30 in at 05:00 out by 06:30 and then started the day. began with a little functional programming by adding a new project to my LanguageEXT tutorial which shows how you can change the state of an object over time. I illustrated this by using the Fold()/Aggregate() method and applying events as the source of changes.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Runtime.CompilerServices;
using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
using LanguageExt;
using LanguageExt.DataTypes.Serialisation;
namespace Tutorial37
{
// This tutorial shows how you can use the Fold() function in languageExt to change the state of an object over time
class Program
{
static void Main(string[] args)
{
List<int> years = new List<int>
{
1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
2015, 2016, 2017, 2018, 2019
};
List<Event<Person>> events = new List<Event<Person>>
{
new ChangeNameEvent("Stuart"),
new ChangeExpertiseEvent("Programming"),
new ChangeNameEvent("Stuart Mathews"),
new ChangeExpertiseEvent("Running"),
new ChangeAgeEvent(33),
};
Person person = new Person();
// A state (InitialResult) changes over time and it changes using results of the previous change. It uses an item from the array in changing the state each time.
// The state changes the number of elements in the IEnumerable
// For a Lst which has multiple items in it, the state will change that many times
// NB: years represent the state changes that will occur
var changedPerson = years.Fold(/*initial state*/ person, (previousResult, year) => ChangeState(year, previousResult));
// Apply some events to the person over time
changedPerson = events.Fold(person, (previousResult, evt) => evt.ApplyEventTo(previousResult));
// View the changed person
Console.WriteLine(\("{changedPerson}");
// local function
Person ChangeState(int year, Person previousResult)
{
Person updatedPerson = new Person(previousResult);
updatedPerson.History.Add(\)"\nIn {year}, this person was {updatedPerson.Age} years old");
updatedPerson.Age++;
return updatedPerson;
}
}
}
}
It's pretty interesting and the whole source can be found here under tutorial 38, where you can find the code for Person. Event(s) and run it and see the results etc
Basically its a very simple demonstration of a way that you can apply changes to an object by encoding various changes that can occur to that object into events that house a particular kind of state change of an object. There is probably a software architecture pattern there but I can't remember what its called. That whole idea is pretty much embedded into the LanguageExt Fold() method or the .net aggregate method.
I also decided to make an entry on Immutability in tutorial 39 which shows you how to design your objects with immutability in mind.
I also decided to do some light reading on performing effective investigations, filling out 5x5x5 intelligence reports and various bits and pieces about case management and labratory processes. I've got to do some practicals around Android forensics which I've put off because its all a bit laborious as this stage having performed a pretty full-on investigation over the last month or so and having had to then write up a report on it following correct invesgitation principles, procedures etc. So that can wait until next week-end I thought and after making a few notes, I decided to turn my attention to 3D Math. In particular, vector and matrix algebra and transformations. I want to be ready for when I have to be tested on it!
I started learning about 3D perspective projection (which talks about foreshortening) and orthogonal projection and went through the math of translating, rotating and scaling vectors using Matrices to represent affine transformations and then started looking at plugging these operations into the pipeline.
That last part pretty much took me most of the day. A day well spent!
More Articles …
- Autopsy, a crash and some DirectX10
- Rules then Since then
- Tuesdays, scribbling and haphazard interaction
- Noughts and crosses and All Bran Flakes
- The Law, Being mental and Data Science
- Games, STL, Digital Forensics and a Fedora
- C, 64, Triple Black, Resource Management and a Game Prototype
- Easter, Heroku, Postmodernism, DataFlow, Math and Software Engineering
- Postmodern Software: Embracing complexity
- Mountain running and Zebras
Page 23 of 182