OpenTechEngine / OpenTechBFG

Engine based on (RB) Doom 3 BFG aiming to allow the creation of standalone games
Other
85 stars 11 forks source link

let's all add proposals for the assets #17

Closed BielBdeLuna closed 9 years ago

BielBdeLuna commented 10 years ago

I propose:

BielBdeLuna commented 9 years ago

now I've seen it thanks

BielBdeLuna commented 9 years ago

Done the PBR milestone with very specified issues

Wintch commented 9 years ago

What about multiplayer over internet? The best master server i know is https://hg.icculus.org/molivier/dpmaster/, but it needs some fixes for Doom3 to work. Is BFG still using gamespy protocol for that?

ghost commented 9 years ago

@BielBdeLuna Thank you for that link.

As for the Screen space reflections, I know it tends to be used for deferred renderers. however Unity5 seems to have managed to get reflections to work when set to forward rendering, they made use of lighting and reflection probes which renders a cube map depending on the bounding boxes location and distance. I've seen videos of a technique used on the Blender game engine for real-time reflections by having a secondary camera render to texture, it also was used for refraction effects.

I agree that there is no need to rush graphics development, other features to improve player experience should come first.

@Wintch I agree with you Wintch that there should be a focus on multiplayer as this is a staple in the industry. I don't think BFG uses gamespy, however it may be possible, since I haven't once seen a server listed when I search for games. Support for more players would be cool, especially if it could match multiplayer like Planetside 2, not sure if IdTech could handle 2000 players at the same time. I'm trying to imagine Doom 2 wads with Brutal Doom and 2000 players, however that would lag quite badly, as I already lag with 8 players on Brutal Doom playing through Zandronum.

DanielGibson commented 9 years ago

doom3bfg uses steam for multiplayer, but that code was removed for the GPL release, so currently it only finds servers in the local LAN (you can connect manually to any IP, though).

I guess we should support dpmaster or similar sooner or later, but first let's concentrate on getting anything standalone to work :-)

d3-base-assets still lacks many entity definitions in def/ - they have to be rewritten from scratch (the original ones are part of the proprietary doom3 game data).

The definitions we already have were created by translating the original ones to German (and writing them in a different format) by one person and then translating that back to English (and the right format) by another person.

I wonder how the dark mod handled this..

BielBdeLuna commented 9 years ago

I don't think id software hold any patents or copyrights on "info_player_start" so as long as it isn't the same file you would go all-right rewriting those defs, I guess.

DanielGibson commented 9 years ago

yeah, and that's basically what we did, the entity names stayed the same, of course.

but I guess in respect to copyright it's like source code and you can't just copy it and alter it a bit and call it your own, but you have to rewrite in a cleanroom way

BielBdeLuna commented 9 years ago

what do you mean "in a cleanroom way" ?

We could always rename it "i_player_start" but this wouldn't make it less a copy, and so the same with the most common defs.

Another thing would be with the less common defs like "monster_demon_imp", which clearly would be a copy of doom3 content.

Isn't it?

DanielGibson commented 9 years ago

I mean what I described. which is kinda similar to https://en.wikipedia.org/wiki/Clean_room_design (but without the lawyer part) - one person documents the original behaviour and the other person reimplements that. in this case there is not much behaviour but only declaration, so we translated it forth and back (to German) to make sure it's not a copy.

"less of a copy" doesn't matter. if you copy the linux kernel code and rename all functions it's still the linux kernel code under GPL.
even if you replace most of it's code, it's still based on the original code and the original license still applies.

BielBdeLuna commented 9 years ago

well technically the token names of the entities are defined within the c++ code, the only thing that is really locked to the copyright is the name of the entities isn't it?

DanielGibson commented 9 years ago

Example of an entity-def, from d3-base-assets:

entityDef func_camera_anim {
        "spawnclass"    "idCameraAnim"
        "editor_usage"  "animation-controlled camera"
        "editor_maxs"   "16 16 32"
        "editor_mins"   "-16 -16 0"
        "editor_color"  "0 .5 .8"

        "editor_bool ignore_enemies"    "if not set and camera is active, all active monsters that are not marked as 'cinematic' are removed"
        "editor_float fov"      "camera's FOV"
        "editor_model model"    "the model"

        "editor_var joint"      "joint the camera is attached to"
        "editor_int cycle"      "How often the animation is played before targets are triggered (-1 for endlessly)"

        "fov"   "90"
}

as you can see, it doesn't only contain the entity name and spawnclass, but also lots of attributes with descriptions. I guess that the entity name itself is not copyrightable (and if it is I don't care and I don't think anyone else in their right mind will), but the whole combinations of fields and descriptions probably is.

ghost commented 9 years ago

What did other developers do in the past with IdTech source code, in terms of Half-Life and Call of Duty? Did they license it through Id Software or fork from Idtech 2/3?

DanielGibson commented 9 years ago

