Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Tann
Apr 1, 2009



That is amazing! I made a thing that was like that in Java but it made .wav files and didn't have a lovely interface. Wasted many hours with beautiful mathsounds. Cheers for this!

Adbot
ADBOT LOVES YOU

Ranzear
Jul 25, 2013

I started a 'quick' prototype for my major project that in four cracked-out days turned into almost a standalone game in itself.

Now I need to find like 100 people to play it at once to see if my server can handle later plans.

http://streamsnipe.me/BeamDuel.php

Flownerous
Apr 16, 2012

Ranzear posted:

I started a 'quick' prototype for my major project that in four cracked-out days turned into almost a standalone game in itself.

Now I need to find like 100 people to play it at once to see if my server can handle later plans.

http://streamsnipe.me/BeamDuel.php

DISCONNECTED

Pizzatime
Apr 1, 2011

Hey! I've just released the first actual game that was made to be a game rather than just, something.

I hope it's cool to just chime in and be like hey I've made a game, here it is, tell me what you think.

Cause, here it is:


https://play.google.com/store/apps/details?id=com.pizzamakesgames.down

It's only on Android for now. Apple takes a while with things. But once they're done it's gon' be on iOS as well.

Any feedback would be supremely appreciated!

Pizzatime fucked around with this message at 19:14 on Feb 18, 2015

nolen
Apr 4, 2004

butts.

nolen posted:

Ugh. I'm stuck with an older version of Unity (I think I can't say why because of NDA reasons?) that doesn't have rigidbody2d.MovePosition(). It has all the 2D physics stuff but just not all the updated helper methods.



Does anyone have suggestions on some alternatives to .MovePosition that will also take into account the physics of the rigidbody2d object? Transform.translate obviously won't work as a viable solution.


To answer my own question, I just switched everything out for the 3D physics system (regular Rigidbodies and Colliders without the 2D suffix). Not a huge headache and minimal code changes.

Yodzilla
Apr 29, 2005

Now who looks even dumber?

Beef Witch

nolen posted:

Ugh. I'm stuck with an older version of Unity (I think I can't say why because of NDA reasons?) that doesn't have rigidbody2d.MovePosition(). It has all the 2D physics stuff but just not all the updated helper methods.

Congrats on making a Wii U game :wink:

SnowblindFatal
Jan 7, 2011

Ranzear posted:

I started a 'quick' prototype for my major project that in four cracked-out days turned into almost a standalone game in itself.

Now I need to find like 100 people to play it at once to see if my server can handle later plans.

http://streamsnipe.me/BeamDuel.php

Plz patch in more features. We gonna lan this mofo in like a month or two.

E: Could you give sources or something so we can run this locally? :D

SnowblindFatal fucked around with this message at 14:30 on Feb 19, 2015

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

Yodzilla posted:

Congrats on making a Wii U game :wink:
IIRC, One Of The Other Options is also locked to 4.5.X. Guess why we're still perched there and not really considering 5.X. :haw:

It's a legit mess. Post-Steam release, we're going to have to sit down, graph the drat thing out, and figure out which Unity version we can use that hits everything.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Shalinor posted:

It's a legit mess. Post-Steam release, we're going to have to sit down, graph the drat thing out, and figure out which Unity version we can use that hits everything.

UnrealEngine 4

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Shalinor posted:

IIRC, One Of The Other Options is also locked to 4.5.X. Guess why we're still perched there and not really considering 5.X. :haw:

It's a legit mess. Post-Steam release, we're going to have to sit down, graph the drat thing out, and figure out which Unity version we can use that hits everything.

"One of the Options" I've been working with has a release candidate for Unity 5 already. I'm 100% OK with this. :)

nolen
Apr 4, 2004

butts.

Yodzilla posted:

Congrats on making a Wii U game :wink:

:wink:



I'm just really hoping they pull their heads out of their asses and update to Unity 5 in a timely manner once the standard version is made public.


I'll be at the Unity 5 Roadshow this weekend in Orange County and plan on asking some of the reps there about timelines-- though I'm sure I'll be stonewalled.

HaB
Jan 5, 2001

What are the odds?
Is there some sort of time delay between resubscribing to UE4 and when I can download the latest version?

I was last subbed for 4.4, and I'm working through a tutorial that seems to need 4.6. Fine, so I re-sub. I close UE, close the Launcher and reopen it - there is no option for anything other than 4.4 in the Launch dropdown.

