One of the most exciting things about it is that modifying and improving the AI is (hopefully) going to be a very clean, modular process. I'm treating the AI decision process like a bunch of filters applied to an image, where the image is a given unit's valuation of its possible actions. If I want a behavior like, "Stay distance X from friendly units," or even, "Get between friendly unit X and enemy unit Y," I just need to write a function that judges possible move valuations accordingly.
Meanwhile, these blockout visuals have gotten a bit stale so I'm going to take some time to do an art pass on the project.
that is fkin pimpin looking dog
r u using the unity pro ai system?
also did u make all dem modelz?
Thanks! No, I've actually made my own AI code from scratch. I did make all the artwork so far as well.
One of the most exciting things about it is that modifying and improving the AI is (hopefully) going to be a very clean, modular process. I'm treating the AI decision process like a bunch of filters applied to an image, where the image is a given unit's valuation of its possible actions. If I want a behavior like, "Stay distance X from friendly units," or even, "Get between friendly unit X and enemy unit Y," I just need to write a function that judges possible move valuations accordingly.
Meanwhile, these blockout visuals have gotten a bit stale so I'm going to take some time to do an art pass on the project.
that is fkin pimpin looking dog
r u using the unity pro ai system?
also did u make all dem modelz?
Thanks! No, I've actually made my own AI code from scratch. I did make all the artwork so far as well.
so I rebuilt Ardor to use touch controls for targeting and camera. My main goal through all this was to avoid (at all costs) "button controls", like a virtual joystick. Eventually I settle on a multi-tap sequence that should be pretty intuitive.
spoilered for image sequence
Title screen! (you can't see it, but the logo is illuminated as a game object, and the lightsource flickers and sways like a gas lamp, which in relevant thematically)
2 units in a template battle environment
Touching the move command shows the female unit's range
Touching any tile in range will activate pathfinding to that tile.
Touching a different tile will route to that tile.
Touching a tile a second time will "lock in" the path, turning the path indicators blue. It also recalculates where you can move to from here.
You can continue to build your path up to the max range.
Touching a tile a third time will finalize your entire path. In this way, you can move less than the full range without a separate "end movement" command.
Multi-step routing of units is one of the game's core mechanics. Positioning, traps, movement interrupts, and interception attacks are all important aspects of navigating the map, and moving directly from point A to point B will often not be optimal!
One of the most exciting things about it is that modifying and improving the AI is (hopefully) going to be a very clean, modular process. I'm treating the AI decision process like a bunch of filters applied to an image, where the image is a given unit's valuation of its possible actions. If I want a behavior like, "Stay distance X from friendly units," or even, "Get between friendly unit X and enemy unit Y," I just need to write a function that judges possible move valuations accordingly.
Meanwhile, these blockout visuals have gotten a bit stale so I'm going to take some time to do an art pass on the project.
that is fkin pimpin looking dog
r u using the unity pro ai system?
also did u make all dem modelz?
Thanks! No, I've actually made my own AI code from scratch. I did make all the artwork so far as well.
3 thumbs up
blender?
3DS Max actually.
Delz, that looks like a great interface design for touch. Good stuff!
In case anyone's reading my posts to learn along with me, while I don't have the code in front of me, I'm pretty sure I enabled the afterburner particle gameobject by simply using AfterBurnerRig(or whatever the hell I called it).enabled = true
so, now you know.
+1
surrealitychecklonely, but not unloveddreaming of faulty keys and latchesRegistered Userregular
do any of you guys have any idea how different the animation and rigging tools are in blender in comparison to say, maya or 3ds max?
e.g. are there significant workflow benefits to using max/maya over blender?
Well, Blender is free. Its rigging is serviceable enough once you're familiar with it. I wouldn't say it's good or intuitive, but it's fine for low-poly work. If you have access to Max or Maya, they're definitely preferable.
I've got a 30 bone skeleton for my models, and even setting that up was a bit of a pain, but now that it's in place the main limiter is my own skill.
I'm trying to get my stupid Player script to flip a stupid bool in my Camera script so that when the player explodes, the camera doesn't immediately jump to the respawn position, but I'll instead put something in there to smooth the movement. At the moment, it's just not happening and I don't know why.
You don't need to Find the main camera object, it's always available through the Camera.main static variable.
I'm not sure what your issue is, exactly, except maybe some issues with the scope of the cameraMovement variable. Posting more than single, isolated lines of code would help.
In the Bomberman clone tutorial I posted a while back, I did something like that.
There's a level manager that helps run the whole game, and a player script. The level manager has a reference to the player so it can make some changes to it.
Relevant bit in PlayerScript declarations:
public Vector3 startPos;
public LevelManager levelMan;
In LevelManager's declarations:
public Transform player;
in LevelManager's start function:
if ( !player ) {
player = GameObject.Find ("Player").transform;
}
player.position = new Vector3( 1, levelSize.y - 2, 0 );
//give the player script a reference to the Level Manager
PlayerScript plyrScript = player.GetComponent<PlayerScript>();
plyrScript.levelMan = GetComponent<LevelManager>();
//set the player position
plyrScript.startPos = player.position;
Not sure if this is the best way to go about it, but it works.
The player can also access the level manager's level array because we gave a reference back to it from here...and when the player spawns a bomb, that script assigns its own reference to levelMan to the bomb as well (bomb.levelMan = levelMan), so the bomb can check the array too and destroy bricks etc.
in Start for my Player script, because I thought that would be the best way to do it, just the once to get it out the way. Turns out that wasn't working (I tried declaring a Private GameObject cameraMovement but that didn't do it, is there some way that I can just call this the once?)
Either way, I bumped it down into the coroutine where I'm actually using it, and it worked fine. So, problem solved for now.
I enthusiastically joined the project early, wanting to get in on the whole indie development thing, and then immediately had second thoughts and wound up feeling like a total jackass for committing to something with basically no capacity to back it up. I feel gently vindicated that LaCabra has gone on to get a game on Steam while I've still basically got nothing presentable. So! Looking forward to seeing how it came out, LaCabra.
My favorite musical instrument is the air-raid siren.
But it doesn't work quite right. The angles inside a given quadrant are the "opposite" of what they should be. Eg. if I tilt the stick all the way up and 1 degree to the right, my angle is 89 when it should be 1, and if I tilt it all the way to the right and 1 degree up, the angle is 1 when it should be 89. What do I need to do in order to make my angles right? Please forgive my stupidity and/or tiredness.
Congratulations! That is a genuinely super impressive thing you have done there!
I hope you don't mind me asking, but I've heard quite a bit of negativity on the greenlight process and I'd love to hear your take on it. Was it as much of an arduous horrible trek of relentlessly pushing your game anywhere and everywhere and desperately trying to game the system as some people make it out to be, or was your experience better?
So when the new version of Unity comes out with better 2d support, do we know what will be included in the free version? I ask because I'm not yet ready to step up to a full license, but I want to go the way of a 2d platformer next and can't tell when abouts it would be best to start working on that, either now and probably have to make a load of changes after I'm going, or wait until it's out and start fresh (probably best regardless).
Congratulations! That is a genuinely super impressive thing you have done there!
I hope you don't mind me asking, but I've heard quite a bit of negativity on the greenlight process and I'd love to hear your take on it. Was it as much of an arduous horrible trek of relentlessly pushing your game anywhere and everywhere and desperately trying to game the system as some people make it out to be, or was your experience better?
Greenlight was bad and rubbish. Influx was on there for over a year. It is the worst. More when I'm not drunk.
So when the new version of Unity comes out with better 2d support, do we know what will be included in the free version? I ask because I'm not yet ready to step up to a full license, but I want to go the way of a 2d platformer next and can't tell when abouts it would be best to start working on that, either now and probably have to make a load of changes after I'm going, or wait until it's out and start fresh (probably best regardless).
I don't think we know a lot about it yet.
If you learn the fundamentals of making a sidescrolling game, 2D or 3D, those skills will still be valuable in making another one later. Some of the specifics of how you handle it will change but it's good to understand how the parts fit together.
You check player collision with the ground in 3D by raycasting, I'm not sure it will work exactly the same in their 2D system, but the fundamentals are the same: every frame, check what's below this point, and don't let the player fall if it means they would intersect the ground. That sort of thing.
Yeah, I figure if anything, it's at least good time to start a 2D platformer tutorial (got one bookmarked that looks pretty thorough) and see where it takes me.
Ever since they started giving the iOS/Android licenses away in the free version, the only real reason to use Pro is if you want post-processing or really advanced lighting. Basically any rendering techniques that require you to draw to an image and then alter the image (like blur effects or the more advanced cell-shading techniques) require Pro.
It's all polish stuff - there's nothing that basic doesn't include that would prevent you from making a full featured game. It just won't look AAA, but honestly if you're an indie odds are you won't need those features.
It's not really clear when Unity's 2D stuff and the new GUI will actually be released. It may still be a few months. Plus as @UncleSporky said, if you do some basic 2D work now a lot of those skills will speed up your progress when you do some other 2D later on.
Did anyone work with the Photon Networking Engine? I think I might try to get that working for next month's project. It appears that Photon Cloud is free but doesn't let you store anything in the cloud. Instead it just provides rooms, some matchmaking and a pipe which lets you communicate with other clients. Not that I think about it, that's very similar to what is provided by XNA+XBLIG networking. Huh.
--each class has a different ability
---warrior: does the most brick damage on hit
---wizard: does no brick damage himself but makes an aoe explosion that damages bricks in a radius (probably too powerful)
---priest: lowers the cooldown of any pucks he lands near
---rogue: only puck that doesn't reset when he lands in the enemy castle (also sort of trivializes the game but whatever, ill fix it in the next build)
--bricks turn transparent when they are between the camera and the puck
--towers added to castle
--king sits on a throne (king is still the yellow suppository looking thing)
--tightened up the physics a bit so the bricks are less gelatinous
plans for fragment 4:
--brick fragmentation instead of just disappearing (this will be hard)
--visible indicator of shot angle
--enemy castle towers that do something?
--sound? music?
--working fog?
--(looking for ideas people)
Ever since they started giving the iOS/Android licenses away in the free version, the only real reason to use Pro is if you want post-processing or really advanced lighting. Basically any rendering techniques that require you to draw to an image and then alter the image (like blur effects or the more advanced cell-shading techniques) require Pro.
It's all polish stuff - there's nothing that basic doesn't include that would prevent you from making a full featured game. It just won't look AAA, but honestly if you're an indie odds are you won't need those features.
And later, when you actually sell your game, you use the money to buy Pro and release the HD edition. :P
Weird stuff when this kind of thing happens, I did it twice pretty easily:
All the boxes kind of shake and jitter.
Thanks for playing!
Actually the screenshot is the class ability of the rogue puck. He is the only one who can land on the wall and behind the wall. Other pucks are reset whenever they pass the moat.
And from what I'm reading the jiggly boxes is a PhysX thing. Stacked objects behave wonkily and the way most games appear to handle it is keep the physics turned off until an object is interacted with. This is my first time messing with physics so I'm still noobing it up with the settings.
I think my best time is around 10 minutes with the latest build. You can potentially get lucky and tag the king on the first shot but I don't think thats happend since I tightened up the bricks. One thing that is encouraging about this game is I'm actually playing it for fun while I'm making it.
0
Sir CarcassI have been shown the end of my worldRound Rock, TXRegistered Userregular
I played it twice yesterday and both of my times were under 6 minutes.
I'm working on a 2D shooter for practice, trying to make a well-organized one. I want each instantiated bullet to contain all information about itself, including velocities, amount of damage to deal, and the path to take across the screen. The path would be defined by a function, whether it just adds the velocities to their current position, involves acceleration, sine wave path etc.
I figured I could just store the bullet's path function in a variable when they are instantiated. In C#, is this a job for delegates, or should I look elsewhere? Invoke looks promising too, just storing the name in a string.
Posts
Thanks! No, I've actually made my own AI code from scratch. I did make all the artwork so far as well.
3 thumbs up
blender?
spoilered for image sequence
Title screen! (you can't see it, but the logo is illuminated as a game object, and the lightsource flickers and sways like a gas lamp, which in relevant thematically)
2 units in a template battle environment
Touching the move command shows the female unit's range
Touching any tile in range will activate pathfinding to that tile.
Touching a different tile will route to that tile.
Touching a tile a second time will "lock in" the path, turning the path indicators blue. It also recalculates where you can move to from here.
You can continue to build your path up to the max range.
Touching a tile a third time will finalize your entire path. In this way, you can move less than the full range without a separate "end movement" command.
Multi-step routing of units is one of the game's core mechanics. Positioning, traps, movement interrupts, and interception attacks are all important aspects of navigating the map, and moving directly from point A to point B will often not be optimal!
3DS Max actually.
Delz, that looks like a great interface design for touch. Good stuff!
so, now you know.
e.g. are there significant workflow benefits to using max/maya over blender?
I've got a 30 bone skeleton for my models, and even setting that up was a bit of a pain, but now that it's in place the main limiter is my own skill.
This is in my Start section:
CameraMovement cameraMovement = GameObject.Find("Main Camera").GetComponent<CameraMovement>();Camera object is called Main Camera, the script is called CameraMovement
This is what's in the CameraMovement script:
public void PlayerAlive(bool playerState) { playerAlive = playerState; }and I was trying to run it with something like:
but Unity keeps trying to change it to CameraMovement, and won't let me access the quite public function of PlayerAlive. I have no earthly idea why.
I'm not sure what your issue is, exactly, except maybe some issues with the scope of the cameraMovement variable. Posting more than single, isolated lines of code would help.
There's a level manager that helps run the whole game, and a player script. The level manager has a reference to the player so it can make some changes to it.
Relevant bit in PlayerScript declarations:
In LevelManager's declarations:
in LevelManager's start function:
if ( !player ) { player = GameObject.Find ("Player").transform; } player.position = new Vector3( 1, levelSize.y - 2, 0 ); //give the player script a reference to the Level Manager PlayerScript plyrScript = player.GetComponent<PlayerScript>(); plyrScript.levelMan = GetComponent<LevelManager>(); //set the player position plyrScript.startPos = player.position;Not sure if this is the best way to go about it, but it works.
The player can also access the level manager's level array because we gave a reference back to it from here...and when the player spawns a bomb, that script assigns its own reference to levelMan to the bomb as well (bomb.levelMan = levelMan), so the bomb can check the array too and destroy bricks etc.
Ok so if that's within start, i.e.
void Start() { CameraMovement cameraMovement = GameObject.Find("Main Camera").GetComponent<CameraMovement>(); }Then you're declaring cameraMovement only within the scope of the Start() function.
You need something like:
CameraMovement cameraMovement; void Start() { cameraMovement = GameObject.Find("Main Camera").GetComponent<CameraMovement>(); }If you want to be able to access the variable from other functions
CameraMovement cameraMovement = GameObject.Find("Main Camera").GetComponent<CameraMovement>();in Start for my Player script, because I thought that would be the best way to do it, just the once to get it out the way. Turns out that wasn't working (I tried declaring a Private GameObject cameraMovement but that didn't do it, is there some way that I can just call this the once?)Either way, I bumped it down into the coroutine where I'm actually using it, and it worked fine. So, problem solved for now.
The following code is supposed to rotate the player character relative to the camera:
h = Input.GetAxis("Horizontal"); v = Input.GetAxis("Vertical"); Vector2 movement = new Vector2(h, v); float deltaRotation = 0f; if(movement.magnitude > 1) movement.Normalize(); if(movement.magnitude != 0) { if(movement.x == 0) { if(movement.y > 0) deltaRotation = 0; else deltaRotation = 180; } else { deltaRotation = Mathf.Rad2Deg * Mathf.Atan2(Mathf.Abs(movement.y), Mathf.Abs(movement.x)); if(movement.x > 0) { if(movement.y <= 0) deltaRotation += 90; } else { if(movement.y >= 0) deltaRotation += 270; else if(movement.y < 0) deltaRotation += 180; } deltaRotation = Helper.ClampAngle(deltaRotation, 0, 360); } transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(transform.eulerAngles.x, cam.transform.eulerAngles.y + deltaRotation, transform.eulerAngles.z), Time.deltaTime * 15); v = movement.magnitude; }Unity 4.3 will come with a new version of monodevelop
maybe I'll be able to inspect genericized collections again
I Facebook linked your game on Steam. Hope it gets you an extra sale or two! Congrats!
Legends of Runeterra: MNCdover #moc
Switch ID: MNC Dover SW-1154-3107-1051
Steam ID
Twitch Page
So I drew these:
I may have to rethink some color choices to have it show up better on various backgrounds, but it's a start.
Hah, sorry man, I'd left the page open and hadn't refreshed the page. Thank you though!
Congratulations! That is a genuinely super impressive thing you have done there!
I hope you don't mind me asking, but I've heard quite a bit of negativity on the greenlight process and I'd love to hear your take on it. Was it as much of an arduous horrible trek of relentlessly pushing your game anywhere and everywhere and desperately trying to game the system as some people make it out to be, or was your experience better?
I don't think we know a lot about it yet.
If you learn the fundamentals of making a sidescrolling game, 2D or 3D, those skills will still be valuable in making another one later. Some of the specifics of how you handle it will change but it's good to understand how the parts fit together.
You check player collision with the ground in 3D by raycasting, I'm not sure it will work exactly the same in their 2D system, but the fundamentals are the same: every frame, check what's below this point, and don't let the player fall if it means they would intersect the ground. That sort of thing.
It's all polish stuff - there's nothing that basic doesn't include that would prevent you from making a full featured game. It just won't look AAA, but honestly if you're an indie odds are you won't need those features.
Did anyone work with the Photon Networking Engine? I think I might try to get that working for next month's project. It appears that Photon Cloud is free but doesn't let you store anything in the cloud. Instead it just provides rooms, some matchmaking and a pipe which lets you communicate with other clients. Not that I think about it, that's very similar to what is provided by XNA+XBLIG networking. Huh.
(click the pretty picture to play)
stuff
--multi puck teams with character classes
--pucks now have a cooldown when they are shot
--each class has a different ability
---warrior: does the most brick damage on hit
---wizard: does no brick damage himself but makes an aoe explosion that damages bricks in a radius (probably too powerful)
---priest: lowers the cooldown of any pucks he lands near
---rogue: only puck that doesn't reset when he lands in the enemy castle (also sort of trivializes the game but whatever, ill fix it in the next build)
--bricks turn transparent when they are between the camera and the puck
--towers added to castle
--king sits on a throne (king is still the yellow suppository looking thing)
--tightened up the physics a bit so the bricks are less gelatinous
plans for fragment 4:
--brick fragmentation instead of just disappearing (this will be hard)
--visible indicator of shot angle
--enemy castle towers that do something?
--sound? music?
--working fog?
--(looking for ideas people)
And later, when you actually sell your game, you use the money to buy Pro and release the HD edition. :P
Weird stuff when this kind of thing happens, I did it twice pretty easily:
All the boxes kind of shake and jitter.
Yeah don't leave home without them, without a doubt one of the best resources: http://game-icons.net/
Thanks for playing!
Actually the screenshot is the class ability of the rogue puck. He is the only one who can land on the wall and behind the wall. Other pucks are reset whenever they pass the moat.
And from what I'm reading the jiggly boxes is a PhysX thing. Stacked objects behave wonkily and the way most games appear to handle it is keep the physics turned off until an object is interacted with. This is my first time messing with physics so I'm still noobing it up with the settings.
I think my best time is around 10 minutes with the latest build. You can potentially get lucky and tag the king on the first shot but I don't think thats happend since I tightened up the bricks. One thing that is encouraging about this game is I'm actually playing it for fun while I'm making it.
trebuchet FTW
Steam Support is the worst. Seriously, the worst
I figured I could just store the bullet's path function in a variable when they are instantiated. In C#, is this a job for delegates, or should I look elsewhere? Invoke looks promising too, just storing the name in a string.