• 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.
I think she looks fine now, right?

Make the neck a little thinner (when I mean a little I mean just a small touch) and I think it will be perfect, and yes, it looks much better now.

Also, as JulianImp said, make more space for the name. I would even make the font name bigger so its easier to read and it shows better who is talking.

Realizing watching a 22 minute video is a lot to ask for some people, here are the coolest parts:

difficult bug battle: https://youtu.be/ePE7v2JCEGU?t=812

cool scene: https://www.youtube.com/watch?v=ePE7v2JCEGU&feature=youtu.be&t=1120

I'm really excited about the soundtrack.

Holy moly metroid, Jobbs.
It already looked fantatsic, but that enemy attack with you screwdriving everywhere and shooting was amazing.
 

XHPrime

Member
My game Gran Vitreous which I've posted about a few times before in this thread is finally releasing on Steam today.

We had a long delay between our first release on Desura to the point we made it through the Greenlight system. We took a few months post clearing through to polish the game up and add some features to improve the Steam version.

I think getting in a bundle was pretty beneficial to grabbing some more votes to clear through so if you're in a similar position this might be a good way to get a surge of attention for Greenlight.

Trailer
Steam Page
 

Ito

Member
Realizing watching a 22 minute video is a lot to ask for some people, here are the coolest parts:

difficult bug battle: https://youtu.be/ePE7v2JCEGU?t=812

cool scene: https://www.youtube.com/watch?v=ePE7v2JCEGU&feature=youtu.be&t=1120

I'm really excited about the soundtrack.

This is my favourite footage of the game so far. When you get to that underwater section and the music starts playing, suddenly my inmersion levels reach the top and I'm craving for more.

Also, I find those puzzles with the slime balls really interesting. They are easy to understand (you realize very soon what is your goal), and I see a lot of possibilities. They are fun to solve too (you don't just push something or press a button, you actually play with a bouncy ball).

Nice physics btw. Did you have to code a lot for that? Or Stencyl does the hard work for you?
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
Said it before and saying it again: naming shit is the hardest part about programming.

I'd argue it's the second hardest. The hardest thing being to get your arse up to comment each and every function and variable, since, no matter how clever you think your naming is, you will forget what they were good for and then it takes quite some time to figure it out again.

I've still been busy optimizing the path finding, but now I'm at a point, where I run the path finding intertwined with the rest of the game logic and reduced the amount of time needed for path finding and computing attackable fields (which still is the most expensive part of my game and will, wrt. algorithmic complexity, probably stay the most expensive part) has been reduced to a level of 1-50 ms. But it is really extremely strange that even if I let the game just compute Dijkstra on the same character again and again (so by the source code, exactly the same steps each time) the time varies so much. Most of the time it's 6-7 ms, but every once and a while it suddenly takes between 30-50 ms, which is outrageously much, because a frame should just take 17 ms and I really do not want to split up a single computation of Dijksta into several frames, because that would be quite the hassle :/. Since I'm so OCD about this, I'll probably still do it if I cannot find out where these random spikes come from.
 

Mr. Virus

Member


Holy crap Monstrum's now out of Early Access D:! Click the pic to head through.

Also, it kinda goes without saying but never EVER EVER EVER bug fix on the day something's going to go live. Yikes.
 

Water

Member
I've still been busy optimizing the path finding, but now I'm at a point, where I run the path finding intertwined with the rest of the game logic and reduced the amount of time needed for path finding and computing attackable fields (which still is the most expensive part of my game and will, wrt. algorithmic complexity, probably stay the most expensive part) has been reduced to a level of 1-50 ms. But it is really extremely strange that even if I let the game just compute Dijkstra on the same character again and again (so by the source code, exactly the same steps each time) the time varies so much. Most of the time it's 6-7 ms, but every once and a while it suddenly takes between 30-50 ms, which is outrageously much, because a frame should just take 17 ms and I really do not want to split up a single computation of Dijksta into several frames, because that would be quite the hassle :/. Since I'm so OCD about this, I'll probably still do it if I cannot find out where these random spikes come from.

The garbage collector kicking in would be a typical cause of that symptom in GC'd environments like Unity. I didn't see you mention what tech you are using. Is GC involved, and have you already profiled & inspected the code to ensure it's not constantly doing memory allocation and release over time? It could be indirect, like through use of standard library facilities.
 

Das-J

Law of the West
Also, it kinda goes without saying but never EVER EVER EVER bug fix on the day something's going to go live. Yikes.
Ha yeah that's a good rule... and one that's consistently broken in AAA development. One game I worked on was still adding features while we submitted Gold Master Candidates!
 

Jobbs

Banned
Thanks everyone for your replies. :)

