Search Unity

Negspace

Discussion in 'Works In Progress - Archive' started by pnch, Aug 19, 2014.

  1. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22




    2D Physics based hotseat dogfighting @byPencha

    Current features:
    • 4 players split-screen, fast paced and responsive.
    • A minimalist approach to UI and controls
    • Full translational and rotational inertia, giving extra zero-g feeling!
    • Inmersive 2d field of view.
    • Three completely different ship classes, with boardings and escape pods.
    • Mines, homing missiles (actually fun to avoid) and countermeasures.
    • Killcams, and various kind of deaths. (be stranded, irradiated, incinerated or exploded).
    • Battery level affects the general handling of your systems and engines, also giant Friction chargers, grind them to recharge.
    • Magnetism, Space football, Racing! (still experimental, working on it right now) and some other bits hidden around the Tigsource devlog.

    Negspace is in early development, stay tuned to see the list grow!


    Press mentions:

    Rock Paper Shotgun´s Devlog Watch - Indie Game Enthusiast

    Mandatory gif mountain:





















    Caught your eye?
    Get a notice on your inbox once it´s done!
    Want more?
    Catch up! (A whole year of previous updates and gifs)
    and stay updated via

     
    Last edited: Aug 26, 2015
    IAmCraigSnedeker likes this.
  2. IAmCraigSnedeker

    IAmCraigSnedeker

    Joined:
    Jul 20, 2014
    Posts:
    117
    Looks awesome, I love the graphics. Would make a great MMO. :cool:
     
    pnch likes this.
  3. DaveDexterMusic

    DaveDexterMusic

    Joined:
    Sep 28, 2013
    Posts:
    33
    Damn this looks hot. The sense of scale and depth is incredible. Good work, wow that sounds condescending.

    I never like pitching for work with the beady public eye on me but I can't send you a PM so - I'm a composer, do you need any composing? I'd love to put music to this beast.

    Clickylinks to music: Star Saver OST and Gravitation OST. I do a lot of other styles, don't think I'm assuming you'd only want retro chip stuff. Maybe the world of Negspace craves shuffle jazz or spaghetti western. I'M THERE OK

    *sidles off*
     
    pnch likes this.
  4. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    @IAmCraigSnedeker:
    Thanks! It would be great, sadly, since it all rests in high speed manoeuvering and precise controls, any amount of lag would kill the experience, so It´s 4 players splitscreen hotseat only atm!

    @DaveDexterMusic:
    Thank you! Got back to you via twitter dm, stay in touch!
     
  5. Micha-Stettler

    Micha-Stettler

    Joined:
    Jun 11, 2009
    Posts:
    167
    Looks very nice! Are you working with 2d or 3d colliders?
     
    pnch likes this.
  6. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    2d!
     
  7. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    The game sounds interesting. The artstyle looks a lot like Teleglitch, I'm guessing it's your main source of inspiration ?
     
    pnch likes this.
  8. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    Yes it its! Among many others I must say, like 0space, Descent, Solar Winds, GTA 1, Towerfall and a long etc!
     
  9. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,518
    That is really cool looking! Nice effect creating so much depth.
     
    pnch likes this.
  10. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
  11. IAmCraigSnedeker

    IAmCraigSnedeker

    Joined:
    Jul 20, 2014
    Posts:
    117
    Even more excited for this now!
     
  12. ostrich160

    ostrich160

    Joined:
    Feb 28, 2012
    Posts:
    679
    Wow Negspace is still going on? I remember seeing this ages ago and being really excited about it
     
    pnch likes this.
  13. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    Hey! Solo dev making his dream project and learning the ropes as he goes along here :)
    Bear with me, it´s not only still on, but getting bigger every day! In fact, you just made me notice May 7th was the project´s first birthday.
    As always, for more frequent updates, check out the tigsource thread and follow the twitter feed!
     
    AndreiKubyshkin and ostrich160 like this.
  14. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    -deleted previous updates since the devlog was getting too heavy, see them HERE if you missed them-

    #51: Procgen palettes

    Remember the palette generator that I´m using for the background of the hint screen?
    Revamped it a little, and threw the ship in, say hello to an infinite amount of infinitely scrolling empty environments


    And here´s a more agressive version not embedded due to heavy flashes --> seizure warning!

     
    Last edited: Aug 26, 2015
  15. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #52: Node Editor V
    Let´s continue with some more behind the scenes tech stuff.
    The node editor kept evolving, it´s now looking like this:


    Note the small "C","A" or "I" in each node? Now I can pause the game anytime, pop a quest tree window, and check exactly how´s the quest going. "C" goes for Completed, "A" for Active, and "I" for Inactive. Therefore, you can quickly grasp that you´re supposed to complete the "A" Kill node to continue with the mission.
    The specific details of each node are still shown one (selected) node at a time, as demonstrated on the following gif, and now each node type has a particular interface associated to it in the details panel:


    One extra benefit out of that is: I can now easily support drag and drop! Want to make the player destroy a specific object? Just drag said object to the "target" field of a kill node, same goes for a waypoint and a goal field.

    Back to game dev. As always, C&C welcome!

     
    Last edited: Aug 26, 2015
  16. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #53: Flick a switch



    Ever wanted to flick a building sized switch with a spaceship?

    Another simple addition with plenty of use cases.
    They can manipulate specific machines (in this case the door right next to it) and are super easy to set up.

     
    Last edited: Aug 26, 2015
  17. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #54: Notifications

    I´m lagging behind in the devlogging side! This also means there´s stuff being done.
    Noticed how each node held messages that were supposed to be read by the players?
    A while ago I coded a simple notifications stack, that receives messages and serves them to the user through a simple UI.
    You may have noticed it already in this gif:



    A description message from an empty first node, and a completion message for a kill node

    The UI decides how long each message will stay on screen depending on its number of characters, and once it´s done, it gets the next message from the stack. The stack is now being populated by the nodes themselves, one message sent as soon as a node becomes active (description), and again once the node is marked as completed - as long as the message fields aren´t empty (duh, but useful).

    I can now, for example, use a chain of "And" nodes to send series of ordered sequential messages to the player as soon as the quest gets to them, fire messages based on exploration putting messages into "reach area", etc.



    The previous gif´s action, under the hood:

    There´s still a LOT of things to do, but I´m happy to see basic single player quests starting to emerge from all that abstract dev. Hope you´re still tuned, and don´t hesitate to ask if my techno gibberish isn´t clear enough!

    PS: Yes, I funkied up the colors on this level a bit.

     
    Last edited: Aug 26, 2015
  18. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    On a logical step after switches, say hi to...
    #55: Pressure plates

    They will probably end up looking a bit more handsome...

     
    Last edited: Aug 26, 2015
  19. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #56: Crushing spaceships


    As soon as I introduced the behemoth ships, I knew I wanted to be able to crush ships. It just didn´t feel right that pressing a much smaller ship against a wall did not have any major consequences, killing the whole "scale contrast" idea. Crushing seemed just natural due to the claustrophobic nature of the internal sections and feeling of "physicality" that I´m aiming for. Plus, knowing that one´s ship can be crushed introduces an extra layer of strategy while piloting.

    On a technical level, not being able to crush ships was troublesome. Doors needed "safety sensors" at the tips to prevent them from pushing indestructible ships literally into wall colliders. The code to prevent that from happening resulted in quite complex logic (for a door...). Also, on an intuitive level... everyone is afraid of elevator doors, shouldn´t players be afraid of their giant, space-faring cousins?

    What was the catch? Unity 2D physics port does not have access to the amount of stress an object is enduring, and I couldn´t find a viable alternative. Most games rely on cheats to emulate that, but being on a zero gravity / zero friction / zero orientation world, I couldn´t even find a cheat that applied. Crushing was sent to the huge bin of "Negspace II" ideas (coming soon provided I ever get filthy rich and/or able to hire people who actually know how to do stuff).

    These days, playing with springs and joints on the switches, I imagined that, if I were to split ships in half, add a hinge at the bow and put a strong spring between the sides of the stern, I could get "stress" from the difference in orientation between both halves of the ship, simulating (in a very minimal way) structural resistance.



    left: old collider, right: new colliders, held together

    Changing the physics of your "main character" is A BAD THING. Plenty of weird stuff cropped up:
    -Self crushing, accidental explosions, and springing yourself to outer space on spring decompression.
    -General wobblyness and unexpected momentum.


    Weird ´n´ wobbly

    -Enemies not seeing ships through the right wing and friction chargers not charging the right side of the ship.
    -The playable menu being completely broken, etc...

    BUT door logic became WAY simpler, and now, after some fine tuning, you can be properly afraid of them:


    FEARSOME

    And small ships feel more fragile than ever from a behemoth´s point of view.
    I´m sure I´ll be fixing plenty of bugs on the days to come, but the feeling of crushing spaceships...

     
    Last edited: Aug 26, 2015
  20. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #57: Magnets revisited

    I want to introduce a few elements that modify the environments in some ways, but using such a restricted graphic universe makes me be extremely picky when representing them.

    Remember magnets? Most of the time magnetized objects behave weirdly, have other objects stuck to them, and makes maneuvering around them quite hard, and real life magnets doesn´t have "visual feedback", but I had an idea about how to represent the "pull", and decided to give it a go. Everything is made in-shader, no textures used.

    Rev 1: Grab pass distortion using radial waves formula + time displacement + attenuation




    I feel like I´ve seen this effect thousands of times in games with completely different aesthetics...
    Also, I hate how the texture filtering softens every edge.
    Side note: shooting a container resulted in crushing the pink ship!
    Also note the magnets preventing the parts of the ship from spreading after the explosion.

    Rev2: Add posterized angular direction and displacement amount.


    Sharp edges are more in tune with the general aesthetics and give a more futuristic look, looks way better to me.

    Rev3: Add posterized texture lookup


    Conceptually more correct, since the sharp circles that the previous iteration gave are nowhere else to be seen in the game, but maybe it´s now a bit more generic looking? Here´s how it looks like in a more colorful setting:



    Staying with Rev3, for now but still tempted by Rev2, what do you think?
     
    Last edited: Aug 26, 2015
  21. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #58: The shredder

    Here´s a singular design problem:

    I want to add a "killer wall".

    1-Regular Negspace walls are black, usually solid-black, but they can have patterns too. Ships can bounce and hit them quite hard and stay prefectly healthy, in fact, grinding walls is encouraged.

    2-Friction chargers are like walls, but solid white, and as soon as a ship touches them, they turn into the ship´s color. Ships can be any color. Grinding chargers is especially encouraged.

    The killer walls, then, had to be neither solid black, nor white, nor colored with any color... weird!

    3-Grinding a friction charger at high speed makes charging more effective and produces lightning, therefore, lightning is "a good thing". So... using lightning, at least in the same color as the player, is not allowed either.

    What have other games been using as killer walls?
    Traditionally, spikes. Having 8 pixels for tile makes it hard to convey the idea of "sharp spikes", since 1px wide looks thick already. Also, spikes in space, seriously?

    After quite a bit of iterations and head-scratching, here´s what I came up with:


    Why?
    -1 All the other "safe" walls are static, therefore an animated pattern ought to at least catch the player´s curiosity, making them expect something particular out of that wall.
    -2 Small lighting in a random color helps with catching the player´s eye, while being a random color each time conveys that it´s not necessarily "safe" as the lighthning from the charger (which is always the same color as your ship).

    How?
    Having lots of animated tiled teeths would be cumbersome, therefore, I coded a shader that procedurally generates the pattern in the GPU, allowing for kilometer-wide shredders with a single static quad, allocating for as many individual teeths as needed.

    TL;DR?
    Whenever you end up playing Negspace, this pattern will make you sweat.

     
  22. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #59: Gravity assist

    Using the tech shown on the first pages of this devlog, maps are extremely quick and easy to setup. However, I try to add them only in order to debug / playtest features. Why? I´m sure any map done before locking the feature-set is liable to be discarded (Of the 5 deathmatch maps I´ve done, two are currently not available in the exhibition builds: one resulted too big for first time players that don´t yet know how to use the radar, the other, too difficult to navigate).

    The other day, playing Negspace with friends, we quickly looped through the available deathmatch maps three times in a row. I figured it was time to add more, even if just for the sake of having a good time with friends (hey, what´s more important than that?).

    A new deathmatch level was added. On the other hand, I HAVE new features to test:

    Remember the centrifuge level? I was communicating the new mechanic by reaching to instintive knowledge: with every background spinning at high speed, the players instantly understood that "gravity" went outward from the center of such spin. There are toys for kids in almost every park working with that principle.

    What if I want to add more complex "patterns of gravity"?



    A ship on a stable-ish orbit around magnet C, no button is being pressed.

    The previous update added the magnets shader, a distinct effect which makes players able to visualize the pull from magnets in the environment (yes, I switched back to rev2 shader, loving the concentric circles better).
    Since the pull can now be visualized, players can mentally plot and anticipate trajectories counting on said pull to slingshot and orbit themselves around - as in every classic "2d planetary gravity" game - and actually as ships actually do in space (google gravity assist).



    Maneuvering through orbits and debris

    In the games that traditionally use this mechanic, planets are clearly visible and there´s not usually too much else going on visually. In Negspace, the pull from magnets is just one more factor to have in mind when piloting, among lots of other factors encoded in a highly visual way. That´s why being able to show that using a distinct effect was particularly important.
    Also, now that I have the shredder, careful navigation became even more important, and the accumulation of debris that happens during a match forces you to adjust quickly to a changing environment:



    Wrong calculation + debris + the shredder

     
  23. khos85

    khos85

    Joined:
    Jul 21, 2013
    Posts:
    541
    This looks really nice, well done. Is there a way we can play it now, maybe provde player feedback?
     
    pnch likes this.
  24. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    Thank you! Not yet, feel free to join the mailing list to be notified as soon as it´s available!
     
  25. inresin

    inresin

    Joined:
    Apr 5, 2014
    Posts:
    18
    really nice work this looks really great :D
     
  26. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    Quick reminder for fellow gamedevs: Take info from the web with a grain of salt!

    This quick experiment:


    proved that sprite rotation doesn´t break batching (I´m getting the exact same number of draw calls than in the previous gifs).
    A while ago I read somewhere that they DID break it, and systems were developed with this wrong assumption in mind, now there´s plenty of possible optimizations to do... Getting back to that!

     
  27. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #60: Marching tiles revengeance

    Added support for automatic tile rotation, but ended up going WAY overboard with the possible optimizations:

    I now have the seeds of a sweet alternative interactive mesher!



    It´s built on top of all the previous "marching tiles" tech and tutorials shown previously (expanded set of cases, linear interpolation, automatic polygon reduction,etc).


    Notice the "auto stitching" feature, preventing the generation of single colliders with a huge number of vertices (Unity throws tantrums at these sometimes). In the following GIF I´m highlighting four collider batches that are seamed together.


    Improved the fill algorithm used to detect separated chunks, allowing for previously unsupported 1 tile wide corridors (not really, but each wall of the corridor had to be at different layers) and other previously problematic shapes.
    The tileset was completely black, so have in mind the black shapes are still being built with 8px wide tiles.

    It´s still hackish, and has yet to support 90º angles and decorations, but I believe the hardest part is over. Hopefully I´ll stop dreaming about debugging grid arrays
     
  28. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #61: Destructible walls!

    What if I were to control the previous update´s tech with in-game elements?
    Say hello to destructible walls!




    Yet to make it visually appealing and readable, let´s see where that takes us!

     
    hippocoder likes this.
  29. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Good stuff. I can see you've flagrantly disregarded all indie game dev rules including feature creep and this can only be a good thing. Eventually :D
     
    pnch likes this.
  30. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    Haha well, having reached the "MVP" a while ago, I´m having fun! I expect that fun to trickle down to the gamers, whenever I´m finished :).
     
  31. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #62: Destructible walls II

    Started working in the visual aspect of destructive walls. Having 8x8 tiles means that in order to get at least a slightly organic shape, I´d have to randomize the tiles quite a bit.


    Each color represents a different set of tiles. Each tile is chosen at random from all of the different sets at creation.
    (Color is there just for debugging purposes)

     
  32. pnch

    pnch

    Joined:
    May 16, 2014
    Posts:
    22
    #63: Destructible walls III

    And here it is! I have yet to integrate physics to the package.​




    What do you think?

    PS: I plugged the random environment generation to the test scene, each gif will come in a different flavor
     
    Haagndaaz likes this.