Code Monkey home page Code Monkey logo

battlegame's Introduction

battlegame

Run everything with version 2020.3.14f1 of unity. See https://github.com/WilsonCWu/battlegame/wiki for resources (We just started this page recently, so send a message if you think something should be added!).

Notes:

  • Install using unity hub, not standalone! The version probably won't be in the hub, but you can find it https://unity3d.com/get-unity/download/archive, which should open it in hub.
  • When installing unity, make sure to install the android plugin, and all the extra addons (there might be a hidden dropdown, not all things are selected by default, even after android is selected)
  • Set android as the target platform before opening the game, otherwise you'll have to import twice ๐Ÿ™ƒ
  • First import (first time opening the project) is expected to take a few hours, it takes a while to import
  • You'll probably need ~40gb to get everything set up, between unity/ide/project. Also note that when installing Unity gives total space needed to install, but this figure is totally inaccurate for some reason, you'll need a few more gbs than it recommends
  • Out of a sample size of 1, there is a 100% failure rate if you change the default unity install location.

Adding Unity on Ubuntu

As mentioned above, we use Unity version 2020.3.14f1. To install it on Ubuntu, first install the Unity Hub from https://unity3d.com/get-unity/download (this is an AppImage file). Then, run the Unity Hub executable (ensure you modify the appropriate permissions):

chmod +x UnityHub.AppImage
./UnityHub.AppImage