Also, I find those puzzles with the slime balls really interesting. They are easy to understand (you realize very soon what is your goal), and I see a lot of possibilities. They are fun to solve too (you don't just push something or press a button, you actually play with a bouncy ball).

Nice physics btw. Did you have to code a lot for that? Or Stencyl does the hard work for you?

The ball thing arose from me tinkering around trying to figure out something to do other than just kill bugs. :)

All of the movement and forces and physics in the game are Box 2D. From my end it's pretty easy to implement (mostly) because Stencyl comes with Box 2D already baked into it. Sometimes it takes some experimentation to get it to work how you want.
 

Ashodin

Member
I'm bug fixing a lot myself... sheesh game development you know!

But it is so satisfying to fix bugs. And fix broken content.
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
The garbage collector kicking in would be a typical cause of that symptom in GC'd environments like Unity. I didn't see you mention what tech you are using. Is GC involved, and have you already profiled & inspected the code to ensure it's not constantly doing memory allocation and release over time? It could be indirect, like through use of standard library facilities.

Hmm, yes it is constantly doing memory allocation and release over time, I didn't know the garbage collector is working in this periodical way. Thank you very much, I can prevent this easily :).

Yeah, this made a huge difference, I can't get a time of more than 20 milliseconds anymore. This will still lead to a small frame delay at 60 fps, but I cannot see it, so I'm fine with that for now. Many thanks!
 
So I'm trying to get the word out about my game's demo, and so far nothing. But oh well.

I did, however, get a reply from a site saying they'd write an article up for ten dollars. They actually have like 40k twitter followers, and I'm sad to say that the deal doesn't sound all that bad.

But it's slimy as fuck, holy damn. "Sure, pay us to do an article, you know, that thing our website thrives on."

I can't imagine they give EA and the like the same treatment when they send out press releases :\
Update on this front: For ten dollars, they copy/paste my press release and turn into an article. It doesn't look like they do much else.

I wish they were marketing themselves as a news source and not a blog so I could just tear them to shreds. The fucks.
 
Hello everyone, I posted here a while ago about getting my DS4 to work for my game in Unity 4.6, I'm almost done with the game and now I started to make the menu for it but I don't know how to control with the keyboard and DS4 the GUI buttons. There is almost no tutorials about getting gamepads to navigate menus in Unity, all I find is how to make a menu with just the mouse input. The only resource I've found is this forum in the Unity help but the code doesn't seem to work for me, and I also don't know where to drop the script on my scene.

TL;DR
Does anyone know how to navigate a menu in Unity with a gamepad and keyboard?
 
Hello everyone, I posted here a while ago about getting my DS4 to work for my game in Unity 4.6, I'm almost done with the game and now I started to make the menu for it but I don't know how to control with the keyboard and DS4 the GUI buttons. There is almost no tutorials about getting gamepads to navigate menus in Unity, all I find is how to make a menu with just the mouse input. The only resource I've found is this forum in the Unity help but the code doesn't seem to work for me, and I also don't know where to drop the script on my scene.

TL;DR
Does anyone know how to navigate a menu in Unity with a gamepad and keyboard?

Yeah, don't look up such old posts for GUI stuff. Unity 4.6 introduced a completely different UI system. It's super easy to make your UI navigable with the keyboard/gamepad now, you just need to set the navigation options correctly on your UI elements. You may also need to set some transition options so that the buttons (or what have you) have a different look when they're highlighted (i.e. selected by keyboard/gamepad/mouseover).

