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
Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

LordLobo posted:

Does anyone have a recommendation for a 2d/sprite game engine in c#?

I have ideas, just not precisely the willpower to write the engine. Though I probably should, but then it's entirely possible someone has already done it and done it well.

This might fit your bill: http://www.garagegames.com/products/torque/x/ - they are working hand in hand with Microsoft to bring indy gaming to a broader market. This pretty much takes Garage Games hard work, mingles it with XNA, and gives you a pretty drat awesome 2d game building solution (and as of late, 3d in beta).

The engine is free, and scriptable. The Builder is on a 30 day free trial, but is worth the $100 if you don't want to edit a lot of code/xml scene files by hand.

Admittedly, I have yet to build a single game with any of the Torque Engine's I've purchased. I'm just a fan of the company, and have learned quite a bit using their code as an education resource.

Adbot
ADBOT LOVES YOU

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

duck monster posted:

Boo is potentially a really neat language, but its undocumented nature makes it an exercise in fruturation. Your probably better off taking the plunge and working out C#. Its honestly not a bad language, despite its icky algol-family (c/c++/pascal/java) derived syntax.

I'm going to back this up as well. I went the UnityScript route at first, and while it's reasonably powerful, I kept expecting it work like ECMA Javascript and was getting frustrated with it's behavior. I finally retooled everything in C# shortly after getting started and haven't looked back. I wish there was a nice Ruby derivative though, sigh.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
Does anyone have any tips on how to make something similar to this in Unity3d programmatically? I'm trying to dream up a way make the wave bits on the laser animate/pulse/change color and animate in sine wave fashion without relying on texture animations.

My first instinct was to maybe use a segmented LineRenderer or build a Mesh, but I'm curious if there might be a better way.

Edit: Seems this might do the trick - http://starscenesoftware.com/vectrosity.html

Edit2: The above is exactly what I wanted. Here's a shot of 3 sine waves with different parameters governing them. Looks better animated, and is a work in progress of course.

Azazel fucked around with this message at 13:44 on May 7, 2012

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

mmm11105 posted:

Does anyone know of something XNA like (provides good easy to use 2d graphics functions, native code, hardware accelerated, good programming language), but that works cross platform (specifically on mobile(iOS, Android))?

I've been looking at 2d libraries for unity, but they kind of seem like overkill for what I do. Unity almost does do much for my tastes.

I'd also like to stay away from flash based stuff(not an actionscript fan).

Covers a few of your points, but I've heard good things about http://www.anscamobile.com/corona/ - If you don't mind Lua it could be worth checking out.

That being said, I make 2d games in Unity with Sprite Manager 2. I'm a huge fan, and none of the advanced features really get in the way in my opinion. Use what you need, ignore the rest.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

mmm11105 posted:

