Code Monkey home page Code Monkey logo

ualbion's People

Contributors

benjaminri avatar csinkers avatar dependabot[bot] avatar is4code avatar lucorp avatar metibor avatar neuromancer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ualbion's Issues

Improve texture filtering on 3D levels

Currently 3D levels just use point samplers, experiments with various mip-mapping, anisotropy and mag filter settings should be made to find the optimal texture sampling method that looks good but maintains the feel of the original game.

Screenshots?

I think people will be more interested in testing this neat re-implementation and maybe collaborate with some code if you show the current state of this port in the README. Even early screenshots are fine!

Implement context menu reach limits

Currently the player can use the right click menu on any visible tile, this should be restricted to the range allowed by the original game. A configuration option should be added to enable or disable the possibly unintentional 'steal' mechanic where this range was extended for a couple of frames after bumping into a non-passable tile.

Play ambient tracks on map load

In addition to the MIDI music, Albion could also play ambient tracks, defined as MIDI data but with the instruments provided by short wav files to provide environmental sounds (birdsong, machinery on the Toronto etc). These can currently be played back, but the timing is incorrect - this functionality needs to be polished and then enabled by default.

Build error with the current Git

PS C:\Users\Chome\Downloads\My Games\ualbion-master> .\run.bat
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0.NETStandard,Version=v2.0.AssemblyAttributes.cs(4,12): error CS0579: Duplicate 'global::System.Runtime.Versioning.TargetFrameworkAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0\UAlbion.Api.AssemblyInfo.cs(13,12): error CS0579: Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0\UAlbion.Api.AssemblyInfo.cs(14,12): error CS0579: Duplicate 'System.Reflection.AssemblyConfigurationAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0\UAlbion.Api.AssemblyInfo.cs(15,12): error CS0579: Duplicate 'System.Reflection.AssemblyFileVersionAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0\UAlbion.Api.AssemblyInfo.cs(16,12): error CS0579: Duplicate 'System.Reflection.AssemblyInformationalVersionAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0\UAlbion.Api.AssemblyInfo.cs(17,12): error CS0579: Duplicate 'System.Reflection.AssemblyProductAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0\UAlbion.Api.AssemblyInfo.cs(18,12): error CS0579: Duplicate 'System.Reflection.AssemblyTitleAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]
C:\Users\Chome\Downloads\My Games\ualbion-master\build\UAlbion.Api\obj\Debug\netstandard2.0\UAlbion.Api.AssemblyInfo.cs(19,12): error CS0579: Duplicate 'System.Reflection.AssemblyVersionAttribute' attribute [C:\Users\Chome\Downloads\My Games\ualbion-master\src\Api\UAlbion.Api.csproj]

Fix skybox rotation to match map terrain

Currently on 3D levels the skybox rotation occurs at a fairly arbitrary rate and doesn't match up with the level geometry, leading to a sometimes-nauseating effect. This should be made more natural looking.

Add autocomplete for debug console

It would be nice if autocomplete suggestions were shown in the debug console to improve discoverability of the available events and parameter/entity types.

Add lighting on 3D levels

Currently a trivial full-bright lighting model is used for shaders on 3D levels, this should be changed to a more sophisticated method.

netcoreapp3.0 target is not supported since March 3, 2020

See https://dotnet.microsoft.com/platform/support/policy/dotnet-core for details. Migration to at least Core 3.1 (LTS, but actual support time is roughly the same as of .NET 5) or .NET 5 preferably (both would be supported until at least 2022) would solve this completely (currently, targetting 3.0 results in a spam of NETSDK1138 warnings).

