CYBORG (prototype)


  • Hiya, So I've been looking into AI to bring the Cyborg galaxy to life a bit. AI ships flying about minding their own business etc, without damaging anyone's property as a result of some unfortunate collision. Those space stations are expensive...

    A first attempt was to use a classic collision detection method of raycast detecting what is ahead of each ship as they fly... a front, left and right ray is cast to detect potential collisions and hence avoid those collisions early and rotating away to safety. It works, kinda, but felt rigid and the 3 rays have gaps which cause some awkward moments where ships get stuck and then a weird ballet dance ensued...


    I tried a different approach which seems a bit more natural. It involves the Unity physics engine and applying repelling forces based on velocity and nearest ships within a circle check. It is a slight improvement. I am still looking into other alternatives, so If anyone knows of a good way to handle this, I'd appreciate the advice. Here's the latest attempt at getting sector traffic to work using that approach... Ships patrol to a set of waypoints and avoid each other as best as possible.

    Sector traffic? I've been thinking of the galaxy as a whole where sectors were inter-connected and thought (just like on planet earth) in the future there's going to be regions of contention... If that was indeed to be the case, I'd imagine something similar to a Voronoi pattern that dictated jurisdiction (similar to a giraffe skin) to define each region in the galaxy, so I made a quick prototype:


    Lemme know what you think?

    Cheers, K
    Thanked by 1iceblademush
  • Some random thoughts on design and potential for extension.

    The prototype starts with the ship builder.
    Think of the builder as a blueprint or ship wharf where ship construction is done. It happens at a station wharf.
    It has some basic shapes that invites the player to be creative. To make something of their own design.
    Ownership in this way is important because the player has an attachment to their creation.
    They are not simply given a ship, but have to construct one. It is easy and quick to construct a new ship using the base shapes, which can be scaled, rotated and connected.

    The ship builder is also the tool used during development to create the NPC ships and stations which the player will encounter. Progression could happen where there is a cost/size limit to a new ship initially which is relaxed the longer the player survives and acquires more wealth.

    The ship or base is a place to call their own. They can use it to discover and explore a hostile galaxy and will need to protect and maintain their ship or base.

    The outfitting of the ship and its pilot is also player choice driven.

    The reason one can enter and exit the ship is to allow the player the opportunity to explore or customize further.
    A "dungeons in space" level design is possible, where the dungeons themselves rotate and move and interconnect.

    The player can move off their ship and travel to an external location and back again after using the ship itself to travel to new locations. It could also allow them to tinker with the internal ship systems which could provide further interesting player decisions.

    At its heart there is an action arcade element to the game where the player finds new items to extend the capabilities of their ship/base or self.

    The ship also serves as a store for items (the hold) which could potentially be lost if it is destroyed. Risk/Reward.

    The outfitting of the ship with different components and weaponry could support a strategic choice as well. Where certain items are more effective for specific tasks. Only by trial and error would the player discover what the best combinations are.
    Certain weapons are more effective against specific faction shields and ships.

    Finally due to the modular nature of the ship, it could allow interesting game-play where a player on a heavily damaged ship has to run for the airlock, if that part of the ship is still intact to then use it to eject away, like an escape pod, and head
    towards a friendly station where they can rebuild again. Or if they don't eject, they could be cloned/reborn at a station, but at a cost and have to start again.
  • Update: Cyborg v0.06: CYBORG v0.06 for PC (20MB), is available for download and play.

    It is very rough, but allows one to play with the ship builder. There's many issues, some I'm aware of and some not.

    Any feedback as always is useful and very much appreciated.

    Thanks, K
  • edited
    Hey I played for a few minutes.

    Here are my thoughts:
    I enjoyed building a ship, but found it annoying that the pieces rotate a bit when they bump against each other. Maybe it would be better if the rotation is fixed when dragging the pieces. Also when it deselects the piece I'm moving, that's annoying. I didn't know if I needed all the systems or what but there's an element of guessing that I enjoyed.

    The ship moves very slowly. I found it sluggish.

    I think the player should move a bit more slowly as well. I kept bumping into walls.

    Being able to build your own ship is cool, but there needs to be more to do. Maybe a story with some objectives.

    Hope my feedback is helpful.

    - Joel
  • edited
    @Plenopterix Thanks so much for playing and the valuable feedback. Your observations are spot on.

    I agree 100% about the builder where you place shapes and they bump against each other and then rotate/move slightly. It annoys me too :) I'll try and resolve it ASAP because it slightly changes what that player is intending to build and I don't want to frustrate them when creating a ship.

    After the ship is built, movement is based on mass, which is determined by all the hull shape area sizes combined. It is simply a value that can be tweaked after the ship is built, a global magic value that is currently too rigid. As this is an arcade game, sluggish movement is not what is intended. I need to play around with that magic value to balance small to large ship rotation and speed.

    Objectives are planned and I have done so in previous prototypes, so I will definitely add it. It is important initially to guide the player in learning the game mechanics. The plan is to cater for open world style game-play where the player is free to explore and do as they wish, but guidance will be required.

    Thanks a mil Joel, that was very insightful.

  • edited
    So AI... It's been something I have been very interested in for awhile now and I've been hovering between behavior trees versus finite state machines. Two very different approaches. For behavior trees I've deep dived into a product by a company called Rival theory. The product is called 'Rain' (used by Super Hot and Hairbrained Schemes). The company no longer seems to exist and their product has been pulled from the Unity store. A real shame because it was really powerful...

    Up until recently I was hell-bent on using the Unity Animator (Mechanim) as a FSM solution. See my post on April 2, 2017. Logically it seemed like a good choice, because Mechanim comes with a Finite State Machine engine (mainly for animations) out of the box where one can visualize states and their transitions as they happen... so why roll your own? It turned out that Mechanim was too restrictive for non-animation purposes and even Unity discourage using it for anything other than animations. It does not allow one to hop between different states with ease. You have to make sure certain variables are set for a state transition to occur etc. The real deal breaker was that there were cases where you'd think you were in a specific state, but you weren't because in Unity the update cycle it was just not in sync with what is happening in a physics cycle for example.

    I've decided to go with something far simpler instead...KISS (Keep it simple stupid) This article has some really great thoughts on implementing a FSM and I have been exploring using a similar approach for handling the minds of all NPCs in the game.
    Thanked by 1Kulu
  • edited
    Hello MGSA, just another quick update video :)

    Cyborg: Galaxy Map and Quests

    I've made some further progress this week by adding a Galaxy Map and a Quests system. The radar system is tied to the quest system to indicate where a player needs to go, but also indicates information about what is going on around the player so they can find their bearings. Mouse Zoom out all the way to see the galaxy map with sectors and player current position and quest location.

    Next up I'd like to add that sector traffic I was going on about to see how avoidance works and also have some stuff to shoot at, so I can work on how the ships come apart when their individual hull components are destroyed.

    Edit: The art direction is off. I suck badly at art and the direction there of. Lighting of the scene, size of inventory items etc. I am working to get to a point to have a world a player can interact with and then to continue prototyping interesting player actions and decisions as I go. That is the hard part.

    @Plenopterix Thank you so much for that feedback on the builder... I fixed those shapes moving when bumped... it's so so much better :)
  • edited
    Latest build of a very early prototype: Cyborg v0.07.

    As always I love any feedback. <3

    Also, assumption is the mother of all... I assume it is fun and intuitive to use the builder to make a ship. Is it? I don't know. Is it something that is intuitive or should players rather just be given a ship?
  • edited
    Cyborg: Hijacking ships like a boss...

    Playable build: Cyborg v0.08.

    - Added new mini tutorial.

    - Galaxy sectors are now faction controlled and I've added planets.

    - Added localised damage for ships... Shoot out the engine and it cannot fly, shoot out the airlock and you cannot board. Ships now come apart too.

    - Sector traffic has been added which uses a waypoint system. Any ship can be boarded and hijacked. I'm South African after-all :)

    - AI ships don't retaliate yet.

    I am currently only spawning 2 ships per sector because I was taking a performance hit across 30 sectors! I need to resolve that so there can be many many more ships in the future, the galaxy needs to be busy! Maybe a sector spawner which replenishes its ship stock over time will work?

    All the best, K
    Thanked by 1iceblademush
  • edited
    So, all that violence!? Hijacking ships like a boss? It has been something in the forefront of my mind all the time while making this prototype. We live in an extremely violent society so why make such a violent game?

    There's been many discussions on the topic and there are many opinions about it.

    Distinction between aggression and violence also have to be made. We are all aggressive in some form or another, it is a human trait and anyone is capable of violence. I believe we use aggression to release tension and frustration too and it can prevent violence. After that hard day at work, you feel frustrated and need to vent it. You say something you shouldn't or worse, throw that book. Maybe you feel better afterwards?

    There are great games that question violence such as Hotline Miami, and Spec Ops: The line too.

    In Cyborg there could be violence if the player intends it, like shooting at innocent trade ships or hijacking them.

    I have planned for a system security factions that will show the player there are consequences for when they behave violently. The player does not always have to be violent as they can make new ships instead of stealing from

    In Cyborg the galaxy is at war and in the worst possible place at the start. Unlike the wars on earth that are between governments, here they are between greedy corporations who are fighting for rare resources, which is just as bad, if not worse! Or is it just the same?

    I would want there to be a galaxy at peace at the end of the game.

    The missions could allow for the player to interact with each of the warring factions. A talented writer could make that happen. Also Cynthia is a product of this war as a cyborg herself and has had to perform many violent acts in the name of war. She is a victim and the goal is that her humanity is restored at the end of the game and peace is restored
    through its narrative and player actions.
    Thanked by 1Kulu
  • Cyborg: Faction Standings

    I managed to fix the problem of having a universe with so many ships. Each and every one was DDOS-ing my CPU and memory.
    The solution to the problem was simply to deactivate all resource hungry objects (like ships) that were not close to the player, so they go to sleep essentially, while still making the galaxy seem alive... smoke and mirrors I tell you!

    I started on the faction system too, where every bullet fired has consequences... see video. If this goes further I would not want that to be too apparent to the player though, but leave it to them to discover that violence has consequences and the game will get a lot harder if you make the wrong decisions... This hopefully carries forward not only in the flying and shooting, but hopefully also in branching narrative choices made eventually.

    The summer holiday is almost upon us and soon you'll be rid of Konman spamming this forum with his nonsense! LOL :D

    Have a good one, K
    Thanked by 3Kulu petrc dark_seth
Sign In or Register to comment.