Thursday 10 January 2013

Thursday Triumphs

What A Lot Of Things

I can report that I awoke, drank lots of tea and coffee, and made a lot of things happen today. Consulting my new monster diary which I got for Christmas (not had one in a few years but  this one is pretty beefy so acts as my daily jotting pad too (which is great for going back in time to find important bits of information you jotted down)). Got emails out of the way quickly, uploaded four new versions of one AGK project, finished off another AGK app and prepared iOS versions of that as well.  Cleaned out the older iOS provision files ready for an AGK V108 release and sent off a few emails to get more clean-up done and prepare the ground for AGK activities in 2013.  Did some various AGK debugging and device testing until everything worked nicely, and backed up by Mac which I keep forgetting to do.

The Next Thing Is The Only Thing

All of the above was done in the present moment, with very little advance planning. Just sat down and though of the first thing entering my brain then did that. Seems like the universe knew the priority list quite well when I went to consult my task list later in the day.  One thing did strike me from the list though that the universe did not make me do, which was play ONE FPS game and blog about it.

My ONE game

The game I have decided to unwrap, install and play an hour or two of is called XCOM Enemy Unknown and was rated (by some site) as one of the best ten FPS games of 2012. A highly subjective claim, but I bow to practically every authority going when it comes to rating the latest games.  Developing games is like making chocolate. You are surrounded by them all the time, so when you have some free time you are not spending it in front of the computer playing (eating) the things you where making (cooking) a few hours before.  The analogy is not quite right as games are your typical every-flavoured-bean and you can pretty much eat them for the rest of your life without getting bored of them.

I write this after I have installed the game but before I have launched or played it. I use Google Blogger for my daily rants and it allows me to save my progress and return at a later time. This time fast approaches. I am going to put down my blogger, switch off my backed up Mac, make a BIG drink of decaffeinated coffee (decide whether to Google whether decaf can still keep you awake at 11:10PM) and then put my papers away and start a new game experience.

As you may know from my previous blogs, playing games at the moment is a very serious business and involves spotting cool things we can put in Reloaded. From the cover art and screen shots, it looks very space based with modern and futuristic guns, machines and gadgets with what looks like an alien in there too. Time to don my space helmet and report back in a few hours with news of what I found.

Many Hour Later - What I Found By 3AM

Well I found I was getting tired :)  I also found out that XCOM Enemy Unknown is not a traditional First Person Shooter, and bears a striking resemblance to Space Hulk using turn based manoeuvres to win the missions. It's a game I could learn to enjoy a lot (as it's a thinking persons game like chess) but my research mission does not include turn based games.

It was essentially a First Person from the perspective of the 'Commander' who directed the choices, appointed the teams, co-ordinated the action, e.t.c and of course lots of things got shot (aliens mainly) but it's not what I would call an F.P.S.

I did pick up a few ideas though, and something I noticed before but with the absence of FPS action to focus on I realised plays a key role. First all the games so far have dynamic loading pages, that is, they move in 3D, have text, images, voice over and animation which engages the player while the all important game data loads in. The story sequences are almost always real-time 3D sequences using the same game models (with perhaps excessive use of shaders for cinematic effect but not much use in combat). The interruption of the game with more story moments, explanations, clarifications and instruction is key to a great game story, and so, Reloaded users will need a way to create these sequences without breaking a sweat over them.

I wonder if the way point system we talked about before, which would be improved to allow enemies to patrol, stop, talk, look, wait, e.t.c could not also be used in a story board manner in concert with other characters along the same time line?  We could then make the 'game camera' an invisible flying character too and then edit these crossing lines of movement, actions and voice along a single timeline segment.  If this could be made easy, you could edit/paint (rather than script) a sequence which can be used for a story element or a sophisticated enemy response to various incursions. 

Just imagine, depending on which door you came in from, you could trigger a short sequence where the base commander calls to his soldiers to take up a flanking position against the east wall, and then move the characters to those locations. If you enter via the second door, a different sequence could be triggered where the commander is taken by compete surprise (with a nice bit of banter), just before you throw him out of the upstairs window and into the river, with another sequence showing the aforementioned soldiers running to the lake and shouting out to the commander why he decided to go for a swim. I think blending the story sequence with game sequences, and not 'pausing' the action while you watch the pretty video, would be a better approach. Sure, you could probably have something to freeze the action of the player while the sequence plays out, but by default I prefer to have everything live and running.

Which Means Of Course

A big, huge, monstrous task I am not looking forward to is saving the game states with the new Reloaded engine. I will have to record EVERYTHING this time, from the position the rag doll bodies collapse into, the animation frame of each dynamic element, the stats and values of every entity anywhere in the world, everything about the player at that specific moment and probably a thousand other small details.  To combat this, my plan is to make a single super structure that when the time comes will be the only place storing ALL this information in a single place. By separating dynamic 'movable' data with the static stuff that just gets loaded in and referenced, there is no longer any guesswork and trial-and-error about what data should be saved. If it moves, it's part of the super structure, and the entire super structure gets saved.  It will mean some pretty beefy save files, but lets face it, when you club ten guards on the head and stuff them all in the wardrobe, you want them to be there when you load in your save position.

It's not paramount of course, even Dishonoured which I now hold in high (if unreachable) admiration will conveniently remove old corpses and unconscious characters from the scene after a reload (or after a short while), which I am guessing is the same reason Quake used to face out bullet holes and splatters after a while, to keep performance high, game levels clean and life of the tester manageable.

Personally, if I can find time, I want to have the ability to destroy and mangle a level continually for three hours, and then save an exact copy of that wonderful carnage for another three hours the day after.  Resetting even a small part of the world you helped create somehow distracts you from the immersive universe you are trying to weave.

