Jump to content

Blogs

Merry Christmas!

There's a crazy sale on Steam right now. If you haven't played STALKER yet, you can get it for $10: http://store.steampo...check/app/4500/   In other news...   Framework is being compiled into the engine DLL and being made an official part of the engine API. It will remain a separate piece of code for BlitzMax programmers they can just import. A mechanism will be added to add your own custom post-processing effects, though this will not be available immediately. It will be something like th

Josh

Josh

Behavior Sets

It's the holiday season again. As the forest air reaches freezing temperatures, I break out the ice shaver for my windshield. It's a time for celebrating family, sharing thanks for what we have, and behavior sets. That's right, fuzzy-logic for AI in-game.   Since the world designers for the game won't have access to the direct behaviors, (nor the programming skills to code such things) I've managed to find some use for the custom Entity keys on objects in the Sandbox! Each entity will have act

Rekindled Phoenix

Rekindled Phoenix

Further work on path finding

Since my last update I have tried to get recast callable from within blitz to make it available for everyone. However I have failed as I have not got enough Blitz/C++/DLL skills. I'm hoping someone will offer some help.   I was unhappy how I handled dynamic movable objects as there was a chance the steering wouldn't avoid hitting them. Because of this I rewrote my interface to recast to use a tiled nav mesh, this means I could dynamically update a tile if a object moved in/out of a tile.   T

Chris Paulson

Chris Paulson

12-22-9

Working to improve the implementation of the code known as framework. It needs to be able to talk to Lua, with all programming languages. I can't really go on documenting the script until this is finalized, so the time to do it is now.

Josh

Josh

12-18-2009

This is a good idea to keep in mind, especially with something like software development:   "Don't judge each day by the harvest you reap but by the seeds that you plant." -Robert Louis Stevenson

Josh

Josh

12-17-2009

Well, the single-state lua update is out and I am ready to start making tutorials again.   Someone in the forum pointed out the game Fuel to me. This is an offroad racing game with a nearly infinite world. The data is streamed off the hard drive, basically like its treating the drive as if it were extended RAM. The game got bad reviews, but I think it's great. I went driving for at least 30 minutes and covered mountains, desert, redwood forests, and ravines. I'm in love with the terrain engin

Josh

Josh

Revisiting my code

Hi there,   While spending some days in hospital without internet connection I have used the time (not much) to revisit my existing code for my tools and I have found some things i will no get on:   First the Batch converter:   I have started to reprogram it, not everything but the whole internal structure will change a lot. I have found a lot of design errors which are too heavy to fix and reprogramming it with using some old components seems faster and cleaner to me. I believe that

klepto2

klepto2

Multithreading can be cores times slower or cores times faster than single threading

I added multithreading capability to the Siipi speedtest tool, and it showed surprising results: Looping got almost number of cores times faster, but allocating memory got almost number of cores times slower!Here's the test with the first part using 4 cores, and 2nd part using 1 core (as before):Speedtest 1.1 © 2009 SiipiCounting 10 billion floating points using 4 cores...thread 1 begin=25000.000000thread 2 begin=50000.000000Main loop begin=0.000000thread 3 begin=75000.000000thread 3 loop ended

Canardia

Canardia

Why can't a day have more hours?

Just a small update and an information why everything is progressing so slowly with my tools.   Unfortunatly (well, not really) I'm currently full of work with my daytime job (project deadlines, new features, etc.) that I'm currently don't have much time to do some private programming. This weekend I have some freetime i will spend to fix some bugs with the batch texture converter and coninue with my work on the asset builder.   Hopefully I'm able to post some progress soon.

klepto2

klepto2

Layers and Outlines

I've recently started to use Layers for web apps, and Outlines for Notes apps. And they give a better development speed.However, Layers have also some problems:1) They don't scale with the web browser window like tables do2) When replying with history to an Notes e-mail, layers get all screwed up, so you can only use tables in Notes, but for web apps Layers are still quite goodOutlines for Notes apps totally rock though:1) They expand vertically when you expand their entries (like with subviews)

Canardia

Canardia

Moving without foot sliding

When your NPC moves it may move at different speeds, especially if you are using some sort of steering. This presents the problem of what speed should you play your walk/run animations. My solution is to analyse the animation and see how far the foot travels from start frame to end frame and when animating play the correct amount of frame(s) for the distance.   Here’s the code:-   #include "anim.h" void animItem::calcAnimDist( TEntity e, TEntity bone ) { TVec3 startPos; TVec3 newPos; TVe

Chris Paulson

