• Pragma - A 3D multiplayer sandbox engine with Lua-integration, based on Vulkan and bullet physics
    379 replies, posted
Added some more physics related stuff (Friction, restitution, footstep and impact sounds): [video]https://youtu.be/TJUJzb1X5_4[/video] [video]https://youtu.be/mj_yk4lkgow[/video] Ragdolls are now almost done as well. If all goes well, I should be able to get back to my daily update schedule some time in februrary. :) New changelog: [CODE] Sciolyte ChangeLog Version 0.1 20 Jan 2016 - Added physics impact sounds - Fixed position, velocity and direction of serverside sounds not being transmitted to clients - Fixed SoundScript-sound attributes not being transmitted to clients 19 Jan 2016 - Added "sv_friction" and "sv_restitution" console commands - Added "surface_material" keyvalue for "prop_physics" entities - Added "surfacematerial" material property - Added physenv.create_surface_material, physenv.get_surface_material and physenv.get_surface_materials - Added class "SurfaceMaterial" - Added several snow, ice, wood and metal textures - Added map 'test_physics_materials' - Implemented physics materials and footstep sounds - Implemented friction and restitution 17 Jan 2016 - Added Entity:GetLocalBonePosition, Entity:GetGlobalBonePosition, Entity:SetLocalBonePosition and Entity:SetGlobalBonePosition - Renamed Entity:GetBoneOrientation to Entity:GetBoneRotation, Entity:SetBoneOrientation to Entity:SetBoneRotation, Entity:GetOrientation to Entity:GetRotation, Entity:SetOrientation to Entity:SetRotation, Frame:GetBoneOrientation to Frame:GetBoneRotation, Player:GetViewOrientation to Player:GetViewRotation and Player:SetViewOrientation to Player:SetViewRotation - Fixed util.world_to_local and Entity:WorldToLocal returning an incorrect rotation - Fixed some functions returning float values instead of integers - Fixed meshes being rendered incorrectly when certain other meshes are visible in some cases 13 Jan 2016 - Fixed buggy gesture animations - Reworked animation system and updated model format to version 2 09 Jan 2016 - Added support for constraints when compiling models - Added PhysCollisionObj:GetOrigin, PhysCollisionObj:SetOrigin, PhysObj:GetPos, PhysObj:SetPos, PhysObj:GetRotation, PhysObj:SetRotation, Entity:WorldToLocal, util.local_to_world and util.world_to_local - Fixed cvar.run not working with commands that require spaces in one of the arguments - Fixed crash when removing collision objects that are part of a PhysObj 08 Jan 2016 - Added PhysConeTwistConstraint:SetLimit - Added "Disable Collisions"-spawnflag for constraint entities - Fully implemented point_constraint_conetwist entity - Fixed MaxScript collision mesh exporter not recognizing mesh parent bones in some cases - Fixed Collision Objects with multiple disjointed meshes falling through level geometry 06 Jan 2016 - Added NetPacket:ReadLine, NetPacket:ReadStringUntil and new overloads for NetPacket:ReadString and NetPacket:WriteString - Fixed buggy vehicle physics on displacements and models 01 Jan 2016 - Updated french localizations (Thanks, Gedo789!) 30 Dec 2015 - Added class "ErrorCode" - Added socket module 16 Dec 2015 - Added "-uncompressed" parameter for package composer - Added "heartbeat" console command - Fixed file reading from wpd-package files - Fixed crash when exiting the game after having loaded packaged addons 13 Dec 2015 - Changed master server protocol (After starting a server it will take up to 5 minutes before it shows up in the server browser) - Fixed several multiplayer-related crash-bugs 11 Dec 2015 - Fixed NetPacket:ReadString returning 1 character too little if the string isn't null-terminated and at the end of the packet 30 Nov 2015 - Fixed client crash when playing a non-existant sound serverside - Fixed crash when removing vehicles - Fixed a cause of continuous massive lag when connected to a server - Fixed scripted entities not being transmitted to clients that have connected after the entity was spawned - Fixed rare crash when an entity is removed by Entity:RemoveEntityOnRemoval 29 Nov 2015 - Added engine.create_texture, GLTexture:Bind, GLTexture:GetWidth, GLTexture:GetHeight, GLTexture:GetType, GLTexture:SetParameter, GLTexture:Unbind, GLFrameBuffer:Bind, GLFrameBuffer:Unbind, GLFrameBuffer:Clear, GLFrameBuffer:ClearColor, GLFrameBuffer:ClearDepth, GLFrameBuffer:BindRead, GLFrameBuffer:BindDraw, GLFrameBuffer:SetDrawColorBuffer and GLFrameBuffer:SetColorBufferSource - Added class "Texture" - Added new overload for Material:SetTexture - Renamed hook BaseWIElement:Render to BaseWIElement:Draw - Changed overloads for WIElement:Render - Fixed incorrect function name of opengl.set_depth_func [/CODE]
Scuse me for asking, but what language was this engine written in?
[QUOTE=smileykiller447;49571420]Scuse me for asking, but what language was this engine written in?[/QUOTE] C++ for the engine, GLSL for the shaders, some minor scripts in Lua. Why do you ask?
[QUOTE=Silverlan;49572993]C++ for the engine, GLSL for the shaders, some minor scripts in Lua. Why do you ask?[/QUOTE] Just curious thats all.
[QUOTE=Silverlan;49571240][video]https://youtu.be/mj_yk4lkgow[/video][/QUOTE] For some reason I find this video really funny. Like, in most other game this would be like an unintentional bug but the fact that it's made on purpose to test things just makes me giggle. Keep up the great work, man!
I've been going through some of my older dev videos, some of them might be fun/interesting to watch, so here's a few of them :v:. [sp]Keep in mind that most of these are several years old, a lot has changed since then.[/sp] [video]https://youtu.be/8TF5xxM4moc[/video] [video]https://youtu.be/hTUwUegQOzo[/video] [video]https://youtu.be/LwSIrci8GMs[/video] [video]https://youtu.be/VSKTHDERxLk[/video] [video]https://youtu.be/NseXbNQuRsY[/video] [video]https://youtu.be/6R-vn1pbaBg[/video] [video]https://youtu.be/MlPsLCYR1Cw[/video] [video]https://youtu.be/68XToukxBHk[/video] [video]https://youtu.be/_FYyzjxyh4Y[/video] [video]https://youtu.be/Zn_gCaiKFYw[/video] [video]https://youtu.be/ym1XlQI3_OM[/video] [video]https://youtu.be/pcTCd_iEcfo[/video] [video]https://youtu.be/rwYm8rYXJhg[/video] [video]https://youtu.be/-2n6Qjr0r5Y[/video] [video]https://youtu.be/jnUEXp-QIJ8[/video] [video]https://youtu.be/fuGB9vFufzo[/video] [video]https://youtu.be/NsVKg1lWDsc[/video] [video]https://youtu.be/autxqKD36nM[/video] [video]https://youtu.be/wi-hxfWPxtM[/video] I don't even remember what these were all about: [video]https://youtu.be/s5GB33wvEbs[/video] [video]https://youtu.be/8F99D7hgG2Q[/video] [video]https://youtu.be/JW3qT_Y1We4[/video] [video]https://youtu.be/alR6eA_TbLs[/video] [video]https://youtu.be/nrCvIOICvPs[/video]
Might need to mess around with this. So right now would it be possible to script things like custom weapons and menus?
[QUOTE=mecaguy03;49589336]Might need to mess around with this. So right now would it be possible to script things like custom weapons and menus?[/QUOTE] Pretty much, although the weapon system still needs some fleshing out. I've added an example weapon in the latest update. It's far from complete, but the scripts(Located in "lua/weapons/weapon_smg") should point you in the right direction. As for the gui, you can check out the chatbox in "lua/wgui/WIChatBox.lua". All available functions can be found on the wiki (Although most of them admittedly still lack a proper description): • [URL=http://wiki.sciolyte.com/index.php?title=Gui]gui library[/URL] • [URL=http://wiki.sciolyte.com/index.php?title=WIElement]WIElement[/URL] • [URL=http://wiki.sciolyte.com/index.php?title=Player]Player[/URL] • [URL=http://wiki.sciolyte.com/index.php?title=Weapon]Weapon[/URL] • [URL=http://wiki.sciolyte.com/index.php?title=Wmc_commands]WMC Commands[/URL] If you do decide to give it a try, you can [URL=http://steamcommunity.com/id/silverlan/]add me on steam[/URL] if you need help or have any questions. The wiki is still pretty lacking, but I'm happy to help wherever I can. :) Plus, I could really need any feedback I can get, so far I haven't heared a whole lot. // Edit: Asked a mod to move this into the programming-subforum, seems like a better place for this.
Will the physics allow for players to stand on moving objects? (In Just Cause 3, you can walk on vehicles, especially the cargo plane).
[QUOTE=v0lus;49600737]Will the physics allow for players to stand on moving objects? (In Just Cause 3, you can walk on vehicles, especially the cargo plane).[/QUOTE] Not yet, but it's a good idea. I'll add it to my todo-list. Can't make any promises on that though, I'll have to experiment a bit.
Oh man, if this becomes a big thing, I'd love to make a roleplay server possible.
Just curious on what sort of features model and texture formats will support, for instance, well there ever be support for Morphs for face flexes or body groups on the model format? What would be the limitations on these? Also, one thing that bothers me about source (or at least gmod) is the lack of support for Parallax Mapping. Will parallax mapping see support in Scyiolyte?
[QUOTE=bizzclaw;49621220]Just curious on what sort of features model and texture formats will support[/QUOTE] Supported texture formats are .dds and .png. I don't remember whether or not I've added .tga-support as well. .png-files should only be used for textures with very detailed alpha-values (e.g. particle textures), in all other cases I recommend using .dds-files instead (Due to mipmap-support). There's free .dds-importers and -exporters for [URL=https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop]Photoshop[/URL] and [URL=https://code.google.com/archive/p/gimp-dds/]GIMP[/URL]. As for materials, right now there's only a handful of parameters/features (Depending on the shader), but I'll try to implement whatever's requested. For the models, you can check out the [URL=http://wiki.sciolyte.com/index.php?title=Wmc_commands]WMC Command List[/URL] on the wiki. None of the formats are final, and I'll keep working on them periodically. (I'll always make sure to keep backwards-compatibility whenever possible.) [QUOTE=bizzclaw;49621220]for instance, well there ever be support for Morphs for face flexes or body groups on the model format? What would be the limitations on these?[/QUOTE] There's no support for bodygroups yet, however my implementation for [URL=http://wiki.sciolyte.com/index.php?title=Wmc_commands#.24lod]lods[/URL] is already pretty similar, so definitely gonna happen. Morphs will definitely be a thing as well, but they're not a priority at the moment. Don't really see why there'd be a need to limit anything on these, and I usually try to avoid arbitrary limitations if possible. (Other than the numeric limits, but those'll be impossible to reach anyway.) [QUOTE=bizzclaw;49621220]Also, one thing that bothers me about source (or at least gmod) is the lack of support for Parallax Mapping. Will parallax mapping see support in Scyiolyte?[/QUOTE] I've looked up how it's usually implemented, looks simple enough. I'll have a go at it as soon as my exam-phase is over (In a few weeks).
Can't wait to see what people do with this. What's your goal with this engine?
This is pretty awesome. I have been wanting to do something exactly like this for a long time. I started on it at one point in C# with Bullet, OpenTK, and Lidgren, though when I got a programming job I couldn't find time to work on it much and lost interest. [thumb]http://i.imgur.com/5FS7nsK.png[/thumb] [thumb]http://i.imgur.com/FNq8t1T.png[/thumb] I wrote shaders for skeletal animation, implemented networked physics, and was working on loading BSPs. I guess you could say this idea is one of my dream games. A moddable game like Garry's Mod but not limited by the ancient Source engine. Where mods are downloaded on the fly from servers and what not and joining a modded server is easy. As you can see you made it a lot farther than I did and its great. Good work so far. If you ever open source this I will definitely be interested.
one of the coolest things I've seen a while, great job!
[QUOTE=Silverlan;49623888] [QUOTE=bizzclaw;49621220]Also, one thing that bothers me about source (or at least gmod) is the lack of support for Parallax Mapping. Will parallax mapping see support in Scyiolyte?[/QUOTE] I've looked up how it's usually implemented, looks simple enough. I'll have a go at it as soon as my exam-phase is over (In a few weeks).[/QUOTE] Had some time today, so... [video]https://youtu.be/iE38Dd4zKS0[/video] I've also realized that I must've accidently broken normalmapping at some point, so that'll be fixed in the next update, too. [QUOTE=Wickerman123;49627106]Can't wait to see what people do with this. What's your goal with this engine?[/QUOTE] There's still a metric ton of stuff I need/want to implement, which is gonna take quite a while. Other than that, it mostly depends on what people want to have. As I've said, I don't have any endgoal (yet). [QUOTE=Rayboy1995;49628470]I wrote shaders for skeletal animation, implemented networked physics, and was working on loading BSPs. I guess you could say this idea is one of my dream games. A moddable game like Garry's Mod but not limited by the ancient Source engine. Where mods are downloaded on the fly from servers and what not and joining a modded server is easy.[/QUOTE] Pretty much sums it up. I have the idea of only loading the essentials (Collision meshes, scripts, etc.) when joining a server, and then having everything else be downloaded and loaded during playtime, including custom content. No more hours of waiting for huge amounts of content before you can actually start playing. [QUOTE=Johnny Guitar;49629941]one of the coolest things I've seen a while, great job![/QUOTE] Thanks. :)
Awesome engine! Will test it in future. :)
Wow you got that working quick! I'm not a technical person, I have no experience in programming outside of extremely messy blueprint in UE4 but would it be possible to get PBR/MicrofacetGTR shading into this engine?
The source engine has limitations on max polygons and a max of 32 materials. It'd be cool to see high-poly models in sciolyte. Will the engine support this or is it difficult to code in?
[QUOTE=Wickerman123;49632200]I'm not a technical person, I have no experience in programming outside of extremely messy blueprint in UE4 but would it be possible to get PBR/MicrofacetGTR shading into this engine?[/QUOTE] I have no idea how either of them work, so I can't say. I'll look into it at some point. [QUOTE=glarkon;49633145]The source engine has limitations on max polygons and a max of 32 materials. It'd be cool to see high-poly models in sciolyte. Will the engine support this or is it difficult to code in?[/QUOTE] The max poly limit is 4294967295. Same for materials. These are (like the map size limit) [b]absolute[/b] limits, I haven't actually tested how far you actually can go, and you'll probably run into problems before you reach that limit. Either way, if any of these will ever become an actual problem, in most cases it would just be a case of using more precise/larger number types. That always comes with a small hit on performance, however. The limits in the source engine seem mostly arbitrary and I think most of them are basically just safety nets. I don't really see any technical reason for most of them.
this looks nice, wow. i hope it wont go down the drain and someones makes a superior title like gmod on this engine, where i can waste another 3500 hours on.
Can i ask how you learned engine design? I'm in my 5th year of CompSci but it seems we've learned nothing useful like this :/ Kinda depressing.
[QUOTE=Occlusion;49704517]Can i ask how you learned engine design? I'm in my 5th year of CompSci but it seems we've learned nothing useful like this :/ Kinda depressing.[/QUOTE] Mostly trial and error tbh. I had to completely re-structure the entire engine two times because I ran myself into a corner, due to bad design/in-experience. (I rewrote the networking component [b]three[/b] times, for similar reasons.) I haven't really looked all that much into how other engines are built, but I 've had a lot of experience with the source engine, that definitely helped a lot. (Hence why there's so many similarities.) No IT-classes are gonna teach you anything like this (I've been in plenty), it's something you can only really get a feel for through experience. I started by using a library for creating a rendering context (e.g. [URL=http://www.glfw.org/]GLFW[/URL]), and then just went from there. First, by rendering simple shapes (Which got me into OpenGL), then more complex stuff (Models, animations, shaders, etc.). Once you have a rendering pipeline set up, you can start implementing physics, then networking, and everything else just kind of falls into place. It's a very long learning process, but imo it's worth it if you stick with it.
Why havent I heard about this before? Amazing work man. I'll try this out for sure
I love this idea... It looks like a really cool project, Is there any way you could add in a feature to import STEP files? This would be so cool as you could import directly from any old CAD program. I really want to experiment with such things.
Looks great. Keep it up!
I've been looking in to compiling models for this and while I appreciate how similar it is to source in terms of the compiling, there are some things that bother me about the source engine, namely how all the animations are baked in to the model. This isn't a bad thing mind you, it has a lot of benefits, but it would be nice if you could also load single animation files externally, this would allow servers to distribute custom animations for a common rig and would allow developers to upload new animations for models without forcing clients to re-download the entire model or animation model. I'm not sure if it would be possible to have both systems in place, but it would certainly be worth it if it's not too much trouble.
[QUOTE=nuttyboffin;49707646] Is there any way you could add in a feature to import STEP files? This would be so cool as you could import directly from any old CAD program.[/QUOTE] Unlikely, sorry. The STEP-format looks pretty complex, it would take quite a while to implement that, and it wouldn't really be worth it. I might add support for the [URL=http://www.assimp.org/]Assimp[/URL] library (Which, in turn, has support for STEP-files), but only for the compiler. [QUOTE=bizzclaw;49716926][...]but it would be nice if you could also load single animation files externally, this would allow servers to distribute custom animations for a common rig and would allow developers to upload new animations for models without forcing clients to re-download the entire model or animation model.[/QUOTE] Already on my todo-list, had this planned from the beginning. I'm not quite sure how I'm gonna implement it exactly, but I have some ideas.
Could sphere mapping be a thing? I know it's old as hell and overshadowed by the superior cube mapping, but source apparently supported it at one point (judging by the vmt command $envmapsphere <bool>) and porting older models would be a bit easier. Also, I could never figure out how to convert a spheremap to a cubemap :v:
Sorry, you need to Log In to post a reply to this thread.