Category Archives: Uni

I’m Back! – Been a while

If you noticed I haven’t really been around for a while I stopped updating the website and it was hacked and taken down and all that crap. But anyway I’m back and thought I’d let the world know whats been happening in my absence.

Initially I wasn’t updating my website because I was quite busy with work and other things and my life became quite hectic and I really didn’t have time to focus on my website.

Along with all this back in December last year I got very ill and because of that I’ve been in and out of hospital since, It started off as pain, then had surgery in January which led onto complications which had me re-hospitalized in February eventually I was let out with antibiotics but I still continued to deteriorate and was sent back to hospital in march when I spent 6 weeks before having major surgery on the 17th of April. I was Discharged from hospital 2 days ago and seem to be doing well.

me

Naturally having been ill so long I’ve fell quite far behind with uni work and everything I’ve been working on has gone to pot.

Just in case anyone’s interested as far as my engine is concerned I actually started work on a new Engine “Nightmare Engine” Back towards the beginning of this academic year the pure focus of the engine was simplicity more than anything. I was focusing primarily on making all the different modules of the engine independent with next to no coupling to keep the project simple. The irony being is potentially this engine although far simpler than my previous engine, is more powerful, there’s less coupling and is far easier to maintain and add new features. Obviously having being ill I haven’t really worked on in for a while but nether the less it has a nice set of functionality which I plan to improve upon over the next few years. I had planned to do a lot more by now but due to illness I have  been unable. At some point either on here or on its own separate website I’ll be putting up some information about my engine and maybe a few demo applications to check out.

So hopefully how I’m better I’m going to start writing some random but maybe quite interesting posts again and get back on the development front.

Thanks for reading.

Allan.

Project Update – Game Engine

So I though I’d just post a little update on the progress I’ve made since my last post. To start I did spend a good while trying to make some decisions on the architecture of the engine it really took longer than I was originally planning but I got there in the end. So I lost some time to that, also I’ve spent a bit of time researching and doing other things not even necessarily related to the engine so maybe I haven’t spent as much time on the engine as I should have. Although I’m already ahead of the game as far as the project is concerned anyway and I’ve made some good progress nether the less.

Last time I was talking about getting the Assimp library integrated and now it pretty much is, I loaded my first model into the engine and everything ran smoothly with no issues.

As far as the implementation is concerned the content manager recursively loads all the models within a file directory when the engine is started, it then extracts information related to the all the meshes in the file and unloads the data. it does not store any data related to vertices positions, normal, texture coordinates or whatever else. It just takes information relating to each mesh and where it is located in the model so that at a later stage when the asset is needed it will use this information to load the mesh into the cache. At the moment to some degree its still incomplete as I’m yet to maintain all the data obtained from the assimp importer and sustain the hierarchical structure in the model file which does lead to some issues with the more complicated formats. But that’ll come with time I still haven’t 100% planned how its going to work. Anyway I’m being a bit to vague to understand I’m sure.

This diagram will give you a kinda vague idea of whats going. It will become more clear overtime.

 

Engine Design (Test Texture).

One of the things I was planning on producing was a set of basic textures which I can use obviously to check that they load correctly and everything is working as well as getting a feel for how different size textures look. So far I have only created one texture. I’m going to be adding to them as the project go’s on and will probably put them up here so people can use them in their own projects for testing and whatnot.

 

Engine Design (Feature List)

I had previously written a crude features list just of the top of my head coming up with some of the features that I wanted to include or just have a go at implementing. For each feature at some point I will post a more detailed designing looking at each feature on its own and the detailed design and implementation. I’ve lit-rally got piles of notes written on several areas of the system during the design process, which I will literally be regurgitating.

Engine Design (A look at the rendering system)

So I have been quite busy and haven’t had chance to post anything, I’ve spent a lot of time designing and redesigning parts of the engine as well as looking at implementing them. I’ve spent a lot of time specifically designing a content management system that I can use to cache resources and designing how the whole rendering system Is going to work. So here is an overview of the basic understanding behind the rendering system. I may at a later stage post some more detailed information about the design of the engine but I’m not sure exactly how much I want to have free to the public.

Engine Components – In order to understand how the system works I’m going to go over some components in the engine and how they work and interact.

SceneGraph – The Scene Graph in the engine is used to keep track of all objects that have been created as well as passing Objects to the rendered to be rendered. These objects will have components attached that keep of track of which shaders, textures, and meshes to be used.

