• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

GAF Indie Game Development Thread 2: High Res Work for Low Res Pay

Status
Not open for further replies.
Finally getting back into game dev. I really just want to finish my game and hopefully make some money.

Finally happy with all my units , so now focusing on bug fixing, final testing

AEGx5hP.gif
 

LordKasual

Banned
Those effects look gorgeous! Care to give any insight on how you made them?

Sure!

So, i've programmed in a new style of visual effect that takes advantage of mesh deformation.

The quality of the effect is pretty much limited by the subdivisions in the mesh, which is currently only 2x2. If i bumped it up and just ran it through a loop, i'd be able to remove the hard edges and smooth out the texture when it bends too much.

So basically, i'm using the properties of the mesh that's used to display the sprite to my advantage, in order to give the illusion of randomness. On these specific effects, I'm using a 256x256 seamless sprite texture, with each sprite being 2x2 (which translates to the sprite being divide into 9 points across 3 columns and 3 rows). Instead of moving the sprite itself, the majority of movement going on here is actually different points on the sprite mesh being moved. I currently have only one value that determines the X and Y movement of all the points, and just weigh them differently depending on where it is on the mesh, generally with the points near the bottom row moving less, and the points near the top moving more.

Then, I just change the UV mapping values on the texture so that it scrolls, and edit the opacity of the outside edges so that you don't see where the texture terminates (that is the most important part). Tune some values for adequate randomization and tweak the movement, and the result is what you see there.

Edit:

Plenty of games do this, but Square Enix has been abusing this effect for a really long time now, which is where i picked it up from, because they are particularly good at it.

400px-Companions2.jpg
ffxiv+2013-12-07+18-44-58-87.png

It can produce some truly mesmerizing smoke/aura/energy effects, usually way beyond what you could feasibly achieve with, say, actual volumetric smoke or GPU particles, or just plain animated/rendered sprite effects.
 

correojon

Member
Sure!



So basically, i'm using the properties of the mesh that's used to display the sprite to my advantage, in order to give the illusion of randomness. On these specific effects, I'm using a 256x256 seamless sprite texture, with each sprite being 2x2 (which translates to the sprite being divide into 9 points across 3 columns and 3 rows). Instead of moving the sprite itself, the majority of movement going on here is actually different points on the sprite mesh being moved. I currently have only one value that determines the X and Y movement of all the points, and just weigh them differently depending on where it is on the mesh, generally with the points near the bottom row moving less, and the points near the top moving more.

Then, I just change the UV mapping values on the texture so that it scrolls, and edit the opacity of the outside edges so that you don't see where the texture terminates (that is the most important part). Tune some values for adequate randomization and tweak the movement, and the result is what you see there.

Edit:

Plenty of games do this, but Square Enix has been abusing this effect for a really long time now, which is where i picked it up from, because they are particularly good at it.

400px-Companions2.jpg
ffxiv+2013-12-07+18-44-58-87.png

It can produce some truly mesmerizing smoke/aura/energy effects, usually way beyond what you could feasibly achieve with, say, actual volumetric smoke or GPU particles, or just plain animated/rendered sprite effects.
Awesome explanation, thanks! I use a very similar method to create underwater wave effects and other deformations, but it never occured to me to use it for auras by playing with the opacity of the borders. Thanks a lot!

I was a bit bummed because my Greenlight campaign is a bit slow but apparently is a problem for most of the games there (too much projects and less interest from gamers).

Anyway, I need to keep working so I made a new progress report for Beastmancer: http://www.indiedb.com/games/beastmancer/news/beastmancer-progress-report-9



Amazing design in that last monster! I can´t check now Greenlight, but from what I´ve seen of your project in previous posts you have really good looking monsters. However, the screen you posted is too dark and the monsters are too small, so your awesome models can´t be appreciated. I don´t know if you´re using this kind of screens in your Greenlight page, but I´d suggest using a more colorful background to make it pop up more and zoom in the monsters or something so they can be appreciated in all their glory.
 

missile

Member
... Amazing design in that last monster! I can´t check now Greenlight, but from what I´ve seen of your project in previous posts you have really good looking monsters. However, the screen you posted is too dark and the monsters are too small, so your awesome models can´t be appreciated. I don´t know if you´re using this kind of screens in your Greenlight page, but I´d suggest using a more colorful background to make it pop up more and zoom in the monsters or something so they can be appreciated in all their glory.
Had exactly the same thoughts about it.
 