So let's say you have a simple menu made of a series of vertically placed buttons, just set all the buttons' "navigation" property to vertical or even automatic (I think that's actually the default), and you'll be able to navigate from one to the other by using your vertical input axis (by default, w and s or up and down on keyboard, and left analog on gamepad), and activate the selected one using the "submit" button (again by default, enter or space on keyboard, and button 0 on gamepads - so A on Xbox, and I assume X on PS).

The "EventSystem" object that is created automatically when you add a UI component to the scene will allow you to specify which inputs to use for navigation, as well as which UI element is selected by default with the "First Selected" property - it's important to set this to your first menu item, otherwise navigation won't work until you click on something.
 
Yeah, don't look up such old posts for GUI stuff. Unity 4.6 introduced a completely different UI system. It's super easy to make your UI navigable with the keyboard/gamepad now, you just need to set the navigation options correctly on your UI elements. You may also need to set some transition options so that the buttons (or what have you) have a different look when they're highlighted (i.e. selected by keyboard/gamepad/mouseover).

So let's say you have a simple menu made of a series of vertically placed buttons, just set all the buttons' "navigation" property to vertical or even automatic (I think that's actually the default), and you'll be able to navigate from one to the other by using your vertical input axis (by default, w and s or up and down on keyboard, and left analog on gamepad), and activate the selected one using the "submit" button (again by default, enter or space on keyboard, and button 0 on gamepads - so A on Xbox, and I assume X on PS).

The "EventSystem" object that is created automatically when you add a UI component to the scene will allow you to specify which inputs to use for navigation, as well as which UI element is selected by default with the "First Selected" property - it's important to set this to your first menu item, otherwise navigation won't work until you click on something.

Thank you for your response HellBlazer.

Although it does look simple with navigation option, is there no way to do it with code? I also don't full understand how the GUI works yet (I struggled a lot just trying to position and resize the buttons in the gigantic canvas) and I think I deleted an object called "Event", I also don't see the options that are shown in the Unity Manual that you've linked in my own project.
 
Code:
X,Y state system.

Up/down Adds and subtracts 1 for Y
Left/Right adds and subtracts 1 from X

0,0 - Press button - do stuff
0,1 - press button - do stuff

So up and down the menu would change Y
Left and right would change X

Each X,Y is a state the menu will launch for a particular menu item. Then you can use a second modifier, Z or the like, to denote menu screen (main screen, options screen, etc)

You will probably want to add a polling rate as both the d-pad and analog sticks are axes, not buttons, so they register every frame - this prevents holding down the button and scrolling through the menu at a million miles per hour. You will also want to add a "wrap" for the menu system - say you can move down 5 selections, Y would be 5 or -5, above or below it would change back to zero and wrap back to the topmost menu item or however you have it setup. To prevent a wrap, prevent the number from exceeding your selections.

There's nothing special about coding it this way. You just use a few integers to check the state of the menu: vertical row, horizontal row (if needed) and menu state. Pressing a button checks the X and Y numbers and executes the appropriate command (start, load, quit, etc). Its just logic. It can be written a myriad of ways but a simple integer check is usually quickest to prototype.

None of the above depends on a menu or clickable GUI elements existing. You already know what functions the buttons do when clicked, so just call them using states and a state check.
 
Code:
X,Y state system.

Up/down Adds and subtracts 1 for Y
Left/Right adds and subtracts 1 from X

0,0 - Press button - do stuff
0,1 - press button - do stuff

So up and down the menu would change Y
Left and right would change X

Each X,Y is a state the menu will launch for a particular menu item. Then you can use a second modifier, Z or the like, to denote menu screen (main screen, options screen, etc)

You will probably want to add a polling rate as both the d-pad and analog sticks are axes, not buttons, so they register every frame - this prevents holding down the button and scrolling through the menu at a million miles per hour. You will also want to add a "wrap" for the menu system - say you can move down 5 selections, Y would be 5 or -5, above or below it would change back to zero and wrap back to the topmost menu item or however you have it setup. To prevent a wrap, prevent the number from exceeding your selections.

There's nothing special about coding it this way. You just use a few integers to check the state of the menu: vertical row, horizontal row (if needed) and menu state. Pressing a button checks the X and Y numbers and executes the appropriate command (start, load, quit, etc). Its just logic. It can be written a myriad of ways but a simple integer check is usually quickest to prototype.

None of the above depends on a menu or clickable GUI elements existing. You already know what functions the buttons do when clicked, so just call them using states and a state check.

Do you have an example? With the exception of how to setup the axis, I don't understand what you're explaining.
 

Lautaro

Member
I wish there was a way of working in my project without thinking in my project... there's around 2 or 3 months for me to release and I'm getting more and more anxious.
 

friken

Member
<warning.... exhausted indie rant ahead>

First, I want to say I'm extremely grateful for opportunities for free e3 promotion for stardiver through the ID program and other efforts. But, I still feel like venting a little. The last two weeks I have felt like a hamster on a wheel. No matter how fast I run the overall project feels frozen. Sure, I've progressed some marketing, a few art revisions, and biz misc but sheesh at this rate I'm on the decade dev plan! It seems like there are just not enough hours in a day for a micro-indie team like ours to get the game done AND all the other misc that goes along with it.

I think I need to rethink things a bit and remember -- all the best marketing in the world is for nothing if there isn't a product to sell. Time to wrap up some of the 'other stuff' and get back to the core of what will get this game done.... code on code monkey :/

<end rant>
 

Jobbs

Banned
<warning.... exhausted indie rant ahead>

First, I want to say I'm extremely grateful for opportunities for free e3 promotion for stardiver through the ID program and other efforts. But, I still feel like venting a little. The last two weeks I have felt like a hamster on a wheel. No matter how fast I run the overall project feels frozen. Sure, I've progressed some marketing, a few art revisions, and biz misc but sheesh at this rate I'm on the decade dev plan! It seems like there are just not enough hours in a day for a micro-indie team like ours to get the game done AND all the other misc that goes along with it.

I think I need to rethink things a bit and remember -- all the best marketing in the world is for nothing if there isn't a product to sell. Time to wrap up some of the 'other stuff' and get back to the core of what will get this game done.... code on code monkey :/

<end rant>

I know what it feels like when a lot of time passes and very little progress is made. I hate it. so frustrating. Other times a lot of progress is made in a short time, though, and I just wonder how fast I could make games if I could just ALWAYS be going at that fast rate.
 

friken

Member
I know what it feels like when a lot of time passes and very little progress is made. I hate it. so frustrating. Other times a lot of progress is made in a short time, though, and I just wonder how fast I could make games if I could just ALWAYS be going at that fast rate.

I wonder the same. I do admit that my own lazy times complicate the matter :/ When I do have ultra-productive days, I can keep that up for a few days to a week and I'm zapped and take a day or few off for mental recoup. If only..... 110% plugged in every day, I may get StarDiver done in a year instead of decade! :)
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
Do you have an example? With the exception of how to setup the axis, I don't understand what you're explaining.

I don't understan this either, but here is how I did my menu (since I plan to make a button controlled console game, I don't use any mouse-controls):
In OnUpdate I do this:
Code:
void Update () {
		if ((menuNumber==0)||!(answer == Menuchoice.None))
			return;
		
		if (Input.GetKeyDown ("down"))
			menuchoice = (menuchoice + 1) % numberOfMenuElements;
		if (Input.GetKeyDown ("up"))
			menuchoice = (menuchoice - 1+numberOfMenuElements) % numberOfMenuElements;
		if (Input.GetKeyDown ("space"))
			buttonpress = 3;
		if (Input.GetKeyDown ("escape"))
			buttonpress = 4;

	}



Then in OnGUI I call for instance the AttackMenu which is implemented like this:
Code:
	void attackMenu(){
		for (int i=0; i<actor.physicalAttacks.Count; ++i) {
			if (menuchoice == i)
				GUI.Label (new Rect (10, 10 + 40 * i, 100, 30), actor.physicalAttacks [i].name, GameManager.instance.markedButton);
			else
				GUI.Label (new Rect (10, 10 + 40 * i, 100, 30), actor.physicalAttacks [i].name, GameManager.instance.unmarkedButton);
		}
		if (menuchoice == actor.physicalAttacks.Count)
			GUI.Label (new Rect (10, 10+40*actor.physicalAttacks.Count, 100, 30), "Abort", GameManager.instance.markedButton);
		else
			GUI.Label (new Rect (10, 10+40*actor.physicalAttacks.Count, 100, 30), "Abort",  GameManager.instance.unmarkedButton);
		if (buttonpress == 3) {
			if (menuchoice == actor.physicalAttacks.Count)
				answer = Menuchoice.Abort;
			else{
				answer = Menuchoice.NumericalOption;
				NumericalAnswer = menuchoice;
			}
			menuNumber = 0;
		}
		if (buttonpress == 4) {
			answer = Menuchoice.Abort;
			menuNumber = 0;
		}
	}

It's important to remember the button press via OnUpdate, because OnGUI can be called several times. It probably is not the most clever way of doing this, but it works fine.
 

missile

Member
Thanks everyone for your replies. :)
Pretty cool all the way down, but a bit too blurry/smooth for my eyes at
times. Well, what's the native resolution of the game, and can you post about
three quite different shots at the native resolution over here? I want to test
something out on me.
 
