Jump to content

Marleys Ghost

Members
  • Posts

    2,157
  • Joined

  • Last visited

Blog Entries posted by Marleys Ghost

  1. Marleys Ghost
    It seems Crytek maybe planning a free CryEngine release.
     
    "The developer behind Crysis 2 and the engine behind it, CryEngine 3, has plans to release a free version of their game engine that will be "up to speed" with CryEngine 3. This should help Crytek to further compete with Epic Games and Unity, both of which offer free versions of their respective game engines, Unreal Engine 3 and Unity. "
     
    http://www.1up.com/do/newsStory?cId=3178763
     
     
    I suppose it was only a matter of time considering the route both Unity3D and Epic have taken. But will be worth keeping an eye on.
  2. Marleys Ghost
    To prevent non Leadwerks Engine specific/Related entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific/Related entries.
     
     
     
     
    Leadwerks Related Blog Entry.
    Leadwerks 3.2 Indie : Proof Of Concepts & Several Tests.
  3. Marleys Ghost
    I thought I'd spend a little more time on this integration, using the laptop whilst watching the Olympics. The next phase was to automate the routines for NPC update and compacting the code routines. Ultimately, the idea is that after the scene is loaded, it will be parsed and flagged Dark AI objects, NPC's, Paths and Zones will be set up automatically via information taken from the relative lua scripts. Paths and Zones will be later, collision objects are done, so I was working on how to go about NPC's using this method. As some may have noticed I am using the FPSC Model Pack 53 characters.
     
     



     
     
    I converted about 5 or 6 characters to Leadwerks format and all the weapons for this exercise. I will eventually convert them all but I hand "prune" the bones of the rig and that takes longer than I want to spend at any one time on this side project. The FSM is still very basic but the first goal was to derive a current Animation state with each of those states having sub-FSM's to dictate the current behaviour based on the previous state and internal and external inputs. The framework is in place for the animation state which is derived by performing Boolean logic on returned values and strings from the Dark AI runtime and some stubs are in place nested inside for some basic behavioural sub-FSM's. First though I want to able to set up the scene and then place all the Dark AI objects, NPC's, Paths and Zones directly in the editor and then use the load routines to set all that up in an automagic way inside the application. The collisional objects were easy and are done with some simple tick box flagging functionality added to their property scripts. The NPC's a little more in depth , due mainly to the large amount of usable settings! lol. But I wanted to be able to place the model and then assign it some basic attributes to be read on load, this included what weapon to attach.
     
     



     
     



     
     



     
     
    So that was the basic NPC property script setup (wasn't that painful anyway). So using the test scene from Leadwerks 2.5x + DarkBasic's Dark AI [Part 2], and placing a few enemies and some friendly's to look after the player, this is the result of the current stage reached in the integration.
     
     




  4. Marleys Ghost
    I am currently working with EKI One, working through its format and structure, getting to grips with the lua behavioural scripting side and trying to brush up on my c++ skills, actually brushing up on my c++ skills is an overstatement as I don't actually have any to brush up! .. lol, I have also been going through my Blitzmax code and trying to compile all the game mechanic functions and methods into a single .mod, trying to keep things tidy. Whilst going through my **** drive, I mean, my well organised storage drive, I found some DarkBasic/DarkGDK stuff, which included the Dark AI library. I have never really used DarkGDK, although I did start out a few years back with DarkBasic. So I wondered (as you do), could it be utilised in LE2.5? Having never used Dark AI (which came in a bundle, that I have never used either, but it was a bargain lol) I knew that R.T.F.M. would be in order. If it relied solely on DBobjects and inherent DarkBasic functionality then probably not. I spent half an hour looking through the commands, and an hour later had it working in an LE context. So to answer the question, it seems you can.
     



     
    I'd have upped a better quality image but I am told "You can upload up to 7.74K of files "
     
     




     
     
    Its all a work in progress, and probably will remain that way as its certainly nowhere near the solution that EKI One is, but as an exercise it wasn't a bad use of a few hours.
     
    I will post a demo in the showcase later for those interested.
     
    EDIT : Demo posted here : http://www.leadwerks...-ai/#entry45564
  5. Marleys Ghost
    I started out yesterday morning looking to improve my understanding of types and methods in Blitzmax, and figure out how to use object-oriented programming (OOP) with it. I have only been programming in Blitzmax since the beginning of December last year, and only programming with C++ since the middle of October last year and The Leadwerks Engine since the beginning of October last year. So I am still on a very high learning curve in this regard.
     
    As usual, for me, I started out on one thing and ended up on another. I found a link on the old forum for a small tutorial on Object-Oriented Programming in BlitzMax By John Judnich. But by the time I had got to page 6 of 21, I was already off on a tangent and found myself working on a simple NPC type containing a creation method and simple seek behaviour method, after all I was now an expert after only 6 pages lol.
     
    I had already been "playing" around with some simple AI which showed vague promise, for an Idea for a small project.
     

     
    An hour and a few more "tangents" later I had managed to restructure the basic code for NPC creation and basic seek behaviour into an NPC Type using methods. This now allowed the easy creation of an NPC, in this case a rather nifty bug, created by ‘Psionic’, with its walking animation handled by its Lua script on load.
     


     
    The test scenes buildings are by GIMPY73 and the Freebeast model is by ‘Psionic’.
     


     
    Updated:
    Test of Basic NPC creation : Seek : Pursue : Attack Behaviour using OOP in Blitzmax running the Leadwerks Engine. Extra flags added for behaviour to the NPC Type with extra methods to communicate with the NPC model's Lua scripts for animation control. Although I did manage to hardcode a typo in the "Pursuit" flag.
     
    Of course this basic AI is nothing like the calibre of AI work being done by Chris Paulson or Pixel Perfect, but I had to start somewhere and this seemed the best place, so far I am pleased with my meagre results.
     
    I recall Josh showing interest in integrating Recast into the editor, this would truly be a useful addition. Leadwerks could really use an integrated AI starting point. Thats not a complaint just an observation. Recast integrated into the engine and editor could be that starting point.
  6. Marleys Ghost
    I started out this morning looking to update a test scene that I used for some first person tests I did in C++ after only having the engine for a few weeks and coding in C++ for even less time. Well, that was the plan. I managed to redesign the layout using 3DWS, and threw a few Dexsoft crates and Barrels in. The plan was then to work on textures but as usual after about an hour I had set sail on the good ship "unrelated" for a voyage across the bay of tangents. Don't you just hate it when that happens?
     
    The scene under modification was for my FPS prototype code in Blitzmax, whilst sorting through my code "archives" I came across my basic code for NPC creation with basic Seek : Pursue : Attack Behaviour (an NPC Type using methods which I wrote about here). Integrating it into my FPS prototype was easy enough and an hour and a few more dozen tweaking "tangents" later I had it all working quite well. The video basically shows 3 "settings" for NPC toughness.
     


     
    Best viewed in HD
     
    Player Control was a bit "twitchy" as I have yet to tweak the Xbox 360 gamepad functions for smoother action, also the screen capture lag did not help
     
    It all still needs a lot of work but I was happy with the results thus far.
     
    I guess tomorrow I will do what I was intending to do today ... or maybe not
  7. Marleys Ghost
    To prevent non Leadwerks Engine specific/Related entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific/Related entries.
     
     
     
     
    Leadwerks Related Blog Entry.
    Leadwerks 3.2 Indie : Animated Character Workflow Test
  8. Marleys Ghost
    Working on two principles K.I.S.S. (keep it simple stupid!) and more for less.
     
    I spent a lot of time researching (read playing) certain games that have what I call an ambient NPC population. This is specifically those NPC's that reside in the background and generally have no real or very limited interaction with the player. Two such areas of research <coff> included Assassins Creed and Fable 2. Although both of these games have a far more complex general NPC population than what I am setting out to create, but the "research" was most enjoyable.
     
    First Step:
     
    Machine Intelligence "Kinda Almost":
     
    Machine Intelligence "Kinda Almost", simply gives an illusion that there is intelligence at work but there is not, sort of like, the lights are on but no ones home. There are several subsets to this group but the obvious one is simple animation. Also this can include proximity reaction behaviour, a posh and complicated way of saying when the player is near, stop what you are doing, and do this instead. But that's as far as interaction goes for those NPC's in this group. This simple ambient NPC type could also use lua scripts, loaded with the level and be left to attend to themselves.
     
    For example, just two chaps having a chat:
     

     
    Having a chat is basically all they do, its simple per character animation's controlled by lua scripts. The purple block volume is the walkable area that would be utilised by more "advanced" ambient NPC's, typically those that move about, particularly those that would use Pre-Loaded and Pre Calculated path routes for this particular level. The purple block volumes are simply required by the application I wrote to generate the route node data for the pathfinding tools I created and have demonstrated here. Not that this is a level just something thrown together for testing but I think I should unarchive some of my GMF format models and put together a small town/Village for testing this, rather than another simple "BlocksVille".
     
    There are obvious limitations to consider with this approach to the first tier of the Ambient NPC population for a "busy" town/village. The NPC's need animation's, most come with maybe 15 animation's (if you're lucky). My intention is to surmount this by adding animation's to them, primarily Mo-Caps. This will require a little work but will be the bedrock for the construction of this "tier". There are some very good applications on the market for achieving this. For me I prefer Fragmotion, there is also a free alternative that I also use on occasion called Pacemaker. But don't be fooled though, none of these applications will do it all "for you", you will need to skin the mesh to the correct rig for the plethora of free to use Mo-Caps, or indeed ones that can be purchased. It will all depend on budget and or requirement.
     
    This is still only a very basic outline for this "packing" stage, it will still require a lot of work but my goal is to get the impact of it at runtime to an almost negligible effect even when including proximity reaction behaviour.
  9. Marleys Ghost
    To prevent non Leadwerks Engine specific entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific entries.
     
     
    Leadwerks Specific Blog Entry.
     
     
    AI, Waypoints, A* Pathfinding, Lua & Leadwerks.
  10. Marleys Ghost
    After the first hour and a half I spent on this little exercise, I followed it up with another couple of hours. The basic integration now has an animation FSM. All still pretty crude and basic but a template to build on at some later date. The NPC's Entity script controls the models animation routines and gun attachment, the c++ application interfaces with the Dark AI library, and then uses messaging to communicate with the NPC Entity via lua script. Again this was just more experimentation and practice for me using c++ to build up techniques that will be beneficial later. Special thanks to Pixel Perfect for pointing out the error in my ways with regard to text strings in c++. Anyway this is the result, I just threw in some values for speed and animation blending off the top of my head just to test the FSM functionality, it will need those tweaking, thats for sure.
     




     
     
    I'd have posted some pictures, but I seem to only have 7k of space left in the blog section, not sure why, as it was over 200MB last time I did an entry here and not just a link to an entry on my off site blog.
  11. Marleys Ghost
    To prevent non Leadwerks Engine specific/Related entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific/Related entries.
     
     
    Leadwerks Related Blog Entry.
     
     
     
    Revamping A Modular Assets Idea.
  12. Marleys Ghost
    I have not entirely made my mind up on the new SSDO (screen-space directional occlusion). I liked, in some circumstances, the effect SSAO gave, especially on bump mapped brick textures. But I find SSDO to be quite "fizzy" possibly from the curve on the camera look values. This may well be down to settings but so far try as I might I still get this. Not sure it will be useful in an FPS situation as the HUD model seems to interact.
     

     
    It does however have a very pleasing effect on "organic" assets.
     

     
    I think I will "play" some more with it, see if I can reduce the "fizzing".
  13. Marleys Ghost
    To prevent non Leadwerks Engine specific entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific entries.
     
     
    Leadwerks Specific Blog Entry.
     
     
    Quick 3rd Person View Character Test.
  14. Marleys Ghost
    To prevent non Leadwerks Engine specific/Related entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific/Related entries.
     
     
    Leadwerks Related Blog Entry.
     
     
     
    Meet The Flockers.
  15. Marleys Ghost
    Firstly, I'd like to take this opportunity to wish you all a belated happy new year. I hope you all have had a great start to it.
     
    I have not been doing much on the coding front for the last few weeks. I decided to get some assets created and try and develop my texturing skills a little further.
     
    I also purchased Silo 3D Pro over the Christmas period as it was on offer. I had used the demo and was impressed at how "comfortable" it was to use. I now use this package as my main modeller but in conjunction with AC3D and UU3D. Basically Ultimate Unwrap 3D is the junction where all my modelling and art packages meet. Not only for Leadwerks with its .gmf export for both static meshes and animated assets but for all the engines I use, for me its an invaluable tool and a good investment for the minimal cost.
     
    I have need of a modular corridor/room set, and decided to set about seeing just how low you can go with the poly count and how much you can offset the inherent "flatness" of a low poly environment with normal mapping and "hand painted" textures. This would be moving on directly from a previous flirtation with texturing which can be found here. Some more incriminating evidence can be seen in the gallery as well, fairly obvious I am no artist.
     
    Another aspect of texturing I have been playing with is bump mapping. I use ShaderMap Pro which is great but making bumpmaps from diffuse textures can have horrible "side effects" when creating panelling.
     
    Diffuse only:
     

     
    Diffuse and Normal map created directly from the Diffuse texture by ShaderMap Pro:
     

     
    Not really the effect I was after. After a few ideas and some testing I found hand crafting a Normal map "template" from which a Normal map would be generated by ShaderMap Pro gave much better results for this exercise.
     

     
    I then made the first test section of the low poly modular level pack:
     

     
    The textures were then UV mapped onto the section in UU3D and then converted all over to .gmf .dds and created the .mat files using ADN ... I love ADN truly one of the most useful tools written by a community member ever!!
     

     
    I Lined a few of them up just for show .. 480 polys not bad .. considering the default rusty oildrum is 256.
     

     
    Encouraged by the result thus far I moved on, making the section bigger but retaining the tilable nature of the textures
     
     


     
     
    Unfortunately real life commitments caused a pause in my endeavours until a day ago so I have spent the last few hours refining some aspects and making a few more test sections:
     

     

     

     
    The overall effect of the technique I am developing can be seen better in this video (HD available):
     
     


     
     
    This is currently the point I am at, With some preliminary drafts for doors/doorways rooms and elevators/elevator shafts ect. I am trying to reach a point where variation is only a texture change away on standard section low poly models. I am still getting my templates organised and fine tuning the work flow and still very much a WIP, but so far I am quite pleased with the results.
     
    Source
  16. Marleys Ghost
    To prevent non Leadwerks Engine specific/Related entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific/Related entries.
     
     
     
    Leadwerks Related Blog Entry.
    Leadwerks 3.2 Indie : I hate waiting in for deliveries! [HD]
  17. Marleys Ghost
    To prevent non Leadwerks Engine specific entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific entries.
     
     
    Leadwerks Specific Blog Entry.
     
     
    3rd Person Movement & Animation Control Rig Test
  18. Marleys Ghost
    Currently I am taking a small break from actual coding right now, give or take the odd few hours now and then I thought it best to start construction of my testing level, or at least get the main parts of it built as the testing scene/areas are blueprints for a project I have had in mind for a while, basically some nasty persons do some nasty things which in turn brings about a whole lot of nasty and the player is the antidote to nasty in general. Yeah, not much of "game description" but radically indepth compared to one by our very own Gordon ... but as usual, I start on one thing and somehow get sidetracked .. not my fault though, honest, it was Epson's! They made my printer, and it got clogged, and if I had not spent 15 mins cleaning it out with A4 paper I'd have never have thought, hey look .. grunge textures. Well, I am no artist that's for sure, and I hate texturing, but I thought might as well make a start. So after the ink had dried I scanned them in and spent a few hours working on a connecting corridor section, heres a few screenshots of how it has progressed so far. Still very much a WIP, but slowly coming together.
     






  19. Marleys Ghost
    Well, its been almost a week since the release of 2.3 and although I have been working away at it there is still so much new functionality I have not had a chance to fully explore yet. I decided the best approach would be to go back to basics, so to speak. Investigate how the new lua scripting and other features would cross over to C++ and Framewerk, this is still on going for me, and I am mixing that aspect in with getting to grips with the new functions in the editor. All in all I am impressed.
     
    The only real problem I have at the moment is do I continue learning C++, I have after all only been coding in it for about two months, or change to Bmax or just concentrate on scripting. I am trying to decide which would be best for the new functionality of 2.3
     
    For me this is key and the basic building block for any venture, especially an actual game. I am looking forward to the tutorials on lua and how it can be used. I do think we have entered a very exciting time with LE, and patience is still needed.
     
    As I always say " Grant me patience lord .... but hurry up!! "
  20. Marleys Ghost
    Following on from:
     
    On The Right Path, A* Pathfinding In Leadwerks.
     
    The Way Forward ... Making Blitzmax Trax ...
     
    I decided to give the testing a few more hours. First off I wanted to create a new NPC Type which would have its own control flags and most importantly its own path storage buffer.
     
    After a little thinking (a little thinking is what I excel at lol) and a few hours of coding and tweaking, I managed to get 32 new NPC Types all pathfinding their individual way around "BlocksVille".
     


     
    For those interested I will try and get a demo.exe up later onto the showcase thread:
     
    Pathfinding With A*
     
     
    Demo now added: Hide And Seek Demo 2
  21. Marleys Ghost
    Well, it has been a while since I made a blog entry, let alone done any work in LE. But I do keep an eye on the forum and Leadwerks in between Daily life and working on my project(s).
     
    I have also been going through my Blitzmax code archive, where I stored all my Blitmax/LE projects and code snippets (finished and not completed). One idea I had been playing with before, was basic NPC AI. I had some small success with some Bugs using autonomous logic.
     
    See Here
     
    In my "treasure trove" of unfinished and messy development code I found what was going to be the next step (for me) with AI functionality. The dreaded "pathfinding". I have read that Naughty Alien said he will be doing a two part tutorial on this and I am looking forward to that, having followed his work with Hidden Dawn I expect the tutorial to be top notch. But I wanted to get to grips with the in's and out's myself. So I started with the basics. I spent some time looking for code snippets and A* lib's in any language that had them to see of I could follow along what was being done ... Not a good place to start, in the end I spent some time reading "A* Pathfinding for Beginners", very helpful.I decided it would be best to start with a "2D" approach and maybe use nodes. Most 2D implementations use a grid based on the X and Y co-ordinates of the screen and tiles to represent an "unwalkable" tile. So I thought I would translate this approach to a 128 x 128 flat terrain with some primitive models to define the "unwalkable tiles". As this was a time limited "side-track" in LE from my other projects, it was all going to have to be quick and dirty. I wrote an app to calculate which "tiles" of the 128 x 128 terrain did not have an obstruction and then squirted this data out to a text file to be read into another app as a 2D array. The map data loads in a few milliseconds so this eliminated having to wait for the same data to be generated by the application I wanted to use to try and get the pathfinding working. One problem I did encounter was that I ended up trying to reconcile three different centre of origins for the co-ordinates. The map data had 0,0 at the top left, the terrain of course has 0,0,0 in the centre and my maths managed to get the A* to read 0,0 at the bottom left, after some profanity meditation I used some quick and dirty and hastily constructed math functions to bring them all into focus, thus as per usual the dev. code was a complete mess, atleast on that score I am consistent lol
     
     

     
     
    This version of pathfinding is very limited, mainly due to the way I created the node info. But for a first attempt I was quite happy.
     
    I have uploaded a demo App to the showcase , the picking can be a little temperamental and sometimes the quickest path is not always found and some "sightseeing" seems to find its way into the route. But on the whole I think it is definitely a platform on which to build.
  22. Marleys Ghost
    Feeling the need to finally start sorting through my storage HDD's I came across my Blitzmax code library. I needed to test the code snippets and sort through what was worth keeping and what was broken. I found a FPS framework I had been working on but the code got broken with the release of 2.32, so before I binned it I thought I'd have yet another go at getting it at least to run. This was about 6.00 am monday morning, well I did have the whole of the day to myself, quite a rare occurrence. At around 11.00 am it was up and running, took an hour to locate all the assets it utilised lol. Still full of bugs and problems, I thought what the ... Heck .. and sat down with a gallon pot of coffee and tinkered with it ... and tinkered.. and tinkered a little more .. by the afternoon I was down to two issues, both to do with parenting objects in the transparency world. I left this and started looking through other code and slowly began to add different proof of concepts I had worked on over the last year or so...
     
    Don't you just hate it when that happens ...
     
    OOP's I did it again ....
     
    I continued to tweak and tinker and add ..at around 10pm .. I had an Idea how to tackle the original transparency/parenting problem whilst chatting with Paul. At around 11.30pm I realised, the makings of a game had been born ... that game is currently known as:
     
    Furious Frank
     

     
    Well, its quite an easy "game" at the moment with infinite ammo and infinite life even if the HUD is telling me its running down .. but not a bad days work I felt .. hopefully next monday I can wrangle some more time and tweak it and add to it.
     
    If I get time today, I will upload a demo to the showcase under the title, MAGIA Monday (as I Dont have time to spend a month on it).
     
    Source
  23. Marleys Ghost
    Well nothing much to report, that does not mean nothing much has been going though
     
    I have decided that as and when I make an emitter for a specific purpose, I will now create its own editor entity to save time by not having to create the exact same settings over and over. Also not every setting available needs to be adjusted so I will now re-write the properties to reflect what they effect and remove the ones not requiring adjusting for a particular effect and simply hard code them into the script.
     

     
    This sort of came about when thinking about trying to get weather effects into the editor and eventually into an app. This is one I did for snow. It's a simple emitter used to create a localised snow effect in the Leadwerks Editor, using a custom .dds file for the snow flake created in Paint.NET
     


  24. Marleys Ghost
    To prevent non Leadwerks Engine specific entries from my Blog being automatically published here via the Blog Feed, I have removed that functionality, and will simply add a new entry title and link here for all Leadwerks Engine specific entries.
     
     
    Leadwerks Specific Blog Entry.
     
     
    Colourful Behaviour.
×
×
  • Create New...