Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - scaught

Pages: [1] 2
1
Programming / Re: Newbie programming Q's
« on: June 19, 2012, 05:35:01 PM »
Code: [Select]
oh god my eyes
...and that, ladies and gentlemen, is how a C programmer codes in C++.

If you were actually writing OO code, your weapons wouldn't just be distinguished by an enum, they'd be subclasses.  If you find yourself writing massing switch statements, or massive if/else clauses, you're probably doing something 'wrong'. (semantics being what they are, you can take that to mean whatever you want)

Quote
without OO I would have to refer to a specific weapon w: "w->type", "w->size" and "w->color" instead of "type", "size" and "color"
Er, to be honest, w->type is just as OO irrelevant as internally referencing variables...w->type() (with the inference of inheritence) would be the only way to actually imply OO-ness.

Also, reduce() is acting like a factory call for some reason?  Hello over-complicated memory management -- you're just begging for memory leaks.  Why can't a weapon reduce itself?  And if you need both copies, clone() it first and then reduce one? 

Also, why does your class type look like a variable name?  And even when you have 1 line conditionals, it's still recommended to put {} around them.  And to only have one return path from a function.  And your spacing is horrible.  And your code will cause an exception if size is negative. And...and...and...

Ship games.  It's what's important.  But sometimes do it with class. :)

2
Programming / Re: Bug tracking?
« on: February 14, 2012, 09:28:51 PM »
I personally currently use Redmine.  Parts of it are a pain (the fact that it's a Rails app not being the least of them...Ruby people are seriously messed in the head) but the end result is a pretty complete and straight forward issue tracker with some nice interface touches.

Professionally I use Jira.  Can't really recommend it, but if you're looking to build familiarity with a tool used at multiple studios in the game industry, there ya go.  (It's theoretically free for open source projects, but I've never tested those waters)

Both should have 'guest' accounts with modifiable permissions, etc, so that might handle your user registration gripe.  (It does nothing to stop report spamming tho)  Redmine offers OpenID logins - and most everyone has a Google account - so that might be a middle ground as well...

3
Programming / Re: Cardlike - Doing another version for this year's 7DRL
« on: February 10, 2012, 07:59:39 PM »
EDIT: You guys probably don't follow boardgaming trends, but recently with the rise of Euro style board games there is a de-emphasis on player interaction. My philosophy is that you should always be playing the other players. Though I do like to include solo rules to my games.
I think that's a mis-characterization.  The de-emphasis has been on premature player elimination.  I have a fairly substantial board game collection (250+ now...) and still buy 10-20 new games a year.  I especially have a soft spot for the games of Uwe Rosenburg and Vlaada Chvatil, and the Alea big- and medium-box games.  Even in games like 7 Wonders and the deck building games (Dominion, Thunderstone, Quarriors, etc), where you're effectively playing multi-player solitaire, there's enough griefing that goes on to qualify as interaction -- and in fact, the social interaction trumps the mechanical interaction ten fold.

But that's just tangental.  Continued success on your card game! :)

4
Programming / Re: Your oppinion about 2D Mining System
« on: September 21, 2011, 07:55:12 PM »
Voted #3:
a) Cave system lets the user quickly get to a starting point instead of trudging through #s without a sense of direction to hit a vein.  This assumes:
  1) Visibility in a #-filled system is limited to what the user exposes
  2) Visibility in a cave system has a distance > 1 in 'open' areas
  3) Ore veins are potentially exposed to the 'open' areas
b) Depth lets you 'reset' between levels, allowing for variations in cave style, ore types, etc
c) Adding a 3rd axis of movement compresses distance between two arbitrary points in the mine

5
Programming / Re: New project?
« on: May 24, 2011, 09:01:50 PM »
- clean up of headers: replaced #pragma once with standards inclusion guards and removed VS precompiled headers
Why?  #pragma once works in MSVC, gcc, icc, and every other major current compiler suite.  'Old style' include guards are prone to error and actually DO LESS than #pragma once does, unless you wrap the actual #include statement in them as well...and then calling it a clean up will really be a misnomer.

- changed #define NO_SPD_MOD 0 to const int
It probably doesn't matter for small projects, but changing constants that are never 'type-challenged' to be 'type-safe' can lead to code bloat.  Most compilers still allocate static data space per compile unit for named variables, even if in usage they're optimized away, whereas #define'd values are guaranteed to be "inlined" (for lack of a better term...).  Yes, it's only 4*CU bytes...it's nice having the luxury of it not mattering...