Thank you for your response HellBlazer.

Although it does look simple with navigation option, is there no way to do it with code? I also don't full understand how the GUI works yet (I struggled a lot just trying to position and resize the buttons in the gigantic canvas) and I think I deleted an object called "Event", I also don't see the options that are shown in the Unity Manual that you've linked in my own project.

This tutorial video covers the topics of navigation and transitions (and other stuff) in more details than I could, so that would probably be useful to you. There's also the full list of UI tutorials by 3DBuzz here if you need help with other topics, as well as Unity's own UI tutorials.

If you deleted the EventSystem object though, yeah, the UI isn't going to work at all. It's very easy to get it back though, just go to Create -> UI -> Event System in the hierarchy window. Navigation between UI elements (like in a list of buttons for a menu for instance) should really be working automatically by default, though as I said you might need to set the "First Selected" property on the EventSystem to initially select your first menu item.

It's certainly possible to do it all in code but... why reinvent the wheel? :) If you really want to though, you can get the selected menu item based on your input like what Yoshi suggested for the Update() method, then select the appropriate UI button using its Select() method. Note that the rest of Yoshi's code in the attackMenu() method is using Unity's old legacy GUI system though, which 1) I don't think you're using, since you mentioned messing with a canvas, and 2) you really shouldn't be using in 4.6 anyway, unless you already have a lot of legacy code.
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
It's certainly possible to do it all in code but... why reinvent the wheel? :) If you really want to though, you can get the selected menu item based on your input like what Yoshi suggested for the Update() method, then select the appropriate UI button using its Select() method. Note that the rest of Yoshi's code in the attackMenu() method is using Unity's old legacy GUI system though, which 1) I don't think you're using, since you mentioned messing with a canvas, and 2) you really shouldn't be using in 4.6 anyway, unless you already have a lot of legacy code.

