March 16, 2011

Released : Grand Rogue Auto 0.3.0

Here is the 0.3.0 version of GRA. It doesn't include all the features I wanted to put in this build, so you can expect small updates in the next weeks. The changelog is quite long between the numerous bug fixes, new features and tweaks to existing ones. This article details the major changes.


Private property is now understood by NPC. Not to the point I need to achieve, but it's good enough for now. As a result, NPC will react when you are breaking into their stuff. Stealth checks during lock-picking attempts will be harder if the owner is looking at you. People won't ask you to leave their home yet for practical reasons, but it's already technically possible.

The User Interface has been improved too. The panel to the right is far more informative and nicer to look at, the game log is in color and resizable. You can see if a NPC is hostile or friendly easily. The way the mouse is handled has largely been improved: the "left click" is now used to travel, and the "shift + left click" to step; hovering the cursor over an object or NPC will display related info in the right panel. The GRA Wiki has been updated to explain the changes.

Gameplay-wise, it's now possible to "pickpocket" other citizen by performing a right-click or by selecting them and pressing the "U"se key. You'll have to be next (or over) your target to do so. There's also more loot to collect in the houses as shelves and fridges are containers now. Doors can be closed by the player. 

Also, as an introduction toward the Faction roadmap tree, attacking someone from a faction with a ranged weapon will result in reactions from people of the same faction. Unarmed civilians will flee while gang members and cops will fight back.

Missing Features

