Skip to content

Lukenickerson/WULF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 

Repository files navigation

WULF - Web-based Ultima-Like Framework

WULF is a project that intends to create a framework based on open web technology that would allow easy creation of Ultima-like browser games.

πŸ›‘ STATUS πŸ›‘

This repo is no longer being worked on.

♻️ The project has been re-started (2025) here: https://github.com/morph-games/WULF

Old Repos

Philosophy

  • Open, interactive, simulated world
    • Go anywhere
    • Time always passes
  • Persistant, living characters
    • PCs become NPCs when their player is offline
    • NPC schedules
    • Bot-friendly (BPC)
    • Aging and mortality
  • Everything happens in the fiction/simulation
    • Nothing should be indestructible or immortal, except by in-game mechanics
    • World-building is done by entities (gods, wizards)
  • Framework needs to be easy to enhance
    • Modular components
    • Keep an eye towards future additions; don't prevent modification
    • JavaScript is a language that many developers know and that can be learned online
    • Open source
  • Online-capable
    • Server-Client architecture
  • Top-down 2D is sufficient
    • Simple graphics

What Works Now

  • Run client with a separate server (e.g. Fenix) at an address like http://localhost/WULF-client/.
  • Create characters on server based on user
  • Create character at random x,y
  • Load simple map into server
  • Send map to client
  • Client display map
  • Send characters to clients and display
  • Basic game loop in server
  • Click for movement to x, y
  • Pass movement commands to server
  • Bring in Coords
  • Fix movement on server
  • Move character on client
  • Terrain types / Advanced map data
  • Display as scroll-o-sprites graphics
  • Detect clicks on Pixi display
  • Remove text map
  • Clean-up Pixi Display code
  • Roguelike pixel font
  • Enter to focus chat
  • Switch server to ES6 modules
  • Pass terrain/item data to client
  • Different objects for items, blocks, terrain, characters
  • Merge in the entity types and add tile property with key
  • Tell client about items/blocks
  • Obstacle detection on server-side
  • Tell display about characters separately from terrain
  • Display characters on sub-tile format and hide covered tile

TO DO

  • Info about what actions can be done on which entities

  • Smart click so that trees can be auto-chopped

  • Actions row 1-9

  • Right-click for simple actions menu

  • Action: Pick up item

  • KB input for movement (similar to rote?)

  • Action: Pick up flower from sack

  • Action: Place flower down

  • Action: Pick up water

  • Action: Drop water on flower to mix --> make dough

  • Action: Drop dough in oven

  • Oven cook dough to bread

  • Action: chop tree

  • Update map's passable array when there are updates to terrain, blocks, items, etc.

  • Action: Plant seed

  • Chat bubbles

  • Tell client when map content has changed rather than constantly

  • Server send moves to client for animation

  • A-star on server-side - https://github.com/bgrins/javascript-astar

  • Switch characters into NPC mode when player leaves

  • Save Player data in client

  • Save Player data and reload on restart

  • Save character data and reload on restart

  • Save map data and reload on restart

  • Scroll to zoom

  • Efficiency in redrawing sprites

  • Clean up client/servamo chat

  • Import RocketBoots modules properly

  • Move pixi display to its own library

  • Move sevamo, usernaming, etc. to their own libraries

  • Combine server and client together in WULF package for testing (i.e., run client from browser at http://localhost:5000)

  • Add nvm

  • Convert server so it can run in the browser

  • U4 option for tiles https://github.com/jahshuwaa/u4graphics

  • Pixel fonts? https://github.com/byackley/pixelfonts

Wishlist (TBD)

  • Items:
    • 1-2 - hands
    • 3-4 - body (requires shirt)
    • 5-6 - legs/belt (requires pants or belt)
    • 7,8,9,0 - back (requires backpack)
  • Clothing:
    • 1 - gloves
    • 2 - rings
    • 3 - arms (bracers)
    • 4 - torso
    • 5 - pants
    • 6 - shoes
    • 7 - back
    • 8 - head
  • Map builder
  • Load map by height map and terrain grid
  • ...TBD...

New Project Britannia Wishlist from SSSH podcast #15 (2015)

  • Multiple magic systems
  • Mana-based magic
  • Spells, item-based spellcasting
  • Modular sky-dome
  • Multiple camera views
  • Character creation system
  • Skill system - effected by class
  • Moongates, including different types
  • Vehicle controls - carts, horses, boats
  • Regional maps
  • Mono-scale and dual-scale maps
  • Mono-scale and dual-scale transportation
  • Conversation systems - keyword vs free text
  • Quest triggers
  • Journal
  • Annotated map
  • Buy/sell system
  • Banking
  • Containers of items
  • NPC inventories
  • NPC ownership / theft
  • NPC schedules
  • Virtures/karma tracking for PCs
  • Readable Books, scrolls
  • Spellbook
  • Rune pouch
  • Paperdoll in inventory
  • Item interactivity
  • Item volume and weight

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published