Category Archives: Development

OUUUUUYA !

Over the past week or so there’s been a lot of hype round a new game console that’s shown its face on Kick Starter, OUYA , The console creators where trying to raise a figure of $950,000 in order to fund the project, little over a week later they’ve raised over $5,135,733 which is absolutely astounding.

The console itself has reasonable specs is android based and its completely open for software engineers and developers to have there dirty way with it. Producing whatever hardware and software modifications to it without causing an uproar from the vendors like you might see if you went and started messing around with Microsoft or Sony’s consoles which is a strict no no. Its really going to make console development available to the masses and really help fuel the independent game developers. I can even see it helping in education, normally if you wanted to develop a game for a console and to have a good amount of control over the hardware you would have to buy a development kit from the vendor which usually cost thousands and just aren’t feasible for small time developers. The OUYA however every console will be a dev kit in itself having to pay no more than the price of the console to get hold of it, which is really good for people wanting to develop for consoles who otherwise would have been unable to do so.

Right so moving onto the price, It’s actually relatively cheap…And the specs aren’t necessarily bad for the price. At the moment if you want to be on the first on the list to get one of these consoles before it hits retail you need to pledge a mere $99 towards their cause and its yours, however if your in the UK like me they want you to donate an extra $20 dollars for shipping and what not which is fair enough. I’m yet to get myself one but I probably will be later this week if there not all gone. If your interested I suggest heading over to kick starter and checking it out. It will also give you some more information about the console and there’s a video on the page which I recommend watching as-well.

http://www.kickstarter.com/projects/ouya/ouya-a-new-kind-of-video-game-console

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.

 

PSVPAD – Use your vita as a JoyPad

Only a day ago I had the mad dream of being able to play games on my pc using my vita as a controller… and now I can. The application is very basic but seems to do the job. Right so I’ve spent little more than a day putting this together in total it probably only took a few hours but I kept having to test it which is time consuming especially when you go off on a tangent and start playing games so the time did add up. I had no real interest in a long term project or anything this was just a one off and for this reason its unlikely to change much and I’m not going to spend very much more time on it.

You will of course need to have the PSS Studios and the dev app for the vita installed in order to deploy the app to the device you can get this here… http://www.playstation.com/psm/developer/index_e.html

Just to be clear the application works by connecting to your computer via a local network generally, so a good connection is needed in order for it to run smoothly.

There is actually a set of instructions in the rar for people who are unsure.

So here’s the download link. Update: I’ve just made the changes so that it’ll now work with PSM v0.99, I’ve also made changes to the server software and fixed some bugs. 

PSVPAD 1.2 Update

PSVPAD 1.151 beta – PSM v1.11.01 Download

  • Bug Fixes

PSVPAD 1.15 beta – PSM v1.11.01 Download

  • Windows 8 Support 
  • Fixed app.xml missing error
  • Minor changes

PSVPAD 1.13 – PSM v0.99 Beta Update Download

  • Added support for 2 vita’s to be connected at one time
  • Fixed issue with server hogging up CPU
  • Made an attempt to try and reduce lag on weak connections – Experimental

PSM v0.99: Download

PSS v0.98 : Download – old

Ps Vita – Pc Joypad

So I’m just going to have a small intermission from the engine, I’m well on track and have made good progress.

Over the next couple of days I’m going to try to whack together a bit of software that’ll allow me to use my PS Vita as a game pad for my PC. I already have a game pad so I’m really just doing it for bant. I’ve done a good deal of research and pretty much know exactly how I’m going to do this so hopefully it’ll work out okay… I’ll probably post it up here with some instructions when I’m done so others will be able to use it… if I manage it. Just to let you know yes I will be using the PS SDK or whatever there calling it these days…. Playstation Mobile SDK I think?

Open Asset Import Library.

Basically I came across this nifty little asset library, I’ve found it very each to use and integrate into my project so I would definitely recommend checking it out.

It supports a good selection of familiar model formats and is under the BSD licence which is awesome. You should probably check their website for more detailed information about the library and licence information.

http://assimp.sourceforge.net/index.html

I will and have began to integrate the library into my Engine and generally its going very well. How it all links into the content management system is being a bit hard for me to get my head around and produce a good system. I’ve been trying as hard as I can to keep it simple to understand whilst being flexible. This is the second big part of the whole rendering system in my mind and once this is out of the way the final core element is going to be the shader system.  I may post some more detailed information at some stage.

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.