Pehesse

Member
Awesome explanation, thanks! I use a very similar method to create underwater wave effects and other deformations, but it never occured to me to use it for auras by playing with the opacity of the borders. Thanks a lot!

Seconded!

Amazing design in that last monster! I can´t check now Greenlight, but from what I´ve seen of your project in previous posts you have really good looking monsters. However, the screen you posted is too dark and the monsters are too small, so your awesome models can´t be appreciated. I don´t know if you´re using this kind of screens in your Greenlight page, but I´d suggest using a more colorful background to make it pop up more and zoom in the monsters or something so they can be appreciated in all their glory.

And thirded!
 

DemonNite

Member
I was a bit bummed because my Greenlight campaign is a bit slow but apparently is a problem for most of the games there (too much projects and less interest from gamers).

Anyway, I need to keep working so I made a new progress report for Beastmancer: http://www.indiedb.com/games/beastmancer/news/beastmancer-progress-report-9




Looking great! early days but how has it compared to your last greenlight campaign?

Although greenlight campaigns can create a following, as you said it also has too many games and easily lost. Personally, I didn't want to go through that again for my second game and reached out to Steam to request another token just in case I preferred that route. Have to decide which way to go when the time comes.
 

LordKasual

Banned
I was a bit bummed because my Greenlight campaign is a bit slow but apparently is a problem for most of the games there (too much projects and less interest from gamers).

Anyway, I need to keep working so I made a new progress report for Beastmancer: http://www.indiedb.com/games/beastmancer/news/beastmancer-progress-report-9




The monster designs here are awesome, and i love how they animate. Looking forward to seeing more of this!

Fourth'd on the request to make them pop a bit more
 

Lautaro

Member
Amazing design in that last monster! I can´t check now Greenlight, but from what I´ve seen of your project in previous posts you have really good looking monsters. However, the screen you posted is too dark and the monsters are too small, so your awesome models can´t be appreciated. I don´t know if you´re using this kind of screens in your Greenlight page, but I´d suggest using a more colorful background to make it pop up more and zoom in the monsters or something so they can be appreciated in all their glory.

Fourth'd on the request to make them pop a bit more

Yeah, in my Greenlight campaign and trailer I'm using a lot of close ups like this one:

h4oBLdO.gif


But yeah, I agree that I can make them pop more so I plan to add more and brighter arenas.

Looking great! early days but how has it compared to your last greenlight campaign?

