« first day (401 days earlier)      last day (4618 days later) » 

9:11 PM
Figured I'd peak in and say hello!
 
hello
 
Hey @JohnMcDonald. How's it going?
 
Pretty great actually, I just got a bunch of things in my game to look isometric for the first time :) And you?
 
Very nice! Mind sharing a screenshot?
I'm doing well. Just doing a little work on the weekend :)
 
Ah, working on the weekend eh?
 
9:19 PM
Yeah, just trying to get a jump-start on the week ahead :)
 
Lots of temporary graphics in that screenie, but I'll be replacing those soon
 
oooh. interesting!
Some sort of space construction game?
 
I think the idea was a space tower defence. Unless I misunderstood that. :D
 
@MartinSojka That's correct, it's a tower defence game
 
Oh. My mistake!
Hey @MartinSojka :)
 
9:22 PM
or... tower defence with some pieces of strategy games
and realistically... once I get the tower-defence stuff working well, I think I'll try to expand it into a strategy game
but that's a long way down the road
 
Keep at it, and it'll be here before you know it
 
yup, little by little, :)
I will be very happy with a coop tower defence game though
 
Oooh. Do you already have some of your network arch. built in?
 
Indeed I do
It works quite well so far. No predicting though, and probably too many packets, but
It's clean, completely abstracted out of the game, and really easy to work with
 
That's good!
Networking is one of those things you should really build in from the start, if you're going to have it
Otherwise you'll pay heavily for it later
 
9:35 PM
yeah, I built enough of my game that I could play around with it
and yeah, I knew I had to get it in early
Implementing networking forced me to change major parts of my game for the better
 
:D
So how long have you been working on your game?
 
Well... on and off (mostly off) for about 3 years
Probably like 18 months of real "on" time
 
Not bad
 
9:51 PM
ooh, looking good, John
 
Yeah, I think so. Thanks
 
Hey @thedaian
 
hello Ari
 
10:07 PM
guys check my answer here: gamedev.stackexchange.com/questions/17124/… and see if you think the code will work
 
user4704
That code's nigh unreadable, so I'm not really going anywhere near it.
 
@Gajet The problem I have with this, and why I asked the one who started it for qualification about what he means with "straight line", is something like this: Assuming green is the "movable area" and yellow is the player position here ...
... which of the points A, B and C is reachable in a "straight line" to the player?
 
in my code only A and B are marked
 
A can be ... unless the actual move algorithm prefers moving up/down to moving left/right. In which case a mob at A will run into a wall.
 
i'm sure the one above C is not a valid point, but C itself can be a valid one
 
10:17 PM
B can be ... if the mobs can run diagonally. Can they? We don't know.
C is not valid .. unless the mobs can run diagonally, and prefer diagonal movement to horizontal/vertical one, in which case the mob CAN reach the player regardless.
So, what does "straight line" mean?
 
there is part in my code that is simulating a mob moving in an straight line, I'm sure he can change that part to whatever he wants in that part.
but straight line rings a bell in my head, it reminds me of what paint draws when you draw a line
 
Wouldn't this algorithm then boil down to: foreach(point in area on the edge and not a wall) mob = spawn_mob_at(point), result = mob.move_to(player.position) if( result = hit ) point.mark_as_spawner()?
Add in a catching of results (if a point is marked as a valid path of another spawner already, we don't need to check further) if you want, and you're done.
Anything else would require pathfinding.
 
that's right but since i'm moving from player to the edges I think I will get more performance.
but the main idea is the same, that's exactly what i'm doing
 
Pseudocode FTW. :)
And no, you won't get more performance your way. From the edges to the player + catching of results of previous runs will get you more performance, especially if you go around the edge ordered.
But that has a cost: You need to save more data in the map, in particular the information about if a previous spawner who took this point on the way managed to get to the player, or if he failed.
I also have no idea how to implement it on the GPU alone. :D
 
i'm still catching results from previous runs, but now that i'm more thinking about it seems i'm checking more than what is really needed
when you are going to implement it on gpu, you have to forget all bout caching previous results.
 
10:29 PM
No, why? You can just cache it in another texture or the Z-buffer.
 
just think about it this way: to use gpu power to maximum value you need to run same code on many threads without having them depend on each others results
 
I didn't say it was a good idea, just possible. :)
 
and the sudo code you mentioned has all the features needed, you can easily run that code and mark all the points in the way.
this way you'll check many point more than once or twice but you'll get much more performance
 
The other problem with the "test from the player to the spawn point" approach is that in a discrete space, A->B can be reachable in a straight line while B->A isn't. See point C in my picture above: If the rule is "try to go diagonally, then go the rest of the way up, down, left or right", C->player is reachable in "straight line", player->C isn't.
 
C->player can be reachable if you reverse the movement order for checking. and player->C can be reachable too, but it'll create a bad dirty code. by the way that movement order will not create an straight line in my defenition
 
10:43 PM
lol
 
moving from A->B is not an straight line but from C->D is!
 
Yes .... you basically need to check with reverse_move_to() instead of move_to().
@Gajet Depends on how how this "movement in a straight line" is implemented in the game, A->B might actually be one.
 
11:08 PM
@Noctrine!
 
Ari! Long time no see, how are things?
 
Things are going well here. How about yourself? I see you've been busy on GDSE :)
 
Not as much as I'd like to be, but such is work. Been more busy trying to get a studio off the ground and get to beta by the end of the year.
 
Oooh. Getting a studio off the ground is no small task
Having worked on a fair number of mod teams that wanted to go that route, I know it is incredibly time consuming
And a continual learning process
 
11:36 PM
Ok... am I way out to lunch here? "A static member cannot be marked as override, virtual, or abstract"
I wanted a static method in a base class that could optionally be overridden in a derived class
I thought it would be a decent way for me to load content for each type of entity
 
Nope, you can't do that
 
The entities don't exist when the "LoadContent" method is called, so I thought it would be nice to make the method static, then either manually, or through reflection, call each entity's "LoadContent"
I'm working in XNA, is there an other way I should be doing this?
hmm, I should just make a question maybe
hmm
 
Static methods are resolved at compile time
So there is no way they can be modified during runtime
 
Is the method part of a class or is it stand-alone?
 
11:42 PM
I'm just trying to think of an other way to do what I want to do, :/ hmm
The method I'm trying to make static is completely new
 
Well I'm not very familiar with XNA, but in C# you can override a function in a class as such...
The implementation you want to override: public virtual void myFunc();
 
yeah... I know. But if it's not static, then I need an instance of the entity to call LoadContent on, and that gives the wrong impression, it won't be loading its own resources, it'll be loading resources for all future instances of the entity
hmm
 
So you want to load a resource once and reference it in a lot of places?
It sounds like you need to use the flyweight pattern: en.wikipedia.org/wiki/Flyweight_pattern
 
That is correct. I am just refactoring some stuff so that I can add a new Sprite Library module in, and the Sprite classes that I am working with want to load at the startup kinda like: code.google.com/p/xnaspritelib/source/browse/trunk/…
(will read the wiki in a sec)
In my code, the LoadContent() gets called right at the start, and only ever once. As you can see, it loads a Sprite from a file (which in turn loads images). This Sprite is stored internally because it will be used for each and every instance of a "SimpleSprite" in the example
 
11:57 PM
Okay. It sounds like you're describing multiple things to me
Sorry. Had to step out for a second
 

« first day (401 days earlier)      last day (4618 days later) »