npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

uojs2

v0.0.1

Published

An online client for the popular game Ultima Online

Downloads

6

Readme

uojs2

An unfinished web-based client for the game Ultima Online.

Join the chat at https://gitter.im/uojs2/Lobby Travis build status Dependency Status devDependency Status

Overview

:point_right: Taking a short break from this project to review 3D concepts & Three.js. :point_left:

This project is aiming to emulate the game Ultima Online (ver 7.x.x.x) in a web enviroment. It uses websockets (with websockify) to connect to servers that utilize the Ultima Online protocol. It then uses Redux to manage the global state and uses React coupled with three.js for the interface.

I'm mostly using this project to learn more about cool features in javascript. So please let me know if there is a better way to do something.

Also! Please know that this is completely a work in progress and it doesn't do anything spectacular (yet). Please don't tell me that it doesn't work. I know it doesn't work. It will be finished one day, assuming that I don't (1) die in an accident, (2) become homeless, or (3) get burned out from programming.

Current Status

Networking, decompression, global state, React (sorta) works. Three.js still needs to be integrated within the React component.

There also needs to be an art server and a way to quickly transfer art between the server and client. WebP + http2? maybe? no idea. Will research ideal image formats: gif is small, has a single alpha channel, and has limited colors... so this might be ideal.

Requirements

Browser requirements

  • Modern browser
  • WebGL support
  • Websocket support

Development & hosting requirements

  • Node.js, version 6+
  • ServUO (or possibly an alternative)

Getting Started

  1. Start your ServUO server. Edit src/server/config.js if needed.
  2. Clone the repository
  3. Install dependencies: npm install
  4. Build the project: gulp build (or gulp watch)
  5. Start websockify: npm start (this might not work)
  6. Open index.html
  7. Eat sandwich

Contributing

Here are some ways you can contribute to this project!

  • Implement more of the packets. Check out the state directory for examples.
  • Create a UI. I'm thinking if the state has an 'invalidate' flag, so that when set to true, it'll call a redraw in the redux subscribe method, which just rerenders the viewport. Does that make sense? I have no idea.
  • Code review it! If you're a hardcore javascripter (is that a word?), I really want you to tell me what can be improved on here.
  • Add in pages in the Wiki
  • Write tests (these are like the last thing on my todo list)
  • Migrate everything into web workers (particularly networking, redux stuff, and decompression). Then on the redux subscribe callback, transfer the data into the main UI thread?
  • If you live in Seattle, buy me some more beer. pls :beer:

ga