January 23rd, 2010 | Tags:

Having recently picked up a project that was side-lined for a while I’ve come to the realisation that PHP is not a language I like, and I’m as rusty as hell with it. The project is a community engine for achievements. I won’t go into great deal just yet, but it requires a forum, a facebook-like functionality but without the crap that unfortunately the community have added to it, and a lot of code.

I’ve opted to do this from scratch, as I’m not really satisfied with the other community engines out there for PHP. As a result, I’ve run into the problem of work load. It’s a big project and one that I’m passionate about, but the lack of will to live whilst using PHP is one that bothers me.

I over exaggerate a little. It’s not as bad as I make out, this PHP lark, but I feel that there are better engines out there for achieving this type of project in a lot shorter space of time. I’m going to create this site/community on 2 or 3 different languages/frameworks. First will be pure and plain PHP, the next will be the CodeIgniter framework for PHP, and lastly Ruby on Rails. This means a bit more work than before, but in actual fact the hardest part of it all is the planning. Once I have the site running under one system, it’ll be easy enough to implement it into others.

Still, it’s a big job and nowhere near off the ground in terms of the code side. The ideas and planning has been there some time. We’ll see how it goes.

For the time being, I’m going to be cheeky and ask for all the PHP nuts out there that I know to give me a shout if they’re interested in giving me some pointers and helping with the intricacies of PHP programming.

Rubyists also wanted for much the same. I cannot offer pay, but you will get my e-kudos; and that, my friends, is invaluable. <3

Thanks in advance!

Popularity: 5% [?]

December 5th, 2009 | Tags: , , , , , , ,

Apparently there was some mixed up information so my section on how to assign Module and Module Owner is a little wrong. For this tutorial, they should both be the module name (ie. tutorial). Sorry for the mix-up. I will re-write this article when I have some more time to cut down on the wall of text into a more concise explanation.

dade-

Welcome to the first instalment of my Dragon Age tutorials. I will assume that you’ve looked at the toolset already and have a basic understanding of how the viewports work and how to navigate (mainly for this mod) the terrain window; such as camera panning, rotation, and so on. If not, I suggest you have a play around, though be careful not to create/save anything into the Single Player campaign as problems can occur this way.

Firstly, you want to create a tutorial module. To do this, go to File > Manage Modules. This will bring up a window much like the image below.

A list of modules, both core and custom created.

A list of modules, both core and custom created.

As you can see, this lists all the modules that are stored on the local machine, from the default to the custom created. Core, Demo, and Single Player are all default with the game. These you should leave well alone, and instead you want to create a new module.

When you create a new module, you’ll be greeted with the following window:

Creating a new module

Creating a new module

The fields you need to focus on for the purposes of this tutorial are Name and UID. Name is, obviously, the name of your module. This can be anything you like, and can contain spaces. UID is the module’s Unique Identifier. I’ve yet to find where this is referenced, but for the sake of module “best practices” I would give this a unique and descriptive name. For this tutorial, you can simply put tutorial into both fields.

OK that and then highlight and Open your newly created module. The first time the module is loaded after creation you may find that it takes a little time to respond. Be patient, and when it’s fully loaded you will have a completely blank module to play with. Go ahead and create a new Area. Do this by going to File > New > Area. This will open up a window like so…

Creating a new area

Creating a new area

Resource Name should be the name of your area. It is a good idea that for each module you create, you specify and stick to a naming convention for assets that you create, such as Areas, Monsters and so on. For this I will say use “tut_” as a prefix. Go ahead and call your map tut_flemhut_ext.

Folder is the location your area will be saved once created. If you look on the Palette Window on the right of the screen (enabled by default) you will see a folder tree view. Leaving Folder as / will create your area in the root of the Area tab. I’d suggest not putting your custom content in the root as this can get extremely confusing for larger mods later on. Go ahead and put /Tutorials in there.

Module is the module that you are creating the asset for. In this case, you should leave it as tutorial, or whatever you’ve called the module for this tutorial.

Owner Module confused me at first, but upon further reading I’ve discovered that this is specifying which module should be able to access the asset. I’ve set this to Core Game Resources. Anything that we set to be owned by “CGR” can be accessed by any other module. Obviously if you only want the asset accessible in a specific module, you will want to set this option accordingly.

Leave State as NONE and leave the tickbox as it is. This option literally acts like when you finish installing a program and tell the installer to “Run program when installer exits”. A quick explanation about checking in and out resources. When working on a mod with several people who are scooting about left and right modifying different files here and there, you will get to a point where your modifications to one object conflicts with another developer in your team. To counter this problem, the toolset has a Check In and Check Out feature. When a file is checked it creates a local copy of the file for that developer to chop and change and do what is needed on their part; for instance a programmer adds his/her script to a monster while another developer adds some armour and changes the appearance of that monster. When these two finish with their task, they Check In which merges their changes with the master copy saved on the module. Both of the changes are seen, and the monster now has scripts and some items and a new look with the least bit of hassle for either developer. :)