Though I've been warned that for Wii U compatibility it might be a good idea to rely on this legacy tech ^^. I do not know if a Wii U-version of the game Barajas_201 is working on is even remotely planned, so yeah, I guess newer implementations of the GUI system might be a better option wrt convenience and speed.

I've still got a question regarding Unity:
Due to problems with the garbage collector, I've put variables into the class instead of into the function and reuse the same arrays for consecutive calls of the reachable-spaces-function. However in order to not waste any additional memory by keeping an array alive for each unit (it can be around 67 KB (I miscomputed the memory before) in size, for huge maps), I've set it to static, so each unit can use the same array. This works fine so far, however, it works because I never intertwine two "reachable spaces"-computations for different characters. If two such computations were intertwined, this would lead to a ciritcal error in game logic.

Therefore my question: Can I be sure that Unity does not intertwine two Update() calls without me explicitly coding this? I do not want to introduce errors this way. I really hope that I can be sure of that because the solution I have now is both, quick and relatively light on memory usage, because an overhead of 67 KB for all characters together seems to be reasonable. 67 KB each can limit my budget later on.
 
<warning.... exhausted indie rant ahead>

First, I want to say I'm extremely grateful for opportunities for free e3 promotion for stardiver through the ID program and other efforts. But, I still feel like venting a little. The last two weeks I have felt like a hamster on a wheel. No matter how fast I run the overall project feels frozen. Sure, I've progressed some marketing, a few art revisions, and biz misc but sheesh at this rate I'm on the decade dev plan! It seems like there are just not enough hours in a day for a micro-indie team like ours to get the game done AND all the other misc that goes along with it.

I think I need to rethink things a bit and remember -- all the best marketing in the world is for nothing if there isn't a product to sell. Time to wrap up some of the 'other stuff' and get back to the core of what will get this game done.... code on code monkey :/

<end rant>