I get more positive responses but there's less people visiting the page so that leads to less votes. I'm not worried anymore because I can see campaigns with even less traction get greenlit so I only need to be patient and keep working (I'm certainly not gonna damage the value of my game by adding it to a bundle).
 

MrHoot

Member
3ac42ccc04.gif


Blood fae lives ! Did basic pose assets and its idle. Tomorow i'm gonna have to make it move around in game which is gonna be my first real challenge !
 
3ac42ccc04.gif


Blood fae lives ! Did basic pose assets and its idle. Tomorow i'm gonna have to make it move around in game which is gonna be my first real challenge !

I really like the leaf design for the wings. I don't know if I've ever seen something like that before.

Are they supposed to be that stiff? Or is it a consequence of the animation tools?
 

MrHoot

Member
I really like the leaf design for the wings. I don't know if I've ever seen something like that before.

Are they supposed to be that stiff? Or is it a consequence of the animation tools?

Nah there's some stuff with the wings and hair I still want to fix, it's a bit too stiff
 
Nah there's some stuff with the wings and hair I still want to fix, it's a bit too stiff

You're using Spine, right? If you haven't already, I would experiment with mesh deformation. It can help a whole lot.

Take this character I worked on last night for instance. Each of the sleeves are a separate mesh, the robe body is its own mesh, and the coffin top is also a deformable mesh. (some of the other elements use judicious shearing)
KVVocgY.gif
 

LordRaptor

Member
But yeah, I agree that I can make them pop more so I plan to add more and brighter arenas.

Maybe some rim / edge lighting on the characters might help them 'pop' a little, but still be relatively subtle? Or slightly desaturate the environments more than the 'actors'?
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
Since I am unhappy with the event based nature of Unity's collision detection - Unity does not offer cylinder collision and I want full control over collision detection (afterall it is one of the most important aspects of a platformer) - I decided to write my own collision detection system for Unity, scrapping all colliders. Of course, I started by looking up algorithms, because sometimes what is intuitive ina geometric sense is not actually all too performant, in the case of boxes this also held true (separating axes instead of face-comparison). This proved to be quite difficult for cylinders, because I often just read it would be better to not do cylinder collision at all, but to use capsule instead. Now I have come up with the following solution and, considering boxes and capsule are not typically considered problematic, I was wondering if I'm overlooking something with my approach so it would be great if you could have a look at the idea:

Given a cylinder of height h and radius r in position p, I check whether it collides with object O by checking
(1) does the capsule in (p, h, r) collide with O?
(2) does the box with position p, height h, width 2*r and depth 2*h collide with O?
Return "Yes" if (1) and (2) evaluate to "Yes", "No" otherwise.
 

missile

Member
On another news;
Am knee depth in some graphics rendering of my own, currently trying to create
sort of a low-res/pixelized/stylized defocusing blur and friends depending on
some real camera properties like focal length, aperture opening and similar
stuff. Apart from creating some cool looking images, my main idea is to use a
defocusing blur as a gameplay element to track other objects pulling them into
focus utilizing an inert auto-focusing mechanism, yet the object may move
around in space making it difficult to bring the object into proper focus.
Another idea I want to try, away from the real world, for a stylized racer, is
to vary the focusing plane while also manipulate the size of the DOF (depth of
field), it's fall-off, depending on stuff like velocity or acceleration.
 

correojon

Member
Maybe some rim / edge lighting on the characters might help them 'pop' a little, but still be relatively subtle? Or slightly desaturate the environments more than the 'actors'?

This. Maybe a lighted circle under the active characters, or a column of light? Everything is too dark, it needs more contrast to make the monsters pop-up.
 

LordRaptor

Member
e:
Thought I'd posted this, but closed a different window, oops

Since I am unhappy with the event based nature of Unity's collision detection - Unity does not offer cylinder collision and I want full control over collision detection.

I'm curious why you specifically want a cylinder...? It will make things like ramps / slopes or 'auto climb' stairways extremely difficult to do compared to a capsule.

Also when you are taking about collisions being event based, do you mean you are doing checks in the OnCollision<whatever>() functions?
If you haven't looked at the Unity Character Controller, I think its very worthwhile doing so - the Unity Engine was basically designed specifically for 3rd person action games and platformers, and I get the feeling you're reinventing the wheel; for example collision flags are cheap + fast, and can very quickly tell you what collisions are happening at any given frame


Another idea I want to try, away from the real world, for a stylized racer, is
to vary the focusing plane while also manipulate the size of the DOF (depth of
field), it's fall-off, depending on stuff like velocity or acceleration.

That's pretty interesting conceptually... I've seen FOV adjust based on speed to emphasise the feeling of moving fast before without having to actually do it, but not DOF (probably as things like dynamic post processing Bokeh are relatively new).
I'd be interested to know how it works - I have a feeling it would be hard to get enough of an effect for people to see its happening but not so much that it becomes impossible to read the upcoming track any more, given how blurs in practice end up in a very binary "I can see its blurred" or "Is that blurred?" state
 

missile

Member
... That's pretty interesting conceptually... I've seen FOV adjust based on speed to emphasise the feeling of moving fast before without having to actually do it, ...
Well, I don't like the changing FOV for faking higher speeds, it distorts the
perspective in some odd ways.

... but not DOF (probably as things like dynamic post processing Bokeh are relatively new).
I'd be interested to know how it works - I have a feeling it would be hard to get enough of an effect for people to see its happening but not so much that it becomes impossible to read the upcoming track any more, given how blurs in practice end up in a very binary "I can see its blurred" or "Is that blurred?" state
I imagine putting the DOF in front of the player with some distance between
the player and the near-plane of the DOF, such that objects coming out of the
DOF towards the player become progressively more defocused. Likewise with
object beyond the far plane of the DOF. The depth of the DOF and it's position
can be varied according to some parameter like speed, action etc. So for
example, if you're at rest you can see quite sharp from your position a couple
of meters into the scene until looking beyond the end of the DOF where the
objects become defocused more and more. With increasing speeds the DOF's
near-plane can be made to move out to defocus close-by objects not being of
any importance any longer because you start to focus more on the action in
front and at a distance away from you. Don't know if this will work or makes
any sense at all, but hey! Lot's of options to try.

[Edit:
That is to say, using a defocus will separate the (currently) important
parts of the scene/action from the unimportant ones. That way you can make
the object of interest stood out from the background as well as from the
foreground as is it usually done in photography.]

My idea is to start out with a low-res pixelized defocusing blur to fit a
certain retro aesthetic I envision which automatically makes the effect much
more visible, perhaps annoying when seen at rest (like low-res textures).
However, when moving faster these pixels gets blurred anyways by the TV and
eye to some degree.

The technique itself is actually pretty simple, it's basically an application
of the so-called thin lens equation relating object distance, image distance
and focal length together. The tricky part is on how to get a fast, good, and
reliable implementation.
 

MrHoot

Member
Improved the idle loop a bit, hair is more wavey and the wings a tad more flexible. Minor changes really but it does a nice trick

8e854994d7.gif
 
It has been a really, really rough year for me but I am finally starting to get back into making my game. I also decided to take a different approach to asset creation and baked much more of the details into the texture maps than I was previously doing. Stuff looks flat up close but still good enough. But I am not sure if I should add more polygons, or separate out the laces and other aspects to get a bit more of the original shape. Then again, the player will probably never see most of the assets this up close...

shfc.jpg
 

anteevy

Member
#audiosaturday, with 100% more layered tracks!

https://www.youtube.com/watch?v=C6OhwZAwRqY

*Really* looking forward to expanding on this system and finding ways to make it synch with the player's actions, as this could add a ton of dynamism!

That's cool! How are you doing it?

My (probably) next game's music will also be extremely dynamic + in sync with everything that's happening on screen. I've learned so much from Ballhalla about synchronizing audio to gameplay (mostly that it is a PITA haha). One of the big problems was that you can't get the real audio track position in UE4 and on some hardware, things got slowly out of sync after several minutes. My workaround was to silently resync the music to the gameplay while loud SFX are played, like when the ball explodes. That resync is barely audible and I don't think anybody has ever noticed it. :D

This time we're using FMOD to get it to the next level. I love that you can get not only real "on beat" events, but can also set markers in FMOD Studio and get events when they are reached.
 
Speaking of, this creature looks cute as hell ! I'd put a little hat on his head and call him gnompy (and I really like his animation and looks !)

Improved the idle loop a bit, hair is more wavey and the wings a tad more flexible. Minor changes really but it does a nice trick

8e854994d7.gif

Thanks! And yeah, that polish really went a long way.


I implemented a pretty simple sort of depth sorting for the player versus enemies in the game. Essentially, it sorts the player beneath when she's behind and above when she's in front, relative to the direction the enemy is facing. It works rather well, I think, and it's just a couple lines

Code:
if (Mathf.Abs(transform.position.x - thePlayer.transform.position.x) > 0.8f) behindPlayer = (Mathf.Sign(thePlayer.transform.position.x - transform.position.x) == transform.localScale.x);
transform.position = new Vector3(transform.position.x, transform.position.y, behindPlayer?-4f:-6f); //player z depth is -5f

Circle strafing shows the effect pretty well (I just posted this on twitter, so apologies for the redundancy if you follow me there)

SKVFPlA.gif
 

Pehesse

Member
That's cool! How are you doing it?

My (probably) next game's music will also be extremely dynamic + in sync with everything that's happening on screen. I've learned so much from Ballhalla about synchronizing audio to gameplay (mostly that it is a PITA haha). One of the big problems was that you can't get the real audio track position in UE4 and on some hardware, things got slowly out of sync after several minutes. My workaround was to silently resync the music to the gameplay while loud SFX are played, like when the ball explodes. That resync is barely audible and I don't think anybody has ever noticed it. :D

This time we're using FMOD to get it to the next level. I love that you can get not only real "on beat" events, but can also set markers in FMOD Studio and get events when they are reached.

Ideally I'd have used FMOD or wwise, but those aren't compatible with C2 (being in HTML5 and all), so I'm simply using the built it event system to play the tracks in parallel, and adjust the volume based on triggers! In detail, I'm building a momentum count based on player movement, and I tied the volume of the percussion track directly to this value, so that higher momentum=louder track, and no momentum=no audible track. So far, it works - I'm indeed worried about potential desynchs after several minutes of play, but the best solution is what you've come up with already: resynch everything discreetly whenever possible :-D
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
e:
Thought I'd posted this, but closed a different window, oops



I'm curious why you specifically want a cylinder...? It will make things like ramps / slopes or 'auto climb' stairways extremely difficult to do compared to a capsule.
I want a cylinder, because of the behaviour at the edge of a platform. My character should behave like he had a sort of a round platform for feet, then I can exactly match the area where the character can still stand with the blob shadow. This is what I think feels best for platforming.

Also when you are taking about collisions being event based, do you mean you are doing checks in the OnCollision<whatever>() functions?
If you haven't looked at the Unity Character Controller, I think its very worthwhile doing so - the Unity Engine was basically designed specifically for 3rd person action games and platformers, and I get the feeling you're reinventing the wheel; for example collision flags are cheap + fast, and can very quickly tell you what collisions are happening at any given frame
Yes, this is what I meant. I'd rather check directly if a certain position is available or not and compute ground effects via a separate function. Collision Flags would probably have been an (easier) alternative. Now that I have implemented the full collision detection system (for {Sphere, Capsule, Box, Cylinder}²), I will probably stick to it for the time being. It's just that I really want to have full control over the full game logic and since Unity's collision detection did not offer that to me, I have now "reinvented the wheel". Of course, should my solution (bounding spheres to quickly determine some object pairs have not collided, then precise computation if spheres collide) run into performance problems, I will have to reconsider this approach. Thank you for the link to the CharacterController, this will probably be the solution I will choose if I run into performance problems due to using my own collision detection.
 

anteevy

Member
Ideally I'd have used FMOD or wwise, but those aren't compatible with C2 (being in HTML5 and all), so I'm simply using the built it event system to play the tracks in parallel, and adjust the volume based on triggers! In detail, I'm building a momentum count based on player movement, and I tied the volume of the percussion track directly to this value, so that higher momentum=louder track, and no momentum=no audible track. So far, it works - I'm indeed worried about potential desynchs after several minutes of play, but the best solution is what you've come up with already: resynch everything discreetly whenever possible :-D
Ah, okay. Hope it works out, looking forward to updates on your progress! :)
 

