Jump to content

  • Log In with Google      Sign In   
  • Create Account

Every Semicolon

The Bridge

Posted by , 14 September 2010 - - - - - - · 560 views

  • Stopped working on my engine because of time constraints (next point)
  • Worked at The Creative Assembly for a year on Xbox 360/PS3/PC game Stormrise and briefly on their next title
  • Moved to a programming job at a company making 3D 'serious games' training sims (still there)
  • Started a business to develop indie games on the side called South East Games
  • Released 4 iPhone apps
  • Slowly (very) chipping away at the 5th and most promising iPhone app

And that's essentially what I should've been blogging about here for the past 2 years. August 2008 was my last post, but in attempt to turn what once I fittingly named the 'Tool of Procrastination' into a motivational force of good, I'll begin posting here with a far higher degree of regularity.

Now that two years of my life (well, the game dev relevant aspects anyway) have been summed up in 5 points, I've bridged the void between then and now and my next post will be a rant on something interesting (with any luck) relating to the now.

diarB dna kroW enignE

Posted by , 26 August 2008 - - - - - - · 361 views

This entry: Entity Component System for my engine, Braid and stolen ideas (!!! :) ).

But first, I've got my first (well... second, but first that I'll be sticking with) job at a game dev. It's pretty much as entry level as you can get, but that's fine since there hasn't been any other jobs locally all year for me to go for. I might talk about it a bit more in future after I've actually started. I'm actually looking forward to an hour each way on the train (rather than loathing it as I did during uni) as it'll give me a distraction free time to code.

ES Engine Development: Entity Component System

No screens this time cause there's nothing new to show visually.

Edit: Added random screen of spheres... yay!...

Unfortunately I've not managed to get any of the methods I've come up with over the past couple of weeks to motivate myself to get work done has worked. Having the Olympics going all day every day on my second monitor didn't help. What I did manage to do over the last few days wasn't what I'd first planned, but I decided that getting the Entity system worked out was an important step before getting into what I was planning on doing.

I've based my 'Entity Component System' on the Game Object Component System (GOCS) from Game Programming Gems 6 which is a fairly simple, but good system. Essentially base objects/entities have a collection of components which each have their own specific data and functions. So an entity might have a visual component, physics component, AI component, etc. I'll talk about it more once I've finished.

I also had an incredibly frustrating loss of code LUA Manager code that I forgot to mention in my last entry. Basically the loss of code happened 4 months ago or so from my estimation. For whatever reason, I must've accidentally saved the cpp file after deleting everything inside a binding function. It was about 1000 lines of binding functions and whatnot to LUA. Considering I'd forgotten how to do all this not long after first doing it, the idea of re-learning and rewriting it was not one easily entertained. So I pretty much scoured every folder on my PC to no avail. Every backup was after the deletion. Thankfully I found the code on my laptop and all was well.

Lesson Learned: I'm an idiot... Or perhaps something about doing better backups or whatever...


So after the reviews started coming in on Braid, I thought I should check it out. So a week or two ago I downloaded the demo, played through it and then proceeded to buy the game.

I don't really want to talk too much about Braid since it's been covered everywhere, but it's an amazing game. As an indie game it is exactly the type of thing that all indie games should be aspiring to be. It's artistic and different. It offers a unique experience that people haven't seen before.

I'm not the biggest fan of the story. I like how it's told, but I prefer stories that are sort of weird and ambiguous to ultimately have a sort of brain explosion "oh snap" moment where everything suddenly comes into focus and retrospectively now makes sense. The ending to Braid, which was one of the best things ever in any game, did that somewhat, but still remained ambiguous and open to interpretation. While this mightn't be the case for Braid, it's sort of like a movie like Southland Tales where stuff makes a sort of sense, but remains open to interpretation to the point where the writer doesn't have 1 ultimate "this is what it is" answer to give. Although my reasons for why I don't like this don't apply to Braid as much since it's not really story heavy enough for any resolution to mean too much to the player.