Question for anyone who does 2d stuff in unity. How do you guys hadle varying screen size/densities (specifically on mobile)? Working on a mobile app, but especially on android screen densities vary so much, that my tiles could be twice the size they are on other devices. Do you guys just set a fixed view port and scale it up or down? How does that affect the sprites look (as they wouldn't be pixel perfect)?

The following is a breakdown of how I handled it in a game I just released. Feel free to use the code and save yourself some time. It works on all iOS devices correctly, and as far as I can tell all the Android phones my testers had used.

I created this to check the aspect ratios of a phone:

code:
using UnityEngine;
using System.Collections;

public class GameConfig : MonoBehaviour {

  // offset for different aspect ratios of phones
  public static int nonFourThreeOffset = 15;
  public static int sixteenNineOffset  = 35;

  public static bool isFourThreeAspect() {
    int factor  = gcd(Screen.width, Screen.height);
    int wFactor = Screen.width / factor;
    int hFactor = Screen.height / factor;
    
    if (wFactor == 3 && hFactor == 4) {
      return true;
    } else {
      return false;
    }
  }
  
  public static bool isSixteenNineAspect() {
    int factor  = gcd(Screen.width, Screen.height);
    int wFactor = Screen.width / factor;
    int hFactor = Screen.height / factor;
    
    if (wFactor == 9 && hFactor == 16) {
      return true;
    } else {
      return false;
    }
  }
  
  public static int gcd(int a, int b) {
    return (b == 0) ? a : gcd (b, a % b);
  }
  
}
Then attach the following class to objects that need to move relative to the aspect ratio, such as hand rolled UI menus and the like:

code:
using UnityEngine;
using System.Collections;

public class CameraOffset : MonoBehaviour {
  
  public bool up = false;
  
  void Start() {
    Vector3 position = transform.position;
    if (!GameConfig.isFourThreeAspect() && !GameConfig.isSixteenNineAspect()) {
      if (up) {
        position.y += GameConfig.nonFourThreeOffset;
      } else {
        position.y -= GameConfig.nonFourThreeOffset;
      }
    } else if (GameConfig.isSixteenNineAspect()) {
      if (up) {
        position.y += GameConfig.sixteenNineOffset;
      } else {
        position.y -= GameConfig.sixteenNineOffset;
      }
    }
    transform.position = position;
  }
  
}
Add this code snippet to the game scene to get the camera size set correctly. My cameras are set to a size of 100, but I believe this should work with any scenario. If not you'll have to tweak the offset values:

code:
    if (!GameConfig.isFourThreeAspect() && !GameConfig.isSixteenNineAspect()) {
      Camera.main.orthographicSize += GameConfig.nonFourThreeOffset;
      GameObject.FindGameObjectWithTag("GUI Camera").GetComponent<Camera>().orthographicSize += GameConfig.nonFourThreeOffset;
    } else if (GameConfig.isSixteenNineAspect()) {
      Camera.main.orthographicSize += GameConfig.sixteenNineOffset;
      GameObject.FindGameObjectWithTag("GUI Camera").GetComponent<Camera>().orthographicSize += GameConfig.sixteenNineOffset;
    }
Edit: I should note that I also use Sprite Manager 2, and sprites are not set to pixel perfect. This allows them to scale correctly regardless of the screen resolution since they are defined in world units.

Azazel fucked around with this message at 01:40 on Aug 5, 2012

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

Don Mega posted:

Is it possible to run pygame over ssh? I am logging into my unbuntu system at home through putty and have run into an issue. Whenever I run a pygame file it outputs this directly to the terminal. http://i.imgur.com/MmojQ.png

Any thoughts?

Err, what are you actually trying to do? Is it an ascii based console game, or does it render OpenGL to the display?

If the former, you may need to set your terminal type correctly.

If the latter, you need to set your ubuntu system to forward the display to the box you are logging in with, and have an X11 instance to display it locally. It probably won't run that great since everything is being processed on your ubuntu system and not locally.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

PiCroft posted:

I was wondering if Unity is a particular barrier to complexity in games? Most games I've seen in it tend to be either simple demos or games that are simple in and of themselves so I wans't sure if it would be suitable.

I would say not at all.

The only barrier, at least from a programmer point of view, is wrapping your head around how to fully utilize their editor and save yourself a lot of time. Once you slowly get comfortable with the workflow and letting it handle more things natively vs. writing custom code to drive it all, you can knock out almost anything in no time flat.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

General_Failure posted:

Sage advice there. It may sound a little odd, but I know a lot of game developers. These ones I actually know it never crossed my mind to pay any attention to their professional lives. Possibly because of some bitterness. No, not jealousy. Not at all. Quite the opposite actually. Super teal deer version is poo poo happens. Deal with it. Plain old bad luck sent my life off on a massive tangent. Working on career reboot # 2 I think it is. Really, what else can a CS person specialising in games who is needed at home do? Been offered jobs but can't do them because I'm needed. So indie 4 lyfe I guess?

Did you just cut and paste a bunch of random developer tweets into a huge paragraph?

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

General_Failure posted:

What I would like is to know whether people would be inclined to think I would be cloning an idea rather than making something different in what I guess could be a sub genre?

I'd say as long the as the spirit of your idea is different, look and feel, etc., then probably not. Just look to our friend the tower defense genre as an example, there has to be a few thousand of them out there.

Regardless, give it a shot because it's something you are actually interested in building. Nothing kills motivation quite like passing over what you really want to build "because it already exists", and aiming for a secondary idea you aren't as interested in.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
Debating the merits of <some language here>, fun times.

Completely different topic, but I am trying to get some quotes for 2d animation on a solo indy budget. Kind of cross posting here to see if there are any illustrators that happen to read this thread (doubtful?), and if anyone has some suggestions on how to maybe help get things moving. I located a great artist for the last game I built via the Touch Arcade forums, but he does a much different style than what I am after this time around. I may very well go scan there again if the CC forum doesn't pan out, but I'm definitely open to other suggestions as well.

I'll spare the details, but for the last year I've been working with two buddies, a programmer, and a music/sfx guy building some (admittedly not so successful) games, with me working on a salary and them contracting out as they are needed (on top of their day job). On the side we're trying to get that last key illustrator guy to fall into place, and from there aim at getting our first solo team title shipped. There's so many 2-5 man studios out there that just seem to have the right combination of talent, and I always wonder how they all met up and got things going. Does anyone have any stories about how their little dev shops panned out?

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

Pfhreak posted:

So no recommendations for 2D in Unity? 2D Toolkit and Futile are the ones I've found. Are there others worth investigating?

It costs a few bucks, and there are a handful of decent newer systems out there now, but I've been using http://www.anbsoft.com/middleware/sm2/ for awhile. It's a pretty solid and well put together library.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

SnowblindFatal posted:

What are people's experiences with Unity and git? A friend of mine says they work flawlessly together, but he's a bit of a Unity fan so I have my doubts about it. If your working files change after a pull, for instance, and you alt tab back to Unity, does it notice the new changes? Does it have an integrated git support (ie. show changes on the fly in the environment)?

It works exactly as you described.

The only time things kind of get stupid is when you store a large amount of assets in git and check them out fresh. Unity has to reimport all of them which can take a bit of time depending on how many there are.

The .gitignore isn't such a huge deal anymore either. Now that they have updated Unity with better external repo support you only have to set it like so:

code:
Temp
Library

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

yaoi prophet posted:

where velocity = 200 *^ normalized (target ^-^ start)

Did anyone else think to themselves "Whoa, Haskell has built in emoji?" when seeing this?

If not, carry along.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
Rotations: :suicide:

I'm writing a little toy on the side and am stuck on 3d rotations. I've scoured the net for information, but there's some critical step I can't seem to wrap my head around.

Given a player object with a vector position, a vector that describes it's direction, and some rotation bits that I am uncertain of, I would like to freely rotate 360 degrees in every direction. Quaternions seem like an excellent choice for this due to no gimbal lock and the like, however, this is where my brain starts failing.

The player controls strictly state: I am rotating/not-rotating negatively/positively along my X/Y/Z axis.

How exactly, and what exactly, do I need to make rotations using the above inputs actually happen? I'm more of a learn by example kind of fellow, and I'm not sure what kind of magical numbers I need to keep moving forward here. Do I simply create a rotation parameter that is a Quaternion, and that describes all of my object's rotations? What information do I need to rotate it? Everything I've read says "you can change your object's rotation by multiplying the new rotation vs. the existing rotation to get the new orientation, order matters, etc.", but how exactly am I deriving these new rotations?

Hopefully this will be blatantly obvious to me one day, but for now I turn to some of the more experienced goons for help.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

Unormal posted:

Right click on the inspector tab and select Debug and you can even see private fields ;)