I feel the same, it doesn't matter how much time you spent, things move reaaaaallllly slow... wondering if there is a way to make things faster? maybe make an Indie AI to do the programming for us? :p
 
My game Gran Vitreous which I've posted about a few times before in this thread is finally releasing on Steam today.

We had a long delay between our first release on Desura to the point we made it through the Greenlight system. We took a few months post clearing through to polish the game up and add some features to improve the Steam version.

I think getting in a bundle was pretty beneficial to grabbing some more votes to clear through so if you're in a similar position this might be a good way to get a surge of attention for Greenlight.

Trailer
Steam Page

congratulations! another Indie game released! hopefully I will reach that milestone sometime in the near future
 

Mr. Virus

Member
Ha yeah that's a good rule... and one that's consistently broken in AAA development. One game I worked on was still adding features while we submitted Gold Master Candidates!

Yeah ha ha! Every other job I've worked has always had people fiddling with things right until the big red button is pushed. May learn one day!

My game Gran Vitreous which I've posted about a few times before in this thread is finally releasing on Steam today.

We had a long delay between our first release on Desura to the point we made it through the Greenlight system. We took a few months post clearing through to polish the game up and add some features to improve the Steam version.

I think getting in a bundle was pretty beneficial to grabbing some more votes to clear through so if you're in a similar position this might be a good way to get a surge of attention for Greenlight.

Trailer
Steam Page

Congrats :D! Looks really nice!
 
Therefore my question: Can I be sure that Unity does not intertwine two Update() calls without me explicitly coding this? I do not want to introduce errors this way.

I don't believe Unity runs multiple scripts concurrently, as I've had problems with order of execution before, and Unity has a built in setting where you can explicitly define order of execution for your scripts.
 
Do you have an example? With the exception of how to setup the axis, I don't understand what you're explaining.
Menu:

Start
Load
Quit

Start is 0, load is 1 and Quit is 2.

Hitting down on the d-pad changes the y integer: y++

If you hit the go button and the number is 2, you //quit

You set the state of the menu when you move menu options up down left or right. When you execute the menu option by hitting X or Start, you check what state the menu is in and execute the appropriate menu command.

Integers are the states. Hitting the stick/pad either ++ or -- the state. Hitting the go button checks the number and executes a command.

Probably one of the easiest menu systems with a controller or keyboard since it does not reply on anything but a few integers. No events, GUI, buttons, etc. Just a state based on the number of an integer.
 

Water

Member
Therefore my question: Can I be sure that Unity does not intertwine two Update() calls without me explicitly coding this? I do not want to introduce errors this way. I really hope that I can be sure of that because the solution I have now is both, quick and relatively light on memory usage, because an overhead of 67 KB for all characters together seems to be reasonable. 67 KB each can limit my budget later on.
Unity runs user code single threaded, never intertwined. If it were not so, the engine would be hideously difficult to use.
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
Unity runs user code single threaded, never intertwined. If it were not so, the engine would be hideously difficult to use.

Thank you, I'm happy to hear that. I agree it would be very difficult, but I've never worked with a pre-made engine and thus I wasn't sure what's common in that regard.
 

BibiMaghoo

Member
General design questions for you kind folks, but how do you think no movement animations in a turn based game would be received?

I know lots of people like to turn them off for faster resolution and play, but I feel that if not there at all, perhaps people will see it as a failure, rather than the best course.

For example in chess games, some will show the piece lifted and moved to it's new position, where as others will just move it there. Is this something that should really have both options, even if no animations is the default? What is the general view on this here?
 
Thank you, I'm happy to hear that. I agree it would be very difficult, but I've never worked with a pre-made engine and thus I wasn't sure what's common in that regard.
Keep in mind Update() can run in any script and any order one before another. Frame 1 script A can run first and B second and frame 2 B can run first and A second.

It is why we have LateUpdate() to ALWAYS execute after all Update() has finished and script order execution in project settings, to further tweak what gets executed in what order.
 

missile

Member
SS4361e.gif


When "lensing" a raster, it becomes jagged/aliased pretty fast. And because
I'm going to use some interesting rasters in the near future, I have thrown
some more samples at the problem for computing a nice 'n clean lens distortion
(interior only for the time being) while removing much of the aliasing
pattern. Looks much cleaner now from over here. The strong distortion at the
center if the lens is done on purpose to amplify the situation.