6
Programming / Re: Tracking targets
« on: January 03, 2011, 12:41:31 AM »
Templates are the thing that sucks most in C++ and what I know about the next version of C++ it's going to fail.
I can prove your poorly formed opinion wrong in two snippets of code:

Code: [Select]
#define max( a, b ) ( a > b ? a : b )
Code: [Select]
template< typename T > T max( T const a, T const b ) { return a > b ? a : b; }

Snippet B is vastly superior to Snippet A in every possible way.  This is an unarguable fact.

Templates are a way to increase productivity and decrease bugs when used correctly.  People often misunderstand what code a template could generate and paint themselves into a corner of bloat and poor performance.  C++0x extends the tools available and makes even more available (decltype, lambdas, auto, variadic templates, etc).  (Shame about concepts not being ratified, tho -- that would've been a really nice nice-to-have)  It is as likely to "fail" (how do you even measure that?) as C++98 was.  Or C++ in general.  Or even C.  (each had/has its detractors, claiming it would never catch on.  Hell, the head of the CS dept of the university I attended almost 20 years ago was convinced Modula-2 was going to be 'the next big language'.)

By your bizarre disparaging comments about boost, smart pointers, patterns, etc, it's painfully obvious you're self taught.  You've reached a point in your self-education where you're accomplishing things and think you somehow now know best.  You are wrong.  You need to keep up the learning, even if you continue self-teaching.  Work with other people.  Drop the attitude and drop the assumptions.  Go start learning again.  You'll be a better programmer for it.

7
Programming / Re: Implementing Bresenhams Line Algorithm
« on: November 17, 2010, 11:11:51 PM »
Code: [Select]
            While Delta >= 0
                InitialY = InitialY + StepY
                Delta = Math.Abs(Delta - (DeltaX * 2))
            End While
Delta will always be >= 0 after Math.Abs(), no?

8
Traditional Roguelikes (Turn Based) / Re: 4DRL Success: Chronophase
« on: November 06, 2010, 05:36:44 AM »
scaught, Chronophase is closer to Rogue than a stake is to a house.
Please don't confuse the analogy with the criticism.  That was't a value judgement, it was an analogy ad absurdum

Look, I am just trying to posit something that is an extremely important facet of communication.  There's (apparently) a concept in linguistics called 'focal vocabulary' - "a specialized set of terms and distinctions that is particularly important to a certain group; those with a particular focus of experience or activity." (wikipedia)  As soon as a specific label is attached to something, that something is effectively transformed by that label.  By attaching "roguelike" to your game, you set a level of expectation, merited or otherwise.

Quote
Fenrir, apples are orangelike.
If you went for breakfast and asked the waitress for something "like an orange" and she brought you a nice, crisp red apple, you'd be ok with that?  What if she was attractive, would that change your judgement?  (As off-topic as that second question may seem, it's exactly what's been going on here.  Lucky for you, you're that attractive waitress. ;) )

Quote
Please realize that, as members of this community, you have a responsibility to not be abrasive and disrespectful to others.
If you are taking anything I'm saying to be disrespectful, please PM me.  I only have issue with your use of the term "roguelike" as applied to your Chronophase game, nothing more.  I have nothing but respect and admiration for your body of work.  The bizarre assumption that I'm out to insult you (or that it even should be insulting to question your choice of vocabulary) is completely without merit.

