Code Monkey home page Code Monkey logo

stendhal's Introduction

Stendhal Tower Achievements Cocktail Bar   More Images >

Are you looking for adventure? Want to fight for riches?
Develop yourself and your social standing? Meet new people?
Do you want to be part of a brave new world?

Stendhal is a fully fledged multiplayer online adventures game (MORPG). It is completely open source (client, server, everything).

Stendhal features a new, rich and expanding world in which you can explore towns, buildings, plains, caves and dungeons. You will meet NPCs and acquire tasks and quests for valuable experience.

Your character will develop and grow and with each new level up become stronger and better. With the money you acquire you can buy new items and improve your armor and weapons. And for the blood thirsty of you; satisfy your killing desires by roaming the world in search of evil monsters!

Stendhal is platform independent, and completely open source.

So what are you waiting for?! A whole new world awaits...

How to play

Web Browser

Play now

Play in any web browser for desktop or mobile with JavaScript support. Click on the "play now" button to create or log in to your account.

Mobile

Play using the progressive web app. Just visit https://stendhalgame.org/ in your mobile browser and click "install" when prompted.

Play on your Android device using the dedicated app. You can get it from the F-Droid App Store or download it from https://stendhalgame.org/download.html.

Classic Desktop

Download

Play using the classic desktop client. You will need Java which you can download from https://www.java.com on Microsoft Windows. Java is included in most Linux distributions. Both Oracle Java and OpenJDK are supported.

Please download Stendhal from https://stendhalgame.org
You can double click on stendhal-starter.jar and the client will run.
If you prefer to run from command line, then just execute this command in the stendhal folder:

java -jar stendhal-starter.jar

There is a manual, and there is Help from the client menu icons in the upper right hand side of the game screen.

Development environment

Legal

The server, java client, and Android client are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License 2 or later as published by the Free Software Foundation.

The web client is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License 3 or later as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE.txt and src/js/LICENSE.html file for more details.

Stendhal(c) is copyright of Miguel Angel Blanch Lardin, 2005-2008, arianne_rpg at users dot sourceforge dot net and others
Stendhal(c) is copyright of the Arianne Project, 2006-2024, arianne-general at lists dot sourceforge dot net

Please have a look at the list of contributors.

stendhal's People

Contributors

antumdeluge avatar balaur64 avatar bleutailfly avatar cedric-m avatar chaitanya110703 avatar cpl avatar dependabot[bot] avatar hajdam avatar jastiva avatar karajuss avatar kiheru avatar leechex avatar licaon-kter avatar markuskeunecke avatar nhnb avatar nylon0700 avatar olonu avatar rakhadjo avatar tigertoes13 avatar tobiwankenobi-stendhal avatar twiernik avatar weilueluo avatar yoriy 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

stendhal's Issues

Dagobert redone using...

Dagobert redone using Townfolk-Adult-M-002 light.png and Townfolk-Adult-M-003 light.png from 24x32 characters pack extended by diamonddmgirl and similar to old colors.
rdago
I caught a slight disagreement in the fourth row that seems to carry through the charas converter. It may carry through a lot of the sprites. It seems to be leaving the forward facing shoe planked instead of shaping it in the fourth rows. Dago has already been placed in agreement.
townfolk-adult-m-003 light

Dark mutant redone using...

Dark mutant(blacky.png) redone using Mask-M-01 light.png and TEMPLATE thin light.png from 24x32 characters pack extended by diamonddmgirl,horns redone from dark soldier rework(chaos soldiers in stendhal repository), and similar to old colors.
-Old dark mutant had a scepter/trident/pitchfork/etc.
rblacky

Observer mechanism for changes

At the moment the web client updates certain information at the end of each perception. Some of these updates are rather expensive and may even result in flickering (e. g. the buddy list).

In the traditional client, there is an observer mechanism which allows subscription to specific changes. We need something similar for the webclient.

Archmage elf redone using...

Archmage elf redone using ears_long-light.png from the cabbit-bases-collection, Princess-01 light.png from 24x32 characters pack extended by diamonddmgirl, and similar to old colors.
rarchmage