Official doc: https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50 (also https://docs.microsoft.com/en-us/aspnet/core/migration/30-to-31 to a lesser extent)

Checking this by fixing the csprojs by hand didn't result in any obvious issues. I can create a PR with these changes if it's the preferred way to handle this, no biggie.

As a side note: if compatibility with Mono/Xamarin is not an issue, using net5.0 profile consistently instead of e.g. netstandard2.1 etc. would be more futureproof.

Various UI/UX tweaks and suggestions

This issue is a catch-all for various UI/UX considerations I've noticed that you may, or may not, wish to address. Close at will, and if you'd prefer me to break any (or all) points out into separate issues for easier tracking and resolution, let me know.

  1. When you are in a dialog window, the speech window behind new dialog options continues to render its window-dressing, and this is mildly disruptive at the bottom of the dialog options window. See picture:
    image

  2. In same picture, I'd tentatively move the monster alert icon down just slightly so character portraits do not impinge, though that depends on the placement of other on-screen icons, so the fix is not simple and obvious. Also, the drop shadows around the portraits look overly well-defined and I might soften them a touch.

  3. Turn the lower-right box into an actual persistent log complete with scroll bar and, in-combat, round separator titles (as well as markers for combat start and combat end). I would recommend new entries at top and pushed down, to better align with the original UI. Also, if it turns into a log it should probably be left-justified, though with a generous margin

  4. In the character screen, various readouts on hover to be placed in said box, whether it becomes a log or not. A couple of examples: if I hover over a stat, give a qualitative description of its function, like telling me dexterity affects dodge chance against enemies and traps. If I hover over a temporary condition, such as insanity, give me a qualitative description of its function. These can probably just be pulled directly from the manual.

  5. Again in the character screen, name the equipment slots on mouse hover, so I can know if something is a 'neck' slot or a 'wield' slot or whatever without referencing the manual.

  6. WASD for walking, as well as the arrow keys. I know this is a feature request rather than an 'issue'.

7. Remove mouse limiting to windows. It's really irritating that I can't move my mouse around the entire screen when I have certain windows open.

Correct handling of 2D collision and movement

Currently the various collision flags are only being handled in a very basic manner, as a result players cannot move through east/west facing doors or various narrow passages and staircases.

Add tiled import/export capability for 3D maps

It should be possible to export 3D maps to formats used by the Tiled map editor via an isometric representation. New or modified maps should also be able to be imported from these formats back into the binary formats used by Albion.

Proof of concept for replacing billboard sprite props with 3D models

A 3D model renderer should be added so mods can provide 3D models as a replacement for the current 2D billboard-sprite props (plants, rocks, chests, pillars etc). Simple keyframe/morphing animation support is probably good enough to start, but skeletal animation at some point would be nice.

Add map screen for 3D levels

On 3D levels, it should be possible to right click at any time and choose to show an overhead map view (with only the visited areas revealed). It should also be possible to open the map via a keyboard shortcut.

Add context menu on 3D levels

Currently the right-click menu is only shown on 2D levels. Right clicking doors, buttons, NPCs etc should also show a context menu in 3D.

Errors compiling the latest revision in ArchLinux

$ msbuild ualbion.sln 
Microsoft (R) Build Engine version 16.0.0.0 for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 01/30/2020 17:19:02.
Project "/home/g/Games/ualbion/ualbion.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Debug|Any CPU".
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/UAlbion/UAlbion.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid/Veldrid.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.ImageSharp/Veldrid.ImageSharp.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.ImGui/Veldrid.ImGui.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.OpenGLBindings/Veldrid.OpenGLBindings.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.RenderDoc/Veldrid.RenderDoc.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.SDL2/Veldrid.SDL2.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.StartupUtilities/Veldrid.StartupUtilities.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.Utilities/Veldrid.Utilities.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
/home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid-spirv/src/Veldrid.SPIRV/Veldrid.SPIRV.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
Project "/home/g/Games/ualbion/ualbion.sln" (1) is building "/home/g/Games/ualbion/Tools/XmiToMidi/XmiToMidi.vcxproj" (2) on node 1 (default targets).
/home/g/Games/ualbion/Tools/XmiToMidi/XmiToMidi.vcxproj(32,3): error MSB4019: The imported project "/Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Done Building Project "/home/g/Games/ualbion/Tools/XmiToMidi/XmiToMidi.vcxproj" (default targets) -- FAILED.
Project "/home/g/Games/ualbion/ualbion.sln" (1) is building "/home/g/Games/ualbion/Game/UAlbion.Game.csproj" (3) on node 1 (default targets).
/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Game/UAlbion.Game.csproj]
Done Building Project "/home/g/Games/ualbion/Game/UAlbion.Game.csproj" (default targets) -- FAILED.
Project "/home/g/Games/ualbion/ualbion.sln" (1) is building "/home/g/Games/ualbion/Formats/UAlbion.Formats.csproj" (4) on node 1 (default targets).
/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Formats/UAlbion.Formats.csproj]
Done Building Project "/home/g/Games/ualbion/Formats/UAlbion.Formats.csproj" (default targets) -- FAILED.
/usr/lib/mono/msbuild/15.0/bin/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.targets(29,3): warning MSB4011: "/usr/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/FSharp/Microsoft.FSharp.NetSdk.targets" cannot be imported again. It was already imported at "/usr/lib/mono/msbuild/15.0/bin/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharpTargetsShim.targets (63,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/home/g/Games/ualbion/Tools/Exporter/UAlbion.Tools.Exporter.fsproj]
Project "/home/g/Games/ualbion/ualbion.sln" (1) is building "/home/g/Games/ualbion/Tools/Exporter/UAlbion.Tools.Exporter.fsproj" (5) on node 1 (default targets).
/usr/lib/mono/msbuild/15.0/bin/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(198,5): error : Assets file '/home/g/Games/ualbion/Tools/Exporter/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [/home/g/Games/ualbion/Tools/Exporter/UAlbion.Tools.Exporter.fsproj]
Done Building Project "/home/g/Games/ualbion/Tools/Exporter/UAlbion.Tools.Exporter.fsproj" (default targets) -- FAILED.
Project "/home/g/Games/ualbion/ualbion.sln" (1) is building "/home/g/Games/ualbion/Core/UAlbion.Core.csproj" (6) on node 1 (default targets).
/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Core/UAlbion.Core.csproj]
Done Building Project "/home/g/Games/ualbion/Core/UAlbion.Core.csproj" (default targets) -- FAILED.
Project "/home/g/Games/ualbion/ualbion.sln" (1) is building "/home/g/Games/ualbion/Tools/GenerateEnums/GenerateEnums.csproj" (7) on node 1 (default targets).
/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Tools/GenerateEnums/GenerateEnums.csproj]
Done Building Project "/home/g/Games/ualbion/Tools/GenerateEnums/GenerateEnums.csproj" (default targets) -- FAILED.
Project "/home/g/Games/ualbion/ualbion.sln" (1) is building "/home/g/Games/ualbion/Api/UAlbion.Api.csproj" (8) on node 1 (default targets).
/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Api/UAlbion.Api.csproj]
Done Building Project "/home/g/Games/ualbion/Api/UAlbion.Api.csproj" (default targets) -- FAILED.
Done Building Project "/home/g/Games/ualbion/ualbion.sln" (default targets) -- FAILED.