This tutorial video covers the topics of navigation and transitions (and other stuff) in more details than I could, so that would probably be useful to you. There's also the full list of UI tutorials by 3DBuzz here if you need help with other topics, as well as Unity's own UI tutorials. ...
Don't know about Unity, but next to the Rect Tranform, is there also something
like an Image Tranform? Guess for example I want a button to be magnified
within its boundary in a lens like fashion when hovering it for example. How
I am going to do this using Unity?
 
What is the general consensus on Clickteam Fusion? I know a few popular games were developed using it, such as FNAF and AVGN Adventures. I want to get into game building, but would like something relatively easy to work my way into. I do have programming experience but any time I look to build something from scratch it seems very intimidating.

What would be a good platform to get started?
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
Keep in mind Update() can run in any script and any order one before another. Frame 1 script A can run first and B second and frame 2 B can run first and A second.

It is why we have LateUpdate() to ALWAYS execute after all Update() has finished and script order execution in project settings, to further tweak what gets executed in what order.

Many thanks again for this hint. In the particular game it will not be a problem because I will execute pathfinding only once per Update() call of the GameManager and execute it from no other script but this is important to keep in mind for the future :). Defining a fixed order in which update() calls are being processed would be a lot more convenient though.
 

Jobbs

Banned
Pretty cool all the way down, but a bit too blurry/smooth for my eyes at
times. Well, what's the native resolution of the game, and can you post about
three quite different shots at the native resolution over here? I want to test
something out on me.

The native res is 1720x968. It's a bit of a long story how the res came to be what it is, but it involves noobness and stencyl problems (at the time) and at this point it'd be impractical to change the native res to 1080p. That said, while certain areas of the bug tunnels are very murky looking, in general I don't think the game looks that blurry. Check out the trailer if you haven't, it shows a lot more variety than my bug tunnel video. Incidentally, I'm very proud of that trailer, I think it's the best/only good video I've ever edited.

I can't get to the game right now but I'll get some native shots a bit later.

edit: here you go. the game has a grain shader and a rolling color limiting shader (this produces the subtle banding you see, and the value is always rolling back and forth, which causes the bands to slightly pulse/change) -- these produce kind of a "living" effect and it doesn't translate well to still screenshots IMO. You can also notice a sharpening shader which is there to help it look a bit sharper after it's upsized. I actually frequently go back and forth as to how to set (or whether to set) this shader at all. Sometimes the less-sharpened look seems to have its charms.


Most the time, the kind of scuzzy/dirty look of the game is by choice, I don't like things to be so perfect for some reason.
 
SS4361e.gif


When "lensing" a raster, it becomes jagged/aliased pretty fast. And because
I'm going to use some interesting rasters in the near future, I have thrown
some more samples at the problem for computing a nice 'n clean lens distortion
(interior only for the time being) while removing much of the aliasing
pattern. Looks much cleaner now from over here. The strong distortion at the
center if the lens is done on purpose to amplify the situation.



Don't know about Unity, but next to the Rect Tranform, is there also something
like an Image Tranform? Guess for example I want a button to be magnified
within its boundary in a lens like fashion when hovering it for example. How
I am going to do this using Unity?
I'm not the best at this sort of thing but probably a shader or camera effect. Using an object like a lens (circle) you capture the screen using a 2nd camera with a fish eye, culling the lens object, then overlay that capture as a texture or sprite on the "lens" object and mask the bounds of the object with a shader.

Similar to how you would setup multiple cameras to reproject what they are seeing on in-game "screens" to simulate "security camera" footage as textures every frame on a monitor object.

Would be the easiest using in-game tools but nothing is stopping you from rolling your own effects for exacting results.

Edit: you can probably set the viewport of the secondary camera to a smaller FOV when needing to capture a small section to reduce overhead.
 

missile