Stolen Ideas

Obviously this is mainly faux frustration, but now that we're going to make another game based on our 'Outworlder' concept which revolves around jetpack equipped soldiers going to worlds and fighting bad guys (woah!), I'm more attentive to all those out there ripping us off.

Eg #1: Outlander
- Basically the same name.
- Features an alien guy coming to a planet to battle bad guys.
- Replaces jetpack (or does it...) with Vikings

Eg #2 - Dark Void (Yes, Jeff Gerstmann's GiantBomb.com. Awesome site. Hilarious videos & weekly podcast)
- Jetpack game... nuff said

Now okay, so perhaps both of these were being made before I started making the original Outworlder, but that's hardly an excuse.

Also just a something else I remembered when writing about Dark Void at E3, there was a game at E3 that probably was probably overshadowed by a lot of games and might've seemed to just another generic title. Darksiders: Wrath of War is the game and while initially I just saw the cinematic trailer which I thought was solid and well directed, it was once I heard the developers talking about the game that I decided it could be something good. Basically they just describe the game as being like a Zelda game. I'm hoping for a sleeper hit.

Slow development

Posted by , 10 August 2008 - - - - - - · 359 views

I'll be talking in this entry about my engine progress, changing game plans, some thoughts on potential XNA development and thoughts on making a game using Exult Studio.

ES Engine Development

I realised it has been a while since my last journal entry so I thought I could use it as a way of getting myself back into a good attitude for development.

Following my last journal entry, I wrote out a roadmap that detailed what I wanted to get done for each subversion leading up to version 1.0 of the my engine. It only took me a day or two to reach version 0.3 (I called what I was up to when writing the roadmap version 0.2) and estimated it would take me about half a week to reach version 0.4. About 1 month and 1 week later I got there. I can put this down to a few things, the top one being laziness, but I've also had some job interview-y stuff going on that has distracted me.

At any rate, looking over the upcoming tasks for 0.5, I'm really looking forward to getting back into it and I'm hoping to get through it all much quicker now. The roadmap was shifted around a bit as I decided on new features of the engine that affected others (such as going with a component system for game objects), but mainly what I've done recently is:
  • Animation system
  • Directional light shadows
  • A base per pixel lighting shader with features that can be toggled (eg. Num lights, normal mapping, parallax mapping, specular, specular mapping, shadows, shadow quality, glow/emissive map)
  • Rewrote LUA Manager to work by running already loaded functions rather than loading the lua file every time it's used as I was doing earlier (LUA beginners mistake :) )
  • Fixed timing functions

ES Engine Shot 01 ES Engine Shot 02

I'm still having issues with calculating the time delta each frame. I've never had this issue in the past and rewriting the functions 4 times with different time functions and precision didn't yield any different results. The deltaT seems to have an erratic result a couple of times per second (depends on the current frame rate) which results in jumpy movement. I've got to test the situation more on other PCs to see if it's a hardware problem. I'm using an Athlon X2 4200+ which is known for timing issues, but I've downloaded the supposed fix and in my code I'm setting the thread affinity manually in an attempt to avoid any issues, but it hasn't fixed the result. I've tried it briefly on a higher spec PC which was fine, a much lower spec laptop which was fine and a similar spec laptop (totally different CPU than on this PC) which seemed to have similar issues.

So to get to 0.5 I've got to code:
  • A console
  • Physics stuff: Tri-mesh objects, convex objects and a base physics character object
  • Ragdoll objects
  • XML Parser (probably will just use TinyXML)
  • Hardware skinning for boned animating entities

Changing Game Plans