Build FAILED.

  /usr/lib/mono/msbuild/15.0/bin/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.targets(29,3): warning MSB4011: "/usr/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/FSharp/Microsoft.FSharp.NetSdk.targets" cannot be imported again. It was already imported at "/usr/lib/mono/msbuild/15.0/bin/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharpTargetsShim.targets (63,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/home/g/Games/ualbion/Tools/Exporter/UAlbion.Tools.Exporter.fsproj]


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
(Build target) -> 
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/UAlbion/UAlbion.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid/Veldrid.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.ImageSharp/Veldrid.ImageSharp.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.ImGui/Veldrid.ImGui.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.OpenGLBindings/Veldrid.OpenGLBindings.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.RenderDoc/Veldrid.RenderDoc.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.SDL2/Veldrid.SDL2.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.StartupUtilities/Veldrid.StartupUtilities.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid/src/Veldrid.Utilities/Veldrid.Utilities.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]
  /home/g/Games/ualbion/ualbion.sln.metaproj : error MSB3202: The project file "/home/g/Games/ualbion/veldrid-spirv/src/Veldrid.SPIRV/Veldrid.SPIRV.csproj" was not found. [/home/g/Games/ualbion/ualbion.sln]


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
"/home/g/Games/ualbion/Tools/XmiToMidi/XmiToMidi.vcxproj" (default target) (2) ->
  /home/g/Games/ualbion/Tools/XmiToMidi/XmiToMidi.vcxproj(32,3): error MSB4019: The imported project "/Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
"/home/g/Games/ualbion/Game/UAlbion.Game.csproj" (default target) (3) ->
  /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Game/UAlbion.Game.csproj]


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
"/home/g/Games/ualbion/Formats/UAlbion.Formats.csproj" (default target) (4) ->
  /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Formats/UAlbion.Formats.csproj]


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
"/home/g/Games/ualbion/Tools/Exporter/UAlbion.Tools.Exporter.fsproj" (default target) (5) ->
(ResolvePackageAssets target) -> 
  /usr/lib/mono/msbuild/15.0/bin/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(198,5): error : Assets file '/home/g/Games/ualbion/Tools/Exporter/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [/home/g/Games/ualbion/Tools/Exporter/UAlbion.Tools.Exporter.fsproj]


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
"/home/g/Games/ualbion/Core/UAlbion.Core.csproj" (default target) (6) ->
  /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Core/UAlbion.Core.csproj]


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
"/home/g/Games/ualbion/Tools/GenerateEnums/GenerateEnums.csproj" (default target) (7) ->
  /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Tools/GenerateEnums/GenerateEnums.csproj]


