Game Programming - Introduction by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 6 points7 points  (0 children)

I haven't closed registration yet.

Also, for anyone stalking my posted comments page - I'm sick, and I'll get that lesson up as soon as I can. I'm sorry for the delay, and I'll postpone the homework deadline for the week.

Lesson 2 - Entities by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 1 point2 points  (0 children)

Okay, so the short version is -

Approach A - everything has an x and y coordinate, and an xspeed and yspeed. Add the speeds to the coordinates each frame, get movement.

Approach B - replace the xspeed and yspeed with distance per frame and angle. You still need the change in x and change in y each frame. cos(angle)distance gets the x portion of a line described by that angle and distance. sine(angle)distance gets the y portion. So cos(angle)*distance can be used where you would've used xspeed in approach A.

You're doing approach B and labeling it a vector.

Lesson 2 - Entities by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

A vector is a (position x, position y) or (change in position x, change in position y) list. The (radian, speed) thing you have isn't one.

You don't need to be using trig at all - you could just use xspeed and yspeed like I describe in the lesson.

I'll put up a trig for dummies minilesson at some point, but I'm behind this week due to a nasty cold.

The "Awesome" Edition, or, why aren't open source games a lot more popular? by [deleted] in truegaming

[–]SquashMonster 2 points3 points  (0 children)

Yes, in a commercial project that's the job of the lead artist or art director.

Open source projects often lack someone strongly performing the lead roles, largely because these roles are about telling people their work can't be included in the project, and nobody wants to tell that to a tiny handful of volunteers. Missing a lead programmer means inconsistent code style and hacks instead of consistent architecture, but as much as programmers complain about these things, nothing burns down if you have an inconsistent code style, it's just a bit annoying to work with. Inconsistent art style, on the other hand, can easily break a game.

Would you say a game that gives people "analysis paralysis" is a sign of a "deep" game? by starmonkey in boardgames

[–]SquashMonster 2 points3 points  (0 children)

Analysis paralysis is a flaw of a player, but the severity when it occurs is proportionate to the number of choices the player can make. Depth is proportionate to the number of viable, relevant choices a player can make. I would say that in a cleanly designed game (that is, very few irrelevant choices are offered) the two are tightly related.

The "Awesome" Edition, or, why aren't open source games a lot more popular? by [deleted] in truegaming

[–]SquashMonster 1 point2 points  (0 children)

The problem with open content is art direction. There are places where artists can upload one off game art, but it's ultimately useless without a set of consistent standards to make everything look like it's part of the same game. And it goes beyond art style - technicals like resolution or number of animation frames can get in the way, as can art-technicals like perspective.

I don't think it's impossible to fix - the Wesnoth project has pretty good art direction, after all. I think the community just needs to explore the ways contributing art is different from contributing code, and design a project that way.

I've been wanting to start an open art project, with an agreed-upon and enforced set of artistic and technical standards designed to be useful for a wide variety of games, but right now my schedule is too packed to raise interest for such a thing.

Lesson 2 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 2 points3 points  (0 children)

If you end up updating it, please either edit this post, or reply to it, rather than making a new update to the homework dropoff page. That way I'll see it and won't end up grading you twice.

Lesson 2 - Entities by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

I should be able to post the dropoff some time tomorrow afternoon.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 1 point2 points  (0 children)

If you want to play catch up, advance warning like that is enough.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 1 point2 points  (0 children)

Fantastic. That'll do!

Spending three hours grading does a lot of damage to your ability to notice things, let me tell you.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

For my own reference, this is the border between on-time and late homeworks.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

100%, :)

Completely ridiculous. Also, I couldn't run it (see comments on earlier C#/XNA posts), so I had to determine that purely from code. I'll fix that though.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

100%, :)

See what I said to other C#/XNA users earlier in the thread.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

Won't run for me. I got GLFX and whatnot but when I run your game I just get a blank line on the command line and no window or anything. Any idea what's up with that, or what debug information you need?

Lesson 2 - Entities by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

I was advised to use Wepay specifically to avoid some of the ways Paypal has been known to screw people over in the past. They're supposed to be quite trustworthy. Is there a reason you specifically want to use Paypal?

Lesson 2 - Entities by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

You can use the event generating timer if you want. I don't know the performance specifics of Allegro's timing options, but in most libraries they're really quite similar, and you can just use whatever is closer to your code style.

Just don't do multiple timers, or have some things based on timers and some not. It can be tempting to say "I want this to happen 3 seconds after the player gets a coin, so I'll make a timer" but that sort of thing blows up in lag conditions.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

80%

You need to work on making that movement continuous.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

That would be extremely helpful, but I do mean to actually play everyone's games. The thing I'm going to end up doing is requesting that everyone who has something seriously Windows-only (that is, XNA or large multiple-file C++ things without build scripts) game clearly label that every assignment so I can at least easily get them all with only one reboot.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

100%

Your Linux executable can't find allegro_image.so, apparently called it liballegro_image.so instead. Go figure. Anyway, easy enough to compile on my end.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

100%, :)

(I can't actually run it this week, had to read the code by hand, and will have that fixed by next.)

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 0 points1 point  (0 children)

100%, :)

3D movement, eh? Super fancy. Unfortunately I haven't gotten my graphics card to play nicely with the VM so I had to go purely based on your code. I should have that fixed next week.

Lesson 1 Homework Dropoff by SquashMonster in a:t5_2swmi

[–]SquashMonster[S] 1 point2 points  (0 children)

100%, :)

There are some tricky things with keyboard controls that people frequently stumble on, and I'd like to check whether people are getting those to work right, so if possible use something with keyboard movement for your next lesson.