Giter Club home page Giter Club logo

rasa.net's People

Contributors

blumster avatar d10sfan avatar damuras avatar infiniterasadev avatar kdrefugee avatar krssrb avatar sadral avatar sirrion1 avatar th1723 avatar vitalyo7 avatar xioor 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

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

rasa.net's Issues

Game server crash on first map load

The game server crashes on the first attempt to load into the game after character selection.

Steps to Reproduce:

  1. Start the auth and game servers
  2. Launch the game client and login in and select a character.
  3. Double click the character to load into the game

Actual Results:
The game server crashes and the client disconnects. The exception thrown is here: https://github.com/InfiniteRasa/Rasa.NET/blob/master/src/Rasa.Utils/Cryptography/GameCryptManager.cs#L66

Expected Results:
Game server does not crash.

Workaround:
Restart the game server and leave the game client running

Additional Info:
It was suspected that there is a packet being sent on first load related to telemetry.

Chat System

/clan (also /c)
/squad (also /sq, /g, or /p)
/say or /local (also /s or /l)
/tell [player's last name] (also /w [player's last name])
/# (where # is a number; it represents a channel specific to the area you are in)

Clan System

Clans are a group of people who join together as a group under one name. As of right now there aren't many options for clans, however they are a good way to find people you are familiar with and like grouping with besides your friends menu.

In order to form a clan press CTRL and use the radial menu player options next to whomever you want to invite.

There are currently only 4 ranks in a clan for you to edit and use at one time, and only one clan leader at any given time. So, there can not ever be more than one clan leader. Everyone else in the clan can be promoted amongst the other 3 ranks as you see fit.

Manual Commands for Clans

/clan message: Sends message to the clan chat channel where everyone in the clan can see it. (Synonyms: c)
/clandisband: Disband the clan. (Synonyms: disbandclan)
/claninvite playername: Invite playername to join the clan.
/clankick playername: Remove playername from the clan.
/clanleave: Leave the clan. 

Instances ( Operations )

An Operations zone (commonly known as an instance) is a "private" zone. Unlike battlefield zones, which are shared among many parties and individual players, for an instanced zone the server creates an identical copy of the zone for each party that enters it. That means you will never run into any other human player in an instance (except for other members of your party), only NPCs.

Instances are an important element of storytelling in Tabula Rasa. Missions inside instances are usually in sequential order and mission dialogues are importants for insight into the background story. Instances make heavy use of scripted events and dynamic environment.

Unlike on the battlefield, monsters in instances respawn much less frequently or not at all, so it is possible to clear an area of any hostiles and explore it freely. Zoning in or out of an instance will "reset" it though, that means all dead hostiles respawn and objectives of unfinished missions are reset. Some instances have a hospital, others don't. Those who don't will "kick" you out of the instance if you die, which means you have to re-enter, the instance will be reset, and you have to start from scratch.

Most instances have multiple Logos shrines.

Main loop

Implement a main loop
The main loop should run once every 100 ms, but it should be configurable.
Duties:
Process the incoming packets
Update the entities on the server (and their AI in the future)
Process the outgoing packets
Update server timers (Like shutdown timer, restart timer, etc...)

Abilities

Game Play Systems

  • UI
  • Combat
  • Character

Cloning System

TaRapedia

For additional flexibility, and in order to allow the player to test the different classes without leveling from scratch, the game allows the player to clone a character. Cloning a character requires a clone credit.

Cloning a character creates a new character which can be named and customized, just as a new recruit would be. The clone will have the same attribute points (Body, Mind, Spirit, plus any unspent attribute points), class, level and xp as the original character, but will have his/her training points reset.

The clone will begin with no money and no weapons, but with a full set of level 1 Motor Assist Armor (plus any new recruit accessories chosen). Money and items can be transfered to the clone just like any other character via the footlockers. Any missions that have been completed by the original character are considered to have been completed by the clone (and thus cannot be retaken, unless they are normally repeatable). The clone will have no active missions in the mission log though, and thus any progress towards any uncompleted mission will be lost*.

  • If you clone your character before completing a Targets of Opportunity quest and claiming your clone credit, special rules apply. Any non-repeatable portions of the quest that have already been completed by your original character will be credited to your new clone. These include things like completing the main story missions in a zone, previously fulfilled quests, etc. Any repeatable portions of the quest, such as kill tasks, must be started over and completed by the clone.