eyesLabel & mouthLabel Not Initially Shown In Outfit Dialog

There is an issue when the VM argument -Dtesting.outfits is set: When the OutfitDialog is first brought up, the eyes & mouth previews are not displayed. Once they are displayed, after pressing one if the cycle buttons, the contents of the dialiog are shifted & the confirm/cancel buttons are placed outside the visible boundary. This can be remedied by calling the method setIndex on the related SelectorModel instances before pack is called: https://github.com/arianne/stendhal/tree/6a5e773/src/games/stendhal/client/gui/OutfitDialog.java#L157

I believe I can fix this, but haven't had the time yet. So I created this issue to remind myself.

Converting Outfit Code To Type Long Not Backward Compatible

Not sure if there is anything that can be done about this, but in the code I am testing I have converted the outfit code & RPEntity "outfit" attributes to type long. When a player logs in, the integer values are replaced with long in the database. This makes the database inaccessible if the code is reverted back to integer.

This is the server output in such a scenario:

ERROR [mmandQueue] DBCommandQueueBackgroundThread(67  ) [DelayedEventHandlerThread: LoadAllActiveCharactersCommand [username=deluge, characters=null]] - marauroa.common.game.SyntaxException: attribute code 0 isn't defined.
marauroa.common.game.SyntaxException: attribute code 0 isn't defined.
	at marauroa.common.game.RPClass.getName(RPClass.java:707)
	at marauroa.common.game.RPClass.getName(RPClass.java:704)
	at marauroa.common.game.RPClass.getName(RPClass.java:704)
	at marauroa.common.game.RPClass.getName(RPClass.java:704)
	at marauroa.common.game.Attributes.readObject(Attributes.java:738)
	at marauroa.common.game.RPObject.readObject(RPObject.java:1250)
	at marauroa.common.net.InputSerializer.readObject(InputSerializer.java:50)
	at marauroa.server.game.db.RPObjectDAO.readRPObject(RPObjectDAO.java:133)
	at marauroa.server.game.db.CharacterDAO.loadAllCharacters(CharacterDAO.java:408)
	at marauroa.server.game.db.CharacterDAO.loadAllActiveCharacters(CharacterDAO.java:458)
	at marauroa.server.game.dbcommand.LoadAllActiveCharactersCommand.execute(LoadAllActiveCharactersCommand.java:62)
	at marauroa.server.db.command.DBCommandQueueBackgroundThread.executeDBAction(DBCommandQueueBackgroundThread.java:103)
	at marauroa.server.db.command.DBCommandQueueBackgroundThread.processCommand(DBCommandQueueBackgroundThread.java:75)
	at marauroa.server.db.command.DBCommandQueueBackgroundThread.run(DBCommandQueueBackgroundThread.java:49)
	at java.lang.Thread.run(Thread.java:748)
ERROR [dlerThread] DelayedEventHandlerThread(67  ) - java.lang.NullPointerException
java.lang.NullPointerException
	at marauroa.server.game.messagehandler.SendCharacterListHandler.handleDelayedEvent(SendCharacterListHandler.java:62)
	at marauroa.server.game.messagehandler.DelayedEventHandlerThread.run(DelayedEventHandlerThread.java:100)

Not sure that this is really an issue that would ever come up as I don't know why there would be any reason to revert back to integer type. But wanted to post it for awareness sake.

Performance improvements

The webclient uses more CPU resources than necessary. The following profiler samples show some problematic code fragments:

  • layout triggered by resetting the size of the canvas on every draw
  • layout triggered by resetting the buddy list on every perception
  • layout tirggered by setting a font in rpentity to determine the size of the title

bildschirmfoto vom 2017-03-21 01-01-34
bildschirmfoto vom 2017-03-21 01-03-09
bildschirmfoto vom 2017-03-21 01-04-36
bildschirmfoto vom 2017-03-21 00-56-07

Outfit: Eyes & Mouth Do Not Update/Save