"/home/g/Games/ualbion/ualbion.sln" (default target) (1) ->
"/home/g/Games/ualbion/Api/UAlbion.Api.csproj" (default target) (8) ->
  /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/g/Games/ualbion/Api/UAlbion.Api.csproj]

    1 Warning(s)
    17 Error(s)

Time Elapsed 00:00:00.81

Allow player to click a point and have the party pathfind their way there

The original games control method requires continuous control inputs to move the party, e.g. click and hold mouse button or hold arrow keys. Alternative control methods where the player can click a desired point and the party automatically moves there could improve accessibility for some players.

Add headers with underline

Some UI headers, e.g. on the inventory screen, are shown with an underline in the original. This should be replicated.

Tried to request object 99 from PICTURE0.XLD, but it only contains 45 items

Using the GOG version of the game results in a crash:

$ ./UAlbion/bin/Release/netcoreapp3.0/linux-x64/UAlbion -vk
at 0: Entered main
at 23: Registered encodings
at 25: Found base directory /home/g/Games/ualbion-fork
at 27: Registering asset manager
at 29: Building AssetLocator
at 37: Start building reflection cache
at 53: Done building reflection cache
at 67: Built AssetLocator
at 69: Attaching ConsoleLogger
at 71: Attached ConsoleLogger
at 71: Attaching Settings
at 72: Attached Settings
at 79: Attaching AssetManager
at 79: Attached AssetManager
at 79: Registered asset manager
at 79: Creating engine
at 86: Attaching ShaderCache
at 86: Attached ShaderCache
at 86: Attaching Engine
at 86: Attaching WindowManager
at 86: Attached WindowManager
at 86: Attached Engine
at 88: Creating main components
at 94: Attaching InputManager
at 94: Attached InputManager
at 95: Attaching LayoutManager
at 95: Attached LayoutManager
at 95: Attaching MapManager
at 95: Attached MapManager
at 95: Attaching PaletteManager
at 259: Attached PaletteManager
at 266: Attaching SceneManager
at 266: Attached SceneManager
at 266: Attaching GameClock
at 266: Attached GameClock
at 267: Attaching SpriteManager
at 267: Attached SpriteManager
at 270: Attaching GameState
at 270: Attached GameState
at 270: Attaching TextManager
at 270: Attached TextManager
at 271: Attaching TextureManager
at 271: Attached TextureManager
at 271: Attaching SlowClock
at 271: Attached SlowClock
at 272: Attaching CursorManager
at 272: Attached CursorManager
at 272: Attaching DebugMapInspector
at 272: Attached DebugMapInspector
at 283: Attaching InputBinder
at 283: Attached InputBinder
at 283: Attaching InputModeStack
at 283: Attached InputModeStack
at 284: Attaching MouseModeStack
at 284: Attached MouseModeStack
at 284: Attaching SceneStack
at 284: Attached SceneStack
at 288: Attaching StatusBar
at 289: Attached StatusBar
at 289: Creating scene-specific components
at 304: Attaching InventoryScreen
at 317: Attaching UiFixedPositionElement`1
at 330: Attached UiFixedPositionElement`1
at 330: Attaching FixedPosition
at 330: Attached FixedPosition
at 330: Attaching FixedPosition
at 330: Attached FixedPosition
at 330: Attaching FixedPosition
at 331: Attaching UiSpriteElement`1
at 331: Attached UiSpriteElement`1
at 331: Attached FixedPosition
at 331: Attached InventoryScreen
at 332: Attaching MainMenu
at 335: Attached MainMenu
at 335: Attaching Sprite`1
at 335: Attached Sprite`1
at 335: Starting new game
at 340: Building event types
at 402: Built event types
set_scene MainMenu
  ExchangeDisabledEvent
  ExchangeDisabledEvent
  ExchangeDisabledEvent
  ExchangeDisabledEvent
at 411: Attaching MenuScene
  set_cursor Cursor
  set_mouse_mode Normal
at 435: Attaching NormalMouseMode
at 435: Attached NormalMouseMode
    set_mouse_mode Normal
  set_input_mode MainMenu
at 436: Attached MenuScene
  ExchangeDisabledEvent