Holy poo poo. I never knew that existed.


Also: Thanks to all the previous comments about basic rotation logic. I was able to figure it out.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

SlightlyMadman posted:

I'll look into 2DTollkit and SpriteManager 2 though, that's the first I've heard of them. Do they bypass the game objects?

SlightlyMadman posted:

Ah cool, that's strange to me that Unity can handle thousands of textured 3D cube objects, but not thousands of image sprites, but I guess that's the nature of the engine so it makes sense.

I exclusively use SM2, and a buddy uses 2DTK. Both are fantastic libraries for doing 2d in Unity.

I'm no sure what all the talk about exclusively doing stuff to GameObjects or not having them is about. As other experienced members have pointed it, Unity is just a component system, and GameObjects are at the core if you want transformable/renderable objects. Use what you need, remove the rest.

I've made a game that Instantiates a couple hundred GameObjects on demand and recycles them from a spawn pool after, which ran great on mid-line smartphones. Most of the bottlenecks I ran into were not having the spawn pool, not so oddly enough instantiating too many SFX at a time (which lead to a sound specific spawn pool), and poorly optimized Update loops (not caching repeated lookups, etc.). If you are talking about PC dev then most of this is nearly inconsequential.

If you are doing smartphone dev, the two biggest things you should care about are a) draw calls, and b) texture memory. The prior mentioned libraries do a great job of building sprite sheets, drawing them to an optimized mesh, and lowering your draw calls to the bare minimum number of textures loaded into memory. If all of your tiles can fit into a single sprite sheet, you will have exactly one draw call for your whole scene, even with a hundred instantiated tile objects. Having a hundred GameObject tiles in your scene at once might not be technically efficient from a nitpicky programmer point of view, but unless you are trying to run your game on an iPhone 3g or iPad 1, most of the above mentioned optimizations are probably just a waste of time.

