Pragma - A 3D multiplayer sandbox engine with Lua-integration, based on Vulkan and bullet physics
379 replies, posted
[QUOTE=Tw1x4s;50902325]Thank you, I got the driver issue solved, but I still can't seem to launch it. When I try to launch it from launcher, nothing happens at all, it's not launching for me and there's no process in the task manager. I also tried manually launching the .exe as administrator, but no luck...[/QUOTE]
When trying to launch the game I get this issue as well have you figured out what your problem was?
[QUOTE=cpone;50958051]When trying to launch the game I get this issue as well have you figured out what your problem was?[/QUOTE]
His issue was that his GPU didn't support Vulkan after all.
You can find a list of supported GPUs [URL=http://www.amd.com/en-gb/innovations/software-technologies/technologies-gaming/vulkan]here[/URL] for AMD, and [URL=https://developer.nvidia.com/vulkan-driver]here[/URL] for Nvidia, if it's listed there, it should work.
What GPU do you have, and do you have the latest drivers installed?
[QUOTE=Silverlan;50958171]His issue was that his GPU didn't support Vulkan after all.
You can find a list of supported GPUs [URL=http://www.amd.com/en-gb/innovations/software-technologies/technologies-gaming/vulkan]here[/URL] for AMD, and [URL=https://developer.nvidia.com/vulkan-driver]here[/URL] for Nvidia, if it's listed there, it should work.
What GPU do you have, and do you have the latest drivers installed?[/QUOTE]
Thanks for those links. It seems that my GPU isn't supported which is a shame.
When I go to the vehicle test map. My vehicle has no wheels. Also when you Use it. It positions the camera behind the vehicle, but I can still run around with the player. Once I use it again. My FOV on the player is set back behind their shoulder.
Still wip or is it something on my end maybe?
[QUOTE=find me;50971507]When I go to the vehicle test map. My vehicle has no wheels. Also when you Use it. It positions the camera behind the vehicle, but I can still run around with the player. Once I use it again. My FOV on the player is set back behind their shoulder.
Still wip or is it something on my end maybe?[/QUOTE]
[t]https://gedo789.fr.nf/img/sciolyte_bug12.png[/t]
WIP and is already reported since a good times by me: [url]http://forums.sciolyte.com/viewtopic.php?f=15&t=25[/url]
[QUOTE=find me;50971507]When I go to the vehicle test map. My vehicle has no wheels. Also when you Use it. It positions the camera behind the vehicle, but I can still run around with the player. Once I use it again. My FOV on the player is set back behind their shoulder.
Still wip or is it something on my end maybe?[/QUOTE]
That happened if the vehicle was spawned before the player. If you spawn it using "ent_create vhc_viperscout", it should be fine.
Either way, it should work properly now with the latest version.
Vehicles are still WIP, but you can play around with the vehicle settings. They're defined in "lua/vehicles/vhc_viperscout/init.lua" and documented on the [URL=http://wiki.sciolyte.com/index.php?title=Vehicle]wiki[/URL].
The changes won't apply to any existing vehicles, but you can spawn one with the new settings using:
[CODE]
lua_exec vehicles/vhc_viperscout/init.lua; lua_exec_cl vehicles/vhc_viperscout/cl_init.lua; ent_create vhc_viperscout[/CODE]
Anyway, I've started working on another tool:
[T]http://sciolyte.com/sharex/sciolyte_2016-08-30_13-24-26.png[/T] [T]http://sciolyte.com/sharex/sciolyte_2016-08-30_13-24-57.png[/T] [T]http://sciolyte.com/sharex/sciolyte_2016-08-30_13-25-15.png[/T] [T]http://sciolyte.com/sharex/sciolyte_2016-08-30_13-25-29.png[/T] [T]http://sciolyte.com/sharex/sciolyte_2016-08-30_13-25-59.png[/T]
So far it's just a model viewer, but you'll be able to use it to import model assets a lot easier, without having to go through the compilation process.
Latest Changelog:
[CODE]Sciolyte ChangeLog
Version 0.2.9
30 August 2016
- Added BaseCharacter:IsFrozen and BaseCharacter:SetFrozen
- Added game callback "OnEntityCreated"
- Fixed some vehicle data not being transmitted properly, if player spawned after vehicle
- Fixed players being able to move their character while in a vehicle
- Fixed camera being stuck in third-person mode, if player exited a vehicle in third-person
29 August 2016
- Added predefined color "Color.Clear"
- Added VKRenderTarget:GetDepthTexture, VKCommandBuffer:Draw, VKCommandBuffer:DrawIndexed, VKCommandBuffer:BindIndexBuffer and VKCommandBuffer:BindVertexBuffer
- Added members "VertexInput" and "DepthStencilState" for custom shaders
- Added classes "ShaderBase" and "BaseShader"
- Moved "ShaderTexturedBase3D:BeginDraw" to "Shader:BeginDraw"
28 August 2016
- Added classes "WITreeList", "WITreeListElement" and "WIProgressBar"
- Added WITableRow:GetValue, WITable:GetRows and Camera:LookAt
- Added new overload for ShaderDebug:Draw
- Fixed Camera.Create reporting invalid arguments, even if they're correct
27 August 2016
- Added animation event enums
- Added Material:GetName, Model:GetAnimationCount, Model:GetAttachmentCount, Model:GetAttachments, Model:LookupAttachment, Model:GetBlendControllerCount, Model:GetBlendControllers, Model:LookupBlendController, Model:GetAttachment, Model:GetBlendController and Model:GetMaterialCount
- Added class "WIArrow"
- Fixed lua-error related to Entity hook "HandleAnimationEvent"
- Fixed excessive amounts of GPU memory being allocated for shaders
26 August 2016
- Added new overloads for VKCommandBuffer:BeginRenderPass and vulkan.create_render_target
25 August 2016
- Added game.load_model
24 August 2016
- Added game callback "OnFilesDropped"
- Added WIDropDownMenu callback "OnOptionSelected"
- Added game.open_dropped_file, WIDropDownMenu:GetOptionText, WIDropDownMenu:GetOptionValue, WIDropDownMenu:SetOptionText, WIDropDownMenu:SetOptionValue, WIDropDownMenu:ClearOptions and WIDropDownMenu:SelectOptionByText
Version 0.2.8
23 August 2016
- Fixed crash from garbage collector when releasing vulkan resources using "Remove" method
- Fixed File:ReadInt64 and File:ReadUInt64 throwing errors when called
22 August 2016
- Added Texture:GetVkTexture
- Added new overload for Material:SetTexture
- Fixed crash when calling engine.create_material
- Fixed case where mouse click would affect wrong GUI element where several GUI elements with same parent were behind each other
- Removed Texture:GetTextureID, Texture:GetGLTexture and Texture:GetSamplerID
21 August 2016
- Added Vertex:Copy, VertexWeight:Copy, Vectori:Copy, Vector2i:Copy and Vector4i:Copy
- Added overload for game.draw_scene
- Added classes "ShaderDebug" and "ShaderTexturedBase3D"
20 August 2016
- Added Entity:UpdateRenderBuffers, WIShape:InvertVertexPositions and WITexturedShape:InvertVertexUVCoordinates
- Added new overload for vulkan.create_render_target
- Fixed only the first callback of a type being called properly
- Fixed FRENDER_ALL not being defined
19 August 2016
- Added VKCommandBuffer:BeginRenderPass, VKCommandBuffer:EndRenderPass, VKCommandBuffer:SetImageLayout and Shader:PushConstants
- Added game hooks "PreRender" and "PostRender"
- Added members "Topology", "PolygonMode", "DynamicStates" and "PushConstantRanges" for custom shaders
- Fixed Model:GetMaterials returning materials individually instead of a table
18 August 2016
- Added game.get_render_scene, game.get_render_scene_camera, Shader:GenerateSwapDescriptorBuffer, VKBuffer:Flush, Color:ToVector, Color:ToVector4, VKCommandBuffer:SetDepthBias, VKCommandBuffer:SetLineWidth, VKCommandBuffer:SetScissor, VKCommandBuffer:SetViewport, DataStream:Seek, DataStream:Tell, DataStream:Resize, DataStream:Clear, Camera:Copy and Camera.Create
- Added DataStream:WriteMat2, DataStream:WriteMat2x3, DataStream:WriteMat2x4, DataStream:WriteMat3x2, DataStream:WriteMat3, DataStream:WriteMat3x4, DataStream:WriteMat4x2, DataStream:WriteMat4x3, DataStream:WriteMat4, DataStream:WriteQuaternion, DataStream:WriteVector2i, DataStream:WriteVector3i, DataStream:WriteVector4i, DataStream:ReadMat2, DataStream:ReadMat2x3, DataStream:ReadMat2x4, DataStream:ReadMat3x2, DataStream:ReadMat3, DataStream:ReadMat3x4, DataStream:ReadMat4x2, DataStream:ReadMat4x3, DataStream:ReadMat4, DataStream:ReadQuaternion, DataStream:ReadVector2i, DataStream:ReadVector3i and DataStream:ReadVector4i
- Added enums SIZEOF_MAT2, SIZEOF_MAT2X3, SIZEOF_MAT2X4, SIZEOF_MAT3X2, SIZEOF_MAT3, SIZEOF_MAT3X4, SIZEOF_MAT4X2, SIZEOF_MAT4X3, SIZEOF_MAT4, SIZEOF_VECTOR2I, SIZEOF_VECTOR3I, SIZEOF_VECTOR4I
- Added new overload for DataStream:__init
- Added Entity hook "OnPostRender"
- Added classes "ShaderTexturedBase3D" and "VKSwapDescriptorBuffer"
- Removed Entity:Render, Camera:IsValid and engine.create_camera[/CODE]
I really want to take a look at this game but it crashes with a terminal error. I think it has something to do with the Vulkan drivers. Is there a particular version that it requires?
[QUOTE=false prophet;50974209]I really want to take a look at this game but it crashes with a terminal error. I think it has something to do with the Vulkan drivers. Is there a particular version that it requires?[/QUOTE]
Do you have an AMD card? There's a bug in their drivers right now, you can try this [URL=http://sciolyte.com/sharex/amd_shader_bug_fix.zip]work-around[/URL] (Don't use it if you have a Nvidia card!). Just extract it into the installation directory of the engine.
Other than that, just make sure you're on the latest driver versions, and make sure your GPU is supported ([URL=http://www.amd.com/en-gb/innovations/software-technologies/technologies-gaming/vulkan]AMD[/URL], [URL=https://developer.nvidia.com/vulkan-driver]Nvidia[/URL]).
If it generates a crashdump, you can [URL=mailto:mail@sciolyte.com]send it to me[/URL], and I'll take a look.
This looks insanely cool and promising, keep it up
Any chance of adding some sort of weapon which lets you pick up objects and move them around, maybe even rotate and freeze them? Like some sort of physics manipulation gun?
I had gotten the vehicles to work, thank you. My favorite part was trying to haul my slow ass over an edge, then getting stuck on the frame.. I did change some of the settings around, was fun. I might play with it some more here soon. I would love to contribute maps and modeling projects once you get those accessories up and running. Love your work!
[edit] didn't fix it. I do have a crash dump, though. My computer is on the lower end, fx4100, AMD 7870
[HD]https://youtu.be/S4Y5u1a2rmA[/HD]
Some minor progress.
[QUOTE=Kamber56;50977629]Any chance of adding some sort of weapon which lets you pick up objects and move them around, maybe even rotate and freeze them? Like some sort of physics manipulation gun?[/QUOTE]
I already have a prototype, although it was mostly just meant for testing. I suppose I could flesh it out a bit, I'll try to get around to that in the next few weeks.
[QUOTE=find me;50977953]I had gotten the vehicles to work, thank you. My favorite part was trying to haul my slow ass over an edge, then getting stuck on the frame.. I did change some of the settings around, was fun. I might play with it some more here soon. I would love to contribute maps and modeling projects once you get those accessories up and running. Love your work![/QUOTE]
Yeah, vehicle physics are a bit wonky. Haven't figured out what's going on with that yet.
Another small update on the model viewer:
[HD]https://youtu.be/6HofY_qAhU4[/HD]
You can simply drag and drop meshes and animations into the tool now. Only .smd-files are supported right now, but I'm planning to add support for other formats as well (such as .obj). The tools is written in Lua (Same as the level editor), so custom formats can be easily added later as well.
I still need to add some actual editing features for the editor, but I'll try to get that done until the end of the week.
What about .fbx files?
I got a new graphics card with Vulkan support and when loading a map it either crashes and gives a crash dump or just closes completely. Here's the crash dump: [URL="https://mega.nz/#!oZchyR5C!ODjfjSLNzLvjwKLkx-lR3jFAbQ3qiBC9B2kH26dt1Ck"]Download[/URL]
[QUOTE=Grindigo;51029999]What about .fbx files?[/QUOTE]
Added support for it, but there's still some UV and animation-related problems I haven't been able to solve.
Anyway, some more update news:
[URL=https://facepunch.com/member.php?u=495720]Xanadu[/URL] generously gave me permission to add his map [URL=https://facepunch.com/showthread.php?t=1378406]gm_updatespeedway[/URL] to the engine, so there's a proper vehicle map now:
[t]http://sciolyte.com/sharex/sciolyte_2016-09-18_22-16-33_2.jpg[/t] [t]http://sciolyte.com/sharex/sciolyte_2016-09-18_22-17-01.jpg[/t] [t]http://sciolyte.com/sharex/sciolyte_2016-09-18_22-17-48.jpg[/t]
I've also made a bunch of other improvements on the vehicles. They should behave more stable now (Still not perfect), and I've added some mounted turrets and some new particle effects:
[t]http://sciolyte.com/sharex/Untitled.png[/t]
[HD]https://youtu.be/5kQ5bxssdO0[/HD]
All still WIP of course.
Latest Changelog:
[CODE]Sciolyte ChangeLog
Version 0.2.10
18 September 2016
- Added NetPacket:WriteUniqueEntity, NetPacket:ReadUniqueEntity, Player:SetObserverTarget, Player:GetObserverTarget, Player:SetObserverOffset, Player:GetObserverOffset, Player:ResetObserverOffset, Player:IsObserverCameraLocked and Player:SetObserverCameraLocked
- Added console command "thirdperson"
- Added weapon_physgun entity
- Improved vehicle collision stability on convex geometry
- Fixed entities having an incorrect position offset if parented to another rotated entity
- Fixed occasional artifacts at start of life-time of animated particles
17 September 2016
- Added env_smoke_trail and env_fire entities
- Added Entity:Ignite, Entity:IsOnFire, Entity:IsIgnitable, Entity:Extinguish, Entity:SetIgnitable, Entity:GetCenter and util.create_explosion
- Added Entity hooks "OnIgnite" and "OnExtinguish"
- Added console command "+prop_menu" for sandbox gamemode
- Added new overload for ParticleSystem:Stop
- Fixed particle effects being visible through world geometry when anti-aliasing is enabled
- Fixed particle effects twitching occasionally
16 September 2016
- Added Vector:Project, Vector2:Project, Vector4:Project, Vehicle:HasDriver, Vehicle:GetDriver, Vehicle:ClearDriver and util.create_muzzle_flash
- Added prop_viperscout_turret, weapon_viperscout_turret and weapon_viperscout_turret_double entities
- Added new overload for Quaternion:__init
- Added Vehicle hook "OnCameraChanged"
- Entity:SendNetEventTCP and Entity:SendNetEventUDP can now be called clientside
- Entity hook "ReceiveNetEvent" is now available serverside
- Fixed occasional crash when particle effects are being rendered
15 September 2016
- Added SurfaceMaterial:SetImpactParticleEffect, SurfaceMaterial:GetImpactParticleEffect, SurfaceMaterial:GetBulletImpactSound, SurfaceMaterial:SetBulletImpactSound, SurfaceMaterial:SetHardImpactSound, SurfaceMaterial:GetHardImpactSound, SurfaceMaterial:SetSoftImpactSound, SurfaceMaterial:GetSoftImpactSound, Vehicle:GetThirdPersonCameraOffset, Vehicle:SetThirdPersonCameraOffset and Player:GetViewPos
- Added game.get_camera_position
- Added entity hook "OnTakenDamage"
- Added new overload for NetPacket:WriteEntity
- Fixed "OnHealthChanged" entity hook not being called
- Fixed entity eye offsets not being transmitted to client properly, if client spawned after entity
14 September 2016
- Added ParticleSystem:SetRemoveOnComplete, Entity:SendNetEventTCP and Entity:SendNetEventUDP
- Added Weapon:PrimaryAttack, Weapon:SecondaryAttack, Weapon:Drop, Weapon:Deploy, Weapon:Reload, Weapon:Holster, Weapon:TertiaryAttack, Weapon:Attack4, Weapon:EndAttack, Weapon:EndPrimaryAttack, Weapon:EndSecondaryAttack, Weapon:SetOwner, ParticleSystem:GetRotation and ParticleSystem:SetRotation
- Added members "tracer_radius", "tracer_color", "tracer_length", "tracer_speed", "tracer_material" and "tracer_bloom" to util_fire_bullets parameter
- Added Entity hook "OnPostSpawn"
- Renamed Weapon hooks "PrimaryAttack" to "OnPrimaryAttack", "SecondaryAttack" to "OnSecondaryAttack", "TertiaryAttack" to "OnTertiaryAttack", "Attack4" to "OnAttack4", "Drop" to "OnDrop", "Deploy" to "OnDeploy", "Reload" to "OnReload" and "Holster" to "OnHolster"
- Changed "spread"-attribute for util.fire_bullets from Vector to EulerAngles and "force"-attribute from Vector to float
- Removed Entity:SendNetEvent
13 September 2016
- Added new overload for ParticleSystem:SetNodeTarget
- Added util.create_particle_tracer
12 September 2016
- Added new overloads for Entity:SendNetEvent
10 September 2016
- Added ConVar "cl_render_lod_bias"
- Added LOD models for viperscout
- Added new overloads for Vehicle:AddWheel
- Added Entity hook "SetKeyValue" and "Input"
- Added Vehicle:IsFirstPersonCameraEnabled, Vehicle:SetFirstPersonCameraEnabled, Vehicle:IsThirdPersonCameraEnabled and Vehicle:SetThirdPersonCameraEnabled
- Fixed collision objects being placed at incorrect origins
- Fixed LOD models not working
- Fixed entity-bodygroups not being transmitted to clients, if client connected after entity was spawned
09 September 2016
- Added experimental gamemode "Sandbox"
- Added map vhc_upstatespeedway
- Added "Don't Cast Shadows"-spawnflag for light entities
- Added vehicle hooks "OnDriverEntered" and "OnDriverExited"
- Fixed crash when spawning entities inside "OnPlayerSpawned" gamemode hook
- Fixed viewmodel and body being visible while in a vehicle
- Fixed crash when calling ALSound:CallOnStateChanged
08 September 2016
- Fixed shadow flickering of directional light sources when looking straight down or up
07 September 2016
- Added material parameter "translucent"
- Fixed ModelSubMesh:GetTangents and ModelSubMesh:GetBiTangents not returning anything
- Fixed nodraw-geometry and geometry with invalid shaders casting shadows
- Fixed shadow-artifacts on displacement geometry
- Improved rendering for translucent objects
06 September 2016
- Added Model:LoadMaterials, Model:AddTexturePath, PhysCollisionObj:GetBounds, PhysCollisionObj:GetBoundingSphere and game.get_game_mode
- Fixed gamemodes calling "init.lua" instead of "cl_init.lua" on clients
- Fixed some .vmt blend-materials not being recognized as such
- Fixed CSM shadow artifacts on AMD cards
05 September 2016
- Added CollisionMesh:GetVertexCount, ModelSubMesh:Optimize, File:Read, File:Write, Model:GetTextures and Model:GetTexturePaths
- Fixed physenv.get_surface_material always returning nil if an integer index was passed as argument
04 September 2016
- Fixed compressed vtf-images unable to be loaded with some GPUs
03 September 2016
- Added Animation:GetFrames, Model:Copy, Model:Save, Model:GetVertexCount and Model:GetTriangleCount
02 September 2016
- Added Animation:GetActivity, Animation:SetActivity, Animation:GetActivityWeight, Animation:SetActivityWeight, Animation:GetFPS, Animation:SetFPS, Animation:GetFlags, Animation:SetFlags, Animation:AddFlags, Animation:RemoveFlags, Animation:AddFrame, Animation:GetDuration, Animation:GetBoneCount, Animation:GetFrameCount, Animation:AddEvent, Animation:GetEvents, Animation:GetFadeInTime, Animation:GetFadeOutTime and Animation:GetBlendController
- Added FANIM-flags
01 September 2016
- Added new overloads for VKCommandBuffer:Draw and Entity:SetModel
- Added Model:GetTextureGroupCount, Model:GetTextureGroups and Model:GetTextureGroup
31 August 2016
- Added ModelSubMesh:GetVertexBuffer, ModelSubMesh:GetVertexWeightBuffer, ModelSubMesh:GetAlphaBuffer and ModelSubMesh:GetIndexBuffer
- Added members "BlendEnable" and "RasterizationState" for custom shaders
- Moved shader member "PolygonMode" to "RasterizationState"
- Lua-shaders are no longer included automatically
- Fixed Model:GetHitboxBones returning table with indices starting at 0
[/CODE]
What made you choose Vulkan over bgfx?
My game crashes when I try to open the new map. I updated of course. There were a bunch of warnings in the console, I didn't really look at them. I can if it would help. Here is the crashdump it spit out.
[url]http://www.filedropper.com/crashdump2016-09-1902-35-05[/url]
[QUOTE=cheesylard;51072580]What made you choose Vulkan over bgfx?[/QUOTE]
Mostly two reasons why I don't use libraries like that:
1) The engine is a learning-experience for me, and I don't learn much if I use existing libraries that already do all the work for me
2) By creating my own implementation I have much more control (and a much better understanding of the system), and can add lua-support for lower-level stuff (=More modding-capabilities)
[QUOTE=find me;51073276]My game crashes when I try to open the new map. I updated of course. There were a bunch of warnings in the console, I didn't really look at them. I can if it would help. Here is the crashdump it spit out.
[url]http://www.filedropper.com/crashdump2016-09-1902-35-05[/url][/QUOTE]
There's a bug with newer Nvidia cards right now when multi-sampling is enabled, try turning it off in the video settings before loading a map.
[IMG]http://sciolyte.com/sharex/sciolyte_2016-09-19_11-45-02.png[/IMG]
(Apply button is at the bottom of the scroll-panel).
It might be a driver bug, I'll have to do more testing on that.
Also, make sure to select the "sandbox"-gamemode, otherwise you might spawn outside of the map.
I didn't validate! Sorryy
[editline]19th September 2016[/editline]
It's working now.
[QUOTE=Silverlan;51073301]Mostly two reasons why I don't use libraries like that:
1) The engine is a learning-experience for me, and I don't learn much if I use existing libraries that already do all the work for me
2) By creating my own implementation I have much more control (and a much better understanding of the system), and can add lua-support for lower-level stuff (=More modding-capabilities)[/QUOTE]
you'd do as much work in bgfx as you would in openGL. it uses shaders, VBOs, VAOs, etc
[QUOTE=cheesylard;51076132]you'd do as much work in bgfx as you would in openGL. it uses shaders, VBOs, VAOs, etc[/QUOTE]
It'll still have a bigger overhead than if you work with OpenGL or Vulkan directly. And I doubt you have the same amount of freedom that you have when working with Vulkan.
Anyway, I finally got around to implementing particle lighting effects and shadows:
[HD]https://youtu.be/I8GUlUoDST4[/HD]
Still some performance problems, but nothing that can't be dealt with.
Since I was working on shadows anyway, I've now also added proper shadows for transparent objects:
[T]http://sciolyte.com/sharex/sciolyte_2016-09-24_22-26-52.png[/T]
I've also started implementing bullet's soft-body physics, however that's... still a work-in-progress:
[video]https://youtu.be/PO6sNKpmRfA[/video]
hows progress goin?
[QUOTE=Coffee123;51328092]hows progress goin?[/QUOTE]
Haven't posted any news recently, since there didn't seem to be much interest anymore.
Still making good progress though:
[b]Implemented auto-reloading for lua-scripts[/b] (Don't even need to respawn entities):
[video]https://youtu.be/Q29hPoXt1e4[/video]
Auto-reloading also works when changing clientside lua-scripts on the server. When changed, they're automatically transmitted to all clients and then reloaded:
[video]https://youtu.be/P4Dg1qbtCvc[/video]
(Left is the server, middle the client and right the clientside script on the server.)
I've revamped the entire resource system while I was at it:
There are now two types of resources, required resources and streamed resources. Required resources are downloaded when a client connects to a server (=Client has to wait until they're finished), for example the map and the lua-scripts.
Streamed resources are downloaded in the background, while the client can already play on the server (models, materials, textures, sounds, etc.), they're automatically loaded after each resource was fully downloaded.
Since maps are much smaller than in source, you can basically join any server and start playing within a few seconds, even if you don't have any of the resources.
All lua-files are also pre-compiled before being sent to clients, and stripped of all debug-information (variable names, etc.). That means it's not possible for clients to actually read clientside scripts (Unless they decompile them, but I haven't found a working decompiler for the Lua-version I'm using. Even then, it would mostly be a garbled mess.)
All downloaded resources are placed in the 'downloads' directory:
[T]http://sciolyte.com/sharex/explorer_2016-11-08_18-13-44.png[/T]
Lua-files are special cases, they're placed in server-specific directories (Named after their IP), which are only mounted for the specific server you're joining.
I still have some things up my sleeve for streaming models, but I'll show that off once it's done.
[b]Improved ragdoll physics:[/b]
[T]http://sciolyte.com/sharex/2016-10-31_19-32-05.gif[/T]
[video]https://youtu.be/mdC4m9gR07I[/video]
[b]AI[/b]
This is my priority at the moment, the base NPC system already works.
[T]http://sciolyte.com/sharex/sciolyte_2016-10-05_22-51-41.png[/T]
It's based on a [URL=https://en.wikipedia.org/wiki/Behavior_tree_(artificial_intelligence,_robotics_a nd_control)]behavior tree system[/URL], not much to show off at the moment.
Wiki: [URL=http://wiki.sciolyte.com/index.php?title=NPC]NPC[/URL], [URL=http://wiki.sciolyte.com/index.php?title=Ai]ai[/URL], [URL=http://wiki.sciolyte.com/index.php?title=AIBehaviorTask]AIBehaviorTask[/URL], [URL=http://wiki.sciolyte.com/index.php?title=AIMemory]AIMemory[/URL], [URL=http://wiki.sciolyte.com/index.php?title=AIMemoryFragment]AIMemoryFragment[/URL], [URL=http://wiki.sciolyte.com/index.php?title=AISchedule]AISchedule[/URL], [URL=http://wiki.sciolyte.com/index.php?title=AISquad]AISquad[/URL]
Mostly just need to finish some minor stuff and write some tutorials.
[b]Nav-Meshes[/b] (Auto-generated):
[T]http://sciolyte.com/sharex/sciolyte_2016-10-01_10-54-35.png[/T]
[b]Dynamic entity scaling[/b] (Visible meshes, physics and hitboxes):
[T]http://sciolyte.com/sharex/2016-10-21_18-21-17.gif[/T] [T]http://sciolyte.com/sharex/sciolyte_2016-10-21_14-44-35.jpg[/T] [T]http://sciolyte.com/sharex/sciolyte_2016-10-21_14-43-20.jpg[/T]
Some other minor random stuff:
[b]Fixed 3D-Rendering of GUI elements[/b]:
[T]http://sciolyte.com/sharex/sciolyte_2016-10-19_13-54-42.png[/T]
[b]GUI Tooltips[/b]:
[T]http://sciolyte.com/sharex/sciolyte_2016-10-22_17-33-20.png[/T]
And a bunch of other stuff listed in the latest changelog:
[CODE]Sciolyte ChangeLog
Version 0.2.12
07 November 2016
- Added geometry.get_triangle_winding_order
05 November 2016
- Added Player:SendResource
- Added new overload for resource.add_file
- Revamped resource download system
- Clientside lua-files, which are changed serverside, are now automatically transmitted and reloaded on all clients
04 November 2016
- Added enums "FSYS_SEARCH_ADDON" and "FSYS_SEARCH_RESOURCES"
- Added resource.add_lua_file
- Added auto-reloading for lua-scripts
03 November 2016
- Added NPC:HasPrimaryTarget
02 November 2016
- Added math.calc_hermite_spline_position
01 November 2016
- Added math.calc_hermite_spline
Version 0.2.11
31 October 2016
- Added Entity:SetTimeScale, Entity:GetTimeScale and Entity:GetEffectiveTimeScale
- Added game.set_time_scale and game.get_time_scale
- Animations now blend between frames properly
- Fixed animations not being in sync with the timescale, if the timescale is != 1
- Fixed particle effects not being affected by timescale
- Fixed ragdoll rendering issues
30 October 2016
- Added Entity:GetNetworkedBool, Entity:GetNetworkedChar, Entity:GetNetworkedDouble, Entity:GetNetworkedFloat, Entity:GetNetworkedInt8, Entity:GetNetworkedInt16, Entity:GetNetworkedInt32, Entity:GetNetworkedInt64, Entity:GetNetworkedLongDouble, Entity:GetNetworkedString, Entity:GetNetworkedUInt8, Entity:GetNetworkedUInt16, Entity:GetNetworkedUInt32, Entity:GetNetworkedUInt64, Entity:GetNetworkedAngles, Entity:GetNetworkedColor, Entity:GetNetworkedVector, Entity:GetNetworkedVector2, Entity:GetNetworkedVector4, Entity:GetNetworkedEntity, Entity:GetNetworkedVariables, Entity:SetNetworkedBool, Entity:SetNetworkedChar, Entity:SetNetworkedDouble, Entity:SetNetworkedFloat, Entity:SetNetworkedInt8, Entity:SetNetworkedInt16, Entity:SetNetworkedInt32, Entity:SetNetworkedInt64, Entity:SetNetworkedLongDouble, Entity:SetNetworkedString, Entity:SetNetworkedUInt8, Entity:SetNetworkedUInt16, Entity:SetNetworkedUInt32, Entity:SetNetworkedUInt64, Entity:SetNetworkedAngles, Entity:SetNetworkedColor, Entity:SetNetworkedVector, Entity:SetNetworkedVector2, Entity:SetNetworkedVector4 and Entity:SetNetworkedEntity
- Added entity callback "OnNetworkedVariableChanged"
- Added gamemode hooks "OnGameInitialized" and "OnMapInitialized"
- Added new overloads for sound.create, Entity:CreateSound and Entity:EmitSound
- Fixed crash when creating text GUI-elements with width or height set to 0
- Fixed model normals not being affected by animations during rendering
29 October 2016
- Added Entity:FireBullets, Entity:GetMaxHealth and Entity:SetMaxHealth
- Added Entity hook "OnFireBullets"
- Added player callback "OnActiveWeaponChanged"
- Added weapon callbacks "OnPrimaryClipSizeChanged", "OnSecondaryClipSizeChanged", "OnPrimaryAmmoTypeChanged" and "OnSecondaryAmmoTypeChanged"
- Added console commands "turn_left", "turn_right", "turn_up", "turn_down" and "hurtme"
- Player:GetWeapons, Player:GetActiveWeapon, Player:GetActionInput and Player:HasWeapon are now shared
23 October 2016
- Added class "WINumericEntry"
- Removed WITextEntry:SetNumeric
22 October 2016
- Added WIElement:SetTooltip, WIElement:GetTooltip, WIElement:HasTooltip, WIElement:GetLeft, WIElement:GetTop, WIElement:GetRight, WIElement:GetBottom, WIElement:GetEndPos, Animation:GetEventCount, WIDropDownMenu:GetValue and gui.create_label
- Added new overload for Animation:GetEvents
- Added class "WIGridPanel"
21 October 2016
- Added Entity:GetScale and Entity:SetScale
- Added console command "ent_scale"
20 October 2016
- Added WIElement:Draw and AISchedule:AddTask
- Renamed hook BaseWIElement:Draw to BaseWIElement:OnDraw
19 October 2016
- Added Camera:GetRotation and debugrenderer.draw_text
18 October 2016
- Added game.get_light_color and game.get_sound_intensity
- Added game callback "DrawScene"
17 October 2016
- Added Player:PrintMessage, BaseCharacter:GetGodMode and BaseCharacter:SetGodMode
- Added "MESSAGE_TYPE" enums
- Added console command "godmode"
15 October 2016
- Added NPC:IsEnemy, AIBehaviorTask:SetParameterBool, AIBehaviorTask:SetParameterInt, AIBehaviorTask:SetParameterFloat, AIBehaviorTask:SetParameterString, AIBehaviorTask:SetParameterEntity, AIBehaviorTask:SetParameterVector, AIBehaviorTask:SetParameterQuaternion and AIBehaviorTask:SetParameterEulerAngles
- Added enums "HITGROUP_TAIL", "ACT_DIE" and "TASK_PLAY_SOUND"
- Fixed crash when playing soundscripts serverside
14 October 2016
- Added Vector:GetPerpendicular
- Added debugrenderer.draw_cone
- Added new overloads for util.splash_damage
- Fixed console command "lua_compile" not working
13 October 2016
- Added game callback "CalcViewOffset"
- Added NPC:IsAIEnabled, NPC:SetAIEnabled, NPC:EnableAI, NPC:DisableAI, NPC:IsControllable, NPC:SetControllable, NPC:StartControl, NPC:EndControl, NPC:IsControlled, NPC:GetController and Player:ApplyViewRotationOffset
- Added NPC hooks "OnControllerActionInput", "OnStartControl" and "OnEndControl"
- Removed NPC:SetCanSee
11 October 2016
- Added NPC hook "OnSuspiciousSoundHeared"
10 October 2016
- Added Entity:GetCollisionRadius, ALSound:GetIntensity, ALSound:GetSource and ALSound:SetSource
- NPCs now try to avoid obstructions in paths
09 October 2016
- Added NPC:IsMoving
- Fixed animation not being reset on client properly, if reset on server while it was already playing
- Fixed animation twitching occasionally while a NPC is moving
08 October 2016
- Added AISquad:GetMembers, BaseCharacter:GetNoTarget, BaseCharacter:SetNoTarget, NPC:GetHearingStrength, NPC:SetHearingStrength, AIMemoryFragment:GetLastTimeSensed and AISchedule:Copy
- Added NPC hook "OnScheduleComplete"
- Added console command "notarget"
- Added enums "ACT_FLINCH_HEAD", "ACT_FLINCH_CHEST", "ACT_FLINCH_STOMACH", "ACT_FLINCH_LEFT_ARM", "ACT_FLINCH_RIGHT_ARM", "ACT_FLINCH_LEFT_LEG", "ACT_FLINCH_RIGHT_LEG", "ACT_FLINCH_PHYSICS", "ACT_FLINCH_GENERIC" and "TASK_MOVE_RANDOM"
Version 0.2.10
07 October 2016
- Added NPC:SetCanSee, NPC:CanSee, NPC:CanHear, NPC:GetMemoryFragmentCount and NPC:GetPrimaryTarget
- Added new overloads for NPC:GetMemory, NPC:PlayAnimation, NPC:PlayActivity and NPC:SetNPCState
- Added NPC hooks "OnPrimaryTargetChanged", "OnNPCStateChanged", "OnTargetVisibilityLost", "OnTargetVisibilityReacquired", "OnMemoryGained", "OnMemoryLost" and "OnTargetAcquired"
- Added enum ACT_ALERT
- Added "SCHEDULE_PARAMETER_TYPE" enums
- Removed NPC:CompleteTask and NPC:GetCurrentTask
06 October 2016
- Added classes "AIBehaviorTask" and "BaseAIBehaviorTask"
- Added NPC hook "SelectSchedule"
- Added "ai.BEHAVIOR_TASK_TYPE", "ai.BEHAVIOR_TASK_RESULT", "ai.BEHAVIOR_SELECTOR_TYPE" and "ai.TASK" enums
- Moved "DISPOSITION" enums to "ai.DISPOSITION" and "NPC_STATE" to "ai.NPC_STATE"
05 October 2016
- Added AISchedule:GetRootTask, AISchedule:Cancel, AISchedule:SetParameterBool, AISchedule:SetParameterInt, AISchedule:SetParameterFloat, AISchedule:SetParameterString, AISchedule:SetParameterEntity, AISchedule:SetParameterVector, AISchedule:SetParameterQuaternion, AISchedule:SetParameterEulerAngles, AISchedule:GetParameterBool, AISchedule:GetParameterInt, AISchedule:GetParameterFloat, AISchedule:GetParameterString, AISchedule:GetParameterEntity, AISchedule:GetParameterVector, AISchedule:GetParameterQuaternion, AISchedule:GetParameterEulerAngles, AISchedule:GetParameterType, ai.register_task and ai.create_task
- Removed AISchedule:AddTask
04 October 2016
- Removed class "AITask"
03 October 2016
- Added classes "Faction", "AISquad", "AIMemory" and "AIMemoryFragment"
- Added ai.register_faction, ai.get_factions, ai.find_faction_by_name, NPC:SetRelationship, NPC:GetMaxViewDistance, NPC:SetMaxViewDistance, NPC:SetMaxViewAngle, NPC:GetMaxViewAngle, NPC:GetNPCState, NPC:GetSquad, NPC:ClearRelationship, NPC:GetDisposition, NPC:GetCurrentSchedule, NPC:GetCurrentTask, NPC:CompleteTask, NPC:GetMemory, NPC:Memorize, NPC:Forget, NPC:ClearMemory, NPC:IsInMemory, NPC:IsInViewCone, NPC:GetMemoryDuration, NPC:SetMemoryDuration, NPC:SetWalkSpeed, NPC:SetRunSpeed, NPC:GetWalkSpeed and NPC:GetRunSpeed
- Added "DISPOSITION" and "NPC_STATE" enums
01 October 2016
- Added console command "debug_ai_navigation"
- Fixed crash when using "debug_nav_show_meshes", "debug_nav_path_start" and "debug_nav_path_end" console commands
30 September 2016
- Added console command "cl_render_shadow_quality"
- Added graphics presets
- Added entity callback "OnModelMaterialsLoaded"
- Fixed crash when trying to change multisampling from enabled to disabled while ingame
- Fixed conversion from stereo sounds to mono resulting in errors in some cases
27 September 2016
- Added LODs for displacement geometry
- Improved performance with lit scenes
26 September 2016
- Added Entity:GetLastMoveTime
- Added console commands "cl_render_shadow_dynamic", "cl_render_shadow_update_frequency", "cl_render_shadow_pssm_update_frequency_offset" and "cl_render_particle_quality"
- Renamed console command "render_csm_cascade_count" to "cl_render_shadow_pssm_split_count"
25 September 2016
- Added Entity:SetCastShadows, Entity:GetCastShadows, Entity:GetPhysicsType, Entity:IsStatic and Entity:IsDynamic
- Improved shadows for transparent world objects
- Fixed rare crash when pressing GUI buttons
- Fixed crash when disabling shadows
24 September 2016
- Added console commands "give_weapon" and "give_ammo"
- Added material parameter "alpha_discard_threshold"
- Fixed frequent changes to light sources resulting in flickering
- Fixed transparency issues when transparent objects are overlapping
23 September 2016
- Added class "PhysSoftBody"
- Added PhysCollisionObj:IsRigidBody, PhysCollisionObj:IsGhostObject, PhysCollisionObj:IsSoftBody, PhysShape:GetBounds and PhysObj:GetBounds
- Added enum PHYSICSTYPE_SOFTBODY
- Implemented soft-body physics
22 September 2016
- Added particle lighting and shadow effects for beam particles
- Added Patreon-Logo
- Fully implemented Entity:Ignite
21 September 2016
- Added particle lighting and shadow effects
- Added particle attribute "cast_shadows"
20 September 2016
- Added new overloads for Entity:Ignite
- Added new parameters to Entity hook "OnIgnite"
- Added enum DAMAGETYPE_IGNITE
- Added SoundScript-sound attributes "mode" and "max_distance"
19 September 2016
- Fixed crash when disconnecting from a map with vehicles
- Fixed ragdoll bones having odd orientations when a ragdoll was created while the entity was mid-animation
- Updated Vulkan API to version 1.0.26.0
[/CODE]
can you by any chance make GMOD addons work with your game? if its possible?
[QUOTE=Coffee123;51348951]can you by any chance make GMOD addons work with your game? if its possible?[/QUOTE]
Not gonna happen.
The point is to improve on things that in my opinion weren't handled well in gmod (due to engine limitations and other reasons), not create a 1:1 clone (That would completely defeat the point).
Either way, you can do almost everything with this engine that you can also do with gmod, so porting most addons should be possible without too much of a hassle.
I'll try to get the AI-stuff out of the way within the next two months, then I'll start writing some tutorials.
Does it have support for c operators? I will try to port some addons for fun!
Have you though about steam greenlight?
[QUOTE=gonzalolog;51366484]Does it have support for c operators? I will try to port some addons for fun![/QUOTE]
Standard Lua (5.3) syntax only. If you want to port something, [URL=steam://friends/add/76561197967919092]add me on steam[/URL], I'll probably have to explain a few things (And the wiki is still lacking).
[QUOTE=gonzalolog;51366484]Have you though about steam greenlight?[/QUOTE]
It's a bit early for that, maybe in a few months. (I'd at least like to get the AI system done first)
Some more changes to the resource system:
If a client is missing a model, the server will transmit the model file to the client in the background. In the meantime, the server will also send a rough mesh collection to the client (Since downloading the model might take a few minutes), so the client has an idea of what the model looks like, before he has fully received it:
[T]http://sciolyte.com/sharex/sciolyte_2016-11-13_20-11-15.png[/T]
There's a similar system in place for materials, but it's still wip.
Awesome! Keep up good work :)
Sorry, you need to Log In to post a reply to this thread.