I'm working on the new extended outfit system where the customizable features are base/body, head, outfit, mouth, eyes, & hair (use VM argument -Dtesting.outfits to enable). The outfit dialog displays all features as changeable, but does not support saving the extended features (eyes & mouth).

I am currently working on how to implement a fix.

Source: client.gui.OutfitDialog

Remove dependency on Polymer

The web client depends on Polymer, but does not really require any of it's primary features. The admin client makes use of paper elements, so it makes sense there.

But the graphical client uses custom elements specific to Stendhal only. There is little risk of CSS leaking into other parts of the page because the full page is under our control

There is a fatal error in Microsoft Edge in the Polymer code. But the version is rather old, so it may have been fixed already.

Josephine redone using...

Josephine redone using Aristocrate-F-03 dark.png from 24x32 characters pack extended by diamonddmgirl and similar to old colors.
rjosephi

Improve stats panel

The stats pannel in the webclient should display all the information that the traditional client displays. Most notable are the remaining XP to reach the next level, atk level or defense level.

It should also display the status icons such as eating or being poisoned.

Tasks

  • show remaining XP to next level for level and stats
  • show status icons
  • show karma bar (when feature enabled)
  • show HP bar (configurable)

Static Keyboard for Web Client

I know that the web client is not optimized for mobile devices, but I was testing it on my Android phone & found the most difficult part being the devices software keyboard taking up so much space on my tiny screen.

I think a togglable keyboard on the web client's page would make mobile play more appealing.

Ogre soldier redone using...

