Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 30 31 [32] 33 34 ... 72

Author Topic: The Roguelike Development Megathread  (Read 245641 times)

Rhodan

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #465 on: July 21, 2009, 07:36:20 am »

The 50/50 approach would still leave the back area safer.

Having enemies come from all sides would not work well in a horizontal shooter, and most ASCII chars can only be "mirrored" so that would make ship design even trickier.  Sideways attacks are still possible, but the main assault should be frontal.

The hull piece thing seems a bit far-fetched.  It's good as a special kind of hull piece, but it's too specific to solve the entire issue.

I could force thrusters to the back, and weapons to the front.  Perhaps if I make weak lasers indestructible, so you could only take out rocket launchers and the like?  It would make it less unfair...

Still, localized damage seems not very favorable for single-ship games without the ability to go and have repairs whenever.  It's still a shooter with levels and bosses and stuff.  I'll leave it out for now, but leave the option open to add later.
Logged

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: The Roguelike Development Megathread
« Reply #466 on: July 21, 2009, 08:06:56 am »

A repair device?
Logged
Eh?
Eh!

Rhodan

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #467 on: July 21, 2009, 12:57:59 pm »

No, localized damage would just suck the fun right out of the game, no matter what you try to compensate it with.  It would be great for games with more detailed ships, huge fleets or a more RPG feel.  But not this one.

Perhaps for special bosses or big asteroids, but still.
Logged

Granite26

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #468 on: July 21, 2009, 03:44:52 pm »

Weapons would be forced forward, no?  Other core components should be inwards, because even if the assault is frontal, bullets and missles will still occasionally attack from the sides and back (as they fly by)

One possibility is to have 1%-10% of the damage inflicted go towards damaging the part it hits.  This means that it's hit points that will kill you, but if you take a lot of hits to a specific area, or are close to death, your ship will reflect this.

It should be possible to fall to 50% or so health without losing any specific pieces.

This also means that some enemy types could specialize in breaking the ship apart.

Also, consider what happens if your ship is shot into two pieces...

Rhodan

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #469 on: July 21, 2009, 04:43:57 pm »

None of that works well in a fast-paced horizontal shooter.  You'd have no time to keep up with which parts break down or why your gun stopped working.  It's about reflexes and timing and charging your weapons and shields on the right moment.
The design of your ship allows you to design weapon and shield configurations, but during a level it's just PEWPEWPEW! and OHNOES ALL POWER TO SHIELDS!

If I decide to put in localized damage, it will only be for show, such as smoke and sparks and stuff.  This will look great on big bosses or larger playerships.
Logged

Zironic

  • Bay Watcher
  • [SDRAW_KCAB]
    • View Profile
Re: The Roguelike Development Megathread
« Reply #470 on: July 23, 2009, 05:53:23 pm »

After switching to python, I found I could write really simple games sans guides or tutorials. Like
Code: [Select]
print "Typing run() brings up the semi menu. The four directions are north, east, west, and south. You're in the center of a 10 by 10 room."
c = 1
xaxis = 5
yaxis = 5
def move(prompt):
    global xaxis
    global yaxis
    while True:
        room = raw_input(prompt)
        if room in ('north'):
            print "You move forward."
            xaxis = xaxis - 1
            if xaxis <= 0:
                print "You've run into a wall."
                xaxis = xaxis + 1
            checkforholes()
            return False
        elif room in ('south'):
            print "You move backward."
            xaxis = xaxis + 1
            if xaxis >= 10:
                print "You've run into a wall."
                xaxis = xaxis - 1
            checkforholes()
            return False
        elif room in ('west'):
            print "You move to the left"
            yaxis = yaxis - 1
            if yaxis <= 0:
                print "You've run into a wall."
                yaxis = yaxis +1
            checkforholes()
            return False
        elif room in ('east'):
            print "You move to the right"
            yaxis = yaxis + 1
            if yaxis >= 10:
                print "You've run into a wall"
                yaxis = yaxis - 1
            checkforholes()
            return False
def checkforholes():
    global c
    global xaxis
    global yaxis
    if xaxis == 6 and yaxis == 5:
        print "You have fallen through a hole. You have entered another 10x10 room."
        if c >= 2:
            print "You have entered", c, "holes",
            c = c + 1
            xaxis = 5
            yaxis = 5
        else:
            c = c + 1
            xaxis = 5
            yaxis = 5
