Jump to content

Blogs

Happy Yalda - Merry Christmas

however it's hard to be happy, but lets forget everything for some hours and celebrate because of these two reasons:   Happy Yalda and Merry Christmas every one!   Source

omid3098

omid3098

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

JMichael

JMichael

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

JMichael

JMichael

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

Canardian

Canardian

12-14-2009

New update Thursday, if everything goes well. Progress will speed back up after that.

JMichael

JMichael

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)

Canardian

Canardian

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

Canardian

Canardian

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.

JMichael

JMichael

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.

JMichael

JMichael

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

JMichael

JMichael

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

JMichael

JMichael

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

Entry 0

This is my first blog and I'll be using it to document my progress with the Leadwerks engine.   ATM I am still waiting for the parts to arrive for the PC I bought to run the LWE. This will be my first real 3D capable PC and my first concerted effort at 3D game programming. In the past I've only ever used older computers with integrated video cards, as I preferred the look of pre-rendered 2D RPGs like the classic Fallout 1, or Baldurs Gate to 3D games. However after watching the awesome Leadwer

Davaris

Davaris

The first toddler steps of AI

Youtube video of my AI.   Red line is path found by recast. White text is current behaviours running in behaviour tree.       Here's what the BT looks like (yes it is C++) alive::Node* moveToEnemy(std::string type = "walk") { return alive::TreeBuilder() .execute<ActionMoveToEnemy>() .type(type) .end(); } alive::Node* resetToStart() { return alive::TreeBuilder() .composite<alive::SequenceNode>() .execute<ActionCurrentMode>() .mode("resetToStart

Chris Paulson

Chris Paulson

Realtime Programming

I was just adding wheels to my airplane, and noticed how much time the realtime LUA programming saves me when I was adjusting the positions of the wheels to their exact position. Having the airplane model positioned and zoomed on my screen, I added some code to load and position the wheels, and after each character change in code (like finding the value Vec3(0,0.125,2.01) for the front wheel), I pressed Ctrl-S and saw the result immediately on the screen.   Using C++ or any other compiled lang

Canardian

Canardian

DoWait() working

So I was able to get DoWait() working. It's not 100% ideal because you have to piggy back off another entities Update() method because of the limitation of not being able to have any global values. If you would like to try it out I'll give the steps here.   1. Make a file under the /Scripts directory named cr.lua and paste this code in it: tblWait = {} waitID = 1 clsWait = {} clsWait.__index = clsWait function clsWait.create(tm, func) local wait = {} setmetatable(wait, clsWwait) wait.i

Rick

Rick

×
×
  • Create New...