Category Archives: Development

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”?!.

PlayStation Suite SDK (Open Beta)

It looks like PlayStation Suite SDK is now in Open Beta, so if anyone was planning on checking it out now is the time. Just click here if your interested. So I’m literally downloading it as I type so I don’t have a clue what its like yet, I’ll probably write another post later after I’ve checked it out.

Just from my initial impression from reading through the page it looks really good quite impressive, I think I’m going to get quite a bit of fun out of this. An interesting thing to mention is it looks like you don’t need to sign in/ up or anything to download which is good  and saves a bit of time –> especially considering it always takes me about 10 minutes to remember my password.

edit: The awkward moment when it opens the release notes using my default program for opening html files —> Notepad :/