Build the easiest case first and focus on building your game, worry about optimizing later.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

SlightlyMadman posted:

Yeah, the link I posted above is very useful. There's apparently all sorts of different ways of doing it.

I typically attach all my non-object specific game scripts to the main camera instead of an empty, just because that camera is typically always in your scene by default anyways, and has a handy shortcut reference. I then do stuff like the following from any prefab objects that need to access the global scripts:

code:
using UnityEngine;

public class Whatever : MonoBehaviour {

  private MyGlobalScript myGlobalScript;

  void Start() {
    myGlobalScript = Camera.main.GetComponent<MyGlobalScript>(); // cache the script reference
  }

  // do whatever you need to in this object's methods, or Update, or whatever

  void Update() {
    myGlobalScript.DoSomething();
  }

}
Edit: Blah, just repeating things people have said or are that link. Ah well.

Azazel fucked around with this message at 14:59 on Apr 13, 2013

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
In regards to procedural generation, this article may be of interest for large map generation: http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/

This is what they used to build the world in http://www.realmofthemadgod.com/

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
For anyone with any interest in pathfinding algorithms: http://qiao.github.io/PathFinding.js/visual/?buffer_share=3da1d

I wasn't familiar with the Jump Point Search. What are the drawbacks to it? Because it seems quite fast.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
I believe UE4 setting an OSX machine on fire (at least as of 4.1.1) was a known issue acknowledged by Epic.

Edit: Right, the second answers link nite time dinosaur posted was what I was thinking of.

Azazel fucked around with this message at 02:38 on Aug 6, 2014

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
My buddy and I have launched our humble little Kickstarter for our little weekend warrior game project - https://www.kickstarter.com/projects/1581854625/dungeon-slammers

The biggest challenge has been keeping an artist paid while she pumps out all the crazy designs we've asked for. Some finished character (dragon scale armor) designs she dropped on us this morning:

Adbot
ADBOT LOVES YOU

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?

Shalinor posted:

I wish you all the best, but that'll be a struggle. Mobile F2P games are nearly impossible to Kickstart. :/

I appreciate the comments from everyone. We understand the challenges behind the mobile F2P market, and trying to build a KS around it specifically. It'll still get released if this KS fails, we're just seeing if it's possible to offset our out of pocket costs.

That said, our actual market is Japanese mobile, an industry I've worked in for a few years. They lap up these kind of games like candy, so we'll see how it goes vs. the English speaking market.

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