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.

Topics - Pueo

Pages: [1] 2 3
Off-topic (Locked) / "Text Adventure" Rogue Like
« on: September 23, 2012, 11:38:19 PM »
What's the general opinion on text adventures and roguelikes? If a classic text adventure like Zork or Adventure was put on the roguelike scale, where would it fall?  What about a fusion of a T.A. (text adventure) and a roguelike, or are they too different?

Programming / Viability of Python
« on: September 08, 2012, 03:53:12 AM »
My computer science class in school is teaching us Python, and I was wondering if it's viable to create a roguelike in said language.  I know that Python is a fully featured language, so it theoretically should be viable, but I wanted to know if it was good, specifically for roguelikes.  
Are there libraries to help with RL development? Is it (relatively) easy to get into? What's the portability like? Those kinds of things.

Classic Roguelikes / Major, Open-World Roguelikes
« on: August 20, 2012, 09:02:29 PM »
I'm looking for examples of roguelikes where you can either do whatever it is you want or proceed towards the end goal.  I think ADOM is a little like this, but are there any others?

Programming / When is Random Too Random?
« on: August 18, 2012, 09:04:13 PM »
    At what point does a game become too random?  Of course, random map generation and item/monster placement is pretty much necessary for a roguelike, but when do you stop?  Should the items themselves be random?  Should monsters have random stats and powers and movement patterns? 

    What about combat? Is it a bad thing if you know goblins always have 75 health? 
    Another part is setting and narration.  Should quests be random?  Would a random setting make the game too confusing?  If the game has a story, how much of it should be constant?

    I feel that past map generation, item/monster placement, and item generation, it becomes too incoherent.  It becomes too hard to gauge the strength of monsters; even if you know it's a goblin, it could have anywhere from 50 - 100 health (for example), meaning you might charge in, thinking it'll go down in a couple hits, but in actuality it takes 5, nearly killing you in the process.

Programming / Good Settings for Free-Roam RogueLikes
« on: August 11, 2012, 06:35:20 PM »
    Basically what the title describes: what are some good settings for free-roam roguelikes, where you can just wander around and carve your own path, eventually progressing towards the final boss/quest/goal?

    I've thought of the usual Fantasy set in Middle Ages kind of idea, plus a post-apocalyptic America, and a sort of 1650 - 1680's Golden Age of Piracy buccaneering type thing, where you sail around on your ship looking to make fame and fortune.
    However, I feel like fantasy is just too over-done, post-apocalyptic settings are too politically/emotionally charged, and piracy is largely a team effort, which I don't feel fits with roguelikes in general (one hero that, against all odds, defeats the bad guy). 

    I really like post-apocalyptic settings, but I don't want to turn it into an allegory of how we need to downsize our nuclear weapons departments, or stop global warming, or protect the koala bear because without it this certain tree will grow too large and take over our cities, etc.  It's not that I don't think those things are worth talking about, it's that I want my game to be fun, not a secret anti-nuclear-weapons speech.

Programming / "Free-Roam" Roguelike Development
« on: August 11, 2012, 06:23:19 PM »
    After recently playing TES: Skyrim, I've shifted my roguelike focus to a more sandbox-y feel, where there is a main quest-line (and unlike Skyrim, finishing the main quest does finish the game), but there are also a plethora of side-quests, hidden artifacts, etc. 

    However, how do you go about making a game that's supposedly random, but also have meaningful quests and items?  Skyrim has a "Radiant" technology (I think that's what it's called), which is basically a fancy way of describing the typical roguelike "Kill X many of Y creatures" or "Go to X place and kill all the bandits."

Programming / Resizing Terminal Screen
« on: June 19, 2012, 06:56:31 PM »
I'm having trouble with my C/nCurses setup.  When I call "resizeterm" or "resize_term" (I'm not sure what the difference is), either nothing happens, or my terminal window disappears.  I've also tried "is_term_resized" and I get a non-null character, so I should be able to resize the terminal.  It's a little frustrating, since I do want to eventually distribute this, and it's no good if everyone has to manually resize their terminal.  Also, to clarify, I want to resize the physical screen (that you see on the monitor and has a little title bar near the top), not the virtual screen in the curses window.

Right now (as a little test run) I have:
Code: [Select]
#include <ncurses.h>

int main()
    resize_term(34, 142);
Is that correct?  Should the first integer in "resize_term" be the rows, or the columns?  Should "resize_term" be "resizeterm?"  Should "resizeterm" be before or after "initscr()?"

Short Version:
Question: How do you properly use "resizeterm" (or "resize_term") in order to reliably resize a terminal on almost any machine?
Note:  I want to resize the physical terminal screen, not the virtual screen used by Curses.

Programming / Using -- and ++
« on: June 14, 2012, 04:29:37 AM »
Quick question, when you use -- and ++ when accessing an array, is it also decrementing or incrementing the value?
Code: [Select]
dungeon[row--][col][depth].connected = TRUE;
dungeon[row][col][depth].connections[dungeon[row][col][depth].numConnections][row--][col] = TRUE;
What I'm trying to do is access the section one row above (physically above, so the row has to decrease) the current row.

