Jump to content

Canardia

Developers
  • Posts

    4,127
  • Joined

  • Last visited

Everything posted by Canardia

  1. Don't post the same message more than once. All threads will be read, no need to spam the forums.
  2. You can compile Lua as LuaJIT code.
  3. I've made a few space simulations with LE2, and had no bigger problems. You should use a quite small scale for models, because of the accuracy limitations of 32-bit floats. Hopefully LE3 can be recompiled as 64-bit float version (and also Newton 3.0) to overcome those limitations. A 64-bit float is not only twice as accurate, but 10 million times more accurate than a 32-bit float (7 vs 15 digits), and since in long range simulations we need also distance, the accuracy is converted into range.
  4. You should move the camera a bit backwards to see the cube.
  5. ReInitialize() is just a Cubix game specific reinitialization to create default values for enemies and player: void Cubix::ReInitialize() { pla=game.scene.SetCurrentPlayer("player1"); if(NULL==pla->body)Notify("player1 not found"); pla->SetWeapon("rifle"); CreateEnemies(); cubes.at(0).SetGravityMode(false); // prepare first attacking cube snd2.Load("Models/Cube1/Cube1.ogg"); src2.Create(snd2,LOOP); src2.SetRange(100); src2.SetVolume(0.6); src2.Play(); //SetEntityKey(snd2,"name","snd2"); //SetEntityName(src2,"src2"); sounds["exp"].Load("models/cube1/cubedeath.ogg"); sources["exp"].Create(sounds["exp"],EAX); sources["exp"].SetRange(100); sources["exp"].SetVolume(0.6); sounds["die"].Load("models/player1/playerdeath.ogg"); sources["die"].Create(sounds["die"],EAX); sources["die"].SetRange(100); game.scene.framewerk.listener.SetPosition(game.scene.cam.GetPosition(GLOBAL)); game.scene.framewerk.listener.SetRotation(game.scene.cam.GetRotation(GLOBAL)); game.scene.framewerk.listener.SetParent(game.scene.cam); //Sound::SetEAXEffect(MOUNTAINS); // engine bug: this disables 3D sounds game.scene.foregroundworld.Set(); emitter1=GetFirstEntityByKey("name","emitter_1",ENTITY_EMITTER); //TEmitter emitter2=GetFirstEntityByKey("name","emitter_1",ENTITY_EMITTER); game.scene.world.Set(); //if(!emitter2)MessageBoxA(0,"NO EMITTER",0,0); //EntityColor(emitter1,Vec4(1,0,0,1)); //emitter1.SetArea(Vec3(1,1,1)); //SetEmitterArea(emitter2,Vec3(1,1,1)); }
  6. Actually the code was not in gamelib, but in cubix. There I have this code to switch to the next level, clearing and recreating framework (it still uses gamelib functions though): #if devel Keyboard::I****(KEY_F2) || #endif nextlevel ) { // TODO: This will go to GameLib nextlevel=false; //game.scene.framewerk.Free(); game.scene.skyworld.Set(); game.scene.skyworld.Clear(); game.scene.skyworld.Free(); game.scene.world.Set(); game.scene.world.Clear(); game.scene.world.Free(); game.scene.foregroundworld.Set(); game.scene.foregroundworld.Clear(); game.scene.foregroundworld.Free(); FreeEntity(game.scene.outofworldentity["sound_1"].entity); //TODO: free all entities loop game.scene.outofworldentity.clear(); // clear the whole map and resize it to 0 //FreeEntity(game.scene.scene); #if devel printf("LEVEL2: CLEAR\n"); CountEntities(); #endif game.scene.ReInitialize(); game.luat.Create(); // create the LuaTools object game.luat.SetScriptObject("fw",game.scene.framewerk); // set the Lua variable fw game.scene.LoadMap("maps/level2.sbx"); ReInitialize(); SetStats(0); // TODO: Somehow Application should do this BeginRender(); EndRender(); Flip(1,-2); }
  7. It works fine, you just have to make sure you delete everything and recreate everything in the right order.
  8. In gamelib I wrote a function which clears the framework worlds. It's a bit tricky because not all entities are part of a world, like sources, so you have to keep pointers for those yourself.
  9. Those kind of games are also quite boring and you finish them in 8 hours and rarely play again, maybe once a year. A physics rich game would bring much more variety to the game, and let the game be played over and over again with different styles.
  10. Heck, it must be good enough, because even huge professional companies like Yamaha deliver their electronic documentations as PDF, they do it for example for their Music Workstations, and I'm quite happy with Foxit Reader: fast browsing and searching, convenient page layouts and zooming, and bookmarks. And the printed books in several languages which come with the Workstations are exactly the same as the PDFs.
  11. If it can be printed, it can be printed into a PDF file too, that's good enough for offline reading.
  12. Will the documentation be in offline searchable format, like chm?
  13. My approach would be to get the game testable and playable as first priority. The assets and game logic can be very simple in the first release, but it's important that you get people to try and and give feedback, because they help you getting things right, so you don't waste any time on doing things wrong for long time, and then have to undo everything. The people might even offer you some assets when they see what kind of game it is, and what kind of assets would fit in. Start with versioin 0.0.0.0, then raise the 4th last number for every bug fix, and the 3rd number for every new feature, 2nd number for new minor release, and 1st number for new major releases. It could be like this: GameA 0.0.0.0: Testing if the game works at all, and simple player controller walking around. GameA 0.0.0.1: Bug fix with player getting stuck somewhere. GameA 0.0.1.0: Added crafting of simple items found on the ground. GameA 0.0.1.1: Fixed some bug with crafted items not being saved correctly. GameA 0.0.1.2: Fixed a bug with items not respawning. GameA 0.0.2.0: Added skill advancements in crafting. GameA 0.0.3.0: Added melee fighting and melee skills advancement. GameA 0.1.0.0: Added multiplayer networking. GameA 1.0.0.0: Game is finished and available for public download via PayPal.
  14. 1) Since you are still in 2-3 year development, you don't need a DLL, since LE3 comes as a static lib. 2) Shadow distance is a general problem of shadow mapping engines. But nobody seems to use stencil shadows anymore, although I prefer them. Yeah they are too sharp, but rather too sharp than too low distance. If I knew how to solve the shadow problem, I would write my own engine. 3) Just buy LE2 now to get LE3 cheaper. 4) I'd say just do single exe apps, without the need for any runtime DLLs. You need mingw64 for that.
  15. Crysis polycounts: Weapons (1st person and 3rd person bind models) 1st person: about 6000 triangles (same as cryengine1; not more really needed ? above, normal maps are not needed) 3rd person: about 1500 triangles Characters As we are using attachments we have to split the triangle numbers in the separate parts: * Heads 3k triangles * Body 5k triangles * Attachments 1 k triangles Vehicles Max. 20000 polygons is our internal limit Buildings Hard to answer ? put detail were detail is needed. No real need to go crazy. If you only have a few buildings in your level you can spend more triangles, but you should be careful in City maps. Vegetation Between 500 and 2500 triangles for trees ?whereas the ones with 2500 should not be used in a dense forest because of the filtrate ? It heavily depends on the scenery you want to create.
  16. Canardia

    Day 877

    Yes, beta beta beta! Even alpha will do, or tech preview, anything goes!
  17. Last year scientists actually wanted to test if we live in a matrix, and every test result indicated yes: http://www.ign.com/a...g-in-the-matrix
  18. Canardia

    Day 877

    Got a feature list of the first release? I guess you must have such list for testing each feature anyway Or maybe publish and keep updated the feature list with a status if it's tested and if it has bugs to be fixed, shouldn't be any additional work. That's what all Linux and GNU developers do too.
  19. Canardia

    One Last Thing

    I want to compile LE3 as full 64-bit version with 64-bit doubles. However I'm not sure if Newton is available as source code, and if not, then I might need to use Bullet which comes as source code and can use 64-bit doubles also.
  20. Let's hope LE3 will have both forward and deferred rendering, because I really miss the long shadows of forward rendering (shadow volumes). Deferred rendering is only good for small rooms, but for big areas you need forward rendering with long shadows, else your shadows just disappear after 500 units like in LE2.
  21. I hope LE3 does not get 2.5D terrain. Other engines have voxel terrain, which is then tesselated on the GPU as polygons, and can do real 3D terrains with overhangs, loops, tunnels, etc... Just like a normal mesh can do. I think modern GPUs support also 3D textures, instead of only 2D textures, which could be used then as 3D spacemap for terrains.
  22. You can bake lights also with LE2. Just render the lights only once before the main loop, or make the shadows static after the first frame. You can also render the lights only every 10 seconds with that method.
  23. I would use a sqlite3 database, because then you can also load and save only parts of a level. And then use blowfish2 for encryption.
  24. Canardia

    One Last Thing

    Yes of course it should be done using existing engine commands, and not part of the core engine .lib, but it could be still bundled with the engine, for example as a seperate .lib or C++ file, which the user can use if he wants. For example I find the oildrum and firepit scripts very useful, because they have sounds, particles and everything ready to drag and drop. Like in LE 2.5, there is also a smoke emitter, which uses its own shader and texture. An explosion would probably need a shader too, sounds, textures, breakable physics logic, and damage indication to other objects. In addition to those difficult to implement things, the user could add some camera shaking, consequences of the damage to living objects, sound reflections (echo).
×
×
  • Create New...