in the past (quake1-3) it wasn't that much of a problem, because the entity.def files were only needed when creating maps (for the editor) - but here they're also needed for the game to run, because they'll tell the engine which "spawnclass" the entity belongs to - indeed "func_camera_anim" doesn't occur in the whole doom3 source, only "idCameraAnim" does (as a class name)

ghost commented 9 years ago

I don't see how keeping this code could be a problem.

DanielGibson commented 9 years ago

copying the entity .def files from doom3 is like copying textures or from doom3 - we just can't do that.

we can only use the stuff id software released under GPL, which is the c++ source code and the shaders.

ghost commented 9 years ago

I misunderstood, i thought this was from the GPL'd source code, not from the game itself. So would renaming it and creating new defs be in breach?

Wintch commented 9 years ago

I dont see Bethesda or anyone telling you anything about entity defs, basic scripts (like shotgun charging) and so on. As long as you dont copy an entire directory or something nobody really cares. It would be great to have everything rewritten from scratch but you will always get into problems like Daniel described, as changing fov to 91 in the above example would be bad idea. Nobody will guarantee you that this change is enough, or renaming the function, or anything else. At the end i am suggesting double check all the art (textures/sound/animations/models) for copyright and not to spend much time at these things.

DanielGibson commented 9 years ago

I didn't change any values, as far as I remember (it was three years ago...).

I just made sure that everything was written anew from scratch, with mostly the same values, but at least different descriptions.

I'll not accept any "copied and changed" scripts/definitions in opentech, I want this to be legal and clean.

ghost commented 9 years ago

The creating the scripts for the assets i'm creating for OTE, which is a starting point to avoid any reused content, it may be ugly as i'm not a coder, I just try to figure these things out as I go along.

I just built Roberts RBDoom3BFG with C4267 warnings in VSE 2013, not sure if this is a bad thing. My last build gave issues with the world losing lights when I enabled soft shadows.

EDIT: forgot to add ffmpeg to the build, problem solved.

BielBdeLuna commented 9 years ago

@DanielGibson in that example only the "fov"and the "spawclass" are really necessary, the other thing is for the level editor, and both fov and spawnclass are called from the c++ code so having an entity with any name but with that spawnclass and that fov as long as it's written by you would not infringe any copyright

so as long as it's called by the c++ we should be safe.

but what about the editor stuff?

we could separate it from the definition file and have it in another format in another file:

basically any entity with the spawnclass of that kind is the same entity, we could relate the spawnclass string name with the "editor values" which is: size colour description of it's use and it's spawnargs

this info can be all new, outside of that definition file, and in another format therefore not a copy.

Wintch commented 9 years ago

My question is if everything is ready in BFG to try it. Dpmaster is not there, soft shadows seems to have some issues, but cross platform multiplayer is working? Global illumination? Oculus support? Can i still use darkradiant for level editing? Classic TGA/DDS textures? Otherwise i just don't see why to move to BFG and not to stay with dhewm3 really

ghost commented 9 years ago

@Wintch I'm using DarkRadiant as i'm typing to map for OTE, I loaded a basic room in BFG earlier, however I'm using Vanilla Doom 3's directory to work with DarkRadiant, i'll extract my BFG resource files for tests later on DarkRadiant. I'm using TGA/DDS for custom textures. I feel that a fork of DarkRadiant specifically aimed at OTE would benefit the project.

Wintch commented 9 years ago

@Yetta1 It would be great for sure, as i am expecting not to change the workflow that much. All the recompressing and putting together assets to make em work with BFG kills me. There is so little time already to spend on these things. Also Darkmod guys would benefit from this port later, if they decide to move to BFG

DanielGibson commented 9 years ago

d3bfg/OTE automatically imports/converts TGA textures

but currently dhewm3 probably is easier to mod for.

a darkradiant fork for bfg might be helpful, but someone has to actually do that and maintain it, and currently it seems like we don't even have enough time for OTE itself

ghost commented 9 years ago

@Wintch @DanielGibson I agree extracting the resources and packing again is quite a hassle, maybe a add-on for DarkRadiant that can explore and change the .resource content within the editor might be a easier option. I'm not sure how RageTools handles modding as I can't run it on my ten year old system.

DanielGibson commented 9 years ago

Well, generally the workflow for BFG/Rage is that you have the "source" data in normal directories and the engine then creates the binary formats (esp. for images, maps, models) from that and creates a .resource bundle per level. I'm not sure if the bundling actually works well in D3BFG.

For OTE I'd like to use .pk4 archives instead of .resource, because those .resource things contain lots of duplicate data (e.g. a copy of a texture exists in each resource of levels using it).
.pk4 support is another thing missing from OTE...

ghost commented 9 years ago

Strange I just ran my new build of RBDoom3BFG, the game loads fine, but crashes when loading a old save game, however it works when creating a new game, at least now the soft shadows seems to be working. I'm running RBDoom3BFG on two systems now, an old AMD Athlon dual-core with AMD HD Radeon 3200, 2GB DDR2, and my Celeron E3300 with Geforce GT 630, 4GB DDR2, both are running at a stable 30fps, with a few drops to 25fps. 30fps is great for old systems like, I read somewhere that the engine was code to handle physics better at 30fps.

