Jump to content

Mumbles

Members
  • Posts

    691
  • Joined

  • Last visited

Everything posted by Mumbles

  1. I would implement it yourself, since the next engine is going to be multi platform. SDL is multi platform but it will not have some features that xinput does. It's not hard to integrate it yourself if it doesn't get integrated into the new engine. xinput exists for Windows only which means I think Josh wouldn't want to integrate it... Edit: I've just seen the other thread, sounds like he is integrating it. I guess you can ignore what I just said...
  2. I'm surprised you haven't done what I've done - ditch the serialised file altogether... Because I'm using a standalone Newton V2.25 (before it went open source) the first thing I had to do be able to load physics shapes for models. I instead opted to build my shapes by processing .obj files. This solution survived an upgrade between 2.07 and 2.25 and I believe serialisation changed between those versions. The only downside is that it's slower, but I've yet to find a mesh it takes a long time for I'd give you the code I did it with, but it relies on 2 parts of a library I wrote that certainly isn't cross platform (requires windows.h), whilst one part could be removed the other dependency wouldn't be so easy to take out (at least, I don't think it would)
  3. Well, this is a bit of a blast from the past. I wonder if he still checks here for an answer...
  4. Does BlitzMax not need a call to Initialize() before creating the world? I didn't even think Graphics() was allowed until Initialize() had been called... Edit: Nope, wiki seems to say it's only needed in C. So next guess< try looking in engine.log in your program's folder...
  5. I think I'm starting to understand this now. Is it basically saying that you are free to link the code into your project, but that only Creative can modify the OpenAL source code, and that the SDK files (whilst being free) can only be downloaded via Creative's website? If so, that sounds like the sort of license I'd like, I just it wasn't written in legalese (and also wasn't so hard to find)...
  6. Strange question here, but I was looking at extending the sound capabilities beyond the limit that LE 2 will allow. Specifically I was interested in two things. Firstly (and more so) capturing from a microphone and secondly (less so) the ability export sound as heard by the listener to a file on the hard drive. The second I believe is possible, and would almost certainly require OAL, and the first would definitely be possible, removing the need for multiple sound libraries if I could implement them both. So I set to work digging out some OpenAL tutorials and it doesn't seem too difficult (yet), but then I stopped because I'd noticed that version 1.1 and newer is not an LGPL license, it's a proprietary license. The odd thing is though, that I can't actually find the terms of this proprietary license anywhere. The redistributable package seems absolutely fine, but some reading around the Internet has confused me to no end. I get the impression that the SDK license is different and possibly even very restrictive. Worse, everything I've read, no two people can agree on what it is exactly. One thing I read even went as far as saying: http://www.gamedev.net/topic/472878-is-openal-dead/page__p__4105525#entry4105525 The third and fifth points really stood out to me, but just like any other view on the subject of their license, I couldn't find that repeated (or even implied) anywhere else to verify it. It's the sort of thing Brent Taylor would know really, except that I almost always seem to start arguing with him ... I eventually figured out, LE 2 doesn't seem to have Creative Labs complaining about the license being violated, so if it uses the 1.1 SDK, it's probably alright for me to use it as well, but if it uses an older version, then which one, and where would I find it?
  7. .free should do it... I have no problems at all using the procedural FreeEntity command. I believe though you have to call UpdateWorld (or whatever the OO version is) after freeing an entity before it actually will properly unload...
  8. Your graphics card isn't supported. Leadwerks Engine 2 requires At least a Geforce 7000 or ATI Radeon 3000. Intel GMA and Sandy Bridge are not supported because they don't implement GLSL, which LE 2 relies on. A new engine is being developed which will work with your card, but the release date isn't known, other than "when it's ready"
  9. http://www.leadwerks.com/wiki/index.php?title=Materials http://www.leadwerks.com/files/Tutorials/CPP/Materials_And_Shaders.wmv http://www.leadwerks.com/files/Tutorials/CPP/Materials_And_Shaders.pdf Basically, it's a plain text file that holds all the information relating to how the model should be rendered. Which textures and shaders are used for the rendering and so on...
  10. Strictly speaking, it means mutual exclusion but that's splitting hairs... But with all this technology advancement, I'm dreading the final price tag on it...
  11. Mumbles

    The Last Chapter

    Oh wait, typo in my time... 24:51 not 14:51... Practically almost doubles it
  12. Here was me about to say something like: "wrap malloc and free inside your own (de)allocation functions, which have a variable of how much memory you have allocated. Increased on allocation, decreased on deallocation" A bit boring by comparison isn't it?
  13. Mumbles

    The Last Chapter

    "Please tell me your game time. 14:51" have I won? I like it, I really do. There's just nothing quite like a good indie game
  14. My way almost feels like a WorldCraft style hack. Create an invisible entity called something like "WorldLimits" give it two properties: Min and Max. Each is a Vec3. Use these properties to create an inside-out cube (This way you actually collide with it when trying to leave the map, rather than when trying to enter it which is what would happen if it wasn't inside-out) (Either try to create it in code, or create it 1x1x1 in a modelling app, and then resize it to the correct size.) Then simply hide the cube so it's never visible, and give it a mass of 0 so that nothing can budge it. I do it in code, but then again, I don't use the built-in Newton, so it's much easier to create any physics shape I want to, on-the-fly. LE2 is rather dependent on .phy files when using the built in version of Newton Edit: Make sure the world size (use SetWorldSize()) is big enough to accept your cube otherwise it won't work properly. Bodies will simply freeze when they reach the world limits, and and raycasts will never hit it. The world size should be just a bit bigger in case something, somehow breaks through the cube, at which point when it leaves the world, you can either reposition, or delete the body in question.
  15. Several things: Firstly, Do I presume that there is a typedef unsigned char byte; somewhere at the top of the code? When you set the entity's UserData, take out the (byte *) bit, any type of pointer is valid. You only have to cast it to the correct type when you are retrieving it SetEntityUserData( _entity, this ); I wouldn't have thought it was very likely, but maybe the cast to byte is causing an error. You could try comparing (or printing out to the console) the value of this and (byte *) this. std::cout << "pointers " << ((this != (byte *) this)? "don't" : "") << " match\n"; if(this != (byte *) this) std::cout << (int)this << " | " << (int)(byte *) this << "\n"; Secondly, I also didn't think that was the correct way to call an inherited constructor. That's the Java way, and I'm sure things didn't work when I first tried that in C++. Check this page (under the subtitle "What is inherited from the base class?"): http://www.cplusplus.com/doc/tutorial/inheritance/ In your case, rather than: Controller( TEntity entity_ = NULL ) { Ball::Ball(entity_); //The rest of your Controller constructor is unmodified } It would look like Controller( TEntity entity_ = NULL ) : Object( entity_) // Notice what's been added here... A colon and a constructor call { //Ball::Ball(entity_); //Not here, notice it's gone green in your compiler... //The rest of your Controller constructor is unmodified } this assumes that your code above is in the class declaration. The added bit can only go inside a class block. For example, what I've done below, I believe isn't allowed. class Controller : public Object { public: Controller( TEntity entity_ = NULL ); }; Controller::Controller( TEntity entity_) : Object( entity_) { //blah blah } //Not valid class Controller : public Object { public: Controller( TEntity entity_ = NULL ) : Object( entity_) ; }; Controller::Controller( TEntity entity_ = NULL ) { //blah blah } //Valid class Controller : public Object { public: Controller( TEntity entity_ = NULL ) : Object( entity_) { //blah blah } }; //Valid
  16. Mumbles

    wmp files

    What's a wmp file? I don't think there is a wmp exporter for 3d world studio...
  17. Similar but not identical, I use winsock. I have to include winsock2.h before engine.h otherwise I get a load of redefinition errors, kinda like the ones you look to be getting WIN32_LEAN_AND_MEAN makes no difference just in case you were curious... Edit: infact, maybe try including winsock2.h - since it seems to include almost everything windows.h does anyway
  18. Nah, right first time... Once per 60000 milliseconds... That's constant, frame rate isn't...
  19. Mumbles

    Low FPS

    On 2.2x the ssao shader seemed to hate being inside a model. I'm sure you've thought of this already, but if ssao is on, does the model cut through the camera?
  20. The method I use doesn't seem to give me any problems, but I don't use BlitzMax, so I have no idea how to port it over. Basically, a leadwerks TEntity is part of a class: class Object { TModel LeadwerksModel; NewtonBody * NewtonObject; void Initialise(std::string DataFile); void Initialise(TModel NewModel, NewtonBody * NewBody); public: Object(std::string DataFile){Initialise(DataFile);} Object(TModel NewModel, NewtonBody * NewBody){Initialise(NewModel, NewBody);} Object(TModel NewModel){Initialise(NewModel, 0);} Object(NewtonBody * NewBody){Initialise(0, NewBody);} ~Object(); TModel GetLeadwerksModel(void); NewtonBody * GetNewtonBody(void); }; //Then to load the model... void Object::Initialise(std::string DataFile) { //By now, we will have read a file to find which models to use; if(ModelName.compare("none") == 0) { LeadwerksModel = 0; } else { LeadwerksModel = LoadModel(CStr_ModelName); //That's a char pointer variable, since ModelName.c_str() seems not to work... } } //To free the entity Object::~Object() { if(LeadwerksModel != 0) { FreeEntity(LeadwerksModel); } if(NewtonObject != 0) { NewtonDestroyBody(NewtonObject); } } //For using the entity TModel Object::GetLeadwerksModel() { return LeadwerksModel; } //create, use and delete a model Object * MyNewObject; { //Just for scope limitation std::string DataFile = "Models\\MyObject.dat"; MyNewObject = new Object(DataFile); } //DataFile now out of scope again for(float val = 0.0f; val < 360.0f; val += 0.75f) TurnEntity(MyNewObject->GetLeadwerksModel(),Vec3(val,val,val)); delete MyNewObject; //Now, doesn't matter is FreeEntity has worked immediately or not, I can't access that entity again because the object that held a reference to it has been deleted... I presume you'd be able to work something similar in BlitzMax
  21. I'm not quite sure what you mean. to attach a TMesh to a TBody is done by setting the mesh's parent to the body. EntityParent(Your Missile,your invisible body,1) to then make the mesh "look in the same direction" RotateEntity(Your missile,EntityRotation(invisible body,1),1) And now the mesh will move with the bullet automatically...
  22. Instead of chm files, why not just plain html files that open in any browser on any platform? You don't need to have them on HTTP servers if the contents don't change. It counted as a "manual" as far as Quake 3 was concerned, and that was the first time I really saw it done.
  23. I've found paq9a to give better compression than 7zip but it's also incredibly slow.
  24. Maybe it's just because I worship John Carmack too much, but when I read "Leadwerks Engine 3 is too long" I thought to myself "Lead Tech 3"
×
×
  • Create New...