January has been hectic

Where do I begin…

January has probably been the busiest month in my entire life. No kidding! Constant work, personal projects, assignments, and very little free time to myself. But I am happy to say I have enjoyed all of it!

Since December
Since my last life update last month, I have had two coursework results back from my Computer Graphics and Tool Development for Computer Games modules. The former was a 2D OpenGL scene demonstration where we had to sample OpenGL objects and techniques and demonstrate them – from Vector Array Objects to hierarchical modelling. The demo at the time went well, and I got 88% in the end! The latter was building a Python missile command game clone with the Pygame engine and developing a small physics simulator called “Marble Madness” with a lecturer-developed engine (PGE). I had 90% on that one. So I’m happy with my performance last term to say the least!

Computer Graphics
For the second term, this module now focuses on 3D rendering in OpenGL and 3D modelling with Autodesk 3DS Max. Things have continued to go well this term, and 3D modelling is actually more fun than I imagined! It has been useful for my group project in another module as well! The programming side is obviously interesting, but we are still in the opening weeks and have not done a lot of programming for OpenGL 3D yet.

Tool Development for Computer Games
Whilst I don’t have anything against Python, the module is a lot more interesting for me this term now that we are starting to do C# GUI programming with XAML. Whilst I have done a few WinForms projects before, WPF is something I have never touched before! The coursework looks like a nice challenge too, which is to build a game level designer for a tile-based game. We are given the game and its source code and have to build the designer based on the code ourselves!

Data Structures & Algorithms With Object Oriented Programming
This module recently had a coursework due on the 12th, which was the process scheduler assignment I talked about in a post back around late-December. Basically, we were given a public API to conform to and told to fill in the blanks in C++. My scheduler ended up being a multi-level queue with a custom algorithm that creates a cycle to prevent blocking (the act of higher priority items stopping lower priority items from being processed completely). The scheduler creates a cycle in which each level of priority (from 1 to 10) gets a certain amount of attention. Higher priorities get more attention than lower ones in the cycle, but the lowers still gets *some* attention rather than none.

Other than the coursework, this term has also taken up a slightly different theme. We are now covering different design and strategy patterns to OO programming. Whilst they certainly require a bit more thought to understand, one of the two we have learnt so far has already came in handy with my web work! The observer pattern, which states the relationship between a subject (essentially some hub) and its observers (dependencies like clients), is basically the same principle of the way I’m developing this small social network in PHP for my portfolio.

Professionalism: “Project FallingStar”
Once again, the largest and most impressive thing I am involved with at University. My team has made significant progress and whilst we are far from having a complete game, the game is looking rather beautiful already! Besides defacto leadership and physics programming, I have also undertaken tasks for 3D modelling and special effects for the game. Like the last time I wrote about this, I have some little peaks for you:

Personal projects
I have also made a fair bit of progress with personal things as well. My Star Trek fan site, Path to 2265, remains a top priority for me and many improvements in the back-office have been made. The website’s search engine programming has transformed into a mature, secure and robust platform that allows the website to provide intelligent and weighted search results, whilst also providing internal benefits by allowing pages to be more dynamic and use the website’s database more. I’ve also been working on actual front-end content as well with Chapter 2 being released within a month or so and several more ships added; Polaris has a completed database entry, DY-732 has its specs mostly ironed out, and an upcoming design is due for completion soon:

The new (but still prototype) design – UESPA battleship SS Patterson (UESPA-57)

I have also resumed limited work on my old GeckoFX-based C# browser KAubersnek. I’ve been adding a few features over the weeks and will likely continue full development when I have some time.

KAubersnek in its current state


Anyway, that’s it for now!



The PlayStation Controller Fever

Some of them may be a bit filthy right now, but they are the beginning of a collection to satisfy my current obsession.


So I have to hand it to Sony. They have developed and matured one hell of a games controller. It is my favourite line of controllers developed to date. I have used one of the latest iterations of the design, an original DualShock 4, for almost a year now and I have loved it. But after digging up an old DualShock 2, I thought that it might be interesting to use it for modern gaming and see how well it has aged. I did so, and then an obsession came…

The first thing I should explain is that I use all these on my PC rather than a PlayStation. I personally dislike console gaming, but find that a controller is optimal for some situations compared to a keyboard and mouse. So far, using the DualShock 4 has been a breeze. Using a software called DS4Windows, I simply pair the controller with my PC via Bluetooth. However, things can be trickier with the older SIXAXIS/DualShock 3 controllers without a USB cable, and all the previous wired controllers.

Actually connecting all pre-PlayStation 3 controllers is straight forward. You just need an adapter like the one below (which is similar to my one that I bought off eBay for £1.48 + free economy postage).


However, since Windows registers these controllers as a DirectInput (a legacy API that has barely been modified since DirectX 8 from 2001/2002) device, most modern games do not seemlessly support them. Modern PC gaming with controllers is built around XInput devices such as the XBOX 360 controller. So, to get these older controllers working, I use TocaEdit’s Xbox 360 Controller Emulator (link) to make them appear as XInput devices. So far, it has worked well for Battlefield 4. Other games I have not tried yet, since I’ve had little time for gaming right now (which is why I have not posted anything on this blog recently).

Now, for SIXAXIS or DualShock 3 controllers. Since my current SIXAXIS is in bad shape, I have a replacement on the way. Also, I have barely used that controller on my PC, so I can only detail the approach I’ll be taking. My plan is to use the ScpToolkit (link) by Nefarius to install a custom driver on Windows for an external Bluetooth adapter I have coming for dedicated use with SixAxis and DualShock 3 controllers.

The fleet
I currently have the six pictured controllers. I have a three more on the way right now, and I have more to get in the future before I have one of each EU-marketted controllers released by Sony.

  1. SCPH-1080: PlayStation Controller – pictured top-left
  2. SCPH-1180: PlayStation Dual Analog Controller – awaiting arrival
  3. SCPH-1200: PlayStation DualShock Controller – pictured bottom-left
  4. SCPH-110: PSone DualShock Controller – pictured top-middle
  5. SCPH-10010: PlayStation 2 DualShock 2 Controller – pictured bottom-middle, needs to be replaced with one in better condition next month
  6. CECHZC1: PlayStation 3 SIXAXIS Controller – pictured top-right, awaiting arrival of one in better condition
  7. CECHZC2: PlayStation 3 DualShock 3 Controller – awaiting arrival
  8. CUH-ZCT1: PlayStation 4 DualShock 4 Controller – pictured bottom-right
  9. CUH-ZCT2: PlayStation 4 DualShock 4 V2 Controller – to be bought next month

It’s fun to get obsessed with collecting things…

Library, Rain & ul/li menus

Wow. It is really wet today.

I love the rain, yet even I resorted to running into the library for cover today. Inside the PC lab area, the rain is giving its full force unto the windows. Have a look:


Note: it was louder in person.

It is actually being a rather nice distraction here as I have woes with redesigning the menu bar for my upcoming Star Trek-themed fan site. Although there was nothing wrong with the menu before, I am currently rebuilding it on an offline test page using lists instead of modified anchors. There are pros and cons to this approach of course, with the main pro being it will naturally suit a multi-level list in the rather likely event I implement one in the future.

Here’s an interesting read on the subject:

The current issue is not being able to get the <ul> to float right. Observe the links being rendered over the logo that is floating left:

Whether you are for or against these lists, please note that currently I am only exploring my options.