Chris Paulson

Debian 5.0 GNU C++ makes the fastest code

MinGW 3.4.5 C++ vs. Visual Studio 2008 C++ vs. GNU C++ make quite different quality in speed of executable code.Currently MinGW is 1.902 times slower than VC++, and VC++ is 1.315 times slower than GNU:MinGW default:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=41.594000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=16.937000s.Total time=58.531000s.VC default:Speedtest 1.0 © 2008 SiipiCounting 10 billion floati

Canardia

Canardia

Line Of Sight/Vision

For NPC AI to work they have to have simulated vision. This is done by using raycast/linepick.   My vision system does the following:-   Takes into account head position - using head bone Takes into account rotation of NPC spine bone (used for aiming) Build list of enemies in view range Takes into account FOV It looks through each of the ememies bones to see if any part of the enemy is visible. It returns location of the first bone found. This is to make sure enemies are still seen even

Chris Paulson

Chris Paulson

December 8, 2009

Rewrote the scripts that needed to be done with the OO single-state system. Just a few things to wrap up now and I will have it available.

Josh

Josh

Managed C# Leadwerks Library

Lazlo just released his managed C# Library for use with Leadwerks!   C# Headers   The Object-Oriented layout of this library is wonderfully organized, just like a game engine library should be! With this code the objects aren't stored as pointers, but classes. All of the same features are structured, and each object has related functions to the types of entities per Namespace.   Every .Net Leadwerks developer should download this library.

Rekindled Phoenix

Rekindled Phoenix

Why Apple Fails

Their prices are more than 250% the price of a comparable PC. Even their "most expensive" laptop is using a budget GPU! So for less than half the price, you can actually get a laptop with a much better GPU!   $999: http://www.newegg.co...=laptop%209800m   $2499: http://store.apple.c...mco=MTM3NDcyOTc   Just for fun, I checked all the most expensive options. The grand total was $7305.35. Who spends $7000 on a laptop with a budget GPU???   I can't believe how dense their management is.

Josh

Josh

December 7, 2009

It's 12:30 in the morning, but I have the model scripts working the way I want. Thanks to "Nilium" for his tips, and to everyone who gave their feedback. I am confident in this revision. I have a lot of scripts that need to be slightly altered, but it's just a matter of adjusting the function structure, not really changing any existing code.   Here's the light_ambient script: require("scripts/class") require("scripts/linkedlist") local class=CreateClass(...) function class:Spawn(model) lo

Josh

Josh

Lua work

I've been revising the Lua design a bit. Ideally this should have been done six months ago, but I did not realize how popular it would be. During beta testing there wasn't much interest in it. That's understandable, because no one likes using beta software. As soon as it was released, suddenly there was some very advanced stuff being implemented immediately. This is great, and I can see my thoughts about how it would benefit us were correct. It also made me want to implement a single-state syste

Josh

Josh

What a behviour code segment looks like behind the previous strange code

In a previous blog entry I showed a code sample of the behaviour tree. In the code below is the code that is fired for each behaviour.   The return status mean: -   RUNNING - Keep on running the behaviour FAILED - Exit this behaviour with error (has different effect depending on sequeance/selector/parallel node. COMPLETE - Exit this behaviour with complete (has different effect depending on sequeance/selector/parallel node.       #include "actor/include/action.h" #include <aliv

Chris Paulson

Chris Paulson

My leadwerks loader for recast

Here's the code that loads in the verticies to recast:-   Include:-   #ifndef MESHLOADER_SBX #define MESHLOADER_SBX #include "leo.h" #include "MeshLoaderObj.h" class rcMeshLoaderSBX : public rcMeshLoaderObj { public: TEntity scene; int vcap; int tcap; int nidx; rcMeshLoaderSBX() { vcap = 0; tcap = 0; scene = NULL;}; ~rcMeshLoaderSBX(); void addVertex(float x, float y, float z, int& cap) { rcMeshLoaderObj::addVertex( x, y, z, cap); } void addTriangle(int a, int b, int c, int&

Chris Paulson

Chris Paulson

DoWait(), DoSound(), DoMoveTo()

I got all 3 of these functions working. I'm working on an script to show how these 3 will work.   DoSound(cr, 'abstract::hello.wav') DoMoveTo(cr, fw.main.camera, GetEntityByName("pivot01"), .05, 1) -- moving the camera to the pivot named pivot01 at a rate of 0.5 and it'll stop when it's at a distance of 1. This move function doesn't use physics. Another function will use physics for movement.

Rick

Rick

×
×
  • Create New...