GithubHelp home page GithubHelp logo

0ldsk00l / zu4 Goto Github PK

View Code? Open in Web Editor NEW
16.0 5.0 2.0 63.21 MB

Zesty Ultima IV - A Modern and Clean fork of xu4 (Ultima IV Recreated)

License: GNU General Public License v2.0

Makefile 0.18% C++ 58.70% C 41.12%
ultima ultimaiv ultima4 xu4

zu4's People

Contributors

orbea avatar rdanbrook avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

cambragol orbea

zu4's Issues

Inaccuracies in Initiate New Game

The moongate should rise from the ground and sink back in rather than simply showing up and disappearing in one shot.

The virtue cards should show up independently with a slight delay instead of at the same time.

Consolidate Settings

There are too many settings for a game this simple. Some things should just be hardcoded so the user is not confused. Other things should be consolidated. Too many dials and knobs makes for a bad time for both the user and developer.

Unfinished graphics modes

There are unfinished or incomplete tilesets that should either be finished or eliminated from the game and archived for potential future use.

Intro sequence is inaccurate

The intro sequence is inaccurate. The background should not be shown outside the border, and the border should not have rounded edges as it expands outwards.

Sound Timing

Sounds are currently just played naively with no logic around timing or looping. This needs to be brought in line with the original ports.

Video flickering

There is random flickering of tiles. This needs to be eliminated. Current plan is to completely rewrite video rendering to be similar to how it is done in emulators.

This seems to only be a problem in the intro scene.

Rewrite screen shake

I took screen shaking out during the transition away from SDL 1.2. It should be reimplemented.

Separate game logic from user-facing portion of the program

The game engine should be completely separate from the user interface layer, and able to be compiled as a standalone module, accessible using a simple internal API. This will allow anyone to write a very simple interface for whatever platform they like, without having to depend on any external libraries like libxml2 or SDL. Those dependencies need to be eliminated from the internal game engine before this can be done.

General timing and lag issues

The game seems to lag a lot, and something this simple should not have these performance issues at all. I have not investigated thoroughly enough to determine why this is.

The codebase is C++ instead of C

C++ is a powerful language when used correctly. Nobody uses it correctly. A codebase for something this simple should be written in C so that people can read it and it is easily maintainable into the future, as well as portable to unforseen, obscure platforms that do not have a good C++ toolchain. Over time this codebase will be moved to C-like C++ and then to actual C.

Tools for verifying internal game logic and state?

I was wondering what could be done to help testing for game logic. Any tools to put original Ultima 4 in same state as xu4? Are there random number generators that could be synched?

Maybe it's an intractable problem, but there aren't many players who can dig down and verify correctness anymore.

Cheers! (go C!)

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.