librelancer / librelancer Goto Github PK
View Code? Open in Web Editor NEWA re-implementation of Freelancer
Home Page: https://librelancer.net
License: Other
A re-implementation of Freelancer
Home Page: https://librelancer.net
License: Other
Imported data may have varying vertex properties resulting in different FVF configurations. As such importer will need to put them into different VMeshData not only according to LOD level but also by matching FVF. Also typical VMeshData name format is "%s.lod%d.%d.vms" (model/scene name, lod level, fvf).
It is not clear in the README if Linux currently supported or not. Do you need people to test it?
Draw lines from VWireData, which consists of pairs of vertex indices in VMeshData.
Ideally you may want from/to convert spline objects for Collada import/export, just have to play match spline knot to vertex position within some threshold (determine which mesh vertices to match against by spline object parent being target LOD mesh object).
View toggle icon for parts just like how hardpoints have.
Mono 4.2 on Ubuntu 16.04 fails to compile with:
CSC: error CS0518: The predefined type 'System.Object' is not defined or imported
Investigate as to why. For now this can be worked around by installing Xamarin's mono package.
The bug has already been reported on launchpad: https://bugs.launchpad.net/ubuntu/+source/mono/+bug/1565327
From discord:
[9:37 PM] Treewyrm: rotation in "starsphere" mode is batshit insane
Probably best to re-model editor viewport controls entirely on this method:
https://docs.unrealengine.com/en-US/Engine/UI/LevelEditor/Viewports/ViewportControls
Probably race condition. Need to confirm.
Scroll wheel and Up/Down does not change throttle speed in SpaceGameplay currently.
Freelancer demo seems to be freely available to download. Can Librelancer support it?
Right now the Collada importer is ignoring the bind_material
part of the scene and copies the name that references bind_material
. This works for blender when you remove the -material
suffix, but isn't correct according to spec
Where is that supposed to go? Build works when removed.
I'd like to relicense this project to be MIT.
@Giperionn
@gp-alex
Please comment here to give permission for your changes to be licensed under MIT.
I've emailed Malte Rupprecht for permission for their code, if that does not turn out fruitful the following files under src need to be rewritten and/or removed. As this is quite core code it may become quite a task:
This is too big to split into multiple issues. There's plenty of problems regarding transforms, as well as geometry not being created properly.
Geometry issues are in FxRectAppearance and FxPerpAppearance.
There's also issues with the ALE curves not being implemented correctly (see Utf/Ale/AlchemyCurveAnimation.cs) which while isn't noticeable for a lot of vanilla effects, does make a lot of values end up incorrect.
A good way to test this would be to create a Thn scene in the game intro with some custom alchemy effects each testing a specific element.
Reported in Discord/Skype. Need to test
Projectiles have a separate rendering path from ALE. Figure out the best way to manage projectiles, and preferably have the rendering output into the Billboards
class.
You mention several times that librelancer is re-implementation of freelancer, but if one doesn't happen to know what freelancer is, one is none the wiser.
At the moment the linux build fails with:
MSBuild auto-detection: using msbuild version '15.0' from '/usr/lib/mono/msbuild/15.0/bin'.
Error parsing solution file at /home/tom/tmp/Librelancer/src/LibreLancer.sln: Invalid Image
An error occurred when executing task 'Build'.
Error: One or more errors occurred.
NuGet: Process returned an error (exit code 1).
Looking into this error leads here: NuGet/Home#7202 which suggests downgrading to msbuild 14.0 to fix it, unfortunately I don't know enough about mono or its build system to submit a PR that does this.
edit: I managed to downgrade to msbuild 14.0 by installing the package from Arch Linux's AUR, however the build system seems to ignore PATH and auto-detects the executable from /usr/lib/mono/msbuild/15.0/bin
. I very crudely renamed the original file to force it to use msbuild 14.0 from /usr/bin/msbuild
Once I'd done that I got further but got the following errors:
Project "/home/tom/tmp/Librelancer/src/LibreLancer.sln" (1) is building "/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj" (2) on node 1 (default targets).
/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj : error MSB4025: The project file could not be loaded. Could not find file "/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj"
Done Building Project "/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj" (default targets) -- FAILED.
Project "/home/tom/tmp/Librelancer/src/LibreLancer.sln" (1) is building "/home/tom/tmp/Librelancer/src/LibreLancer.Base/LibreLancer.Base.csproj.metaproj" (3) on node 1 (default targets).
/home/tom/tmp/Librelancer/src/LibreLancer.Base/LibreLancer.Base.csproj.metaproj : error MSB4025: The project file could not be loaded. Could not find file "/home/tom/tmp/Librelancer/src/LibreLancer.Base/LibreLancer.Base.csproj.metaproj"
This happens for each subproject. There is no csproj.metaproj
file and I'm not sure why it even looks for it as there is no reference to this file in LibreLancer.sln
.
edit again: It appears to be to do with windows/linux slashes.
Running
sed -i -e 's/\\/\//g' src/LibreLancer.sln
Fixes that error but I now get stuck at:
"/home/tom/tmp/Librelancer/src/LibreLancer.sln" (Build target) (1) ->
"/home/tom/tmp/Librelancer/src/Editor/LancerEdit/LancerEdit.csproj.metaproj" (default target) (24) ->
"/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj.metaproj" (default target) (25) ->
"/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj" (default target) (26) ->
(CoreCompile target) ->
../../extern/ImGui.NET/src/ImGui.NET/NativeIO.cs(59,37): error CS0443: Value or constant expected [/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj]
../../extern/ImGui.NET/src/ImGui.NET/NativeStyle.cs(121,39): error CS0443: Value or constant expected [/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj]
Which is less of an obvious issue.
Having the Launcher process tied to the Game Instance produces some weird issues, Xwt is also entirely broken.
Move the game into its own process and create a winforms/gtk crash window without the use of Xwt. Make an Eto.Forms launcher that simply shells out the game process.
Does not work on all valid DDS files Freelancer accepts. Needs rewrite.
The ChaseCamera
class is just a fixed offset. A spring-based camera should be implemented, taking into account the camera variables + constraints set in the ship ini file.
Materials/textures are loaded once but never updated upon modifying them. It should happen either automatically or a very least having a reload button in resources tab.
Btw VMeshData is also shareable resource like material/texture (but DFM's meshes aren't).
freelancer game's plot animation is real-time calculus, only speech, no subtitles. For the hearing loss of the player is simply a pain, can add drama animation subtitles! This will benefit a lot of non-English players.
I have a game's all drama animated text , if you need
thank you
Not implemented in ResourceManager or VertexResource
I'd like to contribute somehow. Can I start with optimizing your C# code? like making things readonly where applicable and stuff.
Are there strict code conventions? I don't see an .editorconfig file, may I make one from the conventions I find in the code?
Tabs or spaces?
Current physics implementation is based on taking the Freelancer INI values and trying to shove them into bullet to make them work. This has produced ships that roll strangely. Figure out how freelancer handles roll + roll inertia to get better steering behaviour.
Code is unmaintained. It is possible to clean up the scripts + launcher to make it run though
Implement attachable solar/ship light billboards as coronas so they don't clip into nearby geometry. This probably means they need to be rendered in a separate layer. Many attached lights have view cone limits so they wouldn't be visible from behind. For obstructing objects check by collision hitboxes.
By the way system stars in Freelancer work in the same way they are rendered on a layer between HUD and everything else in scene. Besides they tend to consist of multiple billboards.
I'm fully aware that this is likely to be out of scope for a long while, but it would be nice to be sure that the different (non-English) versions of the game can also be imported, and run correctly (which probably only pertains to making sure that special characters are handled).
Similar to one in Launcher, though hopefully a bit less crazy.
In an ideal world this won't be needed but sometimes things just crash.
The code for opening a window after the engine crashes does not work. May be better to spawn a different process for the crash window and let the launcher process terminate?
Reset button to revert positions/orientations of parts into default state. Currently when animation script is finished all parts remain at their last keyframes until animation script is called again.
Low hanging fruit in LibreLancer.Base, make sure if getprocaddress
delegate returns null then skip loading the function pointer. The main SystemRenderer class already checks for the extension and requires no changes
Quote from discoverygc.com forums:
Hm, i set on my potato all proper sausage: NET 4.7, required VC redistributables, ensured it have 3.3 OpenGl drivers, but still cant eat it.
Code:
Value cannot be null.
Parameter name: ptr
at System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr ptr, Type t)
at LibreLancer.GL.Load(Func`3 getprocaddress)
at LibreLancer.Game.Run()
at LancerEdit.Program.Main(String[] args)
Same for any exe, with respectively different bin name in last line. Have i any chances gain freedom from milkshape?
UPD: Solved, that was caused by usage of glMemoryBarrier (which appear only from OpenGL 4.2, and of course doesnt exist on my 3.3 potato) in SystemRenderer. (also funny it have comments about no needed, its indeed Big Grin).
Probably can't be implemented in Xml UI alone due to it needing to interact with 3d objects. Could use similar transformation logic though.
Needs shader fix.
From Discord:
[9:39 PM] Treewyrm: normals for starsphere shows garbage (vmeshdata most often does not have vertex normals for starspheres as they'll be always lit)
Freetype binaries (currently provided on SharpFont) depend on a different VC++ distributable than the rest of the engine, this causes pains and the binaries should be updated.
Also add functionality in the launcher to detect missing VC++ versions and offer to download+install them.
Converting matrices from Z_UP
seems to be a bit weird since I've already transformed the vertices from Z_UP
to Y_UP
. The translate portion seems to work, but the rotation doesn't come through correctly.
hi,
I follow the README process test, in the running slngen.bat error :
An equivalent project (a project with the same global properties and tools version) is already present in the project collection, with the path "D:\dev\Librelancer\src\LibreLancer\LibreLancer.csproj". To load an equivalent into this project collection, unload this project first.
I search for information based on errors, but still do not solve the problem. stackoverflow
what can be prompted me? thanks
INTERFACE/INTRO/OBJECTS/front_button.cmp
in vanilla doesn't seem to have a MaterialAnim like the other elements do. Either this is the wrong button or there's another way of doing these animations I'm unaware of.
File referenced: https://github.com/Librelancer/Librelancer/blob/master/src/LibreLancer/Interface/Default/mainmenu.xml
I have the app crashing on Windows 10 after popup saying that I don't have Media Player installed.
Also, where should I put original game data?
Right now the editor has no way of editing cmpnd properties.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.