I redownload the Launcher from the dashboard page - same thing. Am I missing something?

Stick100
Mar 18, 2003

HaB posted:

Is there some sort of time delay between resubscribing to UE4 and when I can download the latest version?

I was last subbed for 4.4, and I'm working through a tutorial that seems to need 4.6. Fine, so I re-sub. I close UE, close the Launcher and reopen it - there is no option for anything other than 4.4 in the Launch dropdown.

I redownload the Launcher from the dashboard page - same thing. Am I missing something?

Shouldn't be more than a couple minutes. If you need to log out of the launcher and log back in. They just (about 10 days ago) went to a new launcher so my previous experience (a couple minutes max) does not apply. Feel free to post on their forums/answerhub it's a pretty lively community.

Hughlander
May 11, 2005

Someone wakes me when Unity supports libcxx on iOS native extensions. Tired of supporting C++0x when every other platform has C++14 code.

evilentity
Jun 25, 2010

Pizzatime posted:

Hey! I've just released the first actual game that was made to be a game rather than just, something.

I hope it's cool to just chime in and be like hey I've made a game, here it is, tell me what you think.

Cause, here it is:


It's only on Android for now. Apple takes a while with things. But once they're done it's gon' be on iOS as well.

Any feedback would be supremely appreciated!

Works fine on N4. Lack of mute button kinda annoying. Nice aesthetic. The sounds are very harsh, but perhaps its just the poo poo speaker. Not clear if there is any difference between the bullet/ammo color. Extremely simplistic, but surely you are aware of that.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
lwmovie (my lightweight video decoder lib) now supports audio, and has a straightforward process for synchronizing it. It's nearly feature-complete for decoding valid input, just need to add colorspace conversion and seeking.

https://code.google.com/p/lwmovie/

Also added a basic player example app and documented recommended encoding options.

OneEightHundred fucked around with this message at 08:54 on Feb 20, 2015

KaneTW
Dec 2, 2011

I'm going to be developing a game using FRP for a project and I'm thinking of whether to implement my own game engine and use Netwire or whether to use Elm or Helm.
Regardless, assuming I implement my own game engine, what graphics engine is currently preferred for 2D games?

penus de milo
Mar 9, 2002

CHAR CHAR
Are Unity questions cool here?

If so, I'm hella new to unity but not to C#, I've been watching some tutorials but I'm still finding my way around the tools.

My problem in a nutshell is that mecanim animation transitions feel sluggish because there's always a delay between when I stop holding down the key and when my character stops running. It's definitely noticable even with an instant transition.
I saw a few questions on Google going unanswered satifactorily so I made a short video to show the issue:
https://www.youtube.com/watch?v=tzZDW6fTSQQ
To summarise the video:
When I release the 'w' key, there's a 24ms delay. When I try and move the transition to occur earlier in the animation it doesn't stick.

This is the C# code I am using to change the animation state:
code:
using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {
	public int speed;
	private Animator anim;
	// Use this for initialization
	void Start () {
		anim = GetComponent<Animator>();
	}
	
	void FixedUpdate() {
		float h = Input.GetAxis("Horizontal");
		float v = Input.GetAxis("Vertical");

		if (v > 0) {
			anim.speed = 1;
			anim.SetBool ("Run", true);
		} else if (v < 0) {
			//anim.speed = -1;
			anim.SetBool ("Walk", true);
		} else {
			anim.speed = 1;
			anim.SetBool("Run", false);
			anim.SetBool ("Walk", false);
		}
	}
}
Any ideas how I can change this? My first job is gonna be getting the controls and camera feeling right as your dude runs around.

penus de milo fucked around with this message at 04:50 on Feb 21, 2015

Lork
Oct 15, 2007
Sticks to clorf
Are you sure you actually made the transition instant? I can't see the transition editor clearly in the video because the virtual keyboard is in the way, but it kind of looks like you have a rather sizable blend period between the two states. Also, dragging the transition to different points in the animation won't do anything because you're not using exit time as the condition; it should start the transition to the other state as soon as you set the condition regardless of where you are in the animation.

Edit: Also, don't ever do controls in FixedUpdate(). It'll make them feel unresponsive and sluggish, and may actually account for at least part of the issue you're experiencing.

Lork fucked around with this message at 05:21 on Feb 21, 2015

penus de milo
Mar 9, 2002

