arianne / stendhal Goto Github PK
View Code? Open in Web Editor NEWStendhal is a fun friendly and free multiplayer online adventure game with an old school feel.
Home Page: https://arianne-project.org
License: GNU General Public License v2.0
Stendhal is a fun friendly and free multiplayer online adventure game with an old school feel.
Home Page: https://arianne-project.org
License: GNU General Public License v2.0
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.
Superogre redone using current ogre in stendhal repository, NPC character's helmet(https://opengameart.org/content/npc-character)(chasersgaming)(CC0), and similar to old colors.
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.
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.
The webclient uses more CPU resources than necessary. The following profiler samples show some problematic code fragments:
The inventory windows of corpse should be closed automatically,
The webclient should handle collision between entities to predict that an entity is going to stop its movement. The Java client does it and it creates the impression of significantly less lag.
I get a little frustrated trying to sort through all the branches. Creating a simple tag for each release should be enough.
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.
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)
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.
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.
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
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
If a player is poisoned & dies from something other than the poisoning itself (e.g. dying from being attacked) the poison icon in the stats display does not disappear.
Elder sheepman redone using current sheepman from stendhal repository, snail shell from batch_one_0.png(A load of overworld 3/4 RPG sprites)(Redshrike)(https://opengameart.org/content/a-load-of-overworld-34-rpg-sprites), tassle from row 2 frame 2 dark-soldier-lord.png dark soldier rework, and similar to old colors.
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.
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.
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).
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.
Elf bodyguard redone using Fighter-M-02 light.png and Townfolk-Adult-M-005 light.png from 24x32 characters pack extended by diamonddmgirl, ears_long-light.png from cabbit collection, dress_072.png cape only(may need extending later) from stendhal repository, similar to old colors, and [LPC] full plate golden armor(https://opengameart.org/content/lpc-full-plate-golden-armor)(Shaun Williams
(Submitted by VividReality))(CC-BY 3.0).
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.
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!
There should be a popup inventory for inspecting chests and corpse. It shall close automatically, when the player walks away too far.
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.
In case the axe is way too big, here's ogre soldier without the axe.
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.
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.
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.
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...
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.
(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.
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.
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).
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
First, this is the oni head cycled using RPG portraits column 7. This can now be reused on other oni.
Oni queen redone using Queen_01 light.png from 24x32 characters pack extended by diamonddmgirl, similar to old colors, and RPG portraits column 7(https://opengameart.org/content/rpg-portraits)(Buch)(CC0).
(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.
Use shield sprite. https://opengameart.org/content/shield-sprite
Fill in colors.
Package of auras before reducing size.
Reduce size.
Now you have package of auras for cabbit sprites. Two possible examples follow.
I'm not sure this would work, but there are no auras available right now.
Sometimes, the webclient shows rat in -1_semos_dungeon near the exit.
This is a concept imperial demon using cabbit sprites crossed with Red Fighter.png from https://opengameart.org/content/top-down-pixel-spaceships.
Oni king redone using King_01 light.png from 24x32 characters pack extended by diamonddmgirl,similar to old colors, RPG portraits column 7(https://opengameart.org/content/rpg-portraits)(Buch)(CC0), and Shmup Enemies(https://opengameart.org/content/shmup-enemies)(Buch)(CC0).
The mouse cursor should change depending on the default action of the object it is over.
We may want to reconsider the default actions (e. g. use look instead of use).
Elite sheepman redone using sheepman from stendhal repository, similar to old colors, and the snail shell from batch_one_0.png(Redshrike)(https://opengameart.org/content/a-load-of-overworld-34-rpg-sprites).
First, there is a 2 pixel correction to row 1 frame 3 for regular sheepman around the pants left arm area.
Armored sheepman redone using sheepman sprite, similar to old colors, and Sword and shield (16x16)(https://opengameart.org/content/sword-and-shield-16x16)(qubodup)(CC0).
Imperial experiment redone using helmet from Zombies and Skeletons(https://opengameart.org/content/zombies-skeletons)(CC0)(artisticdude), Zombie and Skeleton 32x48(https://opengameart.org/content/zombie-and-skeleton-32x48)(CC0)(Reemax), and similar colors to old.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.