Purpose of Cloning

The design intent of clones is to allow a character to clone prior to selecting a class when a new tier is reached (indeed, a clone credit is automatically awarded when a player reaches enough xp to select a new class). This allows a player to experience both branches of a tier.

Additionally, the refunding of training points makes cloning a viable method of rechoosing how you spend those points. Often top-tier characters will get skills that make points spent in lower-tier skills useless. Making a clone is an opportunity to reclaim those points and spend them in developing more useful areas.

Creating a Clone

A clone may only be created at the character selection menu. The player is provided with a button "Clone" in the tier selection menu for convience, but this simply returns them to the character selection menu so a clone can be created from there. To clone a character, simply select them on the menu and hit the "Clone" button. It will only be available if the selected character has 1 or more clone credits. The number of clone credits the currently selected character has can be seen in the information listed on the left of the screen.

Control Point

Control Points (CPs) are types of bases, the control of which alternates between the AFS or Bane factions. CPs can be seen on the map window, where they are identified by flag icons reflecting which faction is controlling that particular point: Blue for AFS, red for Bane.

There are two modes of gameplay, depending on which faction is controlling the CP. During either mode, reinforcements are constantly being deployed by each faction's dropships. Taking over a CP requires using the base's central Control Point structure, a tall Eloh obelisk highlighted in the faction's color.

Friend List

Adding another player to your friends list adds their Global Username. So no matter what character they are on, they will appear on your friends list. In order to add someone to your friends list all you need to do is click your friends list to open it, click Add Friend, and type only your friends last name. You do not use their full name or their first name.

Network architecture

The Auth server must have an interface that accepts socket connections from the global servers.
They can report their statuses (server id, current player count, max player count and online status (can appear offline for a while if wanted, for example))

The Zone servers connect the same way to the Global server, they register themselves as available servers, and the Global load balances it's zones on the available zone servers.

Voice Chat

Voice chat is a great way to interact with members of your squad. In order to activate voice chat, everyone in your squad who you want to hear you, must go to options, and game and enable voice chat for them to hear it. Once this is done the hot key for the chat is 'v'. Just hit 'v' and chat. (Remember to release 'v' when you are done talking!)

Teleport / Waypoint / Travel

You must walk over a teleporter to active it. Once activated, that character can always teleport back to that base, unless it is a control point under Bane control.

Once you walk over the teleporter, a menu will appear showing where you can currently go within the Zone. These devices will only move you within your current Zone. To move from Zone to Zone, you must walk or use a Dropship as another means of travel.

If available, you may also switch to another "sub-server", so to speak. Some overpopulated Zones will have multiples of itself for the players. For example, you may have the option to teleport to Divide[3] instead of the normal Divide[1].

Note that you can not switch "sub-server" and go directly to a control point. You must enter that "sub-server" and then teleport to your control point destination.

Character Titles

Upon earning a title, you can choose to display it next to your name.

Database rewrite

Entity Framework
Store the data in memory, occasionally saving them to the DB

Groups / Squads

There are three ways to invite to a group: The manual command /invite (Name); right-clicking on a friend you added to your friends list; or by pressing the CTRL button and using the player options on the radial menu when standing next to the person you want to invite to your squad.

Manual Commands for Squads

/squad [message]: Sends message to the squad channel where everyone in the current squad can see it.
/disband: Removes all members from a squad.
/invite [playername]: Invite playername to join your squad.
/kick [playername]: Kick playername out of your squad.
/leave: Leave your current squad. This will also remove you from an instance. 

Character Storage

Character Storage in this game is a footlocker which can store any item your character can carry including credits. The footlocker is global, and therefore is common among all your characters on your account. If you place an item in the footlocker on character A, then character B can get it as long as they are on the same account. Even if you delete all your characters your footlocker will still retain its items.

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.