What the debugger says I'm doing is that the row variable (the one I'm decrementing) starts at 1 (before this code block starts), goes to 0 (after the first line), then goes to -2 (after the second line).  Then, of course, that means I'm trying to access an array with a negative value, which is producing a BAD_ACCESS error.

Programming / Chasm Indicator
« on: June 13, 2012, 03:42:52 AM »
Just wondering, what would you want to see used to indicate chasms (as in pits you can fall down).  I know Brogue uses some kind of 4-dots tile, but I was wondering what that is in regular ASCII (I think Brogue uses tiles that look ASCII).

Or, what do you think is better?

Programming / Identify? (y/n)
« on: June 02, 2012, 11:12:40 PM »
Hi, I another question here.  Do you think that a game with a limited item set can make no-identification work?  For example, if the only items in the dungeon are potions, would it be interesting if the potions were all identified, or if you still had to identify them.  Just brainstorming here, feel free to leave comments/votes/rants/etc.  Is identification integral to a rogue-like?

Programming / Does nCurses Honor the /n?
« on: May 29, 2012, 09:56:52 PM »
A quick yes or no question, does nCurses recognize the /n and act accordingly?

Code: [Select]
                    move(0, 0);
                    do {
                        curChar = fgetc(highScores);
                        if (curChar == EOF) {
                        else {
                    } while ((curChar = fgetc(highScores)) != EOF);
In the addch(curChar) part, if it comes across a newline signal, will it move the cursor to a new line, or do I have to do it manually?

Programming / 'fopen' With Uncertain Parameters
« on: May 21, 2012, 09:09:30 PM »
Say I'm using a file to hold the title screen, and when the program opens it up, it copies the file to the screen, with attributes and stuff that are to be added after. 
If I'm using fopen to provide a title screen file, how do I include the correct path when it's unknown what the path will be on a different user's computer?

Programming / Copying chtype Arrays
« on: May 08, 2012, 05:46:41 AM »
Aloha again,

Another question, how do I copy a chtype array into another chtype array?  For example, you are at level 15 in the dungeon.  You go down the stairs, and it takes chtype level16 and copies it to chtype currentLvl.  Then it prints currentLvl.

I tried "currentLvl = level16", but that didn't work.  Chtype arrays aren't assignable, I guess.  I also considered the function "cpystr", but that's for char arrays, not chtype arrays.  Is there a special nCurses function, or do you have to just do it one-by-one (copy level16[1][1], currentLvl[1][1] = level16[1][1], etc)?

Programming / Moving the @
« on: May 05, 2012, 02:37:06 PM »
Question time again!

Say I have a map.  I have the map stored in an chtype array[30][125] (the size of the map).  If I have my '@' character, then the player wants to move the '@' up, I do this:

// Find the '@' character's coordinates, then:
mvaddch(coory, coorx, chtype array[coory][coorx]); // To overwrite the old '@' with the original tile
// Then print the '@' one space north.
// Coory is the 'y' coordinate of '@', same with coorx, but with 'x'

Is that right?  If it is, then how do I find the '@' symbol?
If it's not, how would I do it? And then, how do I find the '@' symbol?

My guess is to read the screen until it comes across the '@', but I don't know how I would do that.
Or, should I just store a couple variables with the @'s coordinates that I printed it with, then use those?

Programming / nCurses "mvaddchstr" Function
« on: May 04, 2012, 07:00:11 AM »
Just wanted  to ask a question about nCurses functions and how they are really messing me up.  I want to save my screen, print some information (in this case, old messages), then restore the old screen.  To do some tests, I started off with this (note this is the C programming language):

unsigned int line1;
unsigned int *ptr1 = &line1;    
int count1;
int count2;

I made the pointer since both mvinchstr and mvaddchstr require a pointer for some reason. The two counts are for the nested for loops. Then:

mvinchstr(0, 0, ptr1);
/*Bleh put up old info blah whatever*/
for (count1 = 0; count1 < 34; count1++) {
    for (count2 = 0; count2 < 142; count2++) {
        mvaddch(count1, count2, ' ');
mvaddchstr(0, 0, ptr1);

So, in theory, this should copy the first line of the screen, put up the old messages, blank the screen, then put back the first line of the old screen again.  However, I get this (I'm just testing it with a simple line for now):

Old Screen:
New Screen:

I've checked the output from both mvinchstr and mvaddchstr, and neither are erring.  Mvinchstr is copying 142 characters (the length of the line I'm copying) and mvaddchstr is returning 0 (it would return -1 if it encountered an error).  Anybody know what's going on?  

If I run it piece by piece, mvinchstr runs fine, the old messages pop up fine, the screen clears fine, but mvaddchstr messes up.

Pages: [1] 2 3