Add the appropriate license through the Hub interface. You may notice that the Hub does not provide all the Editor versions for installation (only the latest/LTS versions). As such, we can pass a deeplink directly to the executable to get the appropriate version (this deeplink is obtained from https://unity3d.com/get-unity/download/archive):

./UnityHub.AppImage unityhub://2020.3.14f1/ceef2d848e70

The above command should initiate the installation process for the correct version.

battlegame's People

Contributors

wilsoncwu avatar daniel-wang avatar yanske avatar shaunlazaro avatar advait-m avatar michaelkim avatar lhsounddesign avatar nathanlo99 avatar tt1103 avatar janet4315 avatar

Watchers

 avatar

battlegame's Issues

Damage text

Damage text needs a revamp:

  • scaling doesnt work on different resolutions
  • the random left/right drift is annoying, fade straight up is cleaner

Redemption codes

We need a way to submit one time use redemption codes. The database needs to store all valid codes and what they will award on success, and each user needs to track what codes they've already redeemed

Loading screens

Loading scenes for transitions into ingame, and to load the main menu. Should have a debugger in the corner so we can see if there is load errors, and trigger some function that makes a popup for load error (ie failed login, or server under maintainence)

Character items

Item features needed:

  • viewing menu of all items from main menu
  • equipping menu on each character profile (boots, armor, hat, weapon, trinkets x2)
  • database updates: items need types for the 5 ^, and types for non-equip items
  • items need a list of status effects that they will apply, and the relevant half ingame. status effects include the basic stat modifiers (perm status effect)
  • set item equips to be 1-to-1 on django db
  • Duplicate equiping: we want basic, low tier equips to be equipable on multiple people (assuming you have multple copies), but unique equipment only on 1. this prevents balancing issues like 6 GA abilities

database backups

database should be automatically backed up routinely. digitalocean has a built in method, but its paid, and im not sure it will integrate with what we have

General Optimizations

  • Health bars each have their own canvas. Move to main canvas and build a character tracker.
  • Pool particle effects
  • server calls are pretty inefficient; way too many REST calls

Referral codes

  • create referral menu/button in the settings, similar to redemptions

Features:

  • display copy-able referral code, that can be inputted in either the referral page or code redemption page
  • on redemption, gives rewards to both user and code owner
  • make quest to track total referrals, so we can give bonuses at big milestones (alot of gems)

Other:

  • hard: investigate how to/ if its possible to create some sort of link generator from the game that generates a message like "Hey, download the game by clicking this www.salutationstudio.com/?referralCode=123". Routing to appstore/playstore is relatively easy, but im not sure how we would pass forward that referral code
  • write up documentation on how we can prevent referral scamming (best i can think of is to track device id's, banning users that got 5+ referrals or something from a single device id)

Add new characters

9 new characters exist ingame, but need to be added to the prod database. Character names can be found in Scripts/Character/Moves/Moves.cs at the bottom, and only the archer and mage should be ranged.

  • Update the base characters model to reflect the new characters. Viking and archer are already set as an example, but the other two need to be updated, and 5 more need to be added.
  • under characters, give testWilson and test3 some copies of the new characters
  • under teams, update team 3 (i think thats the copy test wilson uses) to use the new updated characters owned by test wilson
  • under placements, update some of them to use the new characters owned by test3
  • do a few test battles, check if the updating succeeded

Lighting

There's something weird happening with lighting. everything is super unsaturated in gameview, currently being compensated with a maxed saturation filter. Also, shadows are not rendering even with the right shadow settings.

Replays

Currently, the sim already generates a full replay history, so implementing this would just be serializing the command history and storing initial state

We'd want this for sure for tournament mode, and we want to give people the option of sharing replays with friends of any game they played (only store replays for a few days by default or something)

Revamp placement script

The current placement code for starting a battle doesnt work well. Taking a character off the board causes issues, selecting enemies shouldnt be possible, and the code in general needs refactoring. Most of the code is in Scripts/GameControllers/PlacementManager

Some issues:

  • tile colors dont reset properly at match start
  • sometimes crashes when dragging characters to and from game
  • enemies should not be clickable, disable their box collider

account storage on device

We need to store the username and generated password somewhere. By default we could just do this with just device storage, but we'd like to be able to use device specific storage like google sign in and apple keychain. Most games do incentives( ie: "1000 gems if you link your account to google play!")

  • Apple has a pretty rough issue: its really common that most people are out of the free 5gb device storage, meaning we really shouldn't rely on being able to use it
  • we could add in some device id verification if we need it

Read Chat Messages

Currently, there is no way of knowing if a chat message has been read or not, and no notification for new messages. The message structure on the server has to be modified to mark the latest read message.

Volume controls

for now, its fine that the settings menu opens after clicking the username in top left (later there'll be a self profile that has a settings button contained within

in the settings menu, can you first set up 3 things to control the volume

mute toggle box, master volume, backgrounmusic volume, comat/ui volume

4 things i guess

nvm this is pretty much 2 unrelated prs, but the volume one is probably better to do first LMAO

if you look at Ingame, you'll see a audiomanager prefab

you'll have to move it to the main menu, and set it to not destroy on load so its kept between scenes

then, add 3 AudioMixerGroup serializefields, and set it to the 3 in Sound/IngameAudioMixer.Mixer
mymixgroup.audioMixer.SetFloat("Volume", 0);

to persist settings, you can just use playerprefs, saving serialized things to the persistentpath is probably overkill https://danielilett.com/2019-10-26-unity-tips-5-persistent-data/

Purchases API

We have a library called "EasyMobile" that handles payments. However, we still need to set up the payment libraries for apple and google (this is half done, which might cause some issues with whoever picks this ticket up). Then, we need to make an endpoint to send the payment receipt to the server, where it interacts with either the google or apple api and awards the player for the purchase.

  • apple certificates are a bit of an L since the dev account has to be tied to a person. Hopefully i can just generate the certificate for you and send it?
  • wilson will send login for google

Low quality mode for backgrounds

Some of the background UI is going to be very expensive..we need a mode to switch the background into just images for lower tier phones.

sales

"You completed this acheivement/ special event! special sale"

Android back button

Back button is in no way hooked up with our current menus, with each close button running its own list of functions.. Would need to implement infrastructure to know currently active ui element.

shadows :'(

We cant afford shadows, swap them out for dark circles underneath a person

Rank system

Currently, we have rank only as the form of elo. We want to change this to a tier system so there's incremental goals to aim for, and so we can offer things like end of season rewards.

Sound

Background music, action sounds, menu sounds, etc

chat, tmpro

once tmpro 2.1.0 is out, change chat keyboard to use custom social keyboard. this is bugged in current unity version.

End Screen

end screen recap after a battle. add battle stats if time

Developer message

on account creation, add a message to the database from the developers (rng between salutation studios members)

UI Redesign

Not everything is rescaling properly for different UIs. The chat is cut off sometimes, the team scroller is not started at the right position, and images are not resizing on the shop card flipping menu.

Tutorial

Whoever picks this up can first start with documenting a good flow of everything that needs to be explained; new eye would help for catchiung confusing parts

RIP death animation :'(

seems like the commit for the death animation (374dd4b#diff-b2693d9c2124f3ca9547b897794ac6a1) actually contains the baked animation, meaning the animation scene is useless after that commit.. temporarily reverting to the commit before this. If we ever update death animation, figure out how to reexport that one segment or rebind the skeleton.

Push notifications

2 seperate parts: some sort of cron components on server so we cna have messages like "last login 8 hours ago, collect rewards now!" or so we can run something on the server to push a notification to everyone. eg: "new update, download now!"

Sound menu issues

No idea why, but the buttons are impossible to click for me, only works 1 in 10 times on a samsung s7 edge. Hopefully just too small?

Also when i tested this on the phone, it seemed like there was constant white noise in the background even with nothing playing; this is very noticable on low volume. Maybe its my phone thats bad?

Should also make some change so the default slider value isnt the max

Profile page UI sexiness

  • Fix up some formatting
  • potentially make scrollable
  • Replace char_id's with thumbnail of hero + name or something

dungeon mode

Mobs mode, we can pretty much copy AFK arena for this one.

Design characters

We are aiming for at least 10 characters at release. Now that we have an animator, the only task is to design reasonable characters and implement them in game

User Stat/team page

Track Global stats:

  • Wins/losses (also per character)
  • Total Damage Inflicted per character
  • Total Damage received per character
  • Health healed per character
  • Top 3 most used characters

Per Game stats:

  • Total Damage Inflicted per character
  • Total Damage received per character
  • Health healed per character

When viewing a profile, we should display the userStats table, and some rendering of their main team

Fix chat title

Right now, the chat's title is the id of the chat, which is obviously not ideal. In the underlying implementation, this title is also being used as an id to get the chat we're using. We want to add another field to what the chat stores, so we can replace the title with either the person's name, or "my clan chat".

  • Chat is using a tabbing library, which we would have to modify
  • Files for the chat can be found in Scripts/MainMenu/Chat
  • Chat also interacts with Scripts/Server/MyChatController

Chat Revamp

Message previews
We'd like to be able to see a preview of all messages without needing to click into it to see the last message

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.