The following features were scheduled for 0.3.0 but didn't make it in time, they will be included in next updates.
  • People closing and locking their doors
  • Jobs: Thieves and improved medics
  • Rudimentary save/load ability (saving the player's progress and inventory only)
  • Pawn shop to sell loot.

Full Changelog

v0.3.0 - Economic Tree Part Two
 (+) [Gameplay] You can pickpocket other NPC (right click, or use the "U"se key on a targeted npc).
 (+) [Gameplay] You can open/close doors (right click, or press the "U"se key on a targeted door).
 (+) [Gameplay] Cracking a safe in front of his owner increases the stealth check difficulty
 (+) [Gameplay] Travel mode stops when receiving damages
 (+) [AI] Ability to deposit and retrieve items from owned containers
 (+) [AI] NPC to NPC/PC interactions are easier to handle code-wise
 (+) [AI] NPC send an alert and act as if attacked when someone breaks private property rules in front of them
 (+) [AI] The AI now looks for owned items (in containers) to satisfy the NPC's needs
 (+) [AI] NPC are more likely to idle in their home
 (+) [AI] Attacking someone of a specific faction will cause nearby faction-mates to react
 (+) [AI] People won't stay passive anymore when someone of their group is under attack
 (+) [AI] The combat AI may use medicines if the health is below a given ratio
 (+) [GUI] Pressing 'T' in the container window will take all items, pressing 'D' will deposit all of yours.
 (+) [GUI] Improved the right panel and the display in general
 (+) [GUI] Target Info: Neutral targets are in blue, Hostiles are in red, and Friends in green
 (+) [GUI] Items and NPC can both be targeted using the eXamine key or the mouse.
 (+) [GUI] Mouse handling complete (and probably final) overhaul
 (+) [GUI] Mouse movement is now: "Left Click" to travel, "Shift + Left Click" for single steps.
 (+) [GUI] The log is now in colour and resizable.
 (+) [NPC] Some lines of dialogue regarding specific NPC actions have been added
 (+) [NPC] Store owners get a share on sells made by shops
 (+) [NPC] Grocery owners added (have baseball bat as a weapon)
 (+) [NPC] A crowbar has been given to couriers
 (+) [World] Fridges are handled as open containers that may or may not contain food.
 (+) [World] Houses and Mansions have containers with possible loot
 (+) [World] Household containers receive some random objects when a game starts
 (+) [Engine] Household items assigned to NPC (private property)
 (+) [Engine] Private property handling is more efficient and less CPU intensive
 (+) [Tools] aLife Spy window improved (can see the inventory/stats of citizen)
 (+) [Tools] Basic Statistics window added to the debug menu
 (+) [Tools] You can change the player's "job" in the debug menu anytime
 (*) Fixed : Inventory manager not properly linked to the game database
 (*) Fixed : Some functions related to Field of View were not taking the current map into account
 (*) Fixed : Quick Action Bar not reinitialized when starting a new game
 (*) Fixed : Indications about missed hits weren't always accurate
 (*) Fixed : Dropping an equipped weapon was causing an access violation
 (*) Fixed : Memory leak on closure (the game will take a few seconds to shut down now)
 (*) Fixed : Burst Shop indicator not updated when using the right click menu
 (*) Fixed : The ammo count was still displayed for weapons that don't use ammo in various windows
 (*) Fixed : Mouse selection not taking aspect ratio correction into account
 (*) Fixed : Issue causing NPC AI to drop dead under some rare circumstances.

16 comments:

  1. Sounds sweet! Will check it out!

    ReplyDelete
  2. i did a quick play, and wrote a few notes on some want's / ideas / issues.. it's mostly on ui.

    gfx
    - lock to correct scale (32x32) pixels. please fix this. will make it look much better!
    optionally, chaning the window size would make the view bigger.

    key shortcuts
    - why ctrl+'some key'?
    - 'i' for inventory instead of ctrl-i.
    - mark shortcut 't' for take all in containers.

    bumping
    - collision with NPC's
    - info on NPC when pumbing him/her. same as when you right click on top of him. Alternatively speak to that person, or get an option window, where you can choose to either
    - talk to
    - steal from
    - etc..

    sound
    - i get an annoying sound when i try to walk using keyboard when i have sounds activated in windows.

    performance
    - when you move the character, it kind of lag's a little bit. probably because of ai calc. could you run the ai in a worker thread while waiting for player's next move..?

    gui
    - better separation of quikbar items and other functionality.
    - maybe it would be better to put the quickbar at the bottom..
    - personally... i would probably not have much graphical ui and would probably remove the whole left menu. it is kind of distracting and i would rather just use the keyboard. but i can see that probably someone would rather use the mouse.

    - make it possible to eat / use item while it is in container
    - make it possible to select/use items in inventory with keyboard

    mouse cursor / pathfinding.
    - i would probably not do any pathfinding while 'OnMoveMouse' which is what you probably do now, it's laggy and i dont want to see the cursor all the time but rather on 'MouseDown'.

    logic
    - restore health while resting / sleeping

    bugs
    - im certain i picked up some medikits but when i looked in my inventory they weren't there..

    Keep it up! =D

    ReplyDelete
  3. Thanks for the report, it's appreciated.

    gfx:

    You mean a 1:1 display without resizing at all? Will do in next version (I completely forgot about this request to be honest)

    key shortcuts:

    There *was* a reason for the [ctrl]. However I'm pretty sure the reason is gone since the keyboard related code has been rewritten. I'll verify and remove the need to use [ctrl].

    And yes, i will mark The "T" and "D" keys in the container handling window.

    bumping:

    The problem with your menu appearing each time you bump into a NPC is that it can be very annoying in crowded places, not even mentioning melee combat. An example is the "trade y/n" question in rogue survivor each time you bump by mistake on a NPC, it's something i want to avoid at all cost.

    I still like the idea of a key (tab / mouse wheel) used to cycle between different modes (look, talk, combat, steal) better. As a matter of fact it should have been present in the current build but I disabled it as it was causing some bugs. Next major update (0.3.5 or 0.4) will feature it.

    sound:

    Hum, I see the issue. It's the control I use to display the log who thinks the input is for him. I'll fix that quickly.

    performance:

    It depends. If you mean "slow", it's more or less intended, the engine has been designed to accept inputs every 200ms. If a turn takes less (they usually do), a "wait" command is issued to complete the 200ms. It's in so the game speed doesn't seem to change when the player is moving continuously.

    However if you mean "wait time between moves are irregular", I've noticed this issue to some degree, it was already in 0.2.5. It usually happens when there's a spike in the AI activity (150ms instead of 25). Wait commands aren't usually very precise, and it seems that the game waits more than it should do when the activity is too high. Can't do much about it without slowing down the pacing. However, I am investigating those spikes in the AI system.

    gui - quickbar:

    Moving the bar at the bottom would mean smaller space to display the game itself on 16/9 screens. I don't use one, but most people do, so it's not gonna happen.

    mouse vs keyboard:

    I can very well make the left panel optional, so you can disable/enable it in the main menu. Right panel will stay, as i'm not willing to add an overlay for HP bars and such in this game.

    In general, the keyboard will be significantly improved (like the mouse was in this version). And yes, most commands in the various windows will, at term, be accessible through keyboard. Writing UI code is time consuming and ironically need more play-testing than actual game code (where I can let the game run and check the debug logs), moreover it's heavily dependent on the game's content. With a lot of player actions still missing, it's not necessarily wise to finalize the UI right now.

    @mouse cursor/pathfinding:

    It's not what i do (nor what anyone should do, btw) :)

    But, now that you mention it. I realize I completely overlooked something: The 200ms timer thingy I explained earlier applies each time a frame is displayed, that's why the cursor lags behind, it's only refreshed every 200ms. I'll fix that too.

    logic:

    I may add a very slow free health restoration when sleeping into 'normal' beds (several times slower than hospitals). But it's a game balance thing, and as such I'll wait until we have an actual game to see how it rolls.


    bug:

    Yeah it's a bug, but not exactly the one you think about. The real error is that the game let you take from the container when your inventory is full. Another issue is that there's no indication if it's full or not. I'll fix that.

    ReplyDelete
  4. It seems that whenever I loot safes, the items with a certain amount of uses always have 0 uses left. Is this on purpose?

    ReplyDelete
  5. i appreciate you appreciate it=) but i guessed that's the purpose with these early releases=)(in addition to create a buzz on your game;)

    i know ui shouldn't be your main concern this early, and i probably do that wrong myself, but that is also the thing that you notice first, at least that's what i do :P, so it kind of play's an important part of the immediate user/gameplay experience. but what i really like about your game is the complex ai / NPC system, so please have focus on that an ignore my comments ;)

    regarding the comments: looking forward to fixes=) @mouse/key input have you tried to issue move commands with the onKeyClick instead of OnKeyDown (though not sure which one you uses) without the thread wait, does the player move irreguraly then? i guess you'll need the wait(200) at least when you sett a waypoint / path with the mouse.. Also you should probably stop the player if something occurs.

    Regarding NPC bumping. I'd like that if no mode is set and you bump into a NPC, you would just show a description in the log at the bottom / or just talk to that person, which also goes in the log. But I like the idea of setting a certain mode. like -pickpocket -attack etc. these events would also go into the log. minimizing the use of forms might be a good approach.

    ReplyDelete
  6. It's looking good! I'm writing my diploma now, but once I have more free time I will work more on the tileset I make :).

    ReplyDelete
  7. I am SOOOOOO LPing this game now (:

    ReplyDelete
  8. Serial,

    I'm so very impressed with this new release.
    The game is great, and there is one problem out of all of this greatness.

    Con = Mouse
    When I click to move my character, the game will slow down. My world is about 12 x 13, and wherever my mouse is hovering for about the 5 second slow down, it will try to move my character there. Resulting in multiple involuntary consecutive movements.

    In spite of this one small bug, may I compliment you.

    Pros = Limitless
    The new additions are great such as changing your character faction, (So much fun starting a zombie apocalypse, :) ) Also the new addition of drugs are awesome.

    May I suggest the following:

    1. When factions are fully put into place would it be possible to add corporations/businesses. These corporations you could actually work for. Legal/ or Illegal.

    2. Also would it be possible to add the ability to goto the airport, when its put in, and buy a ticket to a new city. A city that would actually be generated. In the new city you could actually travel back and forth to the new city and the original city.

    3. Also with the new drugs, could it be possible to add the ability to make your own original drugs and then sell them to junkies and then expand, and start your own drug empire.

    4. With factional things, could one also be able to get promoted when one works for these factions.

    5. The last part would be multiple levels on buildings, (floors), and then be able to goto a real estate agent's and buy a house, or kill someone and illegally take over the house.

    ReplyDelete
  9. hi dude, how's it going? making any progress?

    ReplyDelete
  10. Yeah, this game is great. I have had some trouble modding it (tried to make a Half Life 2 mod, but the factions are messing up! Called it Half Rogue Life), but it is still great fun. Also, is there forums for it?

    ReplyDelete
  11. Hi Serial Kicked, do you plan to develop it further? You have quite amazing results with district simulations and a good base, it would be great to see it being developed :).

    ReplyDelete
  12. DON'T YOU DIE ON ME GRA *Jake repeatedly slaps his computer screen*

    ReplyDelete
  13. Dude! I'm seriously worried, he used to update this blog regularly and now it has been a month!

    ReplyDelete
  14. Hey everyone. I'm a mom...like one who is 63. I know No-Thing about games and programming but I can tell y'all are a sharp group. So, ask am you shall receive, right? I"m looking to grow my blog in some way that makes sense...not just asking everyone in the world to follow me just so I can get numbers. I'm just thinking you guys might have some know-how??? Am I right? If so, come on over and teach me how...or email me from my blog. Danke!

    ReplyDelete
  15. Oh my... Some advertisement from a 63 yo mom. I don't know if you're plain ignorant or if you just don't care. I'll go for the first. What you do is frowned upon on the internet, it's considered as spam (google it). In other words, go away if you have nothing to contribute.

    This said.

    @Erland & co :

    No worries, it's a bad habit of mine to go "dark" for random periods of time. It doesn't mean the development has stopped. I am committed to finish the game and start 2 others more mature projects based on this engine.

    @Anonymous: No forum for now, I will put one in place myself when the time comes. Modding is kinda limited, but more things will be possible as the project advance (customizable/scriptable jobs for NPC and user generated maps are my most important targets on that matter). Modding factions should be easier now that the related editor has been rewritten :)

    @Aaron: Thanks.

    1) Yes, it's possible, factions can be legit in the editor. The mission generator will use the jobs available to the faction to generate the said missions. For example if the faction has couriers you'll get fetch quests, if it has thugs you'll get kill stuff, and so on. How developed it will be, i absolutely don't know yet.

    2) It *could* be possible to do this in GRA, by saving the first city when you leave and restoring it (+ simulating a few thousand turns) when you come back. However i don't really feel compelled to do it, as a worldwide simulation is kinda what's going to happen in the next game, without using this kind of trick.

    3) Selling / trading illegal items will be included sooner or later. I need to fix issues with couriers and the economy first. The player at one point should be able to take control of a faction (or create his own) and customize it. I can't provide much more details about it yet.

    About creating custom drugs (or weapons for that matter) ingame probably won't be possible. I should have used the 'grammar' system used in most roguelike to generate my items, but i used a database (very similar to what they did in fallout3 or oblivion) instead. Creating new items "on the fly" is not easy. It's an interesting idea, though. And if i have the willpower to rewrite how items are handled I will definitively consider something like that.

    4) The player will have a rank once inside a faction granting various privileges. NPC, not really (or it will be cosmetic) as the Faction AI is centralized (Zerg Overmind).

    5) Skyscrapers (and then probably other buildings) will have several floors and will/may serve as "dungeons" in a near future. Buying houses and renting stores will be included very soon too.

    @Erlend: About the UI stuff, I still need to implement all commands (running, aimed shots, talk) before finalizing the keyboard layout / UI. Be assured I've not forgotten about the bumping and other suggestions. I'm just trying to gain some time in the long run.

    Cheers,
    SK.

    ReplyDelete