BackendChangedEvent
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
-- Build SpriteRenderer-- IsDepth0..1: True YInvert: False UV TopLeft: True
at 750: Running game
at 753: Set up backend
e:window_resized 720 480
at 775: Startup done, rendering first frame
Could not load asset Picture.StatusBar: System.IO.FileNotFoundException: Tried to request object 99 from /run/media/g/ALBION/ALBION/XLDLIBS/PICTURE0.XLD, but it only contains 45 items.
   at UAlbion.Formats.XldFile.GetReaderForObject(Int32 objectIndex, Int32& length) in /home/g/Games/ualbion-fork/Formats/XldFile.cs:line 53
   at UAlbion.Game.Assets.StandardAssetLocator.ReadFromXld(AssetPaths paths, AssetKey key, Func`4 readFunc) in /home/g/Games/ualbion-fork/Game/Assets/StandardAssetLocator.cs:line 176
   at UAlbion.Game.Assets.StandardAssetLocator.LoadAsset(AssetKey key, String name, Func`3 loaderFunc) in /home/g/Games/ualbion-fork/Game/Assets/StandardAssetLocator.cs:line 222
   at UAlbion.Game.Assets.AssetLocator.LoadAssetCached[T](AssetType type, T enumId, GameLanguage language) in /home/g/Games/ualbion-fork/Game/Assets/AssetLocator.cs:line 73
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at UAlbion.Game.Entities.UiSpriteElement`1.UpdateSprite(DrawLayer order) in /home/g/Games/ualbion-fork/Game/Entities/UiSpriteElement.cs:line 64
   at UAlbion.Game.Entities.UiSpriteElement`1.Render(Rectangle extents, Int32 order) in /home/g/Games/ualbion-fork/Game/Entities/UiSpriteElement.cs:line 84
   at UAlbion.Game.Gui.StatusBar.<>c.<Render>b__12_0(IUiElement x, Rectangle y, Int32 z) in /home/g/Games/ualbion-fork/Game/Gui/StatusBar.cs:line 95
   at UAlbion.Game.Gui.StatusBar.DoLayout(Rectangle extents, Int32 order, Func`4 func, Boolean trimOverlap) in /home/g/Games/ualbion-fork/Game/Gui/StatusBar.cs:line 53
   at UAlbion.Game.Gui.StatusBar.Render(Rectangle extents, Int32 order) in /home/g/Games/ualbion-fork/Game/Gui/StatusBar.cs:line 95
   at UAlbion.Game.Gui.LayoutManager.<>c.<Render>b__3_0(Rectangle extents, Int32 order, IUiElement element) in /home/g/Games/ualbion-fork/Game/Gui/LayoutManager.cs:line 87
   at UAlbion.Game.Gui.LayoutManager.DoLayout(Func`4 action) in /home/g/Games/ualbion-fork/Game/Gui/LayoutManager.cs:line 83
   at UAlbion.Game.Gui.LayoutManager.Render() in /home/g/Games/ualbion-fork/Game/Gui/LayoutManager.cs:line 87
   at UAlbion.Game.Gui.LayoutManager.<>c.<.cctor>b__6_0(LayoutManager x, RenderEvent _) in /home/g/Games/ualbion-fork/Game/Gui/LayoutManager.cs:line 18
   at UAlbion.Core.Component.Handler`2.Invoke(Component instance, IEvent event) in /home/g/Games/ualbion-fork/Core/Component.cs:line 26
   at UAlbion.Core.Component.Receive(IEvent event, Object sender) in /home/g/Games/ualbion-fork/Core/Component.cs:line 94
   at UAlbion.Core.Events.EventExchange.Raise(IEvent e, Object sender, Boolean includeParent) in /home/g/Games/ualbion-fork/Core/Events/EventExchange.cs:line 195
   at UAlbion.Core.Scene.RenderAllStages(GraphicsDevice gd, CommandList cl, SceneContext sc, IDictionary`2 renderers) in /home/g/Games/ualbion-fork/Core/Scene.cs:line 49
   at UAlbion.Core.Engine.Draw() in /home/g/Games/ualbion-fork/Core/Engine.cs:line 242
   at UAlbion.Core.Engine.Run() in /home/g/Games/ualbion-fork/Core/Engine.cs:line 166
   at UAlbion.Program.RunGame(EventExchange global, String baseDir) in /home/g/Games/ualbion-fork/UAlbion/Program.cs:line 188
   at UAlbion.Program.Main(String[] args) in /home/g/Games/ualbion-fork/UAlbion/Program.cs:line 92

Demo support?

It looks like there is an Albion demo that can be freely (and probably legally) downloaded to test UAlbion. Is there any plans to support it?

Add tiled import/export capacity for 2D maps