CHAR CHAR
The video doesn't show it but I've tried making the transition instant and while it jumps from one to the other instantly, this jump only happens after the usual delay. It looks back and still sucks :/

Should I be doing controls in Update then? As I say I'm new to Unity but happy to hear what is not to do.

edit: I switched to Update, unfortunately not a huge difference in the end result.
edit2: Thanks for the chart! That's super useful!

penus de milo fucked around with this message at 07:31 on Feb 21, 2015

xgalaxy
Jan 27, 2004
i write code
Move your input into Update(). The reason why is Unity doesn't process input until after the physics steps and FixedUpdate is part of the physics stepping.
You can see in what orders the different event callbacks (such as Update, FixedUpdate, etc) are executed with this handy chart:

Obsurveyor
Jan 10, 2003

xgalaxy posted:

Move your input into Update(). The reason why is Unity doesn't process input until after the physics steps and FixedUpdate is part of the physics stepping.
You can see in what orders the different event callbacks (such as Update, FixedUpdate, etc) are executed with this handy chart:


Thanks for posting this, perfect timing, I needed this for this weekend.

penus de milo
Mar 9, 2002

CHAR CHAR
Shoutout to EvilDrWong who worked out what the problem was! Now it's all snappy and responsive and I'm super happy about it

quote:

GetAxis gives a smoothed value based on the Sensitivity and Gravity of the input in the settings. You're probably just seeing it interpolate back to zero when you let go. Try GetAxisRaw instead to get 0/1 depending on if the button is currently pressed/released

Turns out the transition code was fine all along

penus de milo fucked around with this message at 16:19 on Feb 21, 2015

Flownerous
Apr 16, 2012
Just to clarify, you can safely do the "GetKey" "GetButton" "GetAxis" style input in FixedUpdate.

It's only the event style input like "GetKeyDown" "GetKeyUp" that won't work right.

But yeah since Input is updated just before Update it makes sense to do it then if possible.

Pizzatime
Apr 1, 2011

evilentity posted:

Works fine on N4. Lack of mute button kinda annoying. Nice aesthetic. The sounds are very harsh, but perhaps its just the poo poo speaker. Not clear if there is any difference between the bullet/ammo color. Extremely simplistic, but surely you are aware of that.

Thank you for helping!

Flashing Twelve
Mar 20, 2007

What's the learning curve like for programming Unreal Engine compared to Unity? My C++ skills are definitely less sharp than my C# ones, but I'd like some C++ work to put on my github/resume. I've been dipping through beginner tutorials for both and they're not too difficult, but I can see UE ramping up the complexity a lot.

BabelFish
Jul 20, 2013

Fallen Rib

Flashing Twelve posted:

What's the learning curve like for programming Unreal Engine compared to Unity? My C++ skills are definitely less sharp than my C# ones, but I'd like some C++ work to put on my github/resume. I've been dipping through beginner tutorials for both and they're not too difficult, but I can see UE ramping up the complexity a lot.

It's not bad, there's both upsides and downsides. Epic gives you an entire working C++ game in 'ShooterGame' so there's a lot of example code to look at, but there's also a ton of Unreal boilerplate and layout you have to understand. Understanding how UE4 structures gameplay code is generally no more difficult than Unity (I came to Unity second so my experiences may be different from yours,) but things like their macro structure adds layers.

Here's the 30 thousand foot view of the Architecture: https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/index.html

Shalinor posted:

IIRC, One Of The Other Options is also locked to 4.5.X. Guess why we're still perched there and not really considering 5.X. :haw:

It's a legit mess. Post-Steam release, we're going to have to sit down, graph the drat thing out, and figure out which Unity version we can use that hits everything.

I was talking to some of our Unity guys, and they mentioned they're being forced to upgrade to 5.x because 4.5.x isn't going to support (the soon to be required) iOS 64bit. Sounds like a right mess.

BabelFish fucked around with this message at 21:30 on Feb 21, 2015

Obsurveyor
Jan 10, 2003

BabelFish posted:

I was talking to some of our Unity guys, and they mentioned they're being forced to upgrade to 5.x because 4.5.x isn't going to support (the soon to be required) iOS 64bit. Sounds like a right mess.

This is why 4.6 is so janky, they forced the IL2CPP for iOS into it(and all the patches that were intermingled with it) because of the 64bit requirement.

Captain Pike
Jul 29, 2003