Quote
I am truly saddened by the pedantry and poignancy of this conversation.
The devil, as they say, is in the details....(and careful with 'poignancy'...it doesn't always mean what it sometimes means...if you know what I mean.)

...So, anyway, I'll stop posting.  This obviously won't go anywhere.  I'll just leave you with a quote from your original post:
Quote
Chronophase! A space-shooter-inspired 4DRL
...and juxtapose it with...
Quote
Chronophase! A rogue-inspired space-shooter
...and hope that the difference strikes a chord somewhere.

As always, continued success.
-scott

9
Traditional Roguelikes (Turn Based) / Re: 4DRL Success: Chronophase
« on: November 05, 2010, 08:11:21 AM »
Hi Nolithius, thanks for taking the time to read my criticisms and to respond.

Were you able to participate in this 4DRL challenge? I ask because it is worth pointing out, as jim alluded to, that there is a marked difference between sitting back/armchair designing/backseat driving/recklessly criticizing vs. understanding firsthand the realities of participating in a challenge.
(Un?)Fortunately, I am gainfully employed as a game programmer (one whose game recently shipped, no less) and it takes up the bulk of my time.  The spare programming cycles I do end up with all go towards a game that won't be n-Day.  I can assure you, however, that my criticisms were very pointed and directed - a fact apparently lost on the people 'rising to your defense' - and it's this defense I find both amusing and befuddling.  It's as if by my questioning the roguelikeness of your game I somehow deemed it...inferior?  Case and point:
Quote from: jim
What the developers are doing is more important than all the stuff being said about what they're doing.
...I mean really?  Nomenclature be damned, it's hard work?

Quote from: Nolithius
If you were unable to participate, I strongly suggest that you do so the next time around. It is a humbling experience and will break down many of your assumptions about game design, game development, the essence of a roguelike, and what degree of fun, completion, or depth can be achieved within 4 days.
As true as that all may be, it is completely irrelevant to my criticism.  If I set out to build a house-like structure in 4 days, and I end up with a stake of wood in some concrete, do I honestly have the right to call it house-like?  I mean, it might be the coolest wood statue around, but it's still not like a house.  (No, I don't know why I feel compelled to keep writing these analogies.  I'm obviously not getting through the emotional baggage people are throwing in the way...)

Quote from: Nolithius
I made a choice for this challenge to stay away from cloning Rogue. As corremn mentioned, I did not feel that four days was sufficient to make a stock standard roguelike that was better than forgettable. There also was not any standard roguelike feature/trope that I wanted to put out in a smaller format that I would not rather spend the time working into my larger-format roguelike Dance of Death.
There's a loaded question I could be baited into asking about nDRLs based on this paragraph (and bits of others), but it's not worth being answered.

Quote from: Nolithius
Few, if any of the 4DRL participants have either depth or variant gameplay. The spirit if a 4DRL challenge is not to put together a complex, ever-changing epic game. 4 days is enough to tweak an engine, set up some basic rules and controls, and provide some mild variation where possible. And if you are working with any new techniques you had not tackled before, like facing, or non-rectangular multiple-tile characters that rotate and precisely collide with projectiles, or turn-based missile trail effects, or a stitched/continuous world: those will take the bulk of the already tight timeline. Add to that playtesting, bug fixing, and polishing up for release.
So why call it a roguelike?  THIS is what I was getting at.  THIS is ALL I was getting at.  You're attached to the concept.  Fine.  You're exploring potential for future (actual) roguelike work.  Super.  The game you created is fun.  Excellent!  So why burden it with the roguelike epitaph?  Why broadcast to everyone "hey, come play my game even thought it's not what I'm telling you it is".  Why set a level of expectation, only to have that expectation not met?  Why not just write "inspired by roguelikes" or "in the mode of a roguelike" or something that gives you that linguistic out that would make my single, pointed criticism never possible?

One last attempt at a thought experiment: What if you changed your title screen to read "Chronophase: A 4 Day Star Trek Game" but left the rest as is?  Does that illustrate my point any better?

Continued success,
-scott

10
Traditional Roguelikes (Turn Based) / Re: 4DRL Success: Chronophase
« on: November 03, 2010, 05:34:23 PM »
Well he is part of the roguelike community, not trying to attach himself to it.
I said nothing about him being part of a community, it was specifically in reference to the game he made.  If Thomas Biskup went and made a run of the mill FPS would you still call it a roguelike?  

Quote from: corremn
And if you make a stock standard roguelike game in four days it will be crap, hence the variation in gameplay in the nDRL scene.
Hyperbole much?  If someone could legitimately make Rogue in 4 days, I'd tip my hat.

Quote from: corremn
nDRL are generally not rogue clones.
No, but by definition they should be ROGUE LIKE.  As in LIKE ROGUE.  As in having something in common with the things (plural) that make Rogue Rogue.  If you want to make a game in 4 days - great!  Why not call it a 4DIG (4 Day Interesting Game).   Maybe I should make a Rock Band clone in 4 days and call it "Rogue Music" and submit it as a 4DRL!  It's got permadeath!  It's a roguelike!

Quote from: corremn
The game was too easy btw, but fun for a couple of minutes.
With this I agree.  I think there's a lot of potential for a fun game there.

Quote from: Vanguard
This nitpicking isn't productive.
On the contrary.  It's nothing but productive.  Education leads to knowing, and knowing is half the battle.

EDIT: Misquoted due to bad copy/paste

11
Traditional Roguelikes (Turn Based) / Re: 4DRL Success: Chronophase
« on: November 03, 2010, 01:13:46 AM »
As far as Chronophase not being a roguelike, I checked some roguelike definitions out of curiosity, and it fits:
It fits what exactly?  Just being turn-based does not make a game a Roguelike, just as "the ability to swim" does not make something a fish.

Perhaps I'm missing something but this is just a turn-based shoot-em-up.  Even if it was an elf done with ASCII art it still wouldn't even have a passing resemblance to Rogue.  There is no depth.  There is no variant gameplay.  You have effectively made a turn-based Space Invaders.

NOTE: THIS IS NOT A BAD THING.  A turn-based shooter is an interesting idea an should be expanded upon.

So why the attachment to the roguelike label in the first place?  Surely you can't be so desperate for validation that you need to glom onto a random community?  Or if the validation IS needed, surely there's a more relevant community?  Or maybe the goal for the game is to incorporate more roguelike qualities eventually?

Lose the label -- for the sake of your game and for the sake of actual roguelikes.  The world will be a better place. :)

