Jump to content

Canardia

Developers
  • Posts

    4,127
  • Joined

  • Last visited

Everything posted by Canardia

  1. Canardia

    C# Framewerk

    If people would post examples what changes they need to do in Framewerk, those could be generalized and added to Framewerk. At least in the C++ version you could have callback functions and/or ifdefs which could plug-in any customization you'll ever need, and you can use always the original framewerk source code.
  2. Some specialist tip: use www.uu3d.com, as sometimes www.unwrap3d.com is down. Never had any downtime with www.uu3d.com
  3. Oh, american/british english strikes again In international english it is related to physics, like magician is related to magic, canardian is related to canards, or norwegian is related to norway. In international english, we call those who (often unsuccesfully) experiment with human bodies, doctors. They use doctrines based on mutual feelings and mutual information, without actually knowing how the human body or its DNA works. It's like a computer programmer who has no clue what processors, bits and bytes are, and just copy pastes code since it worked for someone else in a similar situation
  4. I see. It seems physicians are using the same name (Omega) for two different things. In velocity formulas it seems to be used for the angular speed, but in torque formulas it's used as angle of the force (or like I like to say: "1-wrongness of the direction of the force"): http://en.wikipedia.org/wiki/Torque
  5. Well, it's as simple as renaming the GetBodyOmega() to GetBodyAngularVelocity(). Currently it returns the angular velocity anyway (a Vec3), and not the Omega (which is the "1/cos(tan(wrong direction of the force))" or whatever the anti-sin(Omega) is), also a Vec3).
  6. Canardia

    C# Framewerk

    That's one benefit you don't get when writing the DLL with C++. So there is no best solution, but we have to find a compromise which has the most (quantity-most and quality-most) important benefits.
  7. I'm not saying LinkedIn is worse than your own Blog and Website, but at the moment it's still too less used for most people (as you said yourself, you just discovered it). Currently, when I search on Google for specific keywords on programming issues (or any specific technical things), I almost always end up with a private blog site. That's where the key information is stored on the internet today. Maybe in future Google will also find things from LinkedIn, but it will take years. Criticism is always a positive thing. Responsivelessness is always a negative thing.
  8. I think LinkedIn is still too much fire and forget type information like Facebook. I actually use LinkedIn much less than Facebook. Although in Facebook all information is lost, while in LinkedIn they seem somewhat organized. The best place to keep your customers and friends updated is via your own blog and website. Many blogs are linked by business area to a blog portal, which shows all new blog entries from all people in that business area on one page, for example: http://www.planetlotus.org
  9. Canardia

    12-14-2009

    The update will also have Marley's Ghost's Framewerk improvement suggestions.
  10. 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 at 100000.000003.thread 2 loop ended at 75000.000003.thread 1 loop ended at 50000.000007.Main loop Done. i=2500000050, n=25000.000009, time=4.390000s.Creating and deleting 100 million class objects using 1 cores...Main loop Done. i=100000000, time=13.313000s.Total time=17.703000s.Now the same test with both parts using 4 cores: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 at 100000.000003.thread 1 loop ended at 50000.000007.thread 2 loop ended at 75000.000003.Main loop Done. i=2500000050, n=25000.000009, time=6.312000s.Creating and deleting 100 million class objects using 4 cores...thread 1 begin=25000000thread 2 begin=50000000thread 3 begin=75000000Main loop Done. i=25000000, time=66.188000s.Total time=72.500000s.As reference the original test, using no multithreading:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=15.078000s.Creating and deleting 100 million class objects...Done. i=100000000, time=12.890000s.Total time=27.968000s.I found also an interesting article where the author claims that multithreading does not speed things up (which is not always true), but rather stops the system from getting blocked (which is always true, as I've experience with the Lucid engine also):http://www.anomaly.org/wade/blog/2005/08/unintuitive_multithreading_spe.html Source
  11. Canardia

    C# Framewerk

    Damn, now I noticed it will be then my job to create the DLL, if it should be done with C++ I'll ask Josh if he agrees with the suggestion.
  12. Canardia

    C# Framewerk

    You can have both. A DLL and customization: just keep the Framewerk DLL source code part of the SDK. The Framewerk DLL must be written in C++ then, so that everyone can customize and recompile it.
  13. AppLogMode() was removed from BlitzMax, but it exists in all other languages still (and also in BlitzMax if you use the DLL version of the engine). In BlitzMax there is however a global variable called LogStreamEnabled, which you can set to True or False.
  14. GetBodyOmega() should be called actually GetBodyTorque(). The term Omega makes really no sense here, as it's only the angle of the force perpendicular to the radius at where the force is applied from the center of the pivot, which should always result in sin(Omega)=1.0. Torque = Tau = r * F * sin(Omega). However, using angles in mathematics and physics is obsolete, and you should use vectors only: Torque = Tau = rvec x Fvec
  15. You can display STL strings in 2 ways: #include "engine.h" #include <string> using namespace std; ... int main() { string s="Hello World!"; ... DrawText(1,14,(str)s.c_str()); DrawText(1,28,"%s",s.c_str()); }
  16. BlitzMax 1.34 works for sure, but 1.36 should work too (the final release, which is not RC).
  17. 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). Navigators can't do that2) You can add a nice company logo and lots of other stuff, which you can't do with basic Notes Views3) You can also add lots of other links than just Views to an Outline4) You can sort the Outline entries how you want, and don't need to add some "1. ", "2. " numbering to the view names, and you can also decide which Views you want to show at allSo far I've been under the impression that only Agents, Views, Forms and Documents should be used in Notes for Notes and Web apps, but these 2 elements seem to qualify for further use too (Outlines need of course also Framesets and Pages, but that's OK as they serve a good purpose). Some Notes performance extremists like Chris Toohey go even as far as saying that you need only Documents and Agents (for web apps only), but I see still some benefits with Views and Forms.I guess I'm just a man in the middle, between the Notes 8.5.1 enthusiasts, and the Notes-Fastest enthusiasts. Actually I'm more of a Notes-Stablest enthusiast, so on Windows servers I use Domino 7.0.4 only. On Linux, Domino 8.0.1 seems damn stable (never crashed yet class). On AIX, well Domino is more stable than the OS, so better install Debian on your IBM PowerPC servers. Source
  18. I would do it like this: #include <iostream> #include <vector> using namespace std; enum PieceType {Knight,King}; string GetPieceTypeName(PieceType t) { switch(t) { case Knight: return "Knight"; break; case King : return "King"; break; default: return "Piece"; break; } } class Piece { PieceType type; public: void SetType(PieceType t) { type=t; } PieceType GetType() { return type; } void Move() { cout << GetPieceTypeName(GetType()).c_str() << " moved." << endl; } }; int main() { vector<Piece> piece; Piece newitem; newitem.SetType(Knight); piece.push_back(newitem); newitem.SetType(King); piece.push_back(newitem); piece.at(0).Move(); piece.at(1).Move(); return 0; }
  19. You need to declare the move method in Knight also as virtual. A good rule is: always declare all methods as virtual.
  20. You are calling Piece::move() and not Knight::move().
  21. A Linux version is actually as close as me getting the first cup of coffee with milk on the coming Saturday, and pressing the compile button when I multi-booted into Debian (I need to do some preparations first, like installing the newest BlitzMax for Linux (had some problems with openSUSE earlier since it conflicted in the GNU C++ version, but Debian might just work fine)). We'll see what happens, at some point there were some Windows specific bindings (like the TTF font function, but that has been long gone since), but at the moment I can't recall any, so it might just work
  22. Yes, I'm absolutely sure, since LE's dll uses stdcall convention, which is the standard calling convention for any and all Windows programs. Heck, you could even use LE with Fortran, Lisp, ADA or COBOL I've played around with Irrlicht also, but I don't know why they can't manage to unify their code. Well, it's not as clean as Ogre, but it has better model support (which a game engine doesn't even need). Irrlicht has also a custom software renderer, which is nice, but the visual quality is quite horrible The source of LE is not included in the SDK. It's a special license, from which the only public information is that such thing exists. Many other engines have a similar convention too, source is not officially marketed, but when asking about it, you will find that there is indeed such an option. Source owners don't usually do anything with it, they just need it as a business backup in case the original manufacturer is not in business anymore.
  23. I don't know how you can do any of the tutorials without having the registration key. When you have your LE license key, you can download all tutorials and updates to the engine. Nobody can send you any LE related files, as it's strictly forbidden in the EULA. The same goes for models, music and all kind of stuff made by other companies too, so there's nothing new about that.
  24. 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 floating points...Done. i=1410063201, n=100000.000003, time=41.609000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=15.469000s.Total time=57.078000s.VC -O3:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=41.593000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=15.453000s.Total time=57.046000s.MinGW -O3 -mtune=i686:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=37.437000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=15.766000s.Total time=53.203000s.VC IDE default:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=15.078000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=12.953000s.Total time=28.031000s.VC IDE -O3:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410063201, n=100000.000003, time=15.078000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=12.890000s.Total time=27.968000s.openSUSE 11.2 GNU -O3 -mtune=i686:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410065408, n=100000.000009, time=16.060000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=5.310000s.Total time=21.370000s.Debian 5.0 GNU -O3 -mtune=i686:Speedtest 1.0 © 2008 SiipiCounting 10 billion floating points...Done. i=1410065408, n=100000.000009, time=16.650000s.Creating and deleting 1 billion class objects...Done. i=100000000, time=4.620000s.Total time=21.270000s. Source
  25. LE is partly written in BlitzMax, some functions are in C++ (newton.dll is completely written in C++), but most functions are written in OpenGL and GLSL. I guess in future more and more functions will be written in C++ to replace the BlitzMax functions, since it can be done on-the-fly, as BlitzMax can compile BlitzMax, C/C++ and Assembler code directly.
×
×
  • Create New...