So last journal entry I talked about probably moving away from making an RTS and instead making something smaller in the vein of my previous game 'Outworlder'. Shane, my cousin and the artist I made Outworlder with and collaborator on any future games, and I came up with a game idea that we have since postponed (and therefore I won't talk about it now) in favour of an Outworlder-esque project that would have a short dev time and will let us create a more visually compelling game.

We're starting to design the different elements of the game now and I'll talk about it more in a future journal, but it's safe to say that it won't re-use anything from the old Outworlder game. So you won't be seeing this Outworlder (player character) or the Scaly (dead enemy) and hopefully not such dodgy ragdolling :) -
Old Outworlder Screen

Instead we'll probably be going for a totally different Outworlder character and will probably have him on a world where the enemies are something like an ancient Mayan tribe. Those sorts characters and their architecture should suit the style we're going after.

I'm hoping to get a strong toolset created for the ES Engine so that once we've completed the one level version of this game, it can easily be developed further into a longer title if we want to.

Possible XNA Development Thoughts

I've thought on occasion about looking into XNA development, but haven't as I've instead been too preoccupied with developing this ending and university before that. When deciding to postpone the previously mentioned (but not revealed) idea, I thought I should look into XNA as a possible platform for when (if) we decide to develop it. While it might seem strange to ignore my own engine after it's finished, I'd merely be choosing a platform more suited to the goal of the project and being that I like to have multiple projects (game dev related or otherwise) at any one time, I'd no doubt be developing something with my engine at the same time.

From the little I've seen so far, it looks like a pretty solid framework and since I'd only be using it as a means to get a game made, I'd probably use an existing engine. The upcoming 3D editor features of Torque X are looking good so at the moment I'm thinking at the moment that I'd use that to cut down on dev time.

Exult Studio

I'm a big fan of the Ultima series, especially Ultima VII (especially especially Serpent Isle) and always look over fan remakes, extensions and the like. Exult is a fantastic project that needs no introduction for Ultima VII fans, and recently my desire to slowly develop a substantial RPG an hour at a time during train rides and the like led me to considering Exult Studio.

The idea of creating an Ultima VII style RPG over the next couple of years in my spare time when not working on other projects definitely appeals to me, but unfortunately I don't think it'll happen. When checking out Exult Studio I was quite easily able to edit the existing Ultima VII titles, but I had a lot of issues (crashing) when trying to start a new game project with Exult Studio. I spent a few hours trying to figure out if I could get around the crashing and get something started, but wasn't able to. I decided if I have that many issues with starting the project, it might not be a stable enough environment for what I wanted.

While making an Oblivion mod with TECS might be the best option at the moment, it's neither new enough nor old enough to appeal to me as an option at this point :).

Engine work

Posted by , 22 June 2008 - - - - - - · 217 views

Since my last entry my focus has been on my engine more than any RTS gameplay aspects. I did get level editing/painting stuff working and generating pathfinding information from the terrain done, but I'll talk about that more later when I get back to it.

The main reason I've avoided working on RTS stuff and also haven't posted an Outworlder post mortem is that I decided that I'd like to develop a complete game with the engine in a shorter period of time than an RTS would take and that will probably be a remake/sequel of Outworlder. Also, I thought there might be too many big RTS titles coming out soon for this to be the right time to make an indie RTS with delusions of grandeur.

Things have been progressing quickly with the engine when I've actually been working on it. I've got soft shadows working that I'm satisfied with using depth maps and VSM.

A shot of some shadowing from a transparent branch onto a monster

I've integrated PhysX after looking at Havok. Read into that what you will.

At this point I've got a pretty small list of things remaining to do for the engine before it's ready to make a game with. Fix LUA integration (make faster), add a console, create an AnimatingObject base class that entities can inherit from and create a particle manager.

At the rate things are progressing I'm pretty sure I'll work on it enough to get that done within the next couple of days. The only thing left to figure out is whether or not I develop tools any time soon.

I'm also planning on getting some sort of journal entry writing pipeline sorted :). Gotta get standardised image sizes (and thumbnailing) sorted out and also figure out how I'll be posting videos. I guess I'll also have to get around to sprucing up my journal template.

@Gaiiden, I missed your comment to my previous entry until just now. I don't think I'll write a post mortem to the original Outworlder anymore, but I'm going to be documenting the process of the development of this new Outworlder game and that will culminate into a post mortem. So a Feature Article might be an outlet for it at that point. Hopefully that won't be too far off. I'll be scheduling development soon so I'll have a better idea of when I expect to finish in my next journal entry.

Some info on my new game project

Posted by , 16 May 2008 - - - - - - · 282 views


I thought I'd provide a bit of information on the game I'm currently starting because I'll be updating the journal often to talk about what I'm doing, what I've done and how I did it, and anyone that's interested in seeing how this project goes will know a bit about what to expect.

I was going to post an Outworlder post mortem in this entry, but I think I'll leave that for the next entry so I can put a bit more thought into it and get some screenshots and whatnot for it.

So even though no one would have noticed, this topic I made yesterday pretty much reveals that I'm making an RTS. I've actually wanted to make this particular RTS for a while now (which I'll probably talk a bit about in the Outworlder Post Mortem) and being fairly confident that I could, I've decided to just do it. I've followed a couple of RTS games made by independent, online teams for a while now: Dawn of Fantasy and 0 A.D.. The quality of these projects is inspiring, but I'm hoping to complete my game in a much shorter time than they've been in development.

While I've got some story details, factions/units, a tentative title and whatnot in my head at the moment, I'll hold off on talking those sorts of details at this point because they're pretty insignificant at this stage of development.

What I will mention now is some of my intentions with what I'll be programming and how.

I've been working on my engine for a little while now. After the mess that was the Outworlder code, I really wanted to create something that was clean and well structured for my next game.
I'm not that interested in creating a rendering engine at this point as I don't think it would ever really be of benefit to the end product so I'll be using Ogre again for rendering.
I'll also probably look into using Havok for physics when it's released for free, but at this stage there would only be minimal need for a physics library in the game.

The Object Factory is what I've probably spent the most time on at this point, but it's essentially finished. I really wanted one factory that could handle every single object in the game (it's templated, obviously) and handle all memory stuff (dead pooling, etc) and it's now doing all that nicely.

Scripting and Data Driven....ness
So before this project I'd never actually used a scripting language and external data file usage had been minimal. While I'm still doing lots of speed testing, I'm intending at this point to use LUA scripting for a lot of stuff in the game. I'm hoping every unit would run a LUA script for it's logic, every game state would just be a base state class and have all it's functions (entry, exit, logic, rendering, etc) written in LUA scripts, etc. Most of the logic heavy code would be written in C++ functions and I'd just give the LUA scripts access to those functions.

I'm also going to use a lot of external files for pretty much everything I can. I want to keep game specific C++ code to a minimum. There's a few reasons for that which mainly revolve around keeping things clean, development without much compiling and allowing easy modification to the game by the end user.

I'm intending on making tools (or one all encompassing tool) for creating/editing some of the things that will be in the external data files. At this stage I'm definitely creating a Level Editor that will allow for terrain deformation and texture painting (I just spent a couple of coding this already) and placement of environment objects, etc. Beyond that I might develop an in engine cutscene creation tool. Anything else I'd only develop if it was something that wasn't easy to do just by writing text in the data file.

I'm going to be pushing the game as far as I can graphically. That may not mean technically pushing the hardware as far as I can, but instead it may mainly be the art direction and quality. I'm going to get some core systems working (terrain, unit selection, unit movement/pathfinding, RTS camera) and will then spend as much time as is needed to get the terrain, a few units and graphic effects looking as good as I'm after. During this period I'd also be developing the effects framework in the engine because graphical effects and particle effects in Outworlder were just hammered out all over the place. I'm looking forward to have a clean interface for adding effects.

So I'll post the Outworlder Post Mortem in my next entry and after that I might have something to show on my progress with terrain editing and/or pathfinding.

October 2016 »

2324252627 28 29

Recent Comments

Recent Comments