If you have multiple developers working on a single module, you can view the history of check ins/outs by going to View > Resource History. Notes are recommended when checking in resources so that others can see what it was you changed. Not essential, but it’s good to get into the habit of it.

NOTE: If you are familiar with using Git and/or GitHub you may be familiar with the way this kind of collaborative development works. It is essentially the same.

So now you have a blank area… what to do with it!? Well, you want to make sure the area is open so that you can see some of its meta data in the Object Inspector (enabled by default) in the bottom right of the window. You will see a whole list of variables and (possibly) confusing settings…
Object Inspector

Area Layout lets you load a pre-made Level. Click in the input box on yours and then the “Triple Dot” button that appears. This will open up a list of the game’s areas that you have been walking around in the single player campaign. Load up ost101d which is Flemeth’s Hut Exterior.

Name can be anything you wish, though something relevant would be ideal.

The last important thing we need on this is Resource Name. You will notice in the above picture it is called dbare_flemhut_ext. Swap the dbare_ with tut_.

You will notice whilst editing that Object Inspector that a map has loaded. As a default the camera will be faced down at the exact centre of the area. Navigate North a little and rotate the camera so that you can see Flemeth’s hut front. Right click the ground and place a waypoint, then another. These will be our spawn locations, but before we start editing the finer points of transitions we’ll create/place everything that’s needed.

You will see on the front of Flemeth’s hut that there’s a little niche where a door should be. Now here comes the magic from BioWare, and one of the hundreds of reasons why I love this engine. Open up Placeables (Palette Window, Table icon) and select the Area Transitions > genip_at_normal and place it just in front of Flemeth’s hut. You will notice that there is a blue ball on the side of the door, which is the reference point for doorways. It’s magic, I tells ya!! Drag the ball on the door to near the one on the door frame and let go.

BOOM! No need to faff about aligning and re-aligning. The engine knows which way the door should sit, and whether or not it’s rotated the right way. Anyway, now that the excitement’s over and we have our first area kitted out with waypoints and a door, we want to create another area. Follow the steps as before, but call it “_int” for interior, and load the Area Layout called ost102d. This is Flemeth’s hut interior, as seen in the campaign.

Go ahead and add a door to the interior, and place a single waypoint here. Rotate and move your waypoints so that you have something along the lines of…

tut_flemhut_ext layout

tut_flemhut_ext layout

And the interior should look like…

tut_flemhut_int layout

tut_flemhut_int layout

Select the left-hand waypoint in our exterior and go to its Object Inspector. The waypoint’s inspector looks like this:

Tag is important here

Tag is important here

As the caption says, Tag is the important field here. This one we will call mod_start. This will be the point where we initially spawn upon loading our mod. You may specify a name if you wish. I would personally advise you do so, even if to fully explain the tag; for instance with our mod_start waypoint we could give the name a value of Module Starting Location or something similar.

Our second exterior waypoint will act as our transition anchor. This will become clear soon. This one I named wpt_flemhut_ext. Now open the Object Inspector for our door, which will look like this:

Settings for our area transition

Settings for our area transition


Everything for this door can be left as default, even the Tag of the door; however, for larger scale mods I would advise change these tags too… less confusion when you try to debug and need to find a single door in a city area. ;) For simplicity’s sake, set the tag to atdr_flemhut_ext.

Note: In the next tutorial I will be going over custom area transitions. :)

One last thing with our door transition is to set its variables. In the Object Inspector window, click on the “Open” button (triple dot) to get this:

The variables for a certain resource, in this case, a transition.

The variables for a certain resource, in this case, a transition.


Sort the Name column so that you have PLC_AT_DEST_AREA_TAG which is the area tag of our destination. Seeing as this is our exterior door, we want to point this to the interior, which should be tut_flemhut_int and set the PLC_AT_DEST_TAG as wpt_flemhut_int.

That should be it for the interior. OK that window and switch to our interior. Again, we want to name our waypoint and set the transition of the door. The interior waypoint has to be the same as the exterior door’s variable PLC_AT_DEST_TAG, which in our case is wpt_flemhut_int. Now change the interior door’s variables to point to the waypoint outside.

PLC_AT_DEST_AREA_TAG = tut_flemhut_ext
PLC_AT_DEST_TAG = wpt_flemhut_ext

I hope that made sense. Basically you need to point the object to its opposite side, which is where naming becomes essential to save time and headaches.