ContentManager – The content manager handles resources in the system, The scene graph will let the content manager know when an asset needs to be loaded and this will handle this, also through collaborative with the scene graph it’ll try to keep track of when a resource is being used, and when it is no longer being used by any object in the scene, maybe because it has gone out of the render distance or the object has been destroyed, then the content manager will handle the unloading of resources to free up any unnecessary memory being used. When a resource is loaded it’ll create a unique resource ID that will be passed to an object such as a texture so it’ll be able to use this id to associate with the resource that’s been loaded

Ok that’s a very brief overview of whats going on and I believe it gives you an idea of the how the system works, at the moment it is only partially implemented. One reason for this is I’ve redesigned it several times already since I started implementing however which each revision is gets better. Last night I wrote a new class used specifically for handling the loading , unloading and manipulation of images as well as caching the  loaded image for use by the renderer at a later stage. Generally the class interacts with the Content Manager although It’ll work perfectly fine on its own as-well.

Thanks for reading as always.

Game Engine Design (Engine Focus)

Its actually taken me some time to decided what the focus of my engine was going to be, first I had to make some decisions such as whether it would be 3d, 2d, 2.5d, then after that I’ve had to start thinking about a specific style of game to target the engine towards whether it be an FPS, RTS and so on. Another thing that might also affect and make the development easier is focusing on a specific genre of game and bending the engine to suit it’s needs. This is especially important as i pan side by side with the engine development to produce a simple game to test the functionality of the engine, this is opposed to creating several small sample applications to sample different areas of the engine.

I decided to focus my engine towards 3d graphics in the end for several reasons.

  • I’ve looked into 2.5d in the past and as great as some of the engines look that I’ve checked out, It’s just not for me I would rather focus my efforts of either something 3d or 2d. Here’s an intresting example of an engine someone made on top of the XNA framework http://www.youtube.com/watch?v=-Q6ISVaM5Ww.
  • I feel there’s a lot more I could do with 3d than 2d, There’s quite a few things I’m interested in attempting to implement in my engine. I’ve be composing a list of potential features at a later point.
  • I like the added level of complexity involved.

As far the genre of game is involved my 2 preferred genres are adventure and horror, must probably for a common core characteristic between adventure and horror games is that they tend to have really good well written story lines and very fun to play. I’m probably going to take the horror route as its definitely my favorite genre of games. Some of my favorite games include all the Resident Evils created before 4, although the new ones are fun to play the whole feel of the game has changed and they don’t feel anywhere near as eerie as the older ones, Silent Hill, Eternal Darkness And Amnesia – The dark decent. It would be good if I could find a middle ground between some of these games.

quite obviously I’m going to have to now come up with an idea for a simple game that can be built on the engine side by side, I obviously want to keep it simple otherwise It’ll really slow down the development process. I’ll be producing game designs as a later stage, It’s a bit early in development to start thinking about really, first I need to get the core engine designed and implemented I will be keeping it at mind though.

This is far from my finalized, I may change my mind later on, I’m going to spend a lot of time just looking at the feasibility of what I’m trying to accomplish.

 

 

Game Engine Design (Identification Of Libraries and Tools)

This is the first real look at the design in relation to the game engine I have been developing, I’m new to the scene in engine development so it’s quite easy for me to make mistakes and overlook certain aspects. I have very little to go with and I’m constantly researching and finding out more about Engine architecture and implementation. So if something I’m doing seems a bit stupid please feel free to point that out.

One of the first things I did when designing the engine was of course to select a suitable language to implement it in and produce a list of libraries and resource that I could use to aid in the development of the engine. Naturally I chose c++ as the implementation language of choice for the source code and have also considered lua, c# or javascript as possible languages I could use for the scripting language. Whether or not I will actually facilitate scripting in the engine via another language has not actually been decided yet, but there are several reasons why it may be useful but I’ll get onto this at another stage.

Here is a list of some of the libraries that I have identified so far that may be useful during the development, some of which have already been partially integrated into the project, This list is likely to expand as the development go’s on.

Libraries:

  • SDL(Simple DirectMedia Layer) – This is a library which can be used to handle windows management and Input as-well as several other handy things. Using this library could save me a lot of time as far as windows management and input is concerned and makes if far simpler and easier to set up a window ready for displaying 3d graphics. It also has the benefit of being compatible with both OpenGL and Direct X  and several Operating Systems. So it leaves a lot of options open. Although I will be focusing on windows development with OpenGL it might make it easier to port to different OS’s in the future if need be.
  •  OpenAL – I haven’t looked into this much yet but this is a audio library that works with opengl.
  • Newton Game Dynamics – A open source Physics Engine, Looks really good and some really impressive things have been made with it in the past. Physics engines are quite large and complicated so I didn’t deem it feasible to create my own from scratch, that’s a whole project in itself.
  • SDL_Config – A library I found that is used for loading data from configuration files, very handy and saves a bit of time.
  • Devil – A cross platform Image Library