Member
... Most the time, the kind of scuzzy/dirty look of the game is by choice, I don't like things to be so perfect for some reason.
No need to declare yourself. Am not talking about design choices. That's not
my job. I even don't like if people want to tell the artist how (s)he should
do things in his/her game. Even if you would use a massive giant blur covering
the whole screen beyond recognition of any detail, or whatever, it would be
entirely up to you. Right? I like to play a game like the artist had it in
mind and not how I envision it in my mind. Anyhow. I just wanted to let you
know that from over here the game looks a bit blurry (going by the given
material) such that you can consider the reason for why this might be the
case. Going by the (video) material, it is impossible to say show sharp the
images are once they got blurred/touched in any way (due to whatever process,
i.e. by youtube or other forms of transcoding considerations). So to know what
sort of blur is real and what was introduced via transcoding etc. can only
be answered given the originals, which is what I asked for, for getting a
better picture on my side. And I have to say, the originals do look much better
and the slight blur here and there perfectly matches the overall atmosphere,
by design, as you said. Well, you may perhaps post a native image now and then
to show people how the game will in all likelihood look on their end. :+


I'm not the best at this sort of thing but probably a shader or camera effect. Using an object like a lens (circle) you capture the screen using a 2nd camera with a fish eye, culling the lens object, then overlay that capture as a texture or sprite on the "lens" object and mask the bounds of the object with a shader.

Similar to how you would setup multiple cameras to reproject what they are seeing on in-game "screens" to simulate "security camera" footage as textures every frame on a monitor object.

Would be the easiest using in-game tools but nothing is stopping you from rolling your own effects for exacting results.

Edit: you can probably set the viewport of the secondary camera to a smaller FOV when needing to capture a small section to reduce overhead.
Indeed, render to texture would do. What I was asking for requires sort of an
deferred approach similar to deferred rendering, since with a z-buffer engine
the required information is already lost resp. wasn't even computed. So when
an opaque window, for example, partially covers a button, the remaining
visible pixels of the button won't be enough to apply for a post-processing
lens. That's an issue I had with my UI, when a button gets clipped by
(the bounds of) a window and rendered. I now can defer the clipping,
blending etc. such that I have all the information available. For sure, it
requires more resources ... and is why I wanted to know if Unity may have
found a better way with their new UI. ;)
 
^^ Eek, yeah, I am unsure. I built most of my own systems so I am unsure of how most of their built in stuff handles things. I probably didn't need to go that route but I am able to maintain them per my requirements and add/remove things at will, in case an update or the like changes or removes something I was using. I would probably write a new plugin from scratch to handle it. Good thing is, with the pro version, you have access to the engine with C++ (as far as I recall), so this offers a lot more flexibility to grow your own goodness.
 

missile

Member
^^ Eek, yeah, I am unsure. I built most of my own systems so I am unsure of how most of their built in stuff handles things. I probably didn't need to go that route but I am able to maintain them per my requirements and add/remove things at will, in case an update or the like changes or removes something I was using. ...
We are on the same slope (upwards!). :+

... Good thing is, with the pro version, you have access to the engine with C++ (as far as I recall), so this offers a lot more flexibility to grow your own goodness.
What? That would be cool. Tell me more!

Btw; On a related question; is it possible to sell a shader in Unity as an
asset in compiled form? How is that handled in Unity? Can't be that easy coz
it becomes platform agnostic doing so (would need multiple binaries one for
each accelerator, unless programmed for compatibility). Similar question holds
for (C/C++) object files. Is it possible to sell an API through the asset
store in compiled form targeting (being optimized) for a given hardware
platform Unity runs on?
 
I don't believe compiled, at least I have not seen. Most assets are sold as packages which contain the source.

Access to Unity source code is available for pro users, however, it is available only by special request I am reading. I am guessing they do not just hand it out to everyone :(

I am considering sourcing some of my home grown stuff. More than likely my custom 2D physics. I see a lot of people have troubles with using Rigidbody2D, particularly smoothness of motion and collision. I am just not sure if I will give up my entire character controller for platform interaction (slippery, conveyor, etc), wall stick and other custom code particular for my game. I feel that would be too much, not from a giving away standpoint, but in terms of functionality. I can strip it down to essentials like just movement, collision, gravity, etc. Things that get you started and people can take it from there. If its too built for a particular purpose it will be harder to repurposed and strip. Something to consider when I have more time.
 

Davision

Neo Member
Success, I made my game look like painted by a 4 year old:
ZRfTMaP.jpg


Also made a test with vertex color painting, but that is only in the editor, still hoping Epic makes it also work at runtime.
O30VLOm.gif
 
Status
Not open for further replies.
Top Bottom