Right! Almost done. The last thing we need to do is save and then “Check In” both the areas we’ve created. The easiest way to do this is to right-click the tab in the main view port and then click Check In. You will see that the resource you’re trying to check in is highlighted, and there is a comment box below. I normally put something like this:

Initial check in/commit - basic info about what was created/modified

Initial check in/commit - basic info about what was done

Repeat this with both areas, and once done you want to go to File > Manage Modules again and under Starting Area select our exterior map, then set the Starting Waypoint to our mod_start. OK that, select Open on our Module again, and finally we’re ready for the export and test. :D

Go to Tools > Export > Export with dependent resources. Give this some time, as it can take a moment or two to export all the necessary files. Once done, we want to do two more exports, but this time we want Tools > Export > Export Module XML and Tools > Export > Export Manifest XML.

Once all these steps are done, open up the game and (hopefully) the newly created mod will be filed under Other Campaigns on the main menu. :)

NOTE: If whilst testing you find that you spawn outside the map, or do not spawn at all, check that the transition door are named and pointing to their corresponding waypoints. Also, if you placed a waypoint on uneven ground, you want to lift it just a fraction so that it doesn’t go through the floor. If you are still having problems, leave a comment and I’ll try to answer your queries.

Popularity: 97% [?]

October 24th, 2009 | Tags: , , , , , , ,

:edit – 12 Nov 09: I’ve rewritten the lua scripts for this mission and will now share it with you. I will assume you know how to create a simple mission and set up the entities in the map panel. If not, please refer to one of the many tutorials on the OFP:DR mission editor forums.

First thing’s first, you need to create your playing field and set up your entities. You will need the following:

- 3 vehicles (destructible ones)
- 1 level script
- 1 mission objective
- 1 fireteam

You will need to set up your Mission Objective marker and set the objective text and everything like that, then you want to select the Fireteam’s echelon and Jump to a character within the fireteam. Set control mode to “player” and leave the rest as AI or multiplayer. Whichever you wish. Rename the trucks to truck1, truck2, and truck3 (this is just for ease of naming, you can do whatever names you want). Once everything is set up you want to enter the following code to the level.lua panel:

-- onMissionStart().. place everything you want to initialise at the BEGINNING of the mission here..
-- such as setting up primary start objectives like "rendezvous with such and such"
function onMissionStart()
	OFP:setObjectiveState("trucks", "IN_PROGRESS") -- sets objective "trucks" to in prog. makes sense..
	OFP:setObjectiveMarkerVisibility("trucks", true) -- trucks objective marker set to visible
	tP = 0; -- sets variable tP to 0 - more on this soon
end
 
-- custom method, not built into OFP:DR API
-- what it does...
-- when progressCheck() is run
-- if value of tP is 3 then set objective "trucks" to complete
function progressCheck()
	if tP == 3 then
		OFP:setObjectiveState("trucks", "COMPLETED");
	end
end
 
-- the onDeath method can be used in two ways
-- either onDeath_truck1() etc etc and create new blocks for each entity on the kill list.. OR!
-- create an array/table of victims and place everything into a single block statement
function onDeath(victim, killer)
	victim = {truck1, truck2, truck3} -- sets array with all three kill targets' entity names
	tP = tP + 1; -- each time a victim in the above list is killed tP is incremented
	OFP:displaySystemMessage(tP.."/3 trucks destroyed"); -- display console message "value of tP" out of 3 destroyed...
	progressCheck() -- run the block we created above, so when tP increments to a value of 3 (when all are dead) the mission completes.
end
-- easy stuff, eh!?

My map screen looks like this, and my code is as above….

Popularity: 39% [?]

July 28th, 2009 | Tags:

Okay, so without going into much detail about this, I’m design a desktop UI for an OS. It’s not going to be used as an OS, but I want it to feel like one. So, for instance, when you open a browser page it gives some ‘pseudo-internet’ pages. Like a spoof OS, if you like.

What I want is some input from anyone that reads this blog. Ideas are welcome for features, look, animation, etc.

Popularity: 13% [?]

March 21st, 2009 | Tags:

Just been to the Apple Store’s Genius Bar with my mate Phil to replace his iPhone. The strangest thing… the girl that was serving us saw Phil’s email address (@deadbadger.org) and commented on how he came up with the name, which pointed the finger at me for setting up the site.

Well anyway, conversations led to a bit of Badger Trivia. Apparently if you hit a badger with your car, you have to report it to the police because they’re protected or something. The enemy are well entrenched in the government now! This is a bad day for the Anti-Badger Coalition! Men! To arms!

Popularity: 11% [?]

March 9th, 2009 | Tags:

