Giter VIP home page Giter VIP logo

techiton's Introduction

Techiton Game

A robotic Real-Time Strategy game with mechanical simplicity and annihilation in mind.
Built with Unity3D and inspired by Total Annihilation (1997).

Please note: Currently in pre-alpha and early stages of development!

Overview

Some basic stuff:

  • The game itself is open source.
  • The website application (https://techiton.net) and game session server however are closed source.
  • Single-player will be free, forever, period.
  • Multiplayer is planned to have a one-time payment of $3-$5 for each account to cover the gameserver costs.
  • Signing in using Steam will create a new account and bind to your Steam ID.
  • No payment is required to make an account.

Features planned

Units:

Accounts:

  • An account will be optional and free for single-player and would only be used for tracking individual statistics and replays.
  • The account profile will be viewable from https://techiton.net/profile/
    • Profiles will be hidden by default.
    • Profiles will show number of overall games, wins, losses, energy generated, metal generated, units created, units destroyed and time played. This will also be viewable in-game, but outside an active game session.
    • The game and website will dynamically handle the maths for the generation and display of averages of the said values.
    • After each game concludes, the game exits to show the post-game numbers and a button linking back to the game lobby.

Multiplayer:

  • The Steam Platform will without a doubt be seamlessly integrated with the game.
  • The plan for multiplayer is to have a small one-time fee of $3-5 to help in server costs.
  • This also includes replay storage and user account statistics.
  • (this also could help with phony account creation too)

Game lobbies:

  • For the in-game login, imagine along the lines of the Warcraft III login screen but with a robotic theme.
  • Game lobbies and general chat will be displayed after login. (visualize Diablo II's lobby)*
  • If an account is not flagged for multiplayer, then it will be rejected and will hyperlink to the game page.
  • Group chats are planned.

This is basically how I document, design and develop: GitKraken is essentially part of my workflow (and pay a subscription for GitKraken Pro). GitKraken Glo board Kanban cards.

Have ideas or want to help? Let me know what you're interested in working on!
Email me at [email protected] or message me on discord (euheimr#0950)!
Or, join the Techiton discord channel here and tag me in a comment with @euheimr.



techiton's People

Stargazers

 avatar

Watchers

 avatar

techiton's Issues

Map

Unity3d Graphics Library

Hexagonal mapping research:
DIY

tutorial and real practice
Note: look into heightmap terrain map generation. The focus is procedural generation of maps by seeding an array

Unity asset (paid: $25) | hex grid procedural map

Procedural generation, (list src):

http://soumidelrio.com/docs/unity-rts-engine/maps-terrain/

see this guy's work: https://www.artstation.com/yughues

Units

Units and Structures spreadsheet:

https://www.dropbox.com/s/ito3cpsd2kbptad/techiton-units-and-structures.xlsx?dl=0

Mind maps:

Core:

  • Finish Map

  • Finish Commander (builds only structures; Build tables, movement and attack)

  • Create Builder Bot unit (builds only structures)

    • Create "build structure" table
    • Create primitive worker model
  • Create primitive models of each class

  • Complete Build Tables

    • Build Bot Unit Tables (only builds structures)
    • Structure Build Tables (only builds units)

Models:

  • Commander unit model
  • Builder Bot unit model
  • Bot Factory structure model

Textures

  • Bot Factory Build Animation
    • Start build animation
    • Particles using sprites

Unit sound effects

Research:

Case-Based Reasoning for Build Order in Real-Time Strategy Games (2009)

image

Networking

Mind maps:

Mirror is a high level Networking API for Unity, built on top of the low level Telepathy library.

FizzySteamyMirror

  • Fizzcube bringing together Steam and Mirror.
  • Version 2, complete rebuild utilising Async (Previously SteamNetNetworkTransport) of a Steam P2P network transport layer for Mirror - 2018 branch (vis2k's UNET replacement for Unity)
  • FizzySteamyMirror uses Steamworks.NET wrapper for the steamworks API.

Server:

Valve Sockets C#

Nakama | Unity store link (Distributed server for social and realtime games and apps.)

DB:

cockroachdb

Lockstep research:

1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond(2001)

https://github.com/euheimr/LockstepFramework

Start with modeling this ^

In-Depth Lockstep Explanation (src)

You need to have a future command queue that will only be acted upon once all parties will have confirmed reception of the command.

  • This queue will include no-operation null commands if no new command is to be executed.

  • The delay for each command can be dependent on the ping/lag.

  • The simulation on every peer only executes to the point (call it frame number, time, or step) where all commands have been confirmed as received so every peer will execute the same thing at the same time.

  • So let's say the step granularity is every 100ms, got a 175ms max network ping, we're at 332ms, the user click to move a unit, we send a packet "#N: unit A move to XY at 600ms" (332 rounded up to 400ms + rounded up ping to 200ms).

  • So long as a reply from all peers comes in saying "Packet #N Confirmed" before game time 600ms the game wont need to wait, if we don't receive confirmation we hold the game simulation and we resend the command packet every N ms (don't flood the network) until we get confirmation.

  • We also need to receive command packets from all peers for all steps, even if there are no commands send a no-command sync packet eg: "Nothing to do at 700ms".

  • "Confirmation of the confirmation" is simply the next command packet which is only sent if the peer has received confirmation of its previous packet, it will resend its previous command if no confirmation arrives until it gets a confirmation (or a time out and the connection is considered lost).

  • Confirmation can be sent as part of the next command packet to reduce traffic by increasing the queue to 2 commands with half the time (same lag overall, half the packets).

  • From there a lot can be added such as variable lag/ping detection/adjustments, prediction and rollbacks, etc, to reduce the perceived network lag.

Valve

TODO:

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.