I have a question about Bitmap Fonts!

To make attractive bitmap fonts in the past, I have:

1. Choose a fixed-width font. (So I don't have to deal with kerning)
2. Assemble all characters into a grid within Photoshop.
3. Apply my cool colors, gradients, effects, etc.
4. Save the whole thing as a texture/image.
5. Write something in my game code that shows the correct grid-cell-character(s), at the correct X/Y, so that words are formed.

I am about to do this again in Unity.

However, am I restricted to fixed-width fonts? Is there like a "bitmap font" library or standard that I could use, AND apply cool gradients/effects to my text in Photoshop?

EDIT: Yes I can! I can use BMfont http://www.angelcode.com/products/bmfont/ to generate the grid PNG and edit it in Photoshop!

Captain Pike fucked around with this message at 01:07 on Feb 22, 2015

Pollyanna
Mar 5, 2005

Milk's on them.


I have a couple of questions.

How would you model a tile-based game world? When I think of a tile-based game, I imagine a collection of Maps that are all made of an n-by-m 2D array of Tiles, and the Player would be "in" one of those Tiles. Thinking of it in an object-oriented manner, would a Map object basically have a nested array of Tile objects, while one of those Tile objects has a Player in it? How would you handle the Player moving from one tile to another? Would it be a method on the Player, the Tiles, or the Map?

Unrelated to the above, how do you do Test Driven Development when making a game? It seems a little difficult to pull off, since there's complex interactions between the player's controller, the state of the AI, and graphics rendering. Do you only do unit tests and forego integration testing/simulating user input? How do you deal with the input -> update -> render loop?

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
TDD really isn't too helpful for games, I find. They have different requirements than most applications.

As for you OOP modeling question, well, why would the Player go inside the Tile? It depends on the requirements and how the tile-based game is implemented, but for something like A Link to the Past, the Tile simply contains an 'object' (chest, bush, switch) and anything above that is a separate entity that interacts with the tiles (the player, enemies, bombs, etc)

rarbatrol
Apr 17, 2011

Hurt//maim//kill.

Pollyanna posted:

I have a couple of questions.

How would you model a tile-based game world? When I think of a tile-based game, I imagine a collection of Maps that are all made of an n-by-m 2D array of Tiles, and the Player would be "in" one of those Tiles. Thinking of it in an object-oriented manner, would a Map object basically have a nested array of Tile objects, while one of those Tile objects has a Player in it? How would you handle the Player moving from one tile to another? Would it be a method on the Player, the Tiles, or the Map?

Unrelated to the above, how do you do Test Driven Development when making a game? It seems a little difficult to pull off, since there's complex interactions between the player's controller, the state of the AI, and graphics rendering. Do you only do unit tests and forego integration testing/simulating user input? How do you deal with the input -> update -> render loop?

I find that TDD is best suited for simple input -> output functionality. Something like a state machine would maybe be a decent candidate for that.

superh
Oct 10, 2007

Touching every treasure
We were lucky enough to barely skirt the requirement for 64 bit in one of our apps - but I think the old 32 bit framework is broken in 4.6. I'm not sure if it's one of our libraries or what, but we cannot append an ios build with mono, only build fresh, which is a nightmare.

Makes sense, who cares if it works any more, right? (Just us...!)

Captain Pike
Jul 29, 2003

Pollyanna posted:

I imagine a collection of Maps that are all made of an n-by-m 2D array of Tiles.

would a Map object basically have a nested array of Tile objects

This is generally how it is done, yes. You would make a 2D array of 'Tile' class objects. Each Tile object would have a 'column', a 'row', an x/y, an ID number, and any other information you wish to store, such as "this tile has water in it".

Pollyanna posted:

the Player would be "in" one of those Tiles.

while one of those Tile objects has a Player in it? How would you handle the Player moving from one tile to another? Would it be a method on the Player, the Tiles, or the Map?


To identify which Tile the user is "in", one simply compares the player's x/y to the number of columns/rows of the tile grid, and the Tile width/height. Where you store this code (in the Player class, Tile class, or Game class) is entirely up to you. I usually have a Grid class that stores the 2D Tile array, and I do all of my Tile computations in it. For example: Grid.getTileFromPosition(x, y) - Which returns a Tile object.

Moving of the actual player I personally put in the 'Game' class, but you could do it on the Player class.

There is no "right" way, but one thing to consider which class to put all of these things in: Will the code need to know information about *other* class objects? For example, if you put a given function into the Player class, will this code need to iterate over all of the Tiles? If so, it would probably be better to put such code in a 'parent' class, such as Game. This would be better than storing a copy of the tile grid array within the Player class object. (And the score variable, and the sounds, etc, etc)

Captain Pike fucked around with this message at 04:27 on Feb 22, 2015

Pollyanna
Mar 5, 2005

Milk's on them.


That does sound like code that would jive well with TDD/BDD, though. If we have clearly defined classes and expected behavior, but don't really know what kinds of algorithms to write, that's prime material for testing. That, and I found this one article about automatically testing a game with a server dedicated to jamming random inputs into it.

edit: I think a lot of my problems stem from the fact that all I've got is Gosu and Sublime. A lot of low-level implementation details are being left up to me, and I don't know how to code, like, an input controller or a rendering system from scratch. I'm basically trying to create a game engine all on my own. :pwn: Which is a little out of my league at the moment. I might just move to Unity to get the basics down, and actually tackle something more low-level like Gosu or Pyglet once I have game development experience of any kind at all.

Pollyanna fucked around with this message at 08:06 on Feb 22, 2015

Inverness
Feb 4, 2009

Fully configurable personal assistant.

Pollyanna posted:

I have a couple of questions.

How would you model a tile-based game world? When I think of a tile-based game, I imagine a collection of Maps that are all made of an n-by-m 2D array of Tiles, and the Player would be "in" one of those Tiles. Thinking of it in an object-oriented manner, would a Map object basically have a nested array of Tile objects, while one of those Tile objects has a Player in it? How would you handle the Player moving from one tile to another? Would it be a method on the Player, the Tiles, or the Map?
In my case, players and objects in a map are managed separately from its tiles. In fact a map doesn't need to have tiles.

At the top is the Map object, which manages a list of actors for the whole map, and also contains a TileMap object. The TileMap contains groups of 64x64 tiles. The TileMap size is measured in groups. This also simplifies rendering. Each of these groups can have multiple layers of tiles.

Collision-aware movement for everything in a map is done through a Map.MoveActor() method that consults the map's TileMap, if it has one, and then whatever collidable actors there are in the map.

Edit:

Captain Pike posted:

This is generally how it is done, yes. You would make a 2D array of 'Tile' class objects. Each Tile object would have a 'column', a 'row', an x/y, an ID number, and any other information you wish to store, such as "this tile has water in it".
This is less viable if you have a large number of tiles. Certainly not using an object for each. In my case each actual tile is just a 16-bit integer which has an x and y encoded in it pointing to a location on the tileset. It's the tileset that describes the properties of the tile such as whether its blocking or has any other properties.

My average map would have at least 4 layers (background, walls/structures/shadows, normal objects, collision). So even if its the smallest map size that would be 16384 tiles. My tiles are 16x16 pixels, btw.

Inverness fucked around with this message at 08:33 on Feb 22, 2015

Dozeworthy
Oct 9, 2012
Could anyone familiar with UE4 check out my post on the AnswerHub? I'm trying to do some procedural component creation to make level editing easier, but I've run up against some engine idiosyncrasy that gives different results in the editor vs in-game (or I'm missing something obvious).

Inverness
Feb 4, 2009

Fully configurable personal assistant.

Dozeworthy posted:

Could anyone familiar with UE4 check out my post on the AnswerHub? I'm trying to do some procedural component creation to make level editing easier, but I've run up against some engine idiosyncrasy that gives different results in the editor vs in-game (or I'm missing something obvious).
My advice is to step through the code with the debugger both in editor and PIE mode and see what is going on.

Dozeworthy
Oct 9, 2012

Inverness posted:

My advice is to step through the code with the debugger both in editor and PIE mode and see what is going on.

Seems like the construction code only executes while editing, and not in game, which I'm pretty sure is intended?

Adbot
ADBOT LOVES YOU

Inverness
Feb 4, 2009

Fully configurable personal assistant.

Dozeworthy posted:

Seems like the construction code only executes while editing, and not in game, which I'm pretty sure is intended?
Yes. I see when you create a component you have RF_Transient set, which might be the cause of this since PIE likely uses the serialization mechanism for copying the world.

So either remove that or re-create your components from PostLoad().

Inverness fucked around with this message at 09:11 on Feb 22, 2015

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply