• 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.

Indie Game Development Discussion Thread | Of Being Professionally Poor

Status
Not open for further replies.
I'd say just jump in and ask stuff :). Bound to be a few people floating around that might be able to help you out or just talk about what you think in general.

Well one thing I'm needing to do is generate an audio file from a function. I have the function built in C#, and right now it's working perfectly to create all of the amplitudes I need(the signal data, or samples I guess?). I then just need a way to convert that array/matrix in to actual audio. Doing it in real time would be nice, but really at this stage just being able to generate and save the resulting Wav/audio file would be awesome.

If you have any tips on what I should be googling, that'd be great. Or just any help at all would be great too.
 

friken

Member
Added auto-lockon for beam weapons. And ability to randomize non-locked on for things like lightning.

DefinitiveComfortableDwarfmongoose.gif
 

desu

Member
It turns out asking players to memorize things is a horrible idea, as no one wants to memorize anything ever. No one could remember the NATO Phonetic alphabet, so we redesigned our nodes...old on the left, new on the right. It's a little easier to read, as well.

How much effort is it to make it a setting? I think the old version is a lot better but I could understand why someone would also like the new version.

Also with a slight glow like the new version the old version would be pretty easy to read as well.
 

Blizzard

Banned
How much effort is it to make it a setting? I think the old version is a lot better but I could understand why someone would also like the new version.

Also with a slight glow like the new version the old version would be pretty easy to read as well.
I like the new version because I too would have horrible difficulty remembering the NATO alphabet, unless the game is designed largely to be a teaching tool. :p

I am presumably not the target audience of the game since I would just want to use a mouse or keyboard to control rather than talking at all, though.
 

Mr. Virus

Member
Speaking of this, I ran into something I didn't understand while using the Sonar X3 DAW (digital audio workstation) software to make music for Ludum Dare.

I don't think I had ever used automation before, so I wanted to try it as a way to globally fade all tracks at once. I had a simple song with a few tracks of MIDI events, and the "master" shows up as a different track. I was able to get an automation envelope to appear and modify it, or turn on write automation enable and drag the master volume slider while playing the song, and that would change the curve.

The problem was, even though the master bus output volume slider would change the song volume while playing, the automation curve never seemed to do anything useful even though read automation was enabled for the master. The only effect it might have had was that the starting point of the curve would determine the entire song's volume.

I changed to use the master input gain automation curve instead of the master bus output automation curve, and that worked perfectly, fading all tracks at once.

I was still left a bit confused why the bus master output method didn't work though. If anyone can help me understand I would appreciate it!

I don't use Sonar, but that sounds like a pretty weird one :s. Can't see it being an issue with the sends (if you had to set the master track up yourself) or global automation as you ended up getting it working through those.

I know in Ableton that redoing automation while the track's playing can disable it for that track, so may have been something similar?

Well one thing I'm needing to do is generate an audio file from a function. I have the function built in C#, and right now it's working perfectly to create all of the amplitudes I need(the signal data, or samples I guess?). I then just need a way to convert that array/matrix in to actual audio. Doing it in real time would be nice, but really at this stage just being able to generate and save the resulting Wav/audio file would be awesome.

If you have any tips on what I should be googling, that'd be great. Or just any help at all would be great too.

If you're using Unity then this might be helpful: http://forum.unity3d.com/threads/writing-audiolistener-getoutputdata-to-wav-problem.119295/ :).

Though it's a bit more involved it be worth looking into PureData or Supercollider for that sort of stuff too. They're audio programming languages, PD's more visual based while Supercollider is straight coding, but both are pretty powerful. I think Supercollider has some licensing issues when it comes to commercial projects though, so you may want to double check that. But both have pretty extensive libraries and learning materials!

I know Fract used PureData for its audio system in Unity, and it has it's sequencer/studio too, so might be worth asking those guys. They wrote a blog on setting it up here: http://fractgame.com/news/126-fract-audio-tech-getting-started.
 

HelloMeow

Member
Well one thing I'm needing to do is generate an audio file from a function. I have the function built in C#, and right now it's working perfectly to create all of the amplitudes I need(the signal data, or samples I guess?). I then just need a way to convert that array/matrix in to actual audio. Doing it in real time would be nice, but really at this stage just being able to generate and save the resulting Wav/audio file would be awesome.

If you have any tips on what I should be googling, that'd be great. Or just any help at all would be great too.



With Unity you can just put all of the samples directly into an audioclip.

First create an audioclip with AudioClip.Create with all the properties you need, and then give it the samples with AudioClip.SetData. After that it's trivial to play it.
 

Mr. Virus

Member
With Unity you can just put all of the samples directly into an audioclip.

First create an audioclip with AudioClip.Create with all the properties you need, and then give it the samples with AudioClip.SetData. After that it's trivial to play it.

Ah, didn't know you could export audio files from Unity using that. I bow to people who actually know how to code ha ha.
 

gundalf

Member
Argh! Working over 10hours fixing something in unity and i just found out that the order(!) of Scripts attached to an Gameobject actually DO matter!
 

gundalf

Member
How so...?

I am making with NGUI an Interface which is controlled only by Buttons and no Mouse/Touch Input at all. For this I attach NGUI's provided KeyNavigation Script to my Buttons which usually works super great. Now I encountered the problem, that if I Attach to one of my Buttons the PlayTween Script to Active another Panel, the (by me) specified Button of said new activated Panel won't be "focused" and the Player needs to Press the Enter/Confirm Button a second time to refocus.

Well kinda difficult to explain but you can try it yourself by importing the NGUI Package, open the sample "Controller Input" Scene, locate in the Hierarchy the "Options" Button and move KeyNavigation Script one or several times Up in the Components order. Now Play, navigate to Options and press Return, you will notice that the Buttons of the Options Window wont be "focused".

tl;dr
I found out that on GameObjects there is also a Script Execution Order applied!
 
With Unity you can just put all of the samples directly into an audioclip.

First create an audioclip with AudioClip.Create with all the properties you need, and then give it the samples with AudioClip.SetData. After that it's trivial to play it.

Wow thanks!

I was able to get it up and running within just a few minutes.

Ah, didn't know you could export audio files from Unity using that. I bow to people who actually know how to code ha ha.


You can't easily, but I found a lovely script that seems to be doing the trick: https://gist.github.com/darktable/2317063


Now that I have audio exporting working, my function sounds horrible!!! Well that's an exaggeration, but back to the drawing board.
 

bkw

Member
While there's Unity audio talk going on, how do you guys organize your audio in Unity? AudioSource/Clip references everywhere and play them directly? Or some sort of centralized system triggered by events? An asset from the store? Rolled your own solution?

I took a peek at FMod, but I don't have Unity Pro at the moment so I can't make proper builds with it.
 

Kritz

Banned
IT3TWN4.gif


Think that's my fire done. At least for the time being. It still needs sound, and I could probably do more with the visuals of it, but it seems to work pretty OK in multiplayer. The fire spread is almost entirely deterministic, so that means there's less for the server to do when pushing out RPC calls to everything. I might push the update out to my site and see what the real users find, since there's always bugs I can't predict that crop up once an update's live.

But, I'm pleased with its progress and hopefully I can apply fire in interesting ways to other systems in the game later on.
 
"Thanks. I'll check that out again. Last time I gave Fabric a look, it was pretty intimidating. =)"


It'll give you more flexibility and power with less effort than trying to code up an audio system on your own. Just dig into it for a few days.
 

Blizzard

Banned
Here are a few lessons I learned from Ludum Dare 31:

With HTML and swfobject.js, there seems to be no way to get initial mouse and keyboard focus without using wmode = "opaque" or possibly "window", both of which apparently have performance problems. If you use wmode = "direct" for embedding Flash, people will have to click the flash video first for Flixel, and that click will apparently get ignored. Modifying Flixel might be one way to fix it. I just worked around it by making the game initially pause so there is a big arrow that makes it sort of obvious people need to click.

Sometimes FlashDevelop seems to stop detecting compile errors, but when you run the standalone Flash player, it will freeze without doing anything. In this situation, if you close the Flash player and restart FlashDevelop, the next time you compile the error(s) should be properly detected.

The standalone Flash player seems to have a bit of lag playing sound effects. However, playing the game in FireFox seems to make it better, so don't panic! The "0.2" master volume in BFXR seems to work with 22 volume on my computer. However, BFXR annoyingly seems to reset the master volume with each new sound, so be very careful if you are wearing headphones.

If I do something silly with a title/menu page like making it a minigame, some people may like it, but other people may be annoyed by it. My conclusion is that I should include a skip button or keypress in that case so the people who get annoyed can jump straight to gameplay.


*edit* I do apologize for the confusion about the Sonar X3 bus output volume automation. I tried it in a test song today and it worked. I then went back to what I think was the ORIGINAL song where I left the input gain automated instead, and changed it back to bus output volume. That also still works perfectly, whether I set the automation line up myself or drag the slider to control it. So I have no idea what I was missing, other than something naturally going wrong on a short-deadline project. :p
 

Dascu

Member
I've solved the majority of some of previous issues with Unity's async loading, but I've ran into a new problem.

The situation is as follows: I load a Scene A, which then starts to load a Scene B with LoadLevelAdditiveAsync, in a coroutine. Works perfectly, the game doesn't freeze while I load most of the assets nicely into the level. There's only a tiny fraction of a second stutter when the loading is done. No problem there.

However, when I pause (by setting Timescale to zero) or quit the application, it freezes until the loading process is done. Is there any way to interrupt or outright cancel this AsyncOperation? I can't really tell players to not use the Pause menu for the first 20 seconds of the game.
 
I've solved the majority of some of previous issues with Unity's async loading, but I've ran into a new problem.

The situation is as follows: I load a Scene A, which then starts to load a Scene B with LoadLevelAdditiveAsync, in a coroutine. Works perfectly, the game doesn't freeze while I load most of the assets nicely into the level. There's only a tiny fraction of a second stutter when the loading is done. No problem there.

However, when I pause (by setting Timescale to zero) or quit the application, it freezes until the loading process is done. Is there any way to interrupt or outright cancel this AsyncOperation? I can't really tell players to not use the Pause menu for the first 20 seconds of the game.
Having you tried stopping the coroutine?
http://docs.unity3d.com/ScriptReference/MonoBehaviour.StopCoroutine.html
 

Pehesse

Member
It took a while but they're in!


(click for larger version)

Many, many thanks to all of you! The audience certainly got quite a punch with all that added presence.
I'm going back to scripting stuff now, but if there's room for more people in another audience (or elsewhere?), I'll ask again here :-D
 
Stopped working on my game for awhile. When I get back I realized a whole bunch of things were sloppy. Now I have to fix a bunch of things which I thought was good lol.
 

Blizzard

Banned
Stopped working on my game for awhile. When I get back I realized a whole bunch of things were sloppy. Now I have to fix a bunch of things which I thought was good lol.
This is a bad thing about (theoretically) improving as a programmer. You can come back to an engine and go "psh, now I believe in this NEW design philosophy, and I should rewrite everything".

The trick is to balance it out. Sometimes it may not be the most perfect and ideal design, but if it's robust enough and won't cause enormous problems down the road, maybe it's OK. In other situations, maybe it's easy to anticipate how unmaintainable a system will become, so it's worth the hit to rework it.

It took a while but they're in!


(click for larger version)

Many, many thanks to all of you! The audience certainly got quite a punch with all that added presence.
I'm going back to scripting stuff now, but if there's room for more people in another audience (or elsewhere?), I'll ask again here :-D
One of the things I like most about this is how the person in the audience 3 from the right, on the front row, has their hand on the railing. Since I think you posted an earlier shot of them in a different pose, I'm assuming it's dynamic, and that's a realy neat touch of interaction with 2D art in a pseudo-3D space.
 

Jocchan

Ὁ μεμβερος -ου
It took a while but they're in!


(click for larger version)

Many, many thanks to all of you! The audience certainly got quite a punch with all that added presence.
I'm going back to scripting stuff now, but if there's room for more people in another audience (or elsewhere?), I'll ask again here :-D
Everything looks fantastic, Pehesse!
 

bumpkin

Member
It took a while but they're in!


(click for larger version)

Many, many thanks to all of you! The audience certainly got quite a punch with all that added presence.
I'm going back to scripting stuff now, but if there's room for more people in another audience (or elsewhere?), I'll ask again here :-D
Aw man, i wanna be in the audience! Are you drawing GAF'ers or are those all based off known video game characters from other IPs (I noticed Dudebro)?
 
I've solved the majority of some of previous issues with Unity's async loading, but I've ran into a new problem.

The situation is as follows: I load a Scene A, which then starts to load a Scene B with LoadLevelAdditiveAsync, in a coroutine. Works perfectly, the game doesn't freeze while I load most of the assets nicely into the level. There's only a tiny fraction of a second stutter when the loading is done. No problem there.

However, when I pause (by setting Timescale to zero) or quit the application, it freezes until the loading process is done. Is there any way to interrupt or outright cancel this AsyncOperation? I can't really tell players to not use the Pause menu for the first 20 seconds of the game.

Glad to here you got the other things sorted out. What was the solution?

