GithubHelp home page GithubHelp logo

hamaindustries / femultiplayer-v2 Goto Github PK

View Code? Open in Web Editor NEW
26.0 26.0 31.0 566.29 MB

Reupload & revamp of FEMP with fresh bugfixes... usually. Check "releases" for download.

Home Page: http://eliatlarge.github.io/FEMultiPlayer-V2/

License: GNU General Public License v3.0

Ruby 0.07% GLSL 0.21% Java 99.59% Batchfile 0.01% Python 0.13%

femultiplayer-v2's People

Contributors

hamaindustries avatar justalevelzero avatar nochocolateforyou avatar purplemandown avatar rayrobdod avatar wellme avatar yen 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

femultiplayer-v2's Issues

Armorslayer / Heavy Spear / Hammer / etc. get "effective" bonus against Paladins (Cavalry)

Issue type: problem

Description:

Sister bug of #43 , armorslaying weapons such as the Armorslayer, Heavy Spear, and Hammer get an effective bonus against cavalry units such as Paladins. Again, this was never the case in any FE game and I have no idea why it was implemented in the first place. This bug also renders cavalry slaying weapons such as Horseslayer redundant.

This is clearly a bug and needs to be removed.


Examples:

2016-04-20--230600_1600x900
^^^ Wish I could've recorded that battle, being the noble tactician that I am, I refrained from exploiting the bug. I uncovered it by freak accident while cycling through Matthew's weapons. For those interested in the outcome, the battle ended with an epic 1 v 1 between Oswin and Eirika... sadly, no one won because #40 isn't implemented yet and the game got tied up over Sarah's iffy wireless.

2016-04-21--001356_1600x900
2016-04-21--001425_1600x900
2016-04-21--001619_1600x900

Ignore the weapon durability in these latter screenshots, we were goofing around with the "Made in China" modifier which claims to give the player higher starting gold in exchange for reduced weapon durability, but we never saw an increase in starting gold which is another bug for another day


Reference:

http://fireemblem.wikia.com/wiki/Armorslayer

Feature Request: Shove and Smite Commands

Issue type: feature request

Description:

To expand tactical movement options, I'd like us to introduce the Shove and Smite commands from the Tellius series. This a base skill that all foot / non-mounted units (i.e. everyone EXCEPT Paladins, Valkyries, Wyverns, Pegasi, Eirika, Eliwood and Ephraim)

How It Works:

Non-mounted / non-flying units whose difference in target's Con does not exceed the user's by more than 2 (we can make this class tier based until Con is implemented) can use the Shove command (I'd like Generals, Berserkers, Warriors, Hector and Ike to have the Smite command instead, more on that later) which pushes an adjacent unit (friend or foe) one tile away / backwards. Smite works the same way but pushes the selected unit 2 tiles away / back.

The tactical purpose of this it provides both a supplement and alternative to rescuing as you can either push an ally (or two if the target is rescuing) potentially out of harm's way (especially if multiple units pitch in) or push an ally to extend their reach or push an enemy unit backwards to prevent them from reaching their desired target.

The videos provided under References really showcase just how amazing the potential is.

EDIT: I REALLY worded the math behind this badly!!! Please forgive me! I was really sleep deprived.


References:

Client doesn't progress to Results Screen if Opponent quits during their own Player Phase

Issue type: problem

Description:

If the opponent quits , more often than not, during their own Player Phase, the client who didn't quit is rendered stuck in the Enemy Phase of returning to the Results screen. This bug occurs intermittently, and I haven't been able to isolate a constant trigger, however, it does occur regularly enough to be observed.

If the opponent quits during their Enemy Phase, then the turn player will be returned to the Results screen successfully upon ending their turn. This is not automated though.


Examples:

2016-04-26--110445_1600x900

Allow loading of external resources

Issue type: feature request

Description:

Is it possible to have FEMP load music and FEMP Server load additional maps without the need to embed them in the .jar file? (much like how we can with teams, we can have folders for these such as music and maps)

I know the current method is to simply treat the jar as a zip file, but at least with free utilities like 7zip, the ends rather badly.

Give druids specialization

*Canas* - specializes in HP, Magic, and Resistance
*Ewan* - specializes in Skill, Speed, and Luck
*Knoll* - specializes in HP, Defense, and Constitution (if we get that weapon weight system)

Keep in mind that when I say "specialize", I don't mean anything higher than 23 (besides HP). The trade-off with Druids is that they have mediocre stats in exchange for niche weaponry.

Balancing #2 stats

Ike

Ike is clearly the best Lord right now. His stats give him bulk and power while also giving him the ability to double a decent chunk of units. However... looking at his stats, they're actually about on par with the rest of the Lords. The biggest thing contributing to Ike's strength is Ragnell. Ragnell has 20 Mt, 1-2 range, AND gives Ike +5 Defense. It's even more powerful than Armads, which only has 18 Mt.

This is why, rather than nerfing Ike's stats, we've decided to *_reduce Ragnell's Might from 20 to 14. *_This will make Ragnell the weakest sacred weapon besides Sol Katti and Falchion (both of which I will talk about later).

Marth

Marth is severely underused and underrated right now. He's a very viable counter to both Ike and Roy because he's able to double them, and he has a high chance of critical against Ike and Ephraim. Stat-wise, he's fine--it's just that no one uses him for some reason. The one thing we are going to do to keep Falchion from being completely useless is raise Falchion's Might from 14 to 15. This essentially gives him 3 extra points of damage whenever he criticals, which will happen often against Ike and Ephraim due to their low luck.

Lyn

Lyn is easily the worst Lord at the moment. Terrible defenses, terrible HP, and not enough damage with Sol Katti. She's almost completely outclassed by Marth if she didn't have access to bows. To buff her, we decided to make her sort of a niche unit, like the Druids. Lyn's Speed at Lv 20 will be buffed from 32 to 35. Her Defense at Lv 20 will be buffed from 6 to 10. Sol Katti will be effective against Horse units. The speed buff is meant to give her the ability to double all the other Lords (barring Eirika, who I'll get to in a moment), thus giving her a respectable niche. The Defense buff is only meant to prevent her from getting one-shot by anyone who looks at her funny. And finally the biggest change, Sol Katti being effective against horses will not only give her a major advantage against Eliwood, Eirika, and Ephraim, but also all of the Paladins and Fliers who have become prevalent as of recent.

Eirika

Right now, Eirika is a weak, 1-range locked unit that's on a horse and thus suffers the curse of the Horseslayer. Due to Lyn receiving the niche role, we needed to give Eirika legitimate buffs to her stats. Eirika's HP, Speed, and Defense will all be buffed by 1, while her Strength will be buffed by 2 and her Resistance will be buffed by 4. This amount of speed will give her the ability to not get doubled by any other Lord, while still doubling a decent amount of other Lords at the same time. These buffs transform Eirika into an excellent mage-killer, especially should you choose to buy Audhulma for her. That would put her Resistance at a whopping 25, which is on par with Roy.

Eliwood

Eliwood will receive +2 to his Strength and Defense, +4 to his Skill, and +3 to his Luck. The idea here was to make Eliwood an accurate heavy hitter. Zero originally wanted Eliwood to have more Defense, but at that point he makes Hector pretty much obsolete. With this amount of Strength, Eliwood has 50 ATK with the Durandal while Hector has only 48 ATK with Armads. However, Hector has a massive +12 Defense and +5 HP over Eli to make up for his lack of power and accuracy.

Roy, Ephraim, and Hector

We felt that these 3 Lords were fine as they were, and we will tweak them for next time based on how this format pans out.

_(Please note that level 20 stats should probably be more impacted by growths)_

Door & chest tiles

Make maps with Doors and Chests that have valuable items that only Assassins can open.

Horseslayer / Longsword / Halberd / etc. get "effective" bonus against Pegasi

Issue type: problem

Description:

Anti-cavalry weapons such as the Horseslayer, Longsword, and Halberd get a bonus against Falconknights - Pegasi / flying units. This was never the case in any FE game as even their item help descriptions often say, "Effective against cavalry", which are not pegasi. A notable exception are Awakening and Fates which indiscriminately counts calvary, and pegasi, as "beasts" along with griffons and Taguel, and replaces the aforementioned weapons with a new lance weapon called the "Beast Killer" (which if implemented, should be way more expensive).

The end result of this bug / erroneous blanket coverage trivializes the importance of Snipers, Wind tomes (when added), and to a lesser extent, the ballista (when added). Which are already the delicate pegasi flier more than enough to worry about as-is.

That being said, I suggest we take one of the following remedies:

  • Remove pegasi from these weapons' effective bonus
  • Add the Beast Killer (lance) at a higher price than the Horseslayer, and do Option 1
  • Merge the Horseslayer and Beast Killer's effective bonus but remove Pegasi from Longsword and Halberd which have also mentioned Cavalry units specifically in its description, but increase it's price considerably

Reference:

http://fireemblem.wikia.com/wiki/Horseslayer

"Vegas" Modifier fails to reflect changes in Battle Forecast window

Issue type: problem

Description:

When playing with the "Vegas" modifier (Gamble skill has 100% activation rate for all units), the Battle Forecast / Preview window fails to reflect the halved Hit and doubled Crit because it's done through a skill always activating instead being an actual stat change. The game needs to reflect this visually in this mode, without actually changing the pre-Gamble values (lest it get halved and doubled twice which is no fun for anyone).

Edit: Wow, I made one hell of a typo in the title. I think my eyes need a break

[Fatal] Attempting to Summon a Phantom when there's no free adjacant spaces crashes game!

Issue type: problem

Description:

Attempting to summon a Phantom when there's no available spaces to summon to crashes the game. The crash occurs after Summon is selected, when the cursor to select the desired spawn location would appear.

In other words, before the actual summon is even performed. Not only that, but on the opponent's end, it causes the summoner to despawn.

Man, I'm good at breaking shit. Gotta love Quality Assurance work. :-D


Error Log:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at net.fe.overworldStage.context.Summon.updateCursor(Summon.java:157)
    at net.fe.overworldStage.context.Summon.startContext(Summon.java:53)
    at net.fe.overworldStage.context.UnitMoved.onSelect(UnitMoved.java:110)
    at net.fe.overworldStage.context.UnitMoved.onSelect(UnitMoved.java:24)
    at net.fe.overworldStage.MenuContext.onSelect(MenuContext.java:52)
    at net.fe.overworldStage.ClientOverworldStage.beginStep(ClientOverworldStage.java:277)
    at net.fe.FEMultiplayer.loop(FEMultiplayer.java:327)
    at net.fe.FEMultiplayer.main(FEMultiplayer.java:101)

Examples:

Instructions for summoning were unfortunately too unclear for poor Ewan, causing him to tragically and hilariously despawn into another dimension of elder magic, or commit seppuku. riPepperonis Ewan, your disappearance into the netherworld will not be in vain. The below memorial pic is taken from the "opponent's" (also me) window as the game window for the summoner's team crashed.

2016-04-26--190329_1600x900

Crash upon telling TeamBuilderStage "No I am not ready"

Steps to reproduce:

  1. As a client instance, Connect to server, start game, do draft
  2. In Team Builder, select "Fight" button
  3. In dialog with title "Are You Sure", select "No"
  4. Client crashes

Note that this crash does not occur either during "All Pick" mode nor the local not-connected-to-server team builder.

Miracle always activates if 1st / only hit would be fatal and unit was never damaged

Issue type: problem

Description:

Miracle currently has 100% activation rate if the following conditions are met:

  • 1st / Only hit to unit is fatal
  • Unit has never taken damage before

IMO, this defeats the point of Sages and Bishops who serve a very similar purpose but have inferior movement and can get one-shot at full health (I feel these units could use a Def buff, especially Lucius) in comparison by physical attacks due to not having it.

For better or worse, Miracle's activation rate is suppose to be Luck % if HP > 1.


Reference:

http://fireemblem.wikia.com/wiki/Miracle

"Made in China" modifier doesn't start players with extra gold

Issue type: problem

Description:

See title. Players start with 48,000 gold even though the "Made in China" modifier clearly states, "All weapons have greatly reduced durability. Start with extra gold"


Examples:

Mouse over "Made in China" modifier in FEServer, the description states, "All weapons have greatly reduced durability. Start with extra gold"

Players start 48,000 Gold regardless of if the modifier is active or not.

GBA Re-Move / Repeated Movement / Canto Missing

Issue type: problem feature request (Both :-P)

Description:

I understand that the console version of Canto is currently being debated as stated in #3 , however, a HUGE tactical aspect of Fire Emblem's warfare is missing as mounts and pegasi have always had the option to use their remaining movement after performing the following actions:

  • Rescue
  • Give / Take
  • Trade

Without it, we lose a lot of what makes Fire Emblem, Fire Emblem. For those who complain about this being OP / "broken", I have the following to say:

  • Rescuing without dedicating a lot of turns to a strategic set up results in units losing turns at the very least, and placing themselves in mortal danger due to halved Spd and Skill at worst. It has its costs and is not "free" - being especially punishable once siege weapons are introduced
  • "Git Gud" (Learn to read, bait, and punish your opponent so that this isn't an issue)
  • "Git Even" (Learn to outfit yourself with anti-cavalry and anti-pegasi weapons if you can't Git Gud)
  • Give them a dose of their own medicine

The above points boil down to essentially learning how to Fire Emblem.

The GBA game's version (option to use remaining movement after rescuing, giving / taking, and trading) at the very least should be implemented. This expands the tactical options for players exponentially and allows for tactical movement and positioning of units to take center stage again.


References:

Implement Crossbows to balance Warriors and buff Snipers all at once

Issue type: problem feature request (both)

Description:

Warrior's full Bow access has become a huge problem for the meta according to the sub but no one knew a way to address this. When I was erroneously considering reclassing someone, the problem dawned on me too due to the unit's insane Str, which made me think immediately of Radiant Dawn's own genius solution to this: Crossbows - a type of Bow with Prf for their weapon rank (i.e. support was custom hardcoded so that way they can equip it without giving true Bow access) and set so that only Warriors and Snipers (and their 3rd tiers) could use them, so Warriors will have only restricted Bow access. This also allows the Sniper class to trade off their strength for the security of being able to fight back at 1 range, while someone like Rebecca universally benefits over using any regular bow.

All Crossbows have the following in common: A 1~2 range, 100 Hit % and ignore the user's Str, relying on sheer Mt instead, count as a Bow for the sake of having an effective bonus against Pegasi.
The weakest Crossbow has 24 MT, the legendary Crossbows has 38 MT and 15 Crit. @JustaLevelZero feels their MT should be buffed as their out-of-box stats are too weak in his opinion.

The discussion thread can be found here:
https://www.reddit.com/r/FEMP/comments/4g19iy/balancing_discussion_garcia_warriors_and_bows/

Another reply related to my suggestions can be found here:
https://www.reddit.com/r/FEMP/comments/4cm1vk/balancing_discussion_prompt_snipers/d2e32e6?context=1

The sub seems strongly in favor of this. Before the tourney would be nice but I really want #40 prioritized if possible.


Reference:

http://fireemblem.wikia.com/wiki/Crossbow_%28weapon_type%29

Console Canto for Paladins

Give Paladins Console Canto, the ability to use up your remaining movement after attacking. This would give Paladins the ability to hit-and-run, picking at enemy lines while still attempting to maintain a defensive position.

New Modifier Request: "Imaginary Weapons"

Issue type: feature request

Preface:

Today there was a small discussion about the direction of FEMP, namely the pace of the battles, overall game duration, and balancing involving the proposal of making all units more durable by reducing damage potential across the board for all units, which occurred here: https://www.reddit.com/r/FEMP/comments/4fyxz0/suggestion_longer_battles/

The participants of this discussion seem to be in favor of introducing optional modifiers to FEServer that'll lend to extended play with less severe consequences to combat, primarily for the sake of balancing gameplay for use in more tactics-oriented "friendlies" - that is non-tournament battles. Below is one such modifier, proposed by me. The other is #59 proposed by @JustaLevelZero . I say we create them both so crazy souls like myself can truly "tip the scales" by enabling them both!

Description:

The "Imaginary Weapons" modifier allows for extended, more tactics oriented, play by treating ALL weapon Mt as 0 (because as the name implies, all weapons are now make believe and just a figment of the unit's imagination! Had to give it a cute backstory. :-D ). The goal of this modifier is to use some really funky math to ensure most, but not all, hits deal between 8 - 15 damage on average; lending to longer and more tactical battles. To prevent Generals, Paladins (in their current GK-ish state), Lords, etc. from being invincible as a result of this, and so Swordmasters and Assassins can still deal an acceptable amount of damage, the following measures should be taken:

  • Weapons retain all other stats such as effectiveness bonuses (but due to weapons having 0 Mt, the bonus would be double Str and applied last, after all other rule based calculation instead of tripling Mt), Hit and Crit rates.
  • Elixirs are reduced to 1 quantity (instead of 3) to prevent matches from lasting forever either, but are sold at 2100G instead
    • Recover stave's weapon durability will be reduced to 3. Mend's durability will be halved. Heal and Physic remain unchanged.
    • Until balanced, Rise tome's weapon durability will be halved.
  • All non-magic class units with a Str of 12 or less will have their target's Def treated as 2.
    • Except when fighting a General, whose Def will be treated as 8 to encourage buying an armorslaying weapon but yet leave room for trivial damage as-is
  • Target enemies with a Def of 10 or more will have their Def halved only during combat with a non-magic class unit whose Str is between 13 to 20.
  • Units with over 20 Str will have damage output calculation performed on their target normally, if the result of that calculation would be less than 14 damage, it becomes 14 instead (before other modifiers like #59 are applied)
    • Except when fighting a General, as to not make armorslaying weapons obsolete, their Def will simply be halved.
    • Because Crossbow's ignore Str, and would have 0 Mt in this mode, they'll acknowledge Str (or be the only weapon to retain their MT) in this mode to prevent always doing 0.
  • Target enemies with a Res of 14 or more Res will have their Res halved only during combat with a Tome wielding classes fights them to ensure Sages can still damage each other.
  • It is vital that the battle forecast window reflects these changes when the conditions for triggering them are met in order to prevent a repeat of #60

I avoid the use of the word Luna because I'm not sure if using Luna to do the halving will make work easier or harder for the Battle Forecast window, as I'd like it to display the final outcome of these changes.

Game crashes when attacking with Eclipse tome (new animation)

Issue type: problem

Description:

Game crashes when using the Eclipse tome to attack. This is with the most recent code. Eclipse works fine on v1.3 (both x86 and x64) so this must be due to a recent change. (EDIT: Said change has been revealed to be the new animation. Most likely due to it's physical, not file, size)

P.S.: When compiling and building from the latest source, no one told me if there's argument I need to use in order to generate the x64 version, so I could very well be running the x86 version unknowingly. Please advise.


Relevant Portion of Terminal Output / Error Log:

Loaded res/gui/player_phase.png
Loaded res/gui/blue_flash.png
Loaded res/map_mugshots/ewan_mugshot.png
Loaded res/map_mugshots/ewan_mugshot.png
Loaded res/map_mugshots/knoll_mugshot.png
Loaded res/map_mugshots/phantom_mugshot.png
Loaded res/gui/selectArrow.png
Loaded res/gui/selectArrow.png
Loaded res/gui/x2.png
Loaded res/gui/x4.png
Loaded res/gui/trianglemod_up.png
Loaded res/gui/trianglemod_down.png
EQUIP Ewan 0 EQUIP Ewan 0 ATTACK Phantom 1 
Loaded res/map_mugshots/ewan_mugshot.png
Loaded res/battle_anim/sorcerer_magic_attack.png
Loaded res/battle_anim/sorcerer_magic_critical.png
Loaded res/battle_anim/sorcerer_magic_dodge.png
Loaded res/battle_anim/phantom_axe_attack.png
Loaded res/battle_anim/phantom_axe_critical.png
Loaded res/battle_anim/phantom_axe_dodge.png
Loaded res/gui/gui_tickFilled.png
Loaded res/gui/gui_tickEmpty.png
Loaded res/battle_anim/static/platform_plain_far.png
Loaded res/battle_anim/static/platform_plain_far.png
Loaded res/gui/gui_battleStats.png
Loaded res/battle_anim/static/plain_bg.png
PRELoaded res/battle_anim/magic_effect_null.png
PRELoaded res/battle_anim/magic_effect_null.png
PRETexture not found: res/battle_anim/hit_effect_eclipse.png
java.io.IOException: Attempt to allocate a texture to big for the current hardware
    at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:392)
    at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:342)
    at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:288)
    at org.newdawn.slick.opengl.TextureLoader.getTexture(TextureLoader.java:64)
    at org.newdawn.slick.opengl.TextureLoader.getTexture(TextureLoader.java:24)
    at chu.engine.AnimationData.getTexture(AnimationData.java:113)
    at net.fe.FEResources.getTexture(FEResources.java:69)
    at net.fe.fightStage.FightStage.preload(FightStage.java:246)
    at net.fe.fightStage.FightStage.preload(FightStage.java:218)
    at net.fe.fightStage.FightStage.<init>(FightStage.java:211)
    at net.fe.FEMultiplayer.goToFightStage(FEMultiplayer.java:380)
    at net.fe.overworldStage.ClientOverworldStage$5.execute(ClientOverworldStage.java:521)
    at net.fe.overworldStage.ClientOverworldStage.processCommands(ClientOverworldStage.java:557)
    at net.fe.overworldStage.OverworldStage.beginStep(OverworldStage.java:263)
    at net.fe.overworldStage.ClientOverworldStage.beginStep(ClientOverworldStage.java:249)
    at net.fe.FEMultiplayer.loop(FEMultiplayer.java:327)
    at net.fe.FEMultiplayer.main(FEMultiplayer.java:101)
Exception occurred, writing to logs...
java.lang.NullPointerException
at chu.engine.anim.Animation.<init>(Animation.java:61)
at chu.engine.anim.Animation.<init>(Animation.java:112)
at net.fe.fightStage.anim.HitEffect$1.<init>(HitEffect.java:69)
at net.fe.fightStage.anim.HitEffect.<init>(HitEffect.java:69)
at net.fe.fightStage.anim.HitEffect.getEffects(HitEffect.java:176)
    at net.fe.fightStage.FightStage.processAttackQueue(FightStage.java:361)
    at net.fe.fightStage.FightStage.beginStep(FightStage.java:272)
    at net.fe.FEMultiplayer.loop(FEMultiplayer.java:327)
    at net.fe.FEMultiplayer.main(FEMultiplayer.java:101)
AL lib: (EE) alc_cleanup: 1 device not closed

FEMP has excessive CPU utilization percent

Issue type: problem

Description:

FEMP thrashes CPU with over 50% utilization, this shouldn't be for a turn-based game with 16-bit (possibly 32-bit) 2d graphics. Code needs to run more efficiently and require less system resources.

EDIT: Updated system specs with new findings.


System Specs:

E-Machines ET1352-53 (Upgraded)
AMD Athlon II X2 250 64-bit Dual-Core Processor
NVIDIA GeForce 6150SE onboard GPU
1 GB Shared Video RAM (i.e. Reserves System RAM as Video RAM)
Latest Supported OpenGL Version: 2.1
Max Supported Texture Size: 4096x4096
Display Resolution: 1600x900
8 GB DDR3 RAM
OS1: Debian Linux 8 (Jessie) 64-bit
OS2: Windows 7 Home Premium 64-bit


Examples:

Screenshot show CPU usage
2016-04-20--034127_1600x900

Aid stat

Issue type: feature request

Description:

The Aid stat is a stat all units should have because it simplifies commands like Rescue, Give, and Take. As long as the unit performing the Rescue / Take command's Aid is greater than or equal to the Con of the person being rescued / taken (referred hereafter as the "Traveler" as per FE naming convention), they can Rescue / Take that unit. Likewise, when using the Give command, one can pass the Traveler to another unit so long as the Traveler's Con is less than or equal to the target's Aid.

You can determine any character's Aid by using 1 of these 3 formulas depending on if their on foot, male rider / flier, or female rider / flier:

  • For any unit on foot: Aid = Con - 1
  • For males mounted on horse, pegasi, or wyvern: Aid = 25 - Con
  • Kent & Sain Only: Aid = (25 + 2) - Con
  • For females mounted on horse, pegasi, or wyvern: Aid = 20 - Con

This makes addressing #41 MUCH easier without tiers or anything confusingly complex and unnecessary.


References:

http://fireemblemwiki.org/wiki/Aid
http://fireemblem.wikia.com/wiki/Aid


http://fireemblem.wikia.com/wiki/Sain (See section labeled "Promotion Gains")
http://fireemblem.wikia.com/wiki/Kent (See section labeled "Promotion Gains")

Add Fog of War and (FE5) Thracia 776 Fog of War modifiers to FEServer

Issue type: feature request

Description:

For the uninitiated, (and for the sake of thorough documentation) the Fog of War mechanic in Fire Emblem causes a fog to obscure the map from the player's vision. All units have a set field of vision (this is often anywhere between 6 to 8 spaces for thief unit tiers such as Assassins who serve as the party's scout, and 3 spaces for everyone else). These modifiers, needless to say, will lend a lot to tournaments as it prevents you from seeing what units and weapons your opponent has chosen (Draft Mode would need to somehow implement double blind picks when Fog of War is active)

  • Classic Fog Of War modifier:

In traditional Fog of War, the map is still visible (although dimmer or hazy for tiles outside each unit's vision), but enemy units are obscured if they're outside the player units' visual range. Ranged weapons also cannot target an enemy unit outside the player's collective field of vision (i.e. the enemy unit must be visible in order to attack it). If you bump into an enemy unit while moving through the fog, that unit who bumped into the enemy is immediately forced to Wait. As such, when selecting where to move, the movement path will allow spaces occupied by enemies to be considered as free / valid in order to not reveal their positions.

  • Thracia 776 (FE5) Fog of War modifier:

See also traditional Fog of War, EXCEPT that spaces outside each unit's visual range are completely blacked out. This adds a trial-and-error aspect to the battle. In addition to a unit being automatically forced to wait if they bump into an enemy unit while moving through the fog, I'd also suggest adding that If you bump into an obstacle (such as a wall) that the unit is forced to wait as well. As such, when selecting where to move, the movement path will allow spaces blacked out by the fog to be treated as free / valid for the purpose of not revealing their locations. In theory, this should be the easier of the two modifiers to add since we don't need any additional tilesets due to the tiles outside of visual range being blacked out.

In addition, FoW would greatly benefit from the following features:

  • We need an exclamation mark indicator that alerts the player that they bumped into an enemy unit. With it missing, my testing partner was misled into thinking they misclicked or that a bug occurred instead of a legit game mechanic forcing their unit to wait. @eliatlarge Can I leave this to you since this would involve adding the needed graphics and such?

  • Add a Day / Night setting to make the fog easier to see.

  • PoR and later reduce the Thief's visual range to 5, FE 1 remakes reduce the Thief's visual range to +1 over that of the other units, meanwhile FE5 gives no sight bonus at all to thieves. I also like the current range too, but only for larger maps. Can you make this a server setting as well please?

  • Settings to control what spectators can see during FoW matches (i.e. Red Only, Blue Only, Mutual Fields of Vision Only, Everything, Nothing)

  • Add server setting to preventing "poking" / "brute forcing" the fog (constantly moving and canceling to scout / cheat). If the restriction is enabled, the user must commit to the location selected if they moved through fog.


References:


Examples:

Traditional:

16-h13p10

Thracia 776 (FE5):

2-fe5_ 2 001

New Modifier Request: Pavise+ Mode

Issue type: feature request

Preface:

Today there was a small discussion about the direction of FEMP, namely the pace of the battles, overall game duration, and balancing involving the proposal of making all units more durable by reducing damage potential across the board for all units, which occurred here: https://www.reddit.com/r/FEMP/comments/4fyxz0/suggestion_longer_battles/

The participants of this discussion seem to be in favor of introducing optional modifiers to FEServer that'll lend to extended play with less severe consequences to combat, primarily for use in more tactics-oriented "friendlies" - that is non-tournament battles. Below is one such modifier proposed by @JustaLevelZero .

Description:

Pavise+ Mode allows for all units to have the Pavise+ skill (FE: Awakening's Pavise that always activates - halving all damage dealt). It's important to note that the battle forecast window should reflect these changes so we don't have a repeat of #60 .

@JustaLevelZero had this to say in the sub:

I haven't actually taken the time to think about this too much, but maybe we can make a mode that caters to your desire for more lengthy matches? It won't be in tournaments, but it'd be playable in friendly matches.

I'm thinking of something like "Pavise mode" where every unit has a 100% Pavise activation rate and all damage is halved. That would at least make units last longer without doing crazy stat edits. I'd play it.

For those who truly dare to "tip the scales" they can enable #58 too to really cut loose!

Cursor starting position isn't the location of the player's Lord during Player Phase

Issue type: problem feature request (both)

Description:

The default behavior of FE games is to return / position the cursor over the player's Lord at the beginning of each Player Phase (because Lords can fall without instantly losing the match in FEMP, except during Seize the Throne, as a failsafe, in the event that the player loses their Lord, it should then position the cursor over the highest level unit).

Instead, the cursor is usually somewhere near the top-left corner of the map. Forcing the player to either locate their team manually, or use the C button to cycle to one of their units.


Examples:

2016-04-26--190044_1600x900

Crashes immediately after loading screen finishes

Issue type: problem

Description:

In both the v1.2.1, v1.3 x86, and v1.3 x64 "non-x86" versions, the game will crash immediately after the loading screen completes due to a RuntimeException. This occurs whenever the app.config generated by the game has a value greater than 0.0 for the "VOLUME=" setting within the file. Even the stock app.config file created by the game when cleanly installed / extracted, produces this behavior.

It should be noted that the bug only occurred on Windows systems, being personally observed on both Windows 7 Home Premium 64-bit Edition, and Windows 10, while using Oracle's Java 8. When tested on Debian Linux 8 (Jessie) 64-bit, with OpenJDK8 (which includes OpenJRE8) the game ran without crashing at all, regardless of the value assigned to "VOLUME=".

That being said, I'm led to believe that this could be a compatibility issue with Oracle's Java, or Windows itself. I can't find a Windows binary of OpenJDK8 to confirm or deny this theory though. Please advise.

Edited to fix typos.


Examples:

Raw text from error_log_client3464147.log:

java.lang.RuntimeException: java.lang.NullPointerException
    at net.fe.SoundTrack.loadAudioNames(SoundTrack.java:106)
    at net.fe.SoundTrack.loop(SoundTrack.java:46)
    at net.fe.FEMultiplayer.setCurrentStage(FEMultiplayer.java:392)
    at net.fe.FEMultiplayer.init(FEMultiplayer.java:146)
    at net.fe.FEMultiplayer.main(FEMultiplayer.java:96)
Caused by: java.lang.NullPointerException
    at net.fe.SoundTrack.loadAudioNames(SoundTrack.java:95)
    ... 4 more
Windows CMD Output: (Crashes upon transition to title screen where music is suppose to play)
C:\Users\Drew\Desktop\Fire Emblem Multiplayer>java -jar Fire_Emblem_Multiplayer_V2.jar
Wed Apr 20 14:47:55 EDT 2016 INFO:Use Java PNG Loader = true
default_med(bitmap font) loaded
stat_numbers(bitmap font) loaded
msg_text(bitmap font) loaded
1.20 NVIDIA via Cg compiler
20
Wed Apr 20 14:47:56 EDT 2016 INFO:Initialising sounds..
Wed Apr 20 14:47:57 EDT 2016 INFO:- Sound works
Wed Apr 20 14:47:57 EDT 2016 INFO:- 64 OpenAL source available
Wed Apr 20 14:47:57 EDT 2016 INFO:- Sounds source generated
default_med(bitmap font) loaded
stat_numbers(bitmap font) loaded
msg_text(bitmap font) loaded
Loaded res/gui/rescue.png
Loaded res/gui/runes.png
Loaded res/gui/connect_button.png
Loaded res/gui/team_builder_button.png
Loaded res/gui/title.png
Loaded res/gui/title_two.png
Loaded res/gui/title_slide.png
Exception occurred, writing to logs...
java.lang.RuntimeException: java.lang.NullPointerException
        at net.fe.SoundTrack.loadAudioNames(SoundTrack.java:106)
        at net.fe.SoundTrack.loop(SoundTrack.java:46)
        at net.fe.FEMultiplayer.setCurrentStage(FEMultiplayer.java:392)
        at net.fe.FEMultiplayer.init(FEMultiplayer.java:146)
        at net.fe.FEMultiplayer.main(FEMultiplayer.java:96)
Caused by: java.lang.NullPointerException
        at net.fe.SoundTrack.loadAudioNames(SoundTrack.java:95)
        ... 4 more
AL lib: (EE) alc_cleanup: 1 device not closed

C:\Users\Drew\Desktop\Fire Emblem Multiplayer>

These results remained consistent with both the JRE and JDK.

For comparison's sake, when ran successfully through my Linux terminal, I get the following.

Linux Terminal Output: (Successfully reaches title screen)
drew@Mint-Drop:~$ cd .Fire_Emblem_Multiplayer_V2/
drew@Mint-Drop:~/.Fire_Emblem_Multiplayer_V2$ java -jar Fire_Emblem_Multiplayer_V2.jar
Wed Apr 20 15:20:21 EDT 2016 INFO:Use Java PNG Loader = true
default_med(bitmap font) loaded
stat_numbers(bitmap font) loaded
msg_text(bitmap font) loaded
Wed Apr 20 15:20:21 EDT 2016 INFO:Initialising sounds..
Wed Apr 20 15:20:21 EDT 2016 INFO:- Sound works
Wed Apr 20 15:20:21 EDT 2016 INFO:- 64 OpenAL source available
Wed Apr 20 15:20:21 EDT 2016 INFO:- Sounds source generated
default_med(bitmap font) loaded
stat_numbers(bitmap font) loaded
msg_text(bitmap font) loaded
Loaded res/gui/rescue.png
Loaded res/gui/runes.png
Loaded res/gui/connect_button.png
Loaded res/gui/team_builder_button.png
Loaded res/gui/title.png
Loaded res/gui/title_two.png
Loaded res/gui/title_slide.png
1.20 NVIDIA via Cg compiler
20

Upon successfully reaching the title screen in Linux ONLY, complete with music, I closed it as this was just to show that Linux can reach the title screen with the music enabled just fine with the default settings. I noticed some messages appear in a different order when under Linux, not sure if that's relevant but figured I'd show you anyways.

"Empty" Level Ups / Please FIX Growths

Issue type: problem

Description:

When training units, multiple units, Sain, Eliwood, Eirika, Edward and especially Marisa immediately come to mind, where despite paying EXP, not a single stat increases (by a whole number anyways)!!!

My understanding of why this occurs is because growths are fixed in a manner where stats increase by fractions of a point if their growth rate isn't 100% in a stat. Sadly, this method results in numerous occasions where nothing increments to the next number and the character gets an "empty" level-up where no single stat increases by even 1 point - which not only is a waste of the user's EXP, but then forces the player to give the EXP to another unit (assuming they have enough EXP to level someone other than the affected unit) when they want to the buff the desired unit - defeating the point while crippling them at the same time.

While not as bad, there's quite a few levels where only HP goes up as well.

The FE games had safeties to prevent this by either re-rolling until at least one stat increased (which we can't do since RNG is our enemy with competitive team building), or forcing a minimum of 3 stats to go up per level (as seen in the Tellius series when awarding Bonus EXP - which our system is very reminiscent of - to a unit who reached their primary growths stat caps) instead of using decimal increments while praying something goes up.

I understand that fixed growth are vital to ensure consistency on a competitive level, so I'm not sure what kind of fix to propose with our current system without the need for potentially major rebalancing. Personally I like the Tellius series Bonus EXP system where a minimum of 3 stats increase every level in order to make every level-up meaningful, especially in light of the fact that the training aspect is essentially just that: awarding "Bonus EXP."

Can someone PLEASE do something about this?


TL;DR: Decimal based growths sometimes result in Level Ups where not even one stat increases to the next whole number. This wastes the player's EXP, cripples units, and affects all units going from Lv 1 to 2 thus wasting a minimum of 4800 EXP collectively. It also tends to happen a lot from 11 to 12. Marisa experiences this misfortune 3 times before reaching Lv 10. RNG growths aren't an option so the re-rolling that FE does to prevent this is out. Our EXP training system very much resembles the Tellius series Bonus EXP System. Perhaps we should mirror that further and just increase stats by whole numbers instead, with a minimum of 3 stats increasing per level.


Examples:

  • All units (or close to it) when leveling from Lv 1 to Lv 2 - effectively wasting a combined total of 4800 EXP on an 8 unit team.
  • Dart, Edward, Eirika, Eliwood, Sain, etc. when Leveling Up from Lv 1 to 2, and 11 to 12.
  • Marisa when Leveling Up from Lv 1 to 2, 5 to 6, AND 9 to 10
  • The list goes on and on

P.S. Sorry if anyone gets notification spam from all my edits, I'm pretty scatterbrained. Also, I seemingly fail at proofreading today :-/

Lethality shouldn't activate against Lords

Issue type: feature request

Description:

As it stands, the Lethality skill works. However, an important catch to Lethality is that it's meant to never work on "boss units", which in FEMP would translate to Lords. It's description in all games that have it even say, "This skill is ineffective against certain units" As-is, Lethality in its current state is OP in matches with the Seize the Throne victory condition as the player loses if their lord falls.

I propose that we make Lethality more accurate in this respect by making it have a 0% activation rate against Lords.


Reference:

http://fireemblem.wikia.com/wiki/Lethality

Weapon Request: Slim weapons

Issue type: feature request

Description:

Sometimes you just NEED to land a hit without fail, especially in clutch moments of the game; the battle can't, and shouldn't always fall to RNG. That's where weapons like the Slim Sword, Slim Lance, Hatchet (Crossbows will serve this purpose for Warriors since the sub seems to be greatly in favor of that to balance Warriors), and Short Bow come in. They have lower Mt (about half that of Iron weapons) than even Iron weapons, but often have a 95 ~ 100 Hit % stat (except for the Hatchet which is 85 Hit % due to its 1-2 range) and 5% Crit while coming at a price comparable to Iron weapons.


Reference:

http://fireemblem.wikia.com/wiki/Slim_weapons

Change audio system to use wavs to prevent memory overflow

Issue type: problem

Description:

OGG files are compressed. when the game loads them, the files load into memory, which can cause issues with overflow in systems with lower VM memory, such as those using java x32. Using WAVs instead should result in higher deployment size but lower impact on memory.

FEServer lacks Client Version & Integrity Checking

Issue type: problem

Description:

To my knowledge, as per @eliatlarge 's comment on #45 , FEServer doesn't perform version checking, it's simply trusts that all players have the latest release, didn't mod said release, and are aware said release is available. However, life happens, and you inevitably get that player who missed the memo as noted when @eliatlarge said (emphasis was added by me to highlight the point):

certain incompatibilities can render the clients unusable, but if no one knows this, they complain to me that the normal game is broken.

Case in point, we had two people complaining that the match would end randomly for them just whenever. We came to realize it was because one had been using an old/modified version with different stats, which had a fighter die on one end on not the other, screwing them both over.

We can't just simply assume that everyone is on the same page, as this is begging for trouble both now, and especially down the road when there'll be much larger discrepancies in the form of new classes, weapons, etc. For this very reason, FEServer should be comparing client version numbers to ensure everyone is using the same version, and then if that initial check passes, it should be comparing some form of checksum or hash of the jar to ensure that the player didn't modify it - however, people will want to make change music, make custom maps, etc. which is why #45 also needs to be a thing so that resources like music aren't factored into the integrity check.

Clients that fail the check will be refused and sent back to the title screen (which should clearly display the client's version number)

While FEServer should have this failsafe enabled by default, it should also have an option (at the host's own risk) to disable it so that players and developers alike can playtest preliminary balance ideas.


Depends (Partially) On:

#45 : Allow Loading of External Resources


Examples:

Problem:

certain incompatibilities can render the clients unusable, but if no one knows this, they complain to me that the normal game is broken.

Case in point, we had two people complaining that the match would end randomly for them just whenever. We came to realize it was because one had been using an old/modified version with different stats, which had a fighter die on one end on not the other, screwing them both over.

Suggestion: Give mounted Lords the Savior skill (along with their other skills)

Issue type: feature request

Description:

The Savior skill allows a unit to rescue without incurring the universal halved Spd and Skill penalty. It was normally assignable with a scroll, and thus never belonged to any class as a base skill. Lords, especially in Seize the Throne campaigns, are the single most important unit and I feel that it might be interesting if the lesser used mounted Lords could rescue without penalty. This can also get FAR more interesting if #3 and #51 are addressed.

Then again, some argue that lord units are OP enough in comparison to vassals. Still, I think it'd be interesting if the player's lord had the option to safely remove one of their own units from play. All of them have enough Con in their native games to prevent simulating invalid rescuing like #41

I won't contest if this gets denied, but I figured it'd be worth mentioning.


Reference:

http://fireemblem.wikia.com/wiki/Savior

Assassin "Disarm" Skill

Give them the ability to steal weaponry. Just this alone gives Assassins a major niche. We haven't yet thought of a way someone could abuse this... but there's probably a way to abuse this.

Updated: testing in "Aq" branch, they should be able to only dequip an enemy unit for a turn, no actual stealing.

External Map Editor

Issue type: feature request

Description:

I recall reading a tutorial on the subreddit somewhere that there is a map editing interface within FEMP, but it requires having an entire java development environment installed just to access it. Can we make this utility a separate java executable, along with implementing my other feature request #45 (Making resources such as music and maps external, like with the team and config files)?

I'd love to be able to make some custom maps in a way that doesn't require an entire development kit.

[Fatal] Game crashes if player presses `X` during the Command Menu after a unit uses Take

Issue type: problem

Description:

Actual Behavior:

The game crashes when a player presses X during the Commands menu that appears after having their unit uses the Take command.

Desired Behavior:

Instead, as per the GBA games, this should simply close the Commands menu and make the unit Wait (or return to the map in order to access their remaining movement if they have Canto) when pressed.


Error Logs:

java.lang.IllegalStateException: No valid targets found
    at net.fe.overworldStage.SelectTargetContext.findTargets(SelectTargetContext.java:83)
    at net.fe.overworldStage.SelectTargetContext.startContext(SelectTargetContext.java:54)
    at net.fe.overworldStage.OverworldContext.onCancel(OverworldContext.java:54)
    at net.fe.overworldStage.context.UnitMoved.onCancel(UnitMoved.java:138)
    at net.fe.overworldStage.ClientOverworldStage.beginStep(ClientOverworldStage.java:279)
    at net.fe.FEMultiplayer.loop(FEMultiplayer.java:335)
    at net.fe.FEMultiplayer.main(FEMultiplayer.java:101)

New Druid-only tome possibilities

  1. Luna - The ability to ignore resistance already gives Druids a good way to counter Sages, Valkyries, and other Druids.
  2. FE6 Eclipse - This isn't the one that halves HP; this is the one that puts an enemy at 1 HP. To counteract the insane power of this tome, it would have low accuracy. On the other hand, we could give it perfect accuracy but make it half HP instead. I'm not sure which method I like more, and like to hear others' opinions. Regardless, just this and Luna already give Druids a solid support role.
  3. Stone - This is the Gorgon tome from FE8. It turns a unit to stone for 5 turns. If this becomes too abusable, we might need to introduce the Restore staff alongside this.
  4. +5 speed to Nosferatu - Okay so this isn't actually another tome. However, we thought it necessary to add a +5 speed bonus to the Nosferatu tome. Keep in mind we only want this to happen IF weapon weight is introduced to the game, because this should counteract it.
  5. Rise - This is the first of the two made-up tomes. This one summons a phantom, pretty much exactly like Summoners do in FE8. This would give Druids the ability to end a stalemate by sending a Phantom into enemy lines, which happens very often in FEMP.
  6. Reborn - This one will probably be controversial. This tome allows Druids to summon back a dead unit with all stats lowered by 2. It has 1 use, and will be very expensive (more expensive than the sacred weaponry... we agreed on $20,000). You decide on how useful that tome could be, and we can nerf it or buff it (or not add it in at all) from there.

[Visual] Phantom names extend past name window during encounters

Issue type: problem

Description:

As it stands, Phantom names with numbers already dig into the border of the name window (as shown in the first picture) during encounters. If that number becomes a double digit, it'll break through the name window altogether (as shown in the last two pictures).


Examples:

2016-04-26--211701_1600x900
2016-04-26--112023_1600x900
2016-04-26--211808_1600x900

Anyone can Rescue Anyone without regard for what would be Rescued Unit's Weight / Con

Issue type: problem

Description:

Currently, any unit can rescue another unit as weight / Constitution, and Aid haven't been implemented. This results in such curious scenarios as Matthew being able to rescue Oswin. Yes, I attempted this, and yes, the game let me. This applies to Giving and Taking as well.

I've been told that implementing Con and Aid stats, which would fix this, would involve tons of coding, so for the time being, a temporary / sloppy workaround would be to specifically list which units CAN'T be rescued by the rescuing unit.

EDIT: Changed title for clarification. Fixed typos

Graphical assets for fighting from a Fence are Missing!

Issue type: problem

Description:

When a unit positioned on a Fence is involved in an encounter, the resources needed are missing, triggering the failsafe textures named Whoops.


P.S.: I'm loving the ProTactics mode! ^^ Thank you!_


Examples:

2016-04-26--100948_1600x900
2016-04-26--100915_1600x900
2016-04-26--101333_1600x900
2016-04-26--101405_1600x900

Game intermittently softlocks. Online protocol suspect.

Issue type: feature request

Description:

As it is, instruction packets are sent once and only once, resulting in tied up games when packets are dropped. I propose that we allow for tcp-style communications -- that is, to make sure the programs confirm they have sent after sending.

[Visual] Having more than 9 units on a team cause Results screen to not fit

Issue type: problem

Description:

If an army has more than 9 units on their party throughout the course of the game (only possible with Phantoms), the Results screen won't fit in the window. A solution to this could be something similar to Smash Bros., where the results would slowly scroll downward, then return and repeat.


Examples:

2016-04-26--213239_1600x900

Game-ending bug

Here's the error log:

java.lang.NullPointerException
at net.fe.unit.Unit.move(Unit.java:148)
at net.fe.overworldStage.ClientOverworldStage.processCommands(ClientOverworldStage.java:416)
at net.fe.overworldStage.OverworldStage.beginStep(OverworldStage.java:184)
at net.fe.overworldStage.ClientOverworldStage.beginStep(ClientOverworldStage.java:167)
at net.fe.FEMultiplayer.loop(FEMultiplayer.java:263)
at net.fe.FEMultiplayer.main(FEMultiplayer.java:77)

Feature Request: Growth Rate Style setting for FEServer

Issue type: feature request

Description:

Rather than add yet another modifier, since growths and balance have been discussed and debated time and again. I propose that for those who want a more "traditional" / "organic" experience, we add a "radio button" type option that allows the host to select between either Fixed Growth Mode (our current system) and "Classic Fire Emblem Mode" (RNG growths using their actual FE growth rates).

While this lends nothing to tournament play, it is quite valuable for the average FE fan who just want to have fun with their friends without all the stress and pressure of more competitive play. It also prevents games between a pair of players who always main a particular team from going stale as even the same team will never be the same twice.

To prevent RNG abuse during the training process however, the client will locally remember what each level granted that round so if they chose to level down, they can't level up just to re-roll a particular level or group of levels over and over. If they wish to re-roll, they'll have to risk all levels by rejoining the server and loading their team again.

Implementing this shouldn't prove to be too big of a hassle since the team builder, to my knowledge, only saves their level and equipment, meaning that a team saved in one mode can still be interchangably loaded into another with no foreseeable conflict. (correct me if I'm wrong about what is actually saved to the team file) When a saved team is loaded while in RNG growths are enabled, it'd simply roll for each level behind the scenes.

FEServer will have to do slightly heavier lifting though as it'd have to report actual stats with the team summary at the beginning of the match if "Classic Fire Emblem Mode" is selected, but that's about it.

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.