(and before someone chimes in with "who made you sheriff of Rogueliketown"...no-one.  I am, however, someone who thinks language is large enough to have descriptors for everything and that unnecessary sharing of these descriptors is counterproductive.)

12
Traditional Roguelikes (Turn Based) / Re: ARRP 2010: Teratogen v003
« on: September 29, 2010, 01:18:05 AM »
http://wubi-installer.org/

I haven't used it myself, but it seems litke an easy way to ease someone into the (better) world of linux. ;)

(There are also a couple distros built around running in a window - and of course, running on a VM shouldn't be too much work...)


13
Programming / Re: C# Point Class code
« on: May 04, 2010, 09:01:20 PM »
        // Provide a custom GetHashCode function (needed when the Equals operator is
        // overridden
        public override int GetHashCode()
        {
            // Use XOR
            return this.x ^ this.y;
        }
Was your intention to have the hashes of [0,1] and [1,0] be the same?

Also, why the overkill here:
Quote
            Point[] Directions = new Point[8];
            Directions[(int)CardinalDirection.N] = new Point(0, -1);
            Directions[(int)CardinalDirection.NE] = new Point(1, -1);
            Directions[(int)CardinalDirection.E] = new Point(1, 0);
            Directions[(int)CardinalDirection.SE] = new Point(1, 1);
            Directions[(int)CardinalDirection.S] = new Point(0, 1);
            Directions[(int)CardinalDirection.SW] = new Point(-1, 1);
            Directions[(int)CardinalDirection.W] = new Point(-1, 0);
            Directions[(int)CardinalDirection.NW] = new Point(-1, -1);

            // Get the offset from one point to another
            Point P = new Point();
            P.SetFromOffset(this, P2, -1, 1);

            // Find the matching direction
            int Index = 0;
            foreach (Point Item in Directions)
            {
                if (Item == P) { return (CardinalDirection)Index; }
                else { Index++; }
            }
Is simple maths somehow less desirable?

(Even though it is C# <shudder> , there's no reason to tax the GC when you don't have to)

14
Programming / Re: Rogue Expedition: Design notions
« on: April 23, 2010, 11:21:38 PM »
It's the nuance of "evolution" that usually rubs people the wrong way.  Saying Diablo was 'rogulelike evolved' implies that it somehow supersedes the genre that influenced it, that it's somehow better than a roguelike.  This is obviously not true and I don't think anyone is really trying to make that claim.

It's probably better served describing things as "derived from", "heavily influenced by" or even "mutated" from rather than bring evolution into this, as it implies a neutral at worst, honorific at best relationship.

As for "evolution is good" - that's entirely subjective.  Newer != Better.  Consumption culture is pushing the "new for new's sake" and it's unfortunate; there's plenty of good left in the old that's left unexplored. (yes, I'm one of those people that prefer turn-based ASCII....)

15
Programming / Re: Late initialization problem
« on: March 09, 2010, 11:28:45 PM »
Usually, I have an Init() function that I do post construction.  The main benefit is I can have the initialization fail gracefully without resorting to throwing exceptions. It's also useful for resetting objects back to their initial state without reconstructing it.  The downside is you have to make an explicit function call for it post-construction.

If you start making generic functions in your base class, you'll end up with a mess of interdependent code.

Pages: [1] 2