KageZero

Member
Sorry i could find these answers most likely by myself but i'm felling a bit lazy so here i am.

So i'm planning to start some game development (again) by myself as a side project. So far i have some minor programming experience (i wrote some simple c# programs, made a simple 2d platforming game in java) and i'm having problems of picking a engine to get started.

I must say i worked a bit with unity before (just a bit) but i'm not sure should i resume with unity or maybe pick up Unreal. My c++ is basically noone existent but even if i start working on my game i would like to pick a future proof engine. The problem i have is that unity seems to be lacking when it comes to "big games" (splatoon, dishonored you get the picture) and maybe down the road i would maybe give a shoot and try to apply at some games studio(if possible i would like to work on some nintendo stuff, a dream i know).

I know that in 98% i will be fine of unity (even if i manage to that) but that 2% is still bugging me.

Sorry for such a weird post but maybe someone will have the time to answer me.

PS: also if you recommend and have experience with either of these engines and have some tutorials to share please do so. If possible i would love to work "with the right way" as in use good programming practices and optimize my code from the start, at least as far as i can ( i know this stuff comes as you progress but still maybe there is a good way from the start. Thanks
 

LordRaptor

Member
The problem i have is that unity seems to be lacking when it comes to "big games" (splatoon, dishonored you get the picture) and maybe down the road i would maybe give a shoot and try to apply at some games studio(if possible i would like to work on some nintendo stuff, a dream i know).

The practical realities of games development are that - IIRC - more than half of all mobile games development is done in Unity, and mobile games development is where game studio jobs are.
 

Tain

Member
UE4 C++ is pretty comfortable.

I'd say jump in and it'll be a good learning experience, but I vastly prefer Unreal to Unity and I'm assuming you aren't making a mobile game.
 
Published an updated version of my Dracula game, OverBite

N2Dgxwc.png


https://hotdoglaser.itch.io/overbite

Basically, I went back and finished off the features I wanted for the version I submitted to the Game Jam but didn't have time to get done

I'm also trying to get together a trailer so I can maybe pass it around places like RPS and maybe they'll give me a nod.

tT6gG0C.png


Drew this with a mouse for art to use during the trailer
 

MrHoot

Member
Been working on the first implementation of damage vs enemies. So far okay tho some stuff will be messy (okay for a prototype). Thankfully this enemy type is pretty simple to get around

54c6619552.gif

e6091e6b60.gif
 

MrHoot

Member
https://youtu.be/Crug8zuQmVM

Okay, there's the trailer for OverBite. Now to get ignored by a bunch of outlets for being yet another pixel art 2D indie platformer :p

By the sway I played it. ABSOLUTELY enjoyed it. Cracked up at the sounds the most and it's really damn enjoyable for a small one month game. Really inventive ways to use the Dracula mythos as well =p

Question: Do you use a widget for controller support ?
 
By the sway I played it. ABSOLUTELY enjoyed it. Cracked up at the sounds the most and it's really damn enjoyable for a small one month game. Really inventive ways to use the Dracula mythos as well =p

Question: Do you use a widget for controller support ?

I do, kind of. I mostly use Clickteam Fusion's built-in controller support, but that only supports the default four face buttons, and I don't entirely use CTF's vanilla input. I write my own.

I create an object with all the variables for buttons being on/off. So, like

Button 1 Tap
Button 1 Held
Button 2 Tap
Button 2 Held
etc.

And then I make Clickteam Fusion's input system feed in to that. This gives me ever so slightly more control over how my game understands input.

I then use an extension to extend Clickteam Fusion's gamepad support a little bit. I said earlier that CTF only reads the four face buttons, but using the "Joystick 2" extension, it can read up to 128 buttons, analog triggers, POV hats, etc. That's how I get the shoulder buttons and Xbox d-pad support working. And since it's feeding in to my input system, I can remap buttons pretty easily.

So, like, button 5 is a shoulder button (or whatever), but if the user pushes button 5, it remaps in my system to button 2 (so the shoulder buttons act as a second bite input).

This is also how I handle multiple controller types. Button 1 on an Xbox isn't Button 1 on a Playstation, so I hard-coded three profiles (Generic controller, Xbox 360, DualShock 4) and remap the inputs depending on the controller's device name I pull out of the Joystick 2 object.

Joystick 2 also reads controller input even when CTF's input system is switched off of controller mode, so it's pretty easy to write a way to have it automatically switch between keyboard and controller input on the fly.
 

Fou-Lu

Member
I just paid for a bunch of Unity courses and a UE4 course on Udemy during their black friday sales. Hope they are worth it and actually useful.
 
So I've been following/copying off sample code on the Unity live training sessions on ScriptableObjects and have modified a bit of the scripts on the second portion (where it has a basic inventory system going on), changing the items themselves so it fits more with my needs.

1. By itself, it appears to be working fine - making the inventory list, that is, modified editor included, and things are being stored properly. For some reason the whole thing just ends up wedging in a strange way if I make InventoryItem inherit ScriptableObject instead of just being a normal class.

How wedged? Well, it appears to work fine... until you exit and reload the Unity editor. The item list does not automatically load. No biggie, I thought. Then the editor just errors out with NullReferenceExceptions when you try to reload the item list. If it wasn't a ScriptableObject inherit, nothing goes wrong.

2. Would I miss anything particularly important if I don't do that?


Never mind, I seem to have stopped the video too early to catch a few more important things.
 

Pazu

Member
if you've got a Vive and want to try Chiaro and the Elixir of Life, we're putting together a small list of beta testers to start collecting feedback. we've been demo-ing at festivals in Montreal and at Fantastic Arcade in Austin but would really value the opinions of Vive users from all over (we're still deep in development)!

drop me a line and I'll add you to the list to get a Steam key!

boka.png
 

Makai

Member
if you've got a Vive and want to try Chiaro and the Elixir of Life, we're putting together a small list of beta testers to start collecting feedback. we've been demo-ing at festivals in Montreal and at Fantastic Arcade in Austin but would really value the opinions of Vive users from all over (we're still deep in development)!

drop me a line and I'll add you to the list to get a Steam key!

boka.png
me
 
Status
Not open for further replies.
Top Bottom