Yes, I went and did something I didn’t think I would ever have done. I bought myself a netbook – a bloody Samsung one at that.

While I’m no fan of Netbooks due to their size and power, I have to say that I’m pleasantly surprised by this one. It’s fast, very fast, and can load up Windows XP in a matter of seconds, as opposed to Vista’s minutes. Added to this, it has a fully fledged SATA-II hard disk drive in it, which other models of the same variety do not – they have tiny little flash drives. Dirty flash drives.

The NC10 is not the smallest of netbooks, strutting into the ring with a 10″ widescreen display running at 1024 x 600 resolution, and weighs in at roughly 1.5kg. Not bad, I say.

There is a built on webcam, the keys are 17.7mm wide, which makes for decent fast paced typing. What every geek does!

The power consumption on this beast is very efficient too, though I haven’t fully tested this yet as I’ve only just recently got it and it needs to go through my rigorous cycle of battery prepping.

Anyway, it’s a bloody nice laptop! I’m proper chuffed about it.

Popularity: 7% [?]

March 5th, 2009 | Tags: , ,

I’m such a geek, but it means I can do this stuff while on the road or at a place without internet connection! Good fun

Popularity: 9% [?]

March 2nd, 2009 | Tags:

Those reading this who know me personally will know I’ve not been 100% myself recently. This was due to an infection in my throat that attacked my tonsils and glands within that area. Fucking hurt like hell, I tell ya. I am, however, recovering and not a moment too soon.

I’ve got a couple of projects lined up, which will require a lot of my time and energy, and will be on-going for quite some time. One project involves the design and build of a completely new site for news, blog, and random posts. This shouldn’t be too hard in itself, but there are a few other features needed that will not be so pleasant to code in. -.- Ah well, it shall be done nonetheless.

The other project is to do with games development. I’m planning to go to University in 2010 to study Games Development. This course will hopefully teach me everything I need to design, build, and market a game. What I wanted to do before I went was have a couple of small games created so that I could go into the course with some experience under my belt. This would be a wise move, as I already know the games engine they’re going to be using on the course, and I can actually buy the license to this games engine without any trouble. Excellent stuff or what?

I have a few other little projects lined up. Nothing major or time consuming. Just stuff like tweak the design to this blog, a friend’s blog, and write a couple of artciles/stories, etc. :)

All good now I’m on the recovery path.

Popularity: 6% [?]

February 22nd, 2009 | Tags: , , , ,

Okay, so I haven’t updated wordpress for a while, and in not doing so I have missed a couple of major revisions… apparently.

The whole back-end looks crazy. Things all organised and stuff. I don’t like this! I like disorder and chaos. :(

Also I don’t like this Typograph theme. It will need modifications. Not enough awesomeness for my liking.

Popularity: 6% [?]

February 9th, 2009 | Tags: , ,

I was recently tagged by stratos, friend and fellow Brucey. So I have to write a few points – seven to be exact – about myself that no-one else knew. Then I tag a few people and maybe they’ll do something similar. Maybe.

So, let’s get to it:

  • I have a short attention span – I like change. A lot of change. Staying in one place, job, or activity leaves me wanting to move easily. This is why, as yet, I’ve not been in a single salary job for more than 2 years and find myself looking for new frontiers often.
  • I love to travel – I think most people do, too, but I thought it worth a mention. It’s not always the place I’m going to that is the main appeal. I actually like the travelling part, whether it be in a car, train or air.
  • I’m fascinated by human behaviour – I’m a people-watcher. I like to sit in a public place like a coffee shop, or a mall, and watch the world go by. The amount of things you spot in other people is interesting. How they react to certain situations, like a homeless person asking them for money, or someone calling their name unexpectedly.
  • I dislike politics – Nuff said really. I stay clear of it.
  • I’m a Buddhist – Most people don’t realise this. I don’t come across as religious, apparently, but that may be because I don’t reference everything I do and see to a piece of text. Also, I do not force my dogma onto others.
  • I dislike dairy – I don’t eat much dairy
  • Technology scares me – Now this may be a strange thing to admit, considering my profession is current in the field of technology, and also my spare time relies heavily on it. There is, however, a certain amount of concern I harbour towards how intrusive some technology can be. Satellites tracking your phone’s location, computer security that can help you trace stolen property. Big brother is watching.
  • The nominations!

    A list of people I will now tag. Go go!

    Sofi – Another fellow Brucey
    Maja – Yet another fellow Brucey
    Tom – Good friend and wheelchairjihadist!!
    Stu – Also a wheelchairjihadist!
    James – Good friend and motivation to achieve more of myself! :)

    Popularity: 8% [?]

Page 1 of 3123»
TOP