def show():
    global xaxis
    global yaxis
    global c
    while True:
        show = raw_input()
        if show in ('show'):
            print "Your coordinates are", xaxis,",", yaxis, "and you have seen", c,"holes",
            return False
def start(prompt):
    mov = raw_input(prompt)
    if mov in ('move'):
        move('Where do you want to go?')
    elif mov in ('show'):
        show()

def run():
    start('Type, move to move and show to show status')


Point of the game - fall down the hole.
Logged

Singularity

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #471 on: July 24, 2009, 10:44:37 pm »

Well, progress is slow, but it's there.  I now have the standard "@ running around the screen."  But slightly more aesthetically pleasing. ;D

Logged

CapnMikey

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #472 on: July 26, 2009, 10:14:05 pm »

Yay, this thread is alive :D  July seems to be a good month for programming, shouldn't we be outside? :P

Rhodan - Hey, that looks really cool!  Nice, original concept and an interesting combination of strategy for building your ship, and action for the PEWPEWs.

I spent this past week (and I mean solid, like every waking hour O_O) working on my DF rip-off clone inspired game.  It has lots of novel, innovative- okay, it's a clone .__.  I wanted a testbed to learn AI so sometime in the future I can make an actually original "DF-like".  It served that end very well, I learned a ton.

After several iterations, I came up with a flexible, modular job/goal system, with compact, concise goals that are assembled into bigger jobs.  The manager picks the best job based on priority, and individual units have a priority queue of current jobs.  The manager handles state transitions and dispatches events, allowing each job subclass to define its own behaviour for interruption, resumption, cancellation, etc.  Probably all basic stuff, but I'd never done AI before, so it's all interesting and new.  The OMG moment was when I first got the "clear area" job working, and it was like "OMG HE'S ALIVE AND DOING STUFF I TOLD HIM TO." XD  It was, however a HUGE pain in the ass to save/load...

In fact, I'd say if you're planning on your game ever being able to save/load - especially if you use a lot of classes and 100x especially if you use inheritance and dynamically create objects whose state you'll want to save - start NOW.  Implementing save/load was my single biggest challenge/nightmare so far, and still bugged beyond hell and will crash in many situations.

Spoiler (click to show/hide)

Excuse the whacked image, the reason it's small is because it's downres'd from filling my monitor.  One thing that bugs me about rogue-likes is that they have so much information to convey but the display is tiny!  19-22" screens are common nowadays, use that real estate!  I also really wanted to try the idea of using standard UI elements (hideous, yes, but the standard for usability) all docked around the main window.  They're invaluable for debugging, as well.  The black one on the right was trying to give one of them it a more "pretty, classic" look.
« Last Edit: July 26, 2009, 10:34:16 pm by CapnMikey »
Logged

Singularity

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #473 on: July 26, 2009, 10:39:24 pm »

Nice, CapnMikey!  Of course July is good for programming, it's in the summer.  The rest of the year I'm in college, and busy... well, programming actually.  Programming games even.  But we haven't gotten to the good stuff yet, so it's not as fun as it ought to be.  After my first year of dealing with it, I have to say, I HATE Windows Forms!  They're so... ugly. :-X  Luckily it seems we'll be transitioning to C++ from C# this year, which is why I've started mucking around in it now.

I'll take your advice to heart and start trying to figure out save/load before things get too complex.  But I haven't really done any work on the game since I last posted, so there's still no actual gameplay.  I want to take care of that first.
Logged

Alexhans

  • Bay Watcher
  • This is toodamn shortto write something meaningful
    • View Profile
    • Osteopatia y Neurotonia
Re: The Roguelike Development Megathread
« Reply #474 on: July 26, 2009, 11:02:48 pm »

After several iterations, I came up with a flexible, modular job/goal system, with compact, concise goals that are assembled into bigger jobs.  The manager picks the best job based on priority, and individual units have a priority queue of current jobs.  The manager handles state transitions and dispatches events, allowing each job subclass to define its own behaviour for interruption, resumption, cancellation, etc.  Probably all basic stuff, but I'd never done AI before, so it's all interesting and new.  The OMG moment was when I first got the "clear area" job working, and it was like "OMG HE'S ALIVE AND DOING STUFF I TOLD HIM TO." XD  It was, however a HUGE pain in the ass to save/load...
You're now an Official deithy... You've created life!!  :)

I'd like to see it in action sometime... Maybe see how you approached the AI bit?
Logged
“Eight years was awesome and I was famous and I was powerful" - George W. Bush.