ghost commented 9 years ago

@DanielGibson I agree that PK4 would be a nice return as I'm use to that method. I've tried having custom content in a directory structure for BFG within the game folder, but had no success getting the game to load it from console.

BielBdeLuna commented 9 years ago

I think the difference between OTE and Dhewm3:

I think I haven't left anything else out, everything else is working fine or even better, even with some improvements (specially the multi-core renderer)

I've been doing several maps and several models and they all work fine, you can do whatever you want in Darkradiant and will work ok on RBDoom3 or OTE

Wintch commented 9 years ago

No EFX? Really? Nothing at all or done in some other way? I loved that feature :( Missing ogg is also bad as i am using this format. Don't forget BFG lacks master server

ghost commented 9 years ago

@BielBdeLuna I haven't really looked at Dhewm3, but have read some good word about it over the web. Does it contain multi-core support? If so i'd like to try it with Sikkmod, Wolfen and Phrozo.

@Wintch I just tried to create a multiplayer game through RBDoom3BFG over LAN, seems there are no options for creating a LAN server, unless there is some way through the console.

Seems Soft shadows won't work on old GPU's like my HD 3200.

Wintch commented 9 years ago

@Yetta1 net_LANServer can help, don't know if it is available in BFG. Dhewm3 don't use multicore, at least not the way you'd like it to. Works with Sikkmod and other mods, but still it is a legacy doom3 fork so BFG code is better

DanielGibson commented 9 years ago

Multiplayer -> Create Private Match doesn't work?

ghost commented 9 years ago

@DanielGibson I can create a match, but it won't find the other computer.

DanielGibson commented 9 years ago

ah, ok. strange, I thought that worked.
what should work is /connect $other_PCs_IP in the doom3 console on the other machine

Wintch commented 9 years ago

What about some IRC next time? As this is getting too chat-like. @Yetta1 you can try to capture broadcast with wireshark or something. Both computers needs to share the same netmask (be in the same network segment)

ghost commented 9 years ago

@Wintch says "Unknown command"

@DanielGibson I will try that, I see the console shows the IP socket address

ghost commented 9 years ago

@Wintch what is the IRC address?

@DanielGibson "NET: Denied connection attempt from host 192.168.1.56:27015 on session TYPE_PARTY. MsgType 1.

"This game session no longer exists."

DanielGibson commented 9 years ago

kortemik (kordex) and me (caedes__) hang around in #iodoom3 on freenode (IRC)

regarding network problems: strange. I should probably debug that some day, but not now. create an issue, if you like.

Wintch commented 9 years ago

No IRC as far as i know. We could create one to avoid using bug report channel for descussing features :) Skype is also ok for me, what do you guys think?

ghost commented 9 years ago

I'm cool with Skype as well. I think I still have iodoom3's channel saved on my client.

BielBdeLuna commented 9 years ago

@Wintch I'm looking forward to include ogg, and after that we can look forward to re-implementing the EFX effects, but I find ogg a more pressing issue, isn't it?

With Dhewm3 there isn't direct support for doom3 mods, you have to port them from the doom3 codebase to dhewm3 codebase, the principal reason is the 64bit architecture, that's the main reason there is no darkmod on the dhewm3 engine. it's not an impossible task but if if you have to do the work a mod to Dhewm3 why not already port it to RBDoom3BFG or OTE, so my take on this, keep improving OTE until it's seductive enough to make the work to port those mods and future mods

Wintch commented 9 years ago

Completely agree @BielBdeLuna, forgot about that mods issues with dhewm3 completely. And yes, ogg would be a more immediate thing to add. If enough people are interested, i can create a mumble server for OTE. My plan was to add positional audio to dhewm3, but never got time for that

DanielGibson commented 9 years ago

I don't use skype. I'm fine with IRC, see above. We could use mumble every once in a while, but I don't think that I'd hang around there a lot.

what do you mean with positional audio? dhewm3 supports real surround sound via OpenAL

BielBdeLuna commented 9 years ago

RBDoom3BFG and OT also have positional audio with OpenAL? do you reefer to something else with Positional Audio?

ghost commented 9 years ago

Ok maybe use #iodoom3 for now. I'd like to see the Prometheus mod working on BFG, I haven't played, but plan on downloading it later tonight.

ghost commented 9 years ago

Life Tip: Never eat leftover curry on bread with large chunks of lettuce, the lettuce will attack your eyes with curry sauce.

Wintch commented 9 years ago

By positional audio i mean the feature that ppl from mumble implemented to be able to actually hear players voices from their real locations. Also that mean voice support in the game :) , link: http://wiki.mumble.info/wiki/Positional-Audio

DanielGibson commented 9 years ago

oh, you meant mumble positional audio. yeah, would be nice at some point, but I don't think this is very urgent with all the basic things missing ;-)

Wintch commented 9 years ago

Oculus, positional audio and internet play. That can be amazing even with 10+ years old tech. My guess is that we are closer to achieve that with dhewm3 than with OTE. But still count with me