It should be possible to export existing maps to the native formats of the Tiled map editor, as well as import new or modified maps created with Tiled back into the binary formats used by Albion.

Add combat positions dialog

The dialog for assigning each characters combat position needs to be added to match that seen in the original.

Unable to create OpenGL Context:

Im using Manjaro Linux. After copy "ALBION" folder (in capital letters) from "game.gog" to my ualbion base folder (not
/ualbion/src/UALBION folder) and execute "./run.sh -gl" the game show this error:

[1] at 0: Entered main
[1] at 37: Running as Game
[4] at 40: Building event types
[1] at 42: Found base directory /.../ualbion
[1] at 45: Creating engine
[7] at 55: Loaded settings
[1] at 62: Starting change backend to OpenGL
[4] at 201: Built event types
[7] at 245: Loaded core config
[6] at 245: Loaded general config
[6] at 250: Attached LogExchange in 2ms
[6] at 253: Attached AssetManager in 0ms
[6] at 253: Attached AssetManager in 0ms
[6] at 253: Attached Container in 3ms
[6] at 253: Registered asset services
Unhandled exception. [5] at 298: Loaded game config
Veldrid.VeldridException: Unable to create OpenGL Context: "Could not create GL context". This may indicate that the system does not support the requested OpenGL profile, version, or Swapchain format.
at Veldrid.StartupUtilities.VeldridStartup.CreateDefaultOpenGLGraphicsDevice(GraphicsDeviceOptions options, Sdl2Window window, GraphicsBackend backend)
at Veldrid.StartupUtilities.VeldridStartup.CreateGraphicsDevice(Sdl2Window window, GraphicsDeviceOptions options, GraphicsBackend preferredBackend)
at UAlbion.Core.Veldrid.VeldridEngine.ChangeBackend() in /.../ualbion/src/Core.Veldrid/VeldridEngine.cs:line 380
at UAlbion.Program.BuildEngine(CommandLineOptions commandLine) in /.../ualbion/src/UAlbion/Program.cs:line 119
at UAlbion.Program.Main(String[] args) in /.../ualbion/src/UAlbion/Program.cs:line 52

Add encumbrance

When a character is carrying more than their maximum carry weight, it should no longer be possible for the party to move, with an appropriate message shown.

Test on macOS

As UAlbion is based on .NET 5 and Veldrid, it should theoretically also be able to run on macOS using Metal. As I lack any appropriate hardware, I'm not currently able to test to what extent this actually works, or fix any issues with it. It would be good if someone more familiar with the platform could look into this.

Add random NPC wandering

NPCs should either follow their predefined waypoints from the map file, or wander randomly based on their NPC flags. Currently they just stand in place and play all animations in a cycle.

Offset events not working correctly

Offset events on 2D maps are often not working properly, e.g. Iskai doors and the Toronto hangar doors can only be activated using a single tile etc.

Port to Android

Once .NET 6 is released, it should be possible for UAlbion to target the Android platform using the OpenGL ES and Vulkan backends. Work will also need to be done to support a touch interface.

2D Player movement can result in loops

In some locations, holding two direction keys can result in the party shuffling back and forth across an obstruction, e.g. holding up and left near the lower sleeping quarters staircase of the Hunter's Guild.

Add minimap

A good usability improvement would be to add a small minimap view to the corner of the screen in 3D levels. There should also be a config setting to enable or disable this setting, for those seeking a more traditional experience.

Add collision detection for 3D levels

Currently no collision checks are performed on 3D levels, whether for level geometry or other entities (NPCs, monsters, props etc). Collision should behave at least reasonably similarly to the original game.

Port to Raspberry Pi

The Raspberry Pi platform now supports vulkan as well as OpenGL, and can run the .NET 5 runtime, it would be good if we could get UAlbion to run on it (this would also provide a good low-performance test target for optimisation / benchmarking).

Hang in loadgame dialog

When loading game from main menu and no saved games are present, the dialog hangs. ESC will produce error in screenshot.

OS: Xubuntu 20.04

image

Add 3D tile visibility detection and sorting

When rendering the extruded tilemap for a level, only the visible tiles should be rendered by the GPU to reduce wasted effort, overdraw etc. Additionally, tile instances should be sorted in near-to-far order for all fully opaque tiles, then far-to-near order for translucent tiles (but after opaque sprites have been drawn).

Fix half-tile offsets on 3D maps

Some 3D maps have all objects offset from where they should be by a half tile. The map formats should be investigated further to find which unknown factors are involved in map object positioning.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.