Giter Club home page Giter Club logo

mir2's People

Contributors

cozarxxviii avatar daneo1989 avatar duane01 avatar gorzendev avatar liubing2023 avatar lodos3 avatar louisnorthmore avatar miragecode avatar pete107 avatar pocketdevelop avatar ryantaplin avatar suixin567 avatar suprcode avatar thedeaths avatar zathgb avatar zhzhwcn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

mir2's Issues

Use native SDL libraries for each OS

The native SDL library names for Linux are hard-coded in SDLContext.cs. They obviously need to be different depending on the OS.

The solution will probably involve building NuGet packages for the SDL library with the native libraries for each platform included in the package. Need to investigate how it should be done.

Asset download tool

We need a cross-platform tool to make it easy for developers to obtain game assets.

It doesn't need a user interface. A simple .NET Core command-line app would suffice. I'd suggest something that takes a base url as an argument and processes it in the same way as the auto-patcher.

Newline rendering

Newline characters are currently not rendered correctly.

The solution might be to render each line to a separate texture and then copy each of these textures onto a single texture.

Lights and darkness

There isn't yet an SDL version of what was DXManager.CreateLights and lights and darkness aren't rendered.

Font selection

The full path to a system font on Linux is hard-coded in Settings.cs. This obviously isn't portable.

Getting "system" fonts is hard. Should we take the fontconfig route (which would require its own .NET bindings) or should we get fonts added to the game assets?

Handle scene sizes correctly

The login and character-select scenes are 800x600 but the actual game scene seems to be 1024x768. I increased the screen size in d5ae099 to fit the game scene but this leaves empty space around the login and character-select scenes.

Fix crash on too many sounds playing

In SoundManager.Create, Audio.Channels is set to 100. This is the maximum number of sounds (excluding music) that can be playing at once. Spawning more than 100 monsters will cause them all to play sounds at once and crash the client.

The easiest way to solve this would be to add a try-catch no-op around sound.Play in SoundManager.PlaySound so that sounds would be ignored if too many are already playing. The number of channels should be reduced too.

Opacity / alpha

The setter for Texture.Opacity is commented out because it caused issues with what was probably a rounding error.

The old DirectX library used opacity with floating point values between 0.0 and 1.0 but SDL uses alpha with byte values between 0 and 255 instead. Texture.Opacity converts the alpha value and it was added to maintain consistency with the old DirectX code. The solution is probably to get the client to use alpha values instead.

Greyscale

MirImageControl.DrawControl had support for rendering greyscale with DirectX but this is missing with SDL.

The GrayScale boolean is still there and is set as it was before but greyscale rendering is not yet implemented.

CJK Input

The SDL TextBox needs to display composition text from CJK input method editors.

See this: https://wiki.libsdl.org/Tutorials/TextInput

In addition, it needs to call SDL_SetTextInputRect so that the candidate list appears in the right place. This will require passing the DisplayLocation from MirTextBox to the SDL TextBox.

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.