Ogre soldier redone using current ogre sprite from stendhal repository, Aristocrat-M-02 light.png hair from 24x32 characters pack extended by diamonddmgirl, 32x32 RPG Character Sprites row 5 from bottom(soldier hat only)(https://opengameart.org/content/32x32-rpg-character-sprites)(Eldiran)(CC0), hand axe 64x64(LordNeo)(https://opengameart.org/content/hand-axe-64x64)(CC0), and similar to old colors.
rsoogrewpn
In case the axe is way too big, here's ogre soldier without the axe.
rsoogrenowpn

Make CollisionAction.REVERSE or .REROUTE the default for NPCs

(server; enhancement / feature suggestion. Not a bug report because the only known issue with the current behavior has been fixed specifically in #61 )

The current default behavior has potential to trap players in corners or to block their path, because the NPC can not be pushed.

Note that when changing the default to "REVERSE", NPCs running in large circles might become less predictable and harder to find. I like the idea of "REROUTE" realistically making an NPC find a way around the obstruction without changing the general path.

Imperial scientist redone using...

Imperial scientist redone using Cultist-01.png and Mask-M-01 light.png from 24x32 characters pack extended by diamonddmgirl and similar to old colors.
rimpsci

Sheepman frame [4,2] residue...

Sheepman frame [4,2] has some sort of residue issue from editing in front of the nose. I thought that it was worse than it was when I initially saw it, but it was some pixels. It's corrected better.
rsheepman2

Drag&Drop on Edge drags canvas-element

Edge does not support drag-icons. As a result, the DOM-element is dragged. This seems to be okay for inventory slots. But is an issue when items are dragged from the game world as this means that the canvas-element is used as drag-icon.

3no4nvum0u9j png
3no5mmt8apyh png

Reported by monsterdhal

Ghost hound color

Hey :) Just a quick thought. The new ghost hound is not red, but it drops carbuncles. Should we change drops or color maybe? I could imagine seeing it drop diamonds or sapphires. The color itself is nice and more "ghostly" than the original.

We could even introduce a new gem!

Zoom and pan minimap

The minimap should be zoomed in a little on large zones and automatically pan to keep the player at the center unless he reaches a zone boarder. (Just like the classical client does it)

Imperial demon redone no wings/wings/aurawings using...

Imperial demon without wings redone using Mask-M-01 light.png and TEMPLATE thin light.png from 24x32 characters pack extended by diamonddmgirl and similar to old colors.
rimpdnow

Imperial demon with wings redone using Mask-M-01 light.png and TEMPLATE thin light.png from 24x32 characters pack extended by diamonddmgirl, fallen_angel-001-48x64.xcf wings, and similar to old colors.
rimpdwi

Imperial demon with wings and aura redone using Mask-M-01 light.png and TEMPLATE thin light.png from 24x32 characters pack extended by diamonddmgirl, fallen_angel-001-48x64.xcf wings, similar to old colors, and Electrical disintegration animation(https://opengameart.org/content/electrical-disintegration-animation)(superjoe)(CC0).
rimpwiau

Ogre redone using...

Ogre redone using TEMPLATE fat light.png from 24x32 characters pack extended by diamonddmgirl and hair_036.png from stendhal repository.
rogre

Player Continues Walking When Client Loses Focus

The issue is directly related to the text input area losing focus. It has been addressed before, but was seen as more of a feature at the time.

What happens is, when a player is using a directional key to walk, if the key is not released & the text input area loses focus, the keypress is not flushed & the character will continue walking in that direction indefinitely until focus is regained & direction key is pressed & released again. This was seen as a feature because it allowed players to walk long distances without having to hold down a key. But there are some pitfalls to it is well. It can potentially cause players to lose control in dangerous situations. For example, trying to escape from an enemy. If focus is lost unintentionally, players can lose control of their characters momentarily, causing them to perhaps move into an even more dangerous situation. Another example would be ground spikes. If a player is moving in the direction of harmful ground tiles & the client loses focus, the player may not be able to regain control of his/her character until it has already received damage. I have witnessed situations like this many times, especially in the deathmatch arena.

I believe that with the implementation of the auto-walk feature, which allows players to manually set continuously walking without holding a direction key, this issue should be fixed. I made a FIXME note in a recent commit: 7356677

SourceForge issue 5876

Aura concept

Use shield sprite. https://opengameart.org/content/shield-sprite
Fill in colors.
shieldex
Package of auras before reducing size.
Reduce size.
shieldex1
Now you have package of auras for cabbit sprites. Two possible examples follow.
shieldex5
shieldex6
I'm not sure this would work, but there are no auras available right now.

"master" Tag Causes Issues

If a tag & a branch exist with the same name, a warning is emitted about the name being ambiguous.

$ git checkout master
warning: refname 'master' is ambiguous.

On some machines I can't switch to that branch until I delete the tag.

Elf wizard redone using...

Elf wizard redone using Flower-01.png, Mage-M-01 light.png, and Townfolk-Old-M-002 light.png from 24x32 characters pack extended by diamonddmgirl and ears_long-light.png from cabbit-bases-collection by deluge.
relfwiz

stendhal contains non-free sprites

I have discovered over 60 RPG Maker 2003 edits or resizes and a few RPG maker XP edits. RPG maker sprites are only allowed in RPG maker engines that one has purchased. They are not opensource.

You should honestly download the RPG Maker RTP packs and check for more. I will list the folder directory name and files. It is a RPG Maker 2003 edits unless I mention RPG Maker XP. All I ask is that you inform me of more edits character wise. I only checked the characters.

/monsters/amazon:

-amazoness_archer_commander
-amazoness_commander

npc/animal:

-dog
-Small_dog
-kitten

/monsters/animal:

-Slimes (all of them)
-Tiger
-lion

/monsters/farm_animals:

-Chick
-Cow
-Bull
-Ram
-White horse
-Horse
-beaver (XP Edit)

/monsters/flying_beast:

-bluebird
-carnary
-pink_bird
-green_bird
-Peach_bird
-red_brid
-seagull

All the birds are rmxp edits.

/monsters/minotaur:

-Mino_king
-Minotaur

/monsters/sheepmen:

-All of them are edits

/monsters/golem:

-stone_golem

/monsters/huge_animal:

-chaos_green_dragonrider
-chaos_red_dragonrider
-red_dragon
-Green_dragon
-Black_death
-Golden_Death
-flying_golden_dragon
-twin_head_dragon

/monsters/human:

-littlewizard
-armored_leader
-armorer_leader
-armored_warrior
-super_human
-soldier_wizard (hat)

/monsters/myhical_animal:

-gashadokuro

/monsters/troll:

-red_troll
-Troll

/monsters/undead:

-Ghost
-Death

/npc:

-boynpc
-chessplayernpc
-Childnpc
-deadmannpc
-gardenernpc
-man_000_npc
-man_006_npc
-oldmannpc
-princessnpc
-Mothernpc
-armorleadernpc
-Kingnpc
-kingcozartnpc
-woman_003_npc
-youngkingnpc
-stormtroopernpc

/npc (Can be debated on:)

Some features look like edits or resizes.

-mithrilforgernpc (hat)
-plinknpc (hair)

Other: (two sprites on one spritesheet)

-cat.png (big cat is okay, little cat is an edit.)

monsters/ent:
-dead_ent

The dead ent is an edit of the brown tree here:
http://www.hbgames.org/forums/viewtopic.php?t=78803&p=929850

Support # and § highlighting in chatlog

The webclient should support highlighting of words and phrases in the chatlog window.

The traditional client uses # for blue words, players are supposed to repeat to NPCs. And § to underline the exact and complete name of items.

Elder ogre redone using...

Elder ogre redone using TEMPLATE fat light.png from 24x32 characters pack extended by diamonddmgirl and hair_036.png from stendhal repository.
reogre

Moving entities may get out of sync with the server

Sometimes, the webclient shows rat in -1_semos_dungeon near the exit.

  • It walks from left to right and back. (e. g. it is known to the server)
  • It walks through players
  • It can be attacked and gets a red circle.
  • It cannot be hurt
  • It is invisible to the normal client.
  • It disappears on zone change or reload.
  • It can be *Inspected
    ghostrat

Horizontal Rule/Divider for Months on Chat Page

Could we add a horizontal rule to separate months on the website chat page? I sometimes get confused at the end of the month when there are a lot of entries & end up selecting the wrong dates, especially on my small touchscreen device.

I attempted to do this myself, but I don't have it set up correctly locally to test it.

Oni concept

A lot of our monsters are types of demons. When you do a search on google you find demons; however, no one wants a game like this full of demon demons plus it'd be boring. Kobold brings up your traditional demons, but our kobolds were more cutesy than demon and are now doggy/cutesy. Oni brings up Japanese demons, but our oni were purple "foreigners" with long chins. This style I suspect is part of the copyright sprite. It can't be copied and taking scalable inspiration from it may lead to something like happened with the apprentice assassin hood. There are some options. Draw your own head set. It'd probably take an artist. Find another style completely which would probably resemble demon demons more. Abandon the features and simply make the Cabbit sprites purple. These two run boredom. I found a sheet of head sprites that may remedy the situation.
rpgportraits
https://opengameart.org/content/rpg-portraits
Observe column 7, the long chinned alien.
By doubling the alien's ears, reorienting the ears, then adding nozzles, you can get...
roniqueen
The head would need cycling around on the base and contrasting. The nozzles don't have to be long and antennae like, they could be shortened again.
test

Elf sacerdotist conformation

Conformed elf sacerdotist with ears_long-light.png and reused Aristocrate-F-01 light.png to reforge contrast around new ears.
relfsacer1

Close corpse inventory automatically

The inventory windows of corpse should be closed automatically,

  • when the player walks away
  • the last item is taken from the corpse
  • the corpse is moved away
  • the corpse is removed from the zone due to timeout

Client Character Map: Not All Characters Display Correctly For Different Systems

(this is a development/testing feature)

The character map, that is enabled by setting the VM argument -Dtesting.chat, does not display all characters for different systems. Below is a screenshot of the client running on a MacOS system, displaying the character map with the current set of characters. The plan is to select a set of characters that are known to display correctly on multiple systems.

stendhal-charmap-macos

Imperial priest redone using...

Imperial priest redone using Aristocrat-M-02 light.png from 24x32 characters pack extended by diamonddmgirl and holly staff.png from Staff 64 x64(LordNeo)(CC0).
rimppri

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.