CapnMikey

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #475 on: July 26, 2009, 11:38:41 pm »

Singularity - Of course!  I'm glad I'm not the only one spending my break from programming...programming.  I love Windows Forms!  You can get a fully functioning window in a hundred lines of code, whereas Win32 took a hundred lines just to show a blank window.  But yes, totally super ugly.  I think you can pretty them up with user-drawn controls, but it's a bit of work.  I also love C# even though I've been using C++ forever, it's become my choice for personal projects by a landslide.

Alexhans - Then I am a cruel deity :(  I implemented hungry and starvation before adding food, lol.  I'm really protective of source code for some reason (always have been), but I'd be happy to answer any specific questions you might have.  (Though I'll be away soon, so answers will be delayed.)

The basic system uses a Job class that is the base for all manager-assigned tasks, and various subclasses (e.g., TileJob, SleepJob, EatJob, BuildJob, no I haven't implemented glass-blowing/item-handing/etc so don't ask XD) for actual specific jobs.  The main aspects of a Job are CanUnitComplete (since they start off unassigned), Assign (which sets up stuff that can only be done after assignment, like pathfinding), and Update which actually does the stuff.

Most of the Updates are really simple, because they're just a list of Goals, which are smaller, simpler classes (no concept of priority, assignment, etc.) that do tasks, e.g. GoToGoal, PickupGoal, DeliverGoal, WaitGoal.  That makes the job Update code really simple.  For example, building a workshop would be a pickup goal (building material), a goto goal (site), and a wait goal (build time) completed in sequence, then just plops the workshop down and the job completes.
Logged

Singularity

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #476 on: July 27, 2009, 12:30:36 am »

Well, admittedly I thought XNA was pretty cool... but we didn't do much of that this year. >_>  As for C# vs. C++, it's not that C# is a BAD language, I just want to learn C++ because it seems it's what all the professional game developers use.  It seems like a very good skill to learn.  Who knows, though.  Perhaps XNA will be the new standard by the time I graduate in 2012... we'll see.
Logged

CapnMikey

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #477 on: July 27, 2009, 02:01:11 am »

Whoops!  I read your statement backwards, I thought you said "thankfully we're transitioning from C++ to C#" and couldn't help but gush about C#.

You are right, of course.  Outside of a few games on XBox Live, I don't know of a commercial game that uses C#.  And while it may gain acceptance on XBox, Nintendo and PlayStation won't be picking it up any time soon...  I can see C# becoming popular for in-house tool development, but not production code.
Logged

Jreengus

  • Bay Watcher
  • Si Hoc Legere Scis Nimium Eruditionis Habes
    • View Profile
Re: The Roguelike Development Megathread
« Reply #478 on: July 27, 2009, 03:20:08 am »

Ok I've only read the first page of this goliath thread so far but I noticed that you don't have Kongregate's Shootorials under flash resources. These are a really simple and easy to use set of tutorials to make a side scrolling shooter in flash. Sure they wont help you make a roguelike but they will help you start out with falsh if you are interested.
The link to the first one from where you can easily find the rest:
http://www.kongregate.com/games/Kongregate/shootorial-0
As a side not if you can't download the files then try downgrading your flash player, I think I had flash 10 and couldn't download them but I downgraded to flash 9 and suddenly they worked.


I've also started reading the make your own game in C++ tutorial since I have an interesting idea for a roguelike and I figure I ought to actually try it even though I'm likely to give up a week into the project. (Yay for laziness!)

EDIT: NOOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!! The tutorial ended :(, I've tried googling a few other C++ tutorials but they all seem to send my mind to sleep instantly. Anyone know of any other similar but complete tutorials?
Spoiler: also. (click to show/hide)
« Last Edit: July 27, 2009, 08:25:28 am by thatguyyaknow »
Logged
Oh yeah baby, you know you like it.  Now stop crying and get in my lungs.
Boil your penis. I'm convinced that's how it happened.
My HoM.

Singularity

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #479 on: July 30, 2009, 10:45:55 pm »

So, haven't made any more progress just yet, but I'm wondering if anybody has advice on class inheritance/containment/what have you?  Currently I have Entity, Game, and Level classes, and I'm trying to figure out how to proceed.  I want to get some semblance of class structure down before things get too complicated.  Right now Game owns both a Level Class and an Entity class (for the player).  No inheritance yet.
Logged
Pages: 1 ... 30 31 [32] 33 34 ... 72