Signing Off

It seems the lateness of the hour does not diminish the size of my blogs, but it's been a full day (and night) and I am happy to offload my experience of it unguarded and unedited.  Been in email correspondence with Paul, another night owl here at TGC, and have made the decision to remove the Debug libs from the final AGK installer which will reduce the size of the installer and development files T2 users need. It will not detract from iOS, Mac and Android users, and a small change to the VS projects and a modified Debug lib will satisfy T2 Windows users too.  It also means we have less to build each time a version goes out, which is good for everyone. Friday is my last official blogging day until the next working week, and I have not decided whether to stay in Wales and play more games or drive to Wigan and do some good honest grunt work filling a large skip that needs filling desperately. It seems I can get Blogger for Mobiles thanks to Google, so maybe later on in the blogging season I can turn this into a 24/7/365 blogging experience :)  For now, I get to escape the endless paragraphs during the weekends and you get a rest from reading it all.

12 comments:

  1. Lee!

    Please Look at Fallout 3.
    Not the newest but one of the best FPS/RPG Game to learn from.

    ReplyDelete
  2. Great advice! I remember that one from some developer magazine. Some really nice tech in there. Will order it immediately.

    ReplyDelete
  3. In most high-end games, there is some sort of environment destruction going on. A lot of that comes down to the artist; but finding a way to integrate that with your new physics system may be worth looking into later on, even on a rudimentary level.

    ReplyDelete
  4. You said, ". . . the games so far have dynamic loading pages, . . . which engages the player while the all important game data loads in. The story sequences are almost always real-time 3D sequences using the same game models . . . The interruption of the game with more story moments, explanations, clarifications and instruction is key to a great game story, and so, Reloaded users will need a way to create these sequences without breaking a sweat over them."

    I have read plenty of white papers, articles regarding this same thing. The first thing that is important is always keep the human player immersed in the game and not allowing too many huds covering up the scene (screen). Although explanations and clarifications are important, they shouldn't be too lengthy, although this is a developers decision. I personally like to do clarifications and even explanations using conversations with characters in the game. I don't know if any of these games you are playing do this or not. If they do, do they use "talk boxes" of sorts? I use these a lot, but mine is more RP than FS. So I would say in more of a first shooter game there would not need to be as many but I personally still think it is important to have.

    Providing a way to make great cut-scenes would be terrific for a tool such as FPSC-R. All you mentioned regarding this sounds great. Also, I've always felt that saving everything is the thing to do.

    I was wondering, will a player be able to go to any level and even back to levels? I asked this here to see if you read my comments. As lengthy as they are. I guess, I really don't want to be wasting my time. ;)

    ReplyDelete
  5. Non linear level progression was mentioned during the Kickstarter, not sure if it was a stretch goal, but I think bouncing between any two levels would be fun. I think the days of level 1, level 2, level 3 are pretty much gone now, and it's about player choice about where they want to go next. No reason why this should be withheld from Reloaded, apart from development time :)

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. Thanks Lee. Of course, I am doing this now with FPSC - RPGmod. It's not that difficult once you begin looking at the logic. It is a matter of saving the level data. Here is the scripting I use to go to a level. It can be any level. Not just level #2.

    ;set global variable number that will be used on return from quest
    ;this is the only time that rpg_setnextlevel is used because of forced quest
    :state=20:globalvar=2,rpg_setnextlevel=2
    ;if global var #2 = 2 then goto state 30
    :state=20,varequal=2:state=30
    ;if global var #2 <> 2 then goto quest but save current level first
    :state=20,timergreater=250:setvar=2,rpg_savecurrentlevel=51,rpg_gotosetlevel,state=23
    ;this must be none as state saved before going on quest is 20
    :state=23:none
    ;
    ;after returning from quest then restore rpg data and end forced quest
    :state=30:rpg_restorerpgdata,timerstart,state=31
    :state=31,timergreater=150:rpg_endquest,state=15



    This is the scripting code for returning to level #1 from level #2


    :state=0,plrwithinzone=1:rpg_addvar=quest1 1,
    rpg_addvar=rtn2tasdim 1,rpg_endquest,state=10
    :state=10:rpg_saverpgdata,timerstart,state=12
    :state=12,timergreater=250:rpg_loadlevel=51,state=103
    :state=103:none


    I believe you can glean what you might need to do when you get to coding Reloaded. If you want to go back to a level that was already played you load the saved level data. Whenever you want to go to a level that has not been played or you want to play from start, you set the level, save the current level, and then goto the set level. For my mod I had to save all rpg data because that is not a part of the normal save/load routines. ;)

    This may or may not help but thought I wold give you some insight to what I did in my mod for FPSC regarding "non linear level progression."

    ReplyDelete
  9. I didn't know that deleted comments are indicated as such. Unfortunately I couldn't edit and I didn't know how my comment post was going to look or work out. Thus, as you can see I wasn't very happy with two of the posts. I'm still not happy with the third, but, it will have to do. I'm not going to have another deleted comment. :)

    ReplyDelete
  10. DOH! I guess that's what the "Preview" button is for. Duh! Who says you can't teach old dogs new tricks? Old but still learning. I can also click the "edit" link in the preview window. :)

    Of course, I've found that whether you click on the "Publish" button or the "Preview" button it takes you to the Preview window. I suppose it's because of having to put it the anti-robot text. ;)

    ReplyDelete
  11. I love fallout3. Like the ability to enter buildings and other areas at my own pace. No level 1,2,3.

    ReplyDelete
  12. Just got the confirmation today that it's being shipped ;) It does look like a good one. Can't wait!

    ReplyDelete