Code Monkey home page Code Monkey logo

fight_against_gravity's Introduction

- 👋 Welcome to Voltline's GitHub Page!

Do not ask me about the meaning of the name, actually it was just a random name, DO NOT CALL ME "CABLE", THANK YOU!

About Me

✨ Languages: C/C++, Python, Java

✨I'm now an undergraduate studying in East China Normal University.


  You can find me in so many platform, like CSDN, bilibili, even Steam! Just search the ID Voltline.
  In the past few semesters, I've written some blogs for C or C++ learning(they are 2 different series), and I will write more, like Data Structure and Algorithm or Computer Graphics and so on.


Voltline's trophy

Voltline's languages Voltline's Stats

fight_against_gravity's People

Contributors

cdccc1 avatar dependabot[bot] avatar dissipativestructureobject avatar lky1433223 avatar voltline avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fight_against_gravity's Issues

safeserver是否有接受消息问题?

  • 首先我利用了基于safeserver完成的reg_server构建注册服务器,通过继承自safeclient的RegClient类与之通信,第一次传输验证码成功,验证码验证完成后第二次发送信息时服务器没有接收到。
  • 之后使用原生safeserver和safeclient进行通讯,发现safeserver也只能收到一次通信,之后会因为连接超时而被断开

IdentifyClient TCP连接未删除

IdentifyClient在初始化时,分别建立了两条连接注册服和游戏服的TCP连接,但是这些连接并没有在会话结束后被删除。
并且在仅使用注册服务的时候,面向游戏服的TCP连接是无用的。

【TODO】OptType与MsgType的合并问题

  • 部分:在线游戏部分
  • 具体内容:SafeSocket部分和游戏主体的服务器部分分别写了一个Type类用来表达各种选项,需要合并
  • 解决方案:将MsgType合并进入OptType

【TODO】SocketServer的AES加密

  • 部分:在线游戏(safesocket部分)
  • 具体内容:需要完成服务器数据包传输过程中的加密,考虑到游戏数据的安全性要求不高,且游戏数据包的体积较大,暂不考虑将游戏数据进行加密传输
  • 设想:在safesocket连接中加入AES选项从而自行选择是否加密

【TODO】封装问题

  • 部分:整个游戏
  • 具体内容:Public测试阶段需要分发Public Beta版,为避免源代码提前泄露以及玩家游玩时更加方便,建议将游戏打包后再分发
  • 设想:利用各种方式将源代码打包成为一个或几个无法直接看到源代码的文件
  • 方案1:利用pyinstaller将整个游戏打包为一个.exe的可执行文件(有无法正常运行的风险)
  • 方案2:将各种需要import的部分用py_compile编译成为pyc文件(可以保证正常运行)

【Bug】服务器丢包问题

已经确认,在测试identify_server和登录部分的server_main时有概率产生:有连接但数据包100%丢失的现象

  • 问题原因:暂时未知
  • 问题解决方案:未知
  • 严重级别:一般(可通过多次重启达到正常)

【TODO】超大报文处理

部分:网络收发部分
具体内容:由于子弹数据包很长,所以需要支持超长数据包的传输
设想:暂无

【TODO】游戏目标

游戏模式:

  • 1.占领敌方星球周围的区域,保护我方星球不被敌人占领【哪边星球附近有敌人哪边就扣分】
  • 2.保护我方空间站,攻击敌方空间站
  • 3.团队死斗(占领战场)
  • 4.混战
  • 一些机制:
    通过子弹的机械能情况和离星球的距离判断子弹是否要消失
    飞船超过子弹消失的最远距离就判定死亡(超过一定距离警告:“距离星球过远,即将迷航”)

【TODO】利用类似cookies的方式免密码登录

  • 部分:UI部分与验证服务器/游戏服务器部分
  • 具体内容:每次游戏都需要登录比较麻烦,类似QQ,以及各种网页都有记住密码或者一定时间内免登录的功能
  • 设想:仿照网页cookies的方式记住密码(安全性?)在一定时间内免登录
  • 方案1:用一个文件保存ID和时间,这样需要在登录和注册服务器上留接口以保证正常登录
  • 方案2:本地cookies文件保存用户名和密码以及登录时间,用正常登录函数进行登录,但本地安全性存疑

【Bug】飞船被毁后闪退

  • 部分:游戏主体
  • 描述:在操作Ship2时,如果Ship2将Ship1摧毁了,此时再使用Ship2的键位进行控制,游戏进程会直接闪退
  • 原因:Ship置于Ships的Group中,当某个Ship对象被摧毁后,摧毁的Ship会被移入一个dead_ships的group中,对应的如二人对战中的Ship2的索引就变为0了,此时再通过Ships[1]访问就会越界,从而抛出异常闪退

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.