-
Posts
544 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by martyj
-
I wouldn't create a trello page, but create a design document. At least for my game, I created a rough design document about every aspect of the game, from controls, to items in the game, to story, ect. Get your game nailed down to a set idea. Design docs should be very detailed. My design doc, which is missing a lot of information is 15 pages long. At least for me, I created my design doc back in 2013. I still reference it today when making programming decisions. After creating a design document you can then split your game into "tasks" for a trello page as @Rick recommended. A task should be broken down into work that requires no more than 2-3 hours IMO. For example. I have a trello card for Sounds. The sound card is broken into a check list of different audio sounds in the game. Such as walking, item interaction, ect.
-
Does this mean that Linux and Windows versions of LE will soon be on the same level? Isn't the linux version stuck around 3.0 or somewhere around there?
-
@Rick. Here is an example of a Lua script that I use. This is basically the only Lua I use in LE. Script.className = "" --string "Binding C++ Class" function Script:Start() RegisterClass(self.entity:GetKeyValue("name"), self.className); end I've tried sending self.entity instead of the name, but it gives access violations. So I pass the name to loop through entities to find entities with a specific name. At the moment I am naming things like tree1, tree2, tree3, tree4... In the future this will be a very bad idea. I have a map class which I add Strings -> Static C functions to create dynamic objects. Such as "OakTree" => OakTree_Init(Entity* entity); The code to register is as follows int Binder::RegisterClass(lua_State* L) { const char* entityName_cstr = lua_tostring(L, 1); const char* className_cstr = lua_tostring(L, 2); if (entityName_cstr == NULL) { entityName_cstr = ""; } if (className_cstr == NULL) { className_cstr = ""; } string entityName(entityName_cstr); string className(className_cstr); Entity* entity = NULL; App* app = App::GetApp(); World* world = app->world; std::list<Entity*> entities = world->entities; if (entityName.length() == 0 || className.length() == 0) { goto error; } for (std::list<Entity*>::iterator it = entities.begin(); it != entities.end(); ++it) { Entity* ent = *it; if (ent->GetKeyValue("name") == entityName) { entity = ent; break; } } if (entity == NULL) { goto error; } for (std::map<std::string, MODEL_CTOR_FUNC>::iterator it = ctors.begin(); it != ctors.end(); ++it) { if (it->first == className) { WFModel* model = it->second(entity); model->AddHooks(); // Update/Delete hooks Binder::models.push_back(model); lua_pushboolean(L, true); return 1; } } error: lua_pushboolean(L, false); return 1; } As far as your method mentioned above, I've never really thought of that tbh . Either way, for networking type of purposes, I will need a unique name on each entity to pass data on objects. Such as Player1 cut down Tree XXYYZZ.
-
I am using a "unique ID", or the entity name at the moment to find the entity in C++ from Lua. Since leadwerks is lacking in the Lua to C++ department I believe this is the only way to get an entity from Lua to C++. You can't call C++ functions passing in a Lua entity object as it won't be a C++ entity. You have to pass an identifier in Lua then search the C++ entities for the identifier. Which is why I want a UUID field so I don't have to keep creating custom names. UUIDs are also harder to guess, for multi-player security purposes. Every NPC should have a unique name and I concur, but what about fishing spots, trees, mining rocks, ect? They will need a unique name as well just for the Lua to C++.
-
My entities have a property to them to know which c++ class to instantiate. Since you can't pass entities from Lua to C++, I pass the entity name instead. This is where I want a UUID. I loop through all the entities in the world, and find the entity with that name. Then I instantiate a custom C++ class with that found c++ Entity. Another use case for not-so-distant future reasons. ----------------- An NPC will have a list of conversations, As every NPC will have their own custom conversations and every NPC can be spoken to, the entities will need to find a conversation for their specific instance.
-
In C++ the only way to get an entity is to search it by a name. I'm not doing a Pick. I register the entity in C++, attach it to my own custom code, then when I do a pick, I get the object's UserData to cast it to an object to do things like damage to a tree. It's where I register the object from Leadwerks to C++ is where I need the UUID.
-
@Rick. I'm not doing Lua. I am using C++. I use the name field to get an instance of the entity in C++.
-
I agree with Rick about the unique name. My problem is how many unique things I have to create. In my game, every tree has the ability to cut it down. Every NPC has their own conversation. Every door is usable.Every block of water is fish-able, The name field works fine if you're working on smaller projects. When you're 1000 hours into a project, it is a lot of extra time to have to name an entity every time you want to interact with it. As far as pre-fabs goes, they wouldn't have a UUID until you added them to the map. I'm only talking about entities saved into the map should have their own UUID. This requires is basically an extension to the "name" field. Without a developer having to give an entity a name each time.
-
Are you allowed to define certain sections of the terrain as more mountainous?
-
Searching leadwerks in steam pulls up a product called Riseland. It is a terrain generation software. Has anyone used this with leadwerks? If so, how well does it generate usable height maps? From my experience, leadwerks high maps are slightly different than the normal heightmap of each pixel specifying the height. I believe leadwerks uses a change in pixels to specify height.
-
You could look at cheaper modeling options. I'm guessing you went through a 3d model "shop" that does freelance 3d modeling for a rate probably around 60-120 an hour? I would look towards Fiverr as an alternative choice. $3k for a model is kind of pricey considering what you could do to just pay 3d modeler to do it. It would require more management on your end. Probably a longer turn around as well. The model does look very good though.
-
I would like to bump this as it would save me a ton of time from having to add UUIDs myself.
-
Sorry Josk and Thirsty Panther, http://random.org gave a number for someone on our facebook. Kevin Rae. Thank you for your input though!
-
At the moment I am having a map for each mine. The caves are a 3d model. I've debated putting everything in one map, the problem is it leads to complexity of changing ambient lighting.
-
I wanted to get your guys' feedback on mining in my game. On another note to help get more feedback I am doing a game giveaway. Every post here, gets you an entry to the giveaway. (Along with our Facebook post) Thanks in advanced for the feedback.
-
polymesh phy. shape not saved in beta
martyj replied to MarkusR's topic in Leadwerks Engine Bug Reports
Out of curiosity, how does one specify a custom physics file? -
You are correct.
-
I wanted to get some input from you guys/gals on a part of my game. Cutting down trees for wood. Wood is used in crafting and other skills in the game What do you think could be improved?
-
How does this affect performance with scene rendering? There's obviously more texture color lookups, a few more multiplication operations, and more memory used by the textures.
-
I assume the memory issue would be the fact that you have to store an array of vertices, probably around 50MB of RAM at 4096 terrain size? Maybe it could be a toggle-able option where we could set the size of this "undo" buffer. For example, I wouldn't care if I had 10 frames saved. I personally have 12GB of ram on my computer, so I wouldn't mind LE using the maximum 3 gig of ram. Granted for my Laptop, I would want a lot less of a buffer size, maybe even 0. My concern with an undo, buffer is the CPU processing required to generate these. I find terrain modifying to be semi-taxing on my current map as it is some times
-
This has been an annoying issue in the editor. Glad it is getting resolved.
-
How could one set a material for that specific surface? When I add a material to the top child, it doesn't do anything.
-
I have an tree model with an animation. When the animation ends I want to hide the child with the name of "top" My code, this->topOfTree = entity->FindChild("top"); this->topOfTree->Hide(); The Hide does not hide the entity. The model can be found here: http://martyj.net/oak_01.fbx
-
I recommend buying the Nature DLC package. http://store.steampowered.com/app/430060/ It's hard to find 3d models of trees online with limited polygons. If you want a greater selection of trees & bushes without grass, I recommend this pack. https://www.3dmodels-textures.com/Vegetation/VegetationModels The nature pack is really good for all around items though. Everything is scaled correctly, with the appropriate shaders applied.
-
It would be nice if LE entities had a UUID automatically generated, that way we don't have to rely on a unique name. Sure we could do it ourselves, but this would save a lot of time overall, and it would be fairly easy to implement IMO.