With pausing, you could set the AsyncOperation variable to null. I'm not using coroutines but at least in VizionEck that seems to work.
 
I've solved the majority of some of previous issues with Unity's async loading, but I've ran into a new problem.

The situation is as follows: I load a Scene A, which then starts to load a Scene B with LoadLevelAdditiveAsync, in a coroutine. Works perfectly, the game doesn't freeze while I load most of the assets nicely into the level. There's only a tiny fraction of a second stutter when the loading is done. No problem there.

However, when I pause (by setting Timescale to zero) or quit the application, it freezes until the loading process is done. Is there any way to interrupt or outright cancel this AsyncOperation? I can't really tell players to not use the Pause menu for the first 20 seconds of the game.

There are some things you can alter in the AsyncOperation class. You might be able to set the priority of the operation to something low enough that it won't freeze (although, it looks like priority is simply for organizing the queue of other async operations, so it probably won't help here). You can also check if the operation is done, which may be of use.

I'm not sure if that would work, but it's worth a shot. If it does work it would probably be better to have some logic in there to skip the async loading part of the Coroutine while paused (rather than stopping the coroutine completely), but still retain the current progress so you don't start over every time the game is paused.
 

Five

Banned
Aw man, i wanna be in the audience! Are you drawing GAF'ers or are those all based off known video game characters from other IPs (I noticed Dudebro)?

[...]

I had already shown the cook from Cook, Serve, Delicious, but you can now see some dancing cubanoids from VizionEck, and Hibari from Spirit Huntress in the audience! Any more volunteers to fill the crowd? :-D
(emphasis mine)
 
I'd be down, Pehesse. Although there's not much of me to go on :(

On a aide note, business class internet for a static IP is a ripoff. Thanks, Comcast! Might as well put it to more use than a simple whitelist, SMH.
 

V_Arnold

Member
Buffered parallax scrolling code DONE! :D

(HTML5, compatible with infinite* amount of layers and buffer length :D)

We have a part where the hero moves from one enemy to another, and there is a 4-layered parallax scrolling which COULD potentially slow down on smaller phones.

Now, what I do is that I buffer the parallax scrolling scene into an animation, laid out on a buffered image (quite big size, since I pre-bake every frame into a large enough hidden canvas), then once it is done (this can happen mid-game, mid-fight too), and the enemy dies, the animations plays out, and the code starts buffering the next segment immediately.

The buffering time is n*m frames, where n is the number of layers, m is the number of frames I need to move. Currently, 60 frame, 4 layers is 240 (hidden) render calls, which results in 60 pre-baked picture, ready to be played out sequentially.

So fun. Previously, when parallax played out, I had to get all layers drawn individually, which means 4 times (or n times) the size of processor/gpu load during the transition.

*not really :p
 

HelloMeow

Member
Fine tuning this beat tracking algorithm is taking it toll. I'm seeing graphs and wiggly lines when I close my eyes. Not to mention the songs I'm ruining for myself by listening to them again and again.

But it's worth it.
 
This is a bad thing about (theoretically) improving as a programmer. You can come back to an engine and go "psh, now I believe in this NEW design philosophy, and I should rewrite everything".


I agree, the problem here isn't that it's not just sloppy code wise, it's sloppy execution wise and leaves a lot of weird things going on that I didn't notice before.
 
I agree, the problem here isn't that it's not just sloppy code wise, it's sloppy execution wise and leaves a lot of weird things going on that I didn't notice before.
Ever look at your code and wonder... Who wrote this? Then realize it was you? That's some next level shit right there.

MUST. GO. DEEPER.
 

Five

Banned
I agree, the problem here isn't that it's not just sloppy code wise, it's sloppy execution wise and leaves a lot of weird things going on that I didn't notice before.

If it makes you feel better, artists do the same thing. Wow! What was I thinking drawing that? I have to go back and redraw it to match the rest of the game's art!
 

AriEX2

Member
Hype! It's... beautiful....
What engine/tools do you guys use? And how long has it been in development?

Haha! Thanks bkw! We've been using Stencyl for development, same as Jobbs on Ghost Song. We've been building it on and off for the last 5/6 months maybe? If we're successful with the Kickstarter we should be able to work a lot faster at getting things done.

Also, Gifs:

trailer_2_v04-2_zps3mgpcjic.gif


trailer_2_v04-3_zpskzv81czf.gif


trailer_2_v04-4_zpsajz9nncb.gif


rain_gif_zpsulwsapun.gif
 
Status
Not open for further replies.
Top Bottom