Useful Tools:

  • Tortoise svn – eventually I will probably uploading my project to a svn just to make development a little bit easier to keep track of. I’ve worked with svn’s in the past and found them very useful.
  • Doxygen – A useful tool used for documentation, herd some good things but haven’t checked it out yet.
  • Visual Studio 2010 – My compiler of choice.

 

Project Introduction

As part of my course as you may know in the 3rd year a good part of our grade is deterministic on a project. The actual subject area of the project we undertake is very much our own choice, although of course it should probably relate back to games development. I don’t wish to reiterate over what we have already been given so please refer to this pdf(http://unorthodoxgamestudios.co.uk/Downloads/GamesDevYr3_Overview.pdf), on the last page is a brief description of the project as-well as expected learning outcomes.

As my project progresses I will try to continuously post updates relating to my progress on this blog which may or may not be used as part of the documentation for my project in the future.

for my project I want to create a lightweight Game Engine, which I have already started work on in regards to the base of the engine and the planning but I won’t have the OK on it until I get back to uni in September next year. Game engines do have the potential to be quite complicated so hopefully all the work I do between now and then will help me to getting the OK from lecturers, and convince myself that I’ll be able to produce something worthwhile in the time given. Having worked on largish projects before I know how things can go horribly wrong and that is definitely one of my biggest worries, getting half way through the year then realizing that its all gone wrong and I’m going to have to rework the entire engine. So basically i’m trying not just to convince the lecturers but convince myself as-well… I do know if everything does go wrong with the engine I could always cut a few corners in order to get it complete on time.

In my next post I’m going to start going over the design of the engine, I’ll be looking at some of design choices I’ve already made and the general architecture of the engine it’s far from finalized though a lot could change between the current design and the final design.

Uni – End of Year 2 (Now to get on with some real work!)

Finally university is over for this academic year and I can finally get on with some of my own projects and produce something a little bit more worth while and impressing, and start to post on this blog a little bit more often.

I have to say though getting all the work done and handed in, in time this time round was a bit of a nightmare. It somehow worked out that we had 2 weeks left and 4 assignments to get handed in.3d Modelling final Castle Animation, Maths no.2, Torque 3d AI 2 and OOP&D(Object Orientated Principles and Design). The main reason however that it became a struggle to get all the stuff completed probably comes down to the 3d Modelling and Animation, I mean seriously it took up the first week alone just catching up with all the work that I had neglected to complete already. Modelling is by far one of the most time consuming things that I have ever done, it takes countless hours to model things and that’s only the half of it, if you want to render it and near HD quality a full scene with a good amount of lighting and particle effects scattered throughout the scene, on your average gaming PC this is going to take the best part of a day to produce a render only a few minutes long. So I must say the rendering alone sponged up a lot of time.

<— About to go off on a tangent about Torque 3d

The other big issue of course was Torque 3d, a piece of software that many of you may have heard me saying that I’m indifferent to. The kind of software that I can work in if I try but really don’t like to. And so here is my list of 7 reasons why I don’t like working with the Game Engine Torque 3d at university. Why seven? because I was planning 10 but got tired of thinking about Torque.

  1. At our university were using an older revision of the engine and so it is literally littered with bugs, some of which I have researched how to go about fixing the bugs which as I though requires the engine source code something that we aren’t presented with at university, not like we have time to go through the engine fixing all the bugs anyway .
  2. The uni is very inconsistent with the versions they give us, so rather than being a bug here then there’s a bug then instead and its a bit confusing and rather annoying .
  3. Torque 3d is naturally frustrating to work with, this is probably a combination between the amount of bugs and bad design decisions implemented in the engine, Unless your making a generic FPS without the source code making other games becomes quickly excruciatingly painful.
  4. We get given very little to work with by the university just some stock assets and some poorly written scripts, That and all the assets we do get feel very dated. Games are a constantly evolving, changing and Initiative media I really think we should be working with things a little bit more up to date and naturally sexy to look at, the torque assets make me die a little inside, Could’t we make things a little bit more interesting.
  5. This leads onto my next point Torque 3d feels very dated, behind the times. I played there demo on there latest engine and I wasn’t overly impressed my thoughts exactly were if they can’t even make a good game on their own engine, how can they expect me to seriously.
  6. Its about the only Engine that I don’t actually have fun working with and I’ve worked with a lot of tools, apis , frameworks,engines and languages. I dabbled in things such as Playstation Suite SDK, Source SDK, UDK, NeoAxis engine, Cry Engine, XNA,c , c++, c#, basic, SDL, Unity 3d, Javascript, html, php, Newton Game Dynamics, JigLib physics, Torque2d*, python and a lot more just all I can think of on the spot.
  7. I don’t see many benefits in the future of knowing the ins and outs of Torque 3d, Its outdated and barley used in the gaming industry, from what I understand most employers will be looking for good underlining programming skills and experience in industry standard tools as-well as of course experience working in the industry(Catch 22 when I’ve been checking out jobs in the gaming industry in the past a lot of employers want experience programmers with so many years in the industry having worked on so many commercial games in the past.). Anyway I feel it may be better just to get a core language under your belt and get to grips with underlineing game and game engine architecture and design principles. It may even be worth studying an engine such as unity 3d for one main reason it’s a very robustly built engine and has a lot of documentation which can start to give you an idea of how the engine functions as a whole. Its also got the benefit of being incredibly easy to work with so you can really get a lot of ground covered when working/ studying with it and get a good overview of a complete development life cycle of a game.

 

Its a shame really part of me feels my grade at university is going to be affected by the fact we are using this engine, I feel as though if we were working in something better I would put so much more work in. It really would make a difference all the assignments so far me and pretty much everyone else has pretty much just been handing in virtual crap. Having talked with some of the other people in the class I’m not the only one that seems to be disappointed by the choice of software and the module structure, in fact I haven’t talked to anyone that doesn’t feel in someway indifferent to Torque 3d or dislike it in anyway, although I haven’t talked to everyone in the class. My comments are those of my own opinion and experience with torque 3d and nothing more please feel free to comment on any thoughts feelings you have towards this software, I understand that there are people out there that enjoy to work in torque 3d and i respect you for it I’m not here to start a debate or war I’m only hear to express my opinion but feel free to do the same but keep it friendly. Please may I remind you this is only related to the software Torque 3d and not any other software created by linked with garage games or partner company’s.

Anyway as far as the other 2 assignments were concerned they were pretty much a breeze the maths only took a few nights even though there was a lot of dossing in-between. The OOP&D really was a shame though I was literally running out of time and I produced nowhere near what I wanted to produce and had to skip out on some of the coding, one of the assignments I was looking forward to and might enjoy working on and I ran out of time a real shame really.

Nether-mind there’s always next year Hopefully I’ll get my first. My next post will most likely be related to my final year project as I start to get the ball Rowling ready for next year. Posts should be a little more frequent now that I have nothing to do.

Thanks for reading, Please feel free to Comment, critisize spelling and grammer’s”?!.

Been Busy(Uni Work) – / Next year project.

Just in case anyone out there is interested why I haven’t posted anything in a while, the answer is quite simply uni work… it’s coming up to the end of term and we’ve got quite a lot of work to do so I just quite simply haven’t had chance to update my blog but I will get back to regular entries as soon as my uni work is complete.

Throughout the summer there will probably be regular updates that are going to be more development related as I will be working on my project in preparation for next year. If you don’t already know I’ve been planning to create my own lightweight game engine for my project which I have in fact already started work on, so throughout development I will be producing a lot of documentation in respect to the design and planning as-well as the implementation, and I would very much like to document my progress on this site as- well so anyone that’s interested in my work will be able to check it out, whether it be my friends or my lecturers so they can make sure I’m still on track.

I’ve already spent a lot of time just planning this engine and basically just sitting and thinking exactly what I want to do, creating an engine isn’t necessarily the easiest thing in the world but I am planning on making use of a good selection of libraries and to cut a few corners to speed up development. Already a lot of questions have come up related to the design where I’m going to have to make a decision. One of the first crucial decisions in my mind is the actual engines focus, what sort of games do I want to build on this engine?, will they be 3d, 2d, 2.5d?. Do I want to take an abstract approach here, do I want to cut a corner there. How can I make sure it’s well optimized?. I’ve actually done a serious amount of research and I’ve actually looked very deeply into these question even If they may seem like simple decisions at first glance, the reality is they really do steer the engine towards what the final outcome is going to be. I guess my biggest fear though is that I spend a great deal of time working on this engine and through a few minor bad design decisions it leads to the engine becoming painfully slow and un-optimized and very messy and turning into a catastrophic nightmare. I’ll be honest I’ve made a lot of bad decisions in the past when it comes to software development and I’ve really had to pay for them and I really don’t want that to happen again.  Term ends for me on Friday when all my work is handed in so I will be able to get back to posting then.