Git Product home page Git Product logo

openomf's People

Contributors

animehunter avatar deepy avatar exander77 avatar fjtrujy avatar frostyhitoshura avatar gdeda avatar katajakasa avatar mrannanj avatar pmjdebruijn avatar rondom avatar snafulator avatar theonlyjoey avatar vagabond avatar zouppen 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openomf's Issues

Network play

A simple version of this, at least. Not necessarily fully playable.

Player HAR colors

We need to extract the original 16 shades OMF uses for HAR colors. We also need a way to swap those in/out of the BK palette so we can re-render the sprites to RGBA images.

There's 16 distinct colors, each with 16 shades. Each player has 3 colors they can use, so the first 96 shades of each BK palette is reserved for HAR colors.

Scrap spawn point

Scrap spawn point is incorrect at the moment. Scrap needs to spawn around the point where the opposing HAR was hit.

Tournament mode

Implement the famous tournament mode from OMF2097.

Required:

  • #128 (Tournament loader)
  • #129 (Tournament player save format)
  • #127 (Mechlab BK)
  • #121 (Victory BKs)
  • #160 (Fight statistics + Team Chief 'Plug' McEllis)

Color fades, slides etc. BPx codes.

BPx codes in animation strings define the fullscreen color effects used eg. in intro lightning flashes. Somebody needs to find out how these work, and implement them.

Render blocks of text

There's lots of places where OMF just writes text to an area of the screen; player descriptions, help text, etc.

Basically the API should be like

font_render_wrapped(font *font, char *string, int x, int y, int w, int h, int justify);

Word wrapping seems to be necessary, as well.

We should also, at least, support JUSTIFY_LEFT and JUSTIFY_CENTER.

Fix NOVA grenades

Nova grenades are more like bowling balls atm. Needs to get fixed.

Sprite scaling

We should support sprite scaling using hq4x or xBRZ. We could do the scaling on sprite load, and we would also need to resize the FBO on which the drawing is done.

Scalers:

The problem is that xBRZ, which looks better, has a C++ header and has GPLv3 license. HQX is C, and has an LGPL license. So, license and code trouble. Could we, for example, make our own external library under GPLv3, which could be dynamically linked ? Or something else ?

Arrgh, why does everything have to be so difficult ? :P

Physics

  • Change physics to work on top of our new physics engine.
  • Clean up old physics system

Floating scrap

When scrap is spawned by other animation, it does not have speed and so it remains floating in the air. Needs to be fixed. Maybe check if animation is scrap, and handle it as a special case ?

Audio output device selection dialog.

We need a dialog for selecting and changing the audio output device.

OpenAL can enumerate devices and select device by name, so this should be relatively easy. Just dump device name to config file, and open correct device on game start.

Training mode

Training mode was wished on OMF:BG forum. Possible requirements:

  • Enemy is still, standing dummy bot
  • All damage is calculated and shown somehow
  • Autoguard
  • No time/damage limit

Score

We need to give points for different hits etc. The score counters also need to be finished, and we need to have a nice score/combo texts scrolling across screen :)

Win/Lose

We need to have Victory/Loss texts in arenas. It should be relatively straightforward to just load up the right animation from .BK when necessary,

Key bindings menu

We need an easy way to change keybindings + somekind of function for loading the keys from config file.

Split renderer to plugins

It might be a good idea to split the renderer to plugins, so that we can have both OpenGL renderer and software renderer (for systems that don't do opengl very well).

Before this can be done properly however, we need to know more about what and how the original game renders.

Clean up libshadowdive structures from the openomf code

There are a lot of libshadowdive structs (like sd_af_file etc.) in openomf code. We could just read everything to our own data structures and then free up the libsd structures, since we're already doing that for most of the data in them.

Pros:

  • Would free up memory
  • Would look cleaner

Tag battles

Would be kinda neat to have support for tag battles.

Engine rewrite

Rewrite engine.

  • Animationplayer integration with object
  • Clearer dependencies between stuff
  • Easier to make work over network

Unit tests

Add Unit tests for stuff in utils/. Other tests would be fine, too.

  • String
  • Hashmap
  • Vector
  • Array
  • Ringbuffer
  • List

Console history

Console commands should print error/success reports to the console history. Also old commands should go there.

Keyboard trouble

The new keyboard handling system doesn't take into account the console and menu overlays (key presses should stop on the overlays, but instead they get passed on to the hars also).

The old system had the problem of not passing all events to the HARs, for example when landing, the har would continue walking forwards, while backwards button was pressed down during jump.

Texture cache

Textures should be cached properly. Maybe also other resources ?

HAR & object Z-index

HARs and other objects sometimes overlap incorrectly. Eg. Jaguar concussion cannon shot when it's overlapping target HAR.

Successor animations

Certain animations have successor animations, that are launched after the animation is done. Need to be implementeg for eg. missiles and jaguar concussion cannon to work.

Menu items

Implement the last menu items in main menu

Dedicated server

A dedicated OpenOMF server would be nice. Some points:

  • Player could connect to the server with username and password (or without)
  • Player would, on connecting, join a lobby, and could start games against other players.
  • Tournament play, 1v1, etc ?
  • Victories could somehow be exported or/and saved ? SQL database ? Something else ?
  • Top 100 lists, etc. ?
  • WWW page for user management, toplists, etc. :)

Newsroom

This should be easy. Switch to the newsroom scene after the match ends.

Bots aka AI

Create a basic state machine based bot for two player mode.

Resolution change confirm dialog

On resolution change, we should show a confirm dialog. Something along the lines of "If the resolution change was successfull, press OK. Otherwise resolution will be changed back in n seconds". Or something like that.

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.