PDA

View Full Version : programming/coding



Sradac
01-13-2009, 04:12 AM
So all this talk of releasing the adom source inspired an old hobby of mine. A while ago (a long while ago, back when I still had my old IBM 386) there was something on the adom website linking a generic roguelike source and how to make your own roguelike. I have no idea what it was called, but it was written in C. At the time I knew some C I had some books at home to teach yourself C. I had a stupid simple roguelike going, nothing fancy. no races, no classes, very few items, maybe 10 different monsters. it was just something to play around with. there was no goal and no winning, and once the generated monsters were killed off there was no respawn code in. the only real problem I had with what was in place was door generation, couldnt get it to behave right for me. But now I wana mess around and have fun again!!! Im really not going for a rogue to dev and release to the general public It wont be anything spectacular i dont have time for that. But it would still be fun. SO i wana start it up again. questions!!!!


Which programming language out there would be good for me to do this with? Ive forgotten pretty much everything about C except the ever present printf/
...The scripts Im aware of roguelikes using currently are LUA, Java (cryptRL and JADE!!!!!), C, and C++

which is the easiest to dive in and learn? or is there another I missed?

Are the resources on the net to learn it or do I gotta go buy a book? I've tried looking at the javadocs for JADE and while I can follow what they're talking about its way toooo much for me to grasp. I've looked at the source in ToME (lua) and it was a bit easier to follow, probably the reason so many mods are out there for *bands and tome.

Grey
01-13-2009, 04:25 PM
The thing you were looking at before is QuickHack (http://www.adom.de/misc/qhack.php3), made by Thomas Biskup to try and help aspiring developers. To my knowledge no one's ever gotten very far with it. If you're interested in making a game I'd suggest learning programming yourself in your language of choice (C isn't perfect) and starting from scratch, or picking up one of the *bands and playing around. Angband is specifically designed to be easy to play around with, mostly thanks to its extremely well-commented and structured source. If you want to learn to code from scratch then FreeBasic and FreePascal are very easy to pick up and are fully functional OO languages. Python or Ruby may be nicer for you though, and Java is also very good with a lot of supportive libraries. You may want to just play around a little with each and see which you like best.

There is a whole roguelike development community with a lot of great resources available. Check out RogueBasin (http://roguebasin.roguelikedevelopment.org/index.php?title=Main_Page), a roguelike development wiki, with some good starting guides. In particular check "How to make a roguelike in 15 steps (http://roguebasin.roguelikedevelopment.org/index.php?title=How_to_Write_a_Roguelike_in_15_Ste ps)", the Developer's FAQ (http://roguebasin.roguelikedevelopment.org/index.php?title=Roguelike_Dev_FAQ) and the Developers' Articles (http://roguebasin.roguelikedevelopment.org/index.php?title=Articles). There is also regular discussion at the newsgroup rec.games.roguelike.development (http://groups.google.com/group/rec.games.roguelike.development/topics), normally fairly advanced stuff.

The most important point in trying to make your own roguelike is to start small. Make a simple program with an '@' sign walking around a screen. Then add a few walls as obstacles, and then go about adding the more tricky line of sight and dungeon generations algorithms. When you feel ready start on monsters and items, making everything extremely basic to start with. Don't give yourself grandiose dreams of something on the scale of ADOM - concentrate on making a little game that works first.

IronJelly
01-13-2009, 07:06 PM
if you were new to programming, I would have suggested visual basic to learn on.

That said, a lot of games use C, or C++. I would recommend Java if you know it, but to be honest, any language you know pretty well should suit your needs.

That said, I'm totally gonna write a roguelike called BrowseRogue in PHP someday just to say I did! :p

Sradac
01-13-2009, 07:26 PM
awesome grey, you rock. Yeah from what I remember C was kind of a monster to work with and hard to follow for me half the time.

Epythic
01-13-2009, 09:05 PM
if you were new to programming, I would have suggested visual basic to learn on.

That said, a lot of games use C, or C++. I would recommend Java if you know it, but to be honest, any language you know pretty well should suit your needs.

That said, I'm totally gonna write a roguelike called BrowseRogue in PHP someday just to say I did! :p

Sorry, this is just bullshit. Visual Basic is a bad, bad, bad language. Period. It's true. If you want details, try google.
And yes, I have spent quite some time with it. It does not even fall under the category 'usable'.

C++ is a mighty but complicated and easy-to-shoot-yourself-in-the-foot language. If you really want it, just make sure you've learned C before. It's never been a language I knew inside-out, but YMMV.

Java is... well, I like it more than C/C++, but it takes *lots* of time to write even the simplest piece of code in it. Stay away from it if you can.

PHP is fine for some throw-away website stuff, in my opinion, but I do not like how URLs map to files. I also don't like webinterfaces, but that's another issue.

My language of choice is Python, for being extremely flexible, making you write clean code and - above all - getting you results quickly. It's also very easy to learn. At least give it a try. If you have questions or concerns about python, just ask. (PM me if you want).

There is, by the way, at least one python-based RL (http://sourceforge.net/projects/pyrogue), although it's dead.

I have looked at QHack earlier, I don't like it. I find it ugly, but that might also be because of C.

Sradac, would you *please* limit yourself to one exclamation mark ("!!!" -> "!")? Thanks!

Bengali
01-13-2009, 09:44 PM
I've been arguing with myself about dabbling in roguelike design as well, the main problem is I'm wanting to go with an odd genre for mine. I'm thinking of trying to do a superheroic roguelike, with the initial version being based on the Silver Age and then if that goes over well, doing the other comic book eras.

Do you think there'd be enough response to make it worth taking the time to program?

Sradac
01-13-2009, 11:59 PM
there WAS a superhero module for ToME out a while ago, but it got changed into something very different. character progress is the same, but its based on collecting genetic material from enemies instead of money, and using those gene/mutation points purchase evolutions for yourself. whether its extra appendages, fire breath, claws, teeth, mental powers, whatever. its pretty well developed and can be alot of fun. but im just not much of a *band fan too much dungeon diving and grinding for me.

Bengali
01-14-2009, 03:16 AM
That sounds like it may be fun for getting an inspiration for mine if I make it, I searched with google but didn't seem to find anything similiar. Could you give me the URL?

psy_wombats
01-14-2009, 04:22 AM
Eh, everyone seems to be bashing Java a little bit. Might not be the best language for beginners, but you can create come incredible architectures with it. Best object-oriented out there, in my opinion. My advice would be to learn C and then move to Java due to the similar syntax.

And I've always found Java's high level functions fast to use rather than time-consuming... Make sure you use Eclipse, though!

Epythic
01-14-2009, 01:27 PM
Eh, everyone seems to be bashing Java a little bit. Might not be the best language for beginners, but you can create come incredible architectures with it. Best object-oriented out there, in my opinion. My advice would be to learn C and then move to Java due to the similar syntax.

And I've always found Java's high level functions fast to use rather than time-consuming... Make sure you use Eclipse, though!

Incredible architectures? Ehm, sorry, I disagree.


Anything you can do in Java should be possible in nearly any other object-oriented programming language.
Java is OOP-only. Sometimes, mixing in some functional programming is very useful and makes your architecture cleaner.
Needs lots of scaffolding. Also, there is no concept of 'modules' (well, there are packages, but that's not the same), each class goes into it's own file, which might sometimes get very ugly.


When I started using Java, I liked Eclipse pretty much. Someday I switched to vim, and never looked back. Eclipse is just too slow, even on a high-end machine. I know vim is a weird editor, but I love it.

What I also do not like about java:


Need to compile.
Unit testing is SO complicated that you will almost certainly not bother with it. Bad idea. Python's "py.test" makes it easy (you better forget about python's standard unit testing framework, it's a clone of java's).
Statically typed.
Overloading instead of default parameters. This will almost certainly make you write *lots* of boilerplate code, just to work around the fact that Java simply does not have default parameters.
Difference between objects and primitive types.
No interactive interpreter.
Methods can't return multiple values, there are no tuples.
getFoo and setFoo.
Checked exceptions.
String comparison (not only strings. Comparison defaults to identity comparison, not value comparison. In python, it's the other way around, which is good).


This is just from the top of my head, given more time, I am nearly sure I could make the list longer.

Eww, so again, I could not resist to comment on this; the old, old programming language war...

Grey
01-14-2009, 03:50 PM
Everyone has their own opinions on coding - like I said before it's best to try things out and see what works best. One other handy resource is this amazing library designed for writing roguelikes in C/C++/Python:

http://jice.nospam.googlepages.com/thedoryenlibrary

Just a little look at it will show just what amazing things can be achieved with some hard work and well-placed imagination.

Sradac
01-14-2009, 04:51 PM
That sounds like it may be fun for getting an inspiration for mine if I make it, I searched with google but didn't seem to find anything similiar. Could you give me the URL?


http://www.t-o-m-e.net

download the latest 3.0.0 verson, run sdl or non if you want. when you load up the game it gives you the option to download different modules. it'll connect to the tome database and give you a bunch of different modules to choose from.

Sradac
01-14-2009, 04:56 PM
i stumbled across that yesterday actually grey, went to google and searched for roguelikes written in python. so I could get an idea of whats possible and what osme of the source looks like. good resource.

Sradac
01-14-2009, 05:19 PM
Is it possible for characters to take up more than one space on the map??? I want a 4x4 D for a red dragon!!!!! I actually have a good reason for thinking this. i find it silly in roguelikes, one space on the map is usually a 5ftx5ft square, in most of them ive seen at least. how the heck can a RAT block an entire 5ftx5ft area?? A dang rat can sit in a hallway and block an orc from walking over it, and a HUGE dragon can fit down a narrow corridor as well. If its possible to change how much room a character takes up i'd probably end up making all hallways 2 wide or maybe 3 wide and change the 5x5 representation of an area to 2x2. 2x2 makes more sense to me.

Grey
01-14-2009, 06:02 PM
It's possible, but I wouldn't advise it. You really should think of making something basic first. Dragons will not feature in your first roguelike :P On top of that it's likely not in any other roguelike because gameplay is more important than realism. Too many developers get caught in the trap of trying to make realistic roguelikes and end up releasing nothing, being too caught up in their complex light algorithms or fractal map generators, or whatever other pet obsession they have which doesn't affect gameplay in any way. To start off with you're best trying to think of a *fun* game idea with around the same complexity as the original Rogue.

Epythic
01-14-2009, 06:19 PM
Is it possible for characters to take up more than one space on the map??? I want a 4x4 D for a red dragon!!!!! I actually have a good reason for thinking this. i find it silly in roguelikes, one space on the map is usually a 5ftx5ft square, in most of them ive seen at least. how the heck can a RAT block an entire 5ftx5ft area?? A dang rat can sit in a hallway and block an orc from walking over it, and a HUGE dragon can fit down a narrow corridor as well. If its possible to change how much room a character takes up i'd probably end up making all hallways 2 wide or maybe 3 wide and change the 5x5 representation of an area to 2x2. 2x2 makes more sense to me.

Sradac, I was thinking about this earlier, and I too wish that was possible. Well, in theory it is.

There is no way to display something that large on a terminal. Well, unless you somehow manage to build a bigger letter from several smaller letters...




D
┎╮
┖╯
┎─╮
┃ │
┖─╯


Unicode might do it, see above demonstration. This page (http://unicode.org/charts/symbols.html) might be helpful (I used the Block Elements (http://unicode.org/charts/PDF/U2580.pdf) table).

Of course your engine would have to support that too, which might be very complicated to make. Afaik, the assumption that each being fits into exactly one square is one of the core assumptions of most roguelike engines.

- how do you store the map, and the beings? how do you represent coordinates?
- AI ?
- Large doors and stuff?
- ...

You see, it's not that easy... although I bet it would be very cool. Just imagine your are a big (5x5) dragon and surrounded by... ew, 5x4+4=24 rats (1x1). And they all attack you.


EDIT:

@ Grey: *agree*

EDIT 2:

Errm, the display stuff was not really a problem, you just made me think about it and experiment a bit, and in the end I decided to post it. The hard part is of course the engine.

Grey
01-14-2009, 07:02 PM
I imagine the challenges could be overcome without too much hassle - after all plenty of comercial tiled games have multi-tile artefacts. I'd personally say give each creature a starting square (say the top-right one) and an area of effect, using tiles to represent them properly (trying to ASCII Art them would be painful). For each monster or player action calculate the interaction between each's area of effect. As for movement, well you're not going to find dragons in small dungeons are you? Only populate an area with monsters of a suitable size for that area. Use basic hacks for movement (if <fits> then move else <pathfind new direction>). I just don't see it being worth the effort gameplay-wise.

Epythic
01-14-2009, 10:56 PM
I just don't see it being worth the effort gameplay-wise.

I do, because it makes swarms of smaller creatures stronger and weakens larger creatures.

Having a big (2x2, 3x3) PC would be interesting too, although it might be a little bit frustrating not to be able to go everywhere. Ew, forget that idea.

In the end, what matters is that you get *something* done.

Grey
01-17-2009, 02:47 PM
Hmm, I figure this might be an appropriate place to put this... I've just finished the first release of my own roguelike, "Gruesome":

http://www.gruesomegames.com/gruesome0.0.1.zip

It's very basic at present. You play as a grue, lurking in shadows. Light kills you instantly, so you have to avoid the adventurers (or try and get them to walk into your slavering fangs, but that's very difficult) and ascend to the surface. Screenshots here (http://www.gruesomegames.com/gruesome2.png) and here (http://www.gruesomegames.com/gruesome3.png). Eventually I hope to make it much deeper, but that'll likely be a long time coming.

This was programmed in Free Pascal, but now I've handled the basics I think I'll move on to learning Python.

Epythic
01-17-2009, 07:19 PM
Hmm, I figure this might be an appropriate place to put this... I've just finished the first release of my own roguelike, "Gruesome":

http://www.gruesomegames.com/gruesome0.0.1.zip

It's very basic at present. You play as a grue, lurking in shadows. Light kills you instantly, so you have to avoid the adventurers (or try and get them to walk into your slavering fangs, but that's very difficult) and ascend to the surface. Screenshots here (http://www.gruesomegames.com/gruesome2.png) and here (http://www.gruesomegames.com/gruesome3.png). Eventually I hope to make it much deeper, but that'll likely be a long time coming.

This was programmed in Free Pascal, but now I've handled the basics I think I'll move on to learning Python.

Well done, Grey.


I really like the idea.
Interesting gameplay, I always wanted to be a grue ;) Got to level 15, then *AAARGHDAMNEDLIGHT*. DYWYPI?
Tested, and did not run under linux/wine. I recompiled it, native linux binary is attached (thanks for including the source code!). [removed the windows binary due to forum's size constraints, but kept the source because of GPL]
Your ZIP-file is a 'tar'bomb. Bad, bad, bad. Please put all of its files in a single directory named like the ZIP-file, but without the .zip extension. At least that's the convention.
Nice to hear that you like python. So do I :)


Keep up the good work!

Edit: Bugreport: Please clear the screen at program start and reset everything when your program ends.

Grey
01-17-2009, 11:21 PM
I've had varying reports of it working under Wine/Linux, and generally if it does run it's a little buggy (such as the screen refreshes you mention - the crt graphics library for Free Pascal isn't fully functional under Linux). I've not actually used Python, but have heard many good things about it, and the FPC IDE is too annoying to work with so it seems sensible to switch now that I've handled the basics. Thanks for the feedback!

Grey
01-18-2009, 03:48 AM
Second release already, to fix a couple of bugs likethe screen thing and add a darkness spell you can use to blind enemies. Should be a little easier now:

http://www.gruesomegames.com/gruesome0.0.2.zip

Ars
01-18-2009, 09:21 AM
Tested, and did not run under linux/wine. I recompiled it, native linux binary is attached (thanks for including the source code!). [removed the windows binary due to forum's size constraints, but kept the source because of GPL]

I got it working through wine. It opened when using the "wine start xxxxx" command, though just "wine xxxxx" didn't work. And didn't notice any bugs with it, not even with the screen drawing.

Epythic
01-18-2009, 10:04 AM
@0.0.2

Grey, looks like you implemented scrolling, and somehow this is buggy.
EDIT: didn't really test, but problems always occured in the right half of the screen and after I eat an adventurer. Might be coincidence though.

Works with wine start, but opens a new window, and it is very slow. The native linux version, on the other hand, runs very fast, so no problem.

Btw, your game is very addictive :)

Btw: the first released version is usually "0.1.0", so your "0.0.2" should really be "0.1.1" ;)
[of course that's just how *some* people do it, there is no rule]

Grey
01-18-2009, 08:27 PM
Scrolling? Nope, didn't really change a great deal in that release - mostly just added the shadow spell. Certainly no problems in Windows. You sure you have your console set to 80x25?

Nice to know it's addictive - it's meant to be a fairly simple, hard, and quick roguelike, in the same vein as other "cofeebreak" roguelikes. Though future releases will have more depth the simple gameplay mechanic of avoiding light will remain the same. You managed to get very far in it yet? Best I've heard anyone achieve is D9.

Soirana
01-18-2009, 09:32 PM
Certainly no problems in Windows.
Try running in full window. Well, i switched back immediately and i am not a fan of running things windowed.


Best I've heard anyone achieve is D9.
D5. Honestly don't see a chance to push on even with level regenerations via stair hopping.[although i played only few hours so i might have missed something, a... like patience]
If I understand correct number of walls per level heavily increases as you climb higher?

Epythic
01-18-2009, 10:21 PM
Scrolling? Nope, didn't really change a great deal in that release - mostly just added the shadow spell. Certainly no problems in Windows. You sure you have your console set to 80x25?

Nice to know it's addictive - it's meant to be a fairly simple, hard, and quick roguelike, in the same vein as other "cofeebreak" roguelikes. Though future releases will have more depth the simple gameplay mechanic of avoiding light will remain the same. You managed to get very far in it yet? Best I've heard anyone achieve is D9.

Yep, seems to work with 80x25.

I managed to get somewhere around D12. Guess I'll have to try harder. And as someone put it:


Of course its unfair - thats the whole point.

Means, do not make it easier. Someday, somebody will win anyhow, it's just a matter of time.

Btw, it's cool that your shadow powers scale with the dungeon level, balancing the increasing number of adventurers.

[and now off to bed]

EDIT: Grey: Please consider announcing Gruesome on RogueBasin (http://roguebasin.roguelikedevelopment.org/index.php?title=Main_Page).

Grey
01-19-2009, 12:29 AM
If I understand correct number of walls per level heavily increases as you climb higher?

The cave generator I programmed produces much tighter caves as you ascend, obviously to make the game far more difficult. Number of enemies increases a bit too. Yeah, a lot of patience is needed to win... Since it's a very short game it's meant to be very hard, so the player is encouraged to play lots of quick games at once.



Btw, it's cool that your shadow powers scale with the dungeon level, balancing the increasing number of adventurers.

They scale with your kills actually, so if you really wanted you could scum adventurers for a higher spell radius.

I've added a RogueBasin article (http://roguebasin.roguelikedevelopment.org/index.php?title=Gruesome), but can't figure out how to add the game to the news column... (EDIT: Found out how.)

Soirana
01-19-2009, 10:20 PM
with secret ingredient, aka patience, i pushed to d2 and already saw a stairs up. So unless something dramatic is on D1 i think it is beatable.
I think i had enough of being a grue for a while. [best effort - Smary SP 7/7 Meals 61 Turns 7757 d2].

one suggestion is it possible to make adventurers color related to light radius? Otherwise on high levels it is next to impossible to guess safe distances precisely.

Flees back to darkness, nursing grievous wounds.

Grey
01-19-2009, 10:36 PM
Wow, well done in getting that far! D1 should be about the same as D2, so no big surprises. Can't believe it took you 8k turns to get so far though... May have to modify the speed achievements if the game's really this tough.

I'll consider the colour thing for the next release. In general the next version should have several things to make it a little easier.

Grey
01-21-2009, 06:42 PM
Gruesome v0.0.3 now out:

http://www.gruesomegames.com/gruesome0.0.3.zip

And a screenshot of the funky new feature:

http://www.geocities.com/darrenjohngrey/gruesome/gruesome4.png

Shadowwalking lets you freeze time as long as you have LP, which are gained from lurking. You start off with a very small maximum though. Still, can get you out of very tense situations when you need it to. To top things off walls can now be lit, adventurers are split into difficulty categories by their colour, and more difficult enemies only appear in the higher caverns. Max sight range for enemies has been reduced, but so has the player's. Also added an ability to scan for enemies with 'a' (uses 1 SP). The ShadowBall spell from before uses 2 SP now and is activated by 'z'.

This game should be much more achievable now. Very challenging still, especially if you want to get some of the better achievements, but the new abilities help make mistakes less likely and more easily corrected.

Epythic
01-21-2009, 08:11 PM
Gruesome v0.0.3 now out:

http://www.gruesomegames.com/gruesome0.0.3.zip

And a screenshot of the funky new feature:

http://www.geocities.com/darrenjohngrey/gruesome/gruesome4.png

Shadowwalking lets you freeze time as long as you have LP, which are gained from lurking. You start off with a very small maximum though. Still, can get you out of very tense situations when you need it to. To top things off walls can now be lit, adventurers are split into difficulty categories by their colour, and more difficult enemies only appear in the higher caverns. Max sight range for enemies has been reduced, but so has the player's. Also added an ability to scan for enemies with 'a' (uses 1 SP). The ShadowBall spell from before uses 2 SP now and is activated by 'z'.

This game should be much more achievable now. Very challenging still, especially if you want to get some of the better achievements, but the new abilities help make mistakes less likely and more easily corrected.

Well done.

Got to D14 this time, although I didn't try very hard.

Feature request: chardumps.
Feature request: show shadow ball range somewhere.

Grey
01-21-2009, 08:22 PM
Char dumps I do hope to have in future, or better yet a hiscore list. I also need to add in a character stats page reporting numerous things (inc ball range I guess). Another priority is some sort of config file.

Any feedback on the lurk/shadowwalk system would be very welcome, as I'm worried it might end up too overpowered.

Ars
01-21-2009, 08:43 PM
I'd suggest an ability to move through walls.

Grey
01-21-2009, 08:53 PM
Not gonna happen :P

Epythic
01-21-2009, 09:55 PM
Btw, Grey, would you mind if I write a Gruesome-clone in Python?

(Technically by GPL'ing Gruesome you have already answered that question, but I think it's more polite if I ask first.)

Grey
01-22-2009, 04:55 AM
Yup, free to use as you please (well, you must release it as GPL yourself as I understand things). Any particular reason why you want to rewrite the whole game?

Epythic
01-22-2009, 11:56 AM
Yup, free to use as you please
Thanks.

I am not a lawyer, of course, and Gruesome is your idea and work, so in the end I would probably be nice and go with GPLv3. So let's look at this from a theoretical point of view:


(well, you must release it as GPL yourself as I understand things).
As long as I don't actually use any of your source code, no. It's questionable whether you actually own the idea (that's what patents are for, btw). And I am not sure if I really want to release it under the GPL; I prefer permissive licenses such as the revised BSD license. Which would probably be - would I be bound by it - a violation of the GPL.


Any particular reason why you want to rewrite the whole game?
Actually, there are two of them:
1. I hate the whole Pascal family. It's ugly, even worse than VB6. At least that's my opinion.
2. I like your idea, and I want to use it to help me with the design of my own roguelike. Having something that works can be very helpful, and my roguelike is not yet at the point where I can actually do nifty stuff. I am stuck somewhere at the core design decisions.

Silfir
01-22-2009, 12:18 PM
This game is awesome.

Of course, I don't have time, and I played for about two minutes and died to the second adventurer after eating the first, but this game is still awesome.

Soirana
01-22-2009, 02:12 PM
Nice game.

Although i think shadowwalking is pretty much broken. Although i nearly won previous version.

Here it goes:
Bloony LP 9/9 SP 11/13 Meals 81 Turns 3635 [657 in shadows] Exited
Butcher/Speeder/Backtracker - won't say that these means:)

Few things:
I did not figured when you get two/three SP for kill.
Where the hell adventurer stumbles into fangs message is gone?
Shadowalking with SP>4 is totally broken. Especially when i figured to unshadow. Should be nerfed IMO.

Overall now game is relatively easy. I cleared pretty much all adventurers above D5. Time to improve opponents or add bosses or something.

And did n't they told you at roguelike.development how important is to have a log? That is the only way nerds liking your game can figure who is most nerdiest:D:D:D

gut
01-22-2009, 04:07 PM
I'm completely frustrated at not being able to play this thing : )
If I'm not careful, I'm going to talk myself into getting a new
computer for the first time in ~10 years, just to give it a try.

Grey
01-22-2009, 05:18 PM
Thanks for the feedback, Soirana. The fact is it has been a little unfairly hard to date. The ease of ShadowWalk will be countered by much more difficult enemies in future. Should maybe reduce the max LP chain though... Of course there's always the option to try and get the no ShadowWalk achievement (or no spells achievement, or ninja achievement, or several others designed to add challenge - should maybe actually document them for the player at some point)

3 SP kills happen only for certain colours (only the difficult ones - high light range generally). You get much more in terms of both SP and effective kill count (how it affects SP and LP Max anyway) by getting lurk kills, which only happen if the enemy is lit when it stumbles into your fangs.

What do you mean about a log? Like an online blog site thingummy? Should maybe get me one of them, yeah...

Sorry you can't play it gut. Does it not run at all on your old machine?

Soirana
01-22-2009, 05:47 PM
I meant nice file you get after your char wins.

Saves from copyying stats from screen you know?

gut
01-22-2009, 06:16 PM
> not run at all on your old machine

When I tried running it in windowed mode, it took way too long.
I had some success with running it from a dos prompt though, but
it's still a bit too slow to give it a real try. Looks really
cool though, and I look forward to seeing how it developes : )

Grey
01-23-2009, 03:09 AM
I meant nice file you get after your char wins.

Saves from copyying stats from screen you know?

Oh, yeah, that whole thing... Really need to figure out how to operate files properly at some point. Then I can do log files, a high score and a configuration file. Maybe next release...

Soirana
01-23-2009, 09:41 AM
Got a Fearless exit in 2620 turns. I think i will stop until next version.

Covenant
01-23-2009, 10:00 AM
Oh, yeah, that whole thing... Really need to figure out how to operate files properly at some point. Then I can do log files, a high score and a configuration file. Maybe next release...

A very fun quick Roguelike, Grey. A bit easy though, or at least, I thought so. I finished on my tenth attempt or so.

I'd suggest lowering the amount of 'LP' you gain to something like, you start with 1, then maybe by the end you have 4. The game I just won, I had the following stats:

LP somewhere around 13
SP around 18.
121 adventures dead
3563 turns taken (532 spent lurking in shadows)
(Achievements: Gruesome, Speedy, Fearless).

The time-stop plus the increased radius of the ball spell mean that the adventurers are pretty much defenseless.

Grey
01-23-2009, 01:20 PM
Points well-noted - obviously ShadowWalk needs nerfing and probably the Shadow Ball radius too. Next version will maybe be in a few days, and should correct these and add some more features. Perhaps I'll even throw in some semblance of AI.

The full game, when it's complete, will probably be of similar difficulty for this sort of enemy, but the main game will be facing down unique bosses with much more interesting abilities (and their own special levels). Adventurers will also at some point get the ability to relight torches, and mages will be able to cast light spells.

zzo38
01-23-2009, 08:42 PM
I say use Javascript. Javascript is a good scripting programming language. You can make it based on XUL-runner. I am making a rogue-like system right now based on Javascript and CSS and XUL.

WERDNA
01-24-2009, 01:47 AM
Do you think I could make a rouge-like in BlitzBasic?

Because I'm really good with doing 2D stuff in BlitzBasic, and doing my own rouge-like game would be
awesome ^_^

Or are there any problems with doing it in Basic?
Like compatibility issues?

I don't think there are, but I want to know how you guys think a rouge-like written in Basic would work out.

Thanks,

WERDNA

Grey
01-24-2009, 10:12 AM
Apprently this roguelike is written in BlitzBasic:

http://laby.toybox.de/index.php?sprache=1

I haven't tried it myself, but have a look to see what can be done. If the source code is available then it's a good resource to work from.

BlitzBasic should be fine for Windows games, but it may have compatibility issues on Linux or Mac. Otherwise it does have some advantages in being easy to set up graphical and mouse interfaces.

Epythic
01-24-2009, 12:39 PM
WERDNA:

You can make nearly anything with nearly every programming language. What's more important is how long it takes you to actually do it.

I strongly recommend you not to use BlitzBasic.

1. Last time I checked it was not even gratis, let alone free. Bad thing, creates vendor lock-in.
2. Learn a real programming language, not some downgraded thing made for beginners only. I'd say BlitzBasic is wasted time.

Again, I recommend Python (http://www.python.org/), because it is very easy to learn. If you mastered the basics of programming in general, Python should be easy to pick up. Which leads me to another point:

3. BlitzBasic is not very popular. Python is. Which is a great advantage, because whenever there is some problem, chances are somebody else has already done it.

Another advice is to stay away from the BASIC and Pascal families.

But then, that's just my opinion. Others might disagree with it. Feel free to use whatever you want.

Blah, maybe I/someone should put together a python/something-based equivalent of qhack.

Grey
01-24-2009, 01:25 PM
WERDNA:
Another advice is to stay away from the BASIC and Pascal families.


I would disagree somewhat - both Free Basic and Free Pascal are fully functional freely-licensed languages, with the important distinction that they're easy to learn for people with no programming experience. Python is nowhere near as intuitive to pick up from scratch, however much existing programmers love it. Of course it is perfectly possible to learn quickly and effectively, but some may have more luck with FB or FP. DoomRL, GearHead and LamdbaRogue are all testament to the sort of great games that can be made in Free Pascal. There are no notable roguelikes made in Python, in spite of the many existing projects.

Of course one huge advantage to Python (and C++) is being able to use the amazing Doryen library/libtcod. And them being better languages in general.

Basic is possibly the worst choice, in spite of how easy it is to pick up. Too many roguelike-players use Linux, and many Basic games aren't easily ported. There's also less roguelike-specific support available for it.

WERDNA
01-27-2009, 03:03 AM
Ok, thats all I wanted to know.

I'll probably start learning C++ or python, and maybe put something together with those.

Because I do agree with you that Basic is a beginners language, although it certainly allows you to put
games quite quickly, but C++ is definetaly more versatile.

Thanks for your replys,

And if you like, check out my current Basic project, Dragon Spirit, At
http://hosted.filefront.com/werdnaworld

WERDNA ^_^

Grey
01-29-2009, 03:57 PM
gut, it's been suggested to me that there are specific speed problems with my own compilation. You may wish to try getting FPC and compiling the source yourself - it might actually be playable then.

Grey
01-30-2009, 03:11 PM
Zeno from the forums has been kind enough to provide me with a compilation on his machine that runs faster, and has included a couple of little bugfixes too. Get it here (http://www.gruesomegames.com/gruesome0.0.3.zip) if you're interested.

gut
01-30-2009, 09:36 PM
Thanks, it may be faster, but the machine is the problem : )

mike3
02-03-2009, 10:20 PM
Thanks, it may be faster, but the machine is the problem : )

What sort of machine would you be programming for that would be that slow?

gut
02-04-2009, 03:35 AM
It's ~10 years old. Mostly, all I use a computer for is playing
and chatting about ADOM and Crawl, as most other games
rather irritate me. I also sometimes listen to books, but all
of these tasks are performed nicely on this ancient thing. On
principal, I refuse to upgrade until there is something I want
to use a computer for, but can't. Gruesome probably will be
the reason I upgrade, as JADE will probably take a while yet.
I'll wait for a few more versions to come along though, I'm
not one to rush : )

vogonpoet
02-04-2009, 07:21 AM
Thats totally awesome - having to upgrade ones computer to play the latest ASCII based roguelike.

Whats sad is how brainwashed everyone else other than gut (including myself) has become about upgrading their computers.... I guess 95 % of general computer use today could be done 15 years ago on WfW 3.11 machines... maybe even more than that... 15 years of OS and hardware development, what have we gained?

Huge piles of scrap silicon, in chip and CRT formats, much of it contaminated with crappy plastic. W00t.


/I can haz suztainable?

Evil Knievel
03-15-2009, 01:39 PM
I am searching the web up and down now, however I fail. I want to start writing a little game in fortran(95 probably), but I don't find a way getting a program react to keyboard commands directly (that is, without waiting for the user complete his input with a 'return', and also without displaying what the user does - after all, I want the Ascii-Game on the screen.)

I know, fortran is not the language of choice for writing games. But I chose it because I'd like to get fluid in fortran and object oriented programming, and that is done best by writing a little game. And since I like ascii games...

Maybe, you don't know the solution, but perhaps you know some keywords I should search for...

How does this work in the mechanics of the PC? I mean, there must be a way to detect, that the user pressed a key. Then there must be a way to find out what key that was...

As a further thing: How does one print colored characters?

Epythic
03-15-2009, 08:00 PM
in fortran(95 probably)
Poor guy :)
As always, I hereby recommend Python (http://python.org/).


but I don't find a way getting a program react to keyboard commands directly (that is, without waiting for the user complete his input with a 'return', and also without displaying what the user does - after all, I want the Ascii-Game on the screen.
Learn what "curses" is, then look if theres an equivalent in Fortran. If there is none (although I doubt thats the case) you would want to do some clever things with the in/output streams (most stuff is controlled via control sequences that control your terminal emulator, for example you can disable the "echo" (== "display the keys the user presses") with them.


How does this work in the mechanics of the PC? I mean, there must be a way to detect, that the user pressed a key. Then there must be a way to find out what key that was...
In single-player roguelikes, usually you just say "key = getkey()", where getkey blocks until a key was pressed. key then contains the number/name/whatever of the key pressed. Based on the value of key, you then do a turn (or whatever).
Repeat until program ends.


As a further thing: How does one print colored characters?
There are control sequences that do that. Just print them, they are not actually displayed but.. well, control your terminal emulator. See above.

Evil Knievel
03-18-2009, 10:32 PM
Epythic ,
For shortage of time, I can only express a short "thanks" for your info! Curses is a very interesting thing, but I discovered I'd had to interface with the C library, since there is no such thing in fortran. Seems like, at least. If I ever come up with results, I will let you know.

Grey
03-19-2009, 02:37 AM
I can understand wanting to learn OOP, but why Fortran in particular? Won't more modern languages be of greater use to you?

Evil Knievel
03-20-2009, 12:30 AM
I don't know, there are a lot of clever people having different argument for and against etc... what do you mean by 'more modern'?

I do numerics and number crunching, and Fortran seems to be the most common language for that. Some say, it was the best language for that. Also, I work with and modify existing Fortran spaghetti.

I used to program in C, so I have the distant vision of writing my programs in C++ with the old Fortran routines embedded as methods. I learned now, that Fortran2003 supports OOP fully.

sgeos
03-20-2009, 12:36 AM
People still use Fortran?!

Grey
03-20-2009, 01:53 AM
I don't know, there are a lot of clever people having different argument for and against etc... what do you mean by 'more modern'?

More supported and more used in modern times. I am of course aware that Fortran is used for certain specialist things, but C++ is in general an order of magnitude more common. It has better library support, is better documented, and more compilers on different platforms. I'm not quite sure of any reason to specifically choose Fortran over C++, which is why I'm asking :)

If you're seriously interested in making a game Fortran doesn't seem like a great idea - there simply isn't the same support for it, in terms of example code and useful libraries. I also don't think it'll teach you a great deal about the language, since you'll be using it in a fairly odd way. The best it would do is get you familiar with the general syntax, and other methods might suit you better for that. If you're doing it for fun I quite understand though!

sgeos
03-20-2009, 09:06 AM
You really want to be using at least two languages when make a game- a programming language for the engine and a scripting engine that drives the engine. C++/lua is probably a good default combo. Using something like XML files for in game data is also probably a good idea. (For example, you can easily implement language packs using XML.)

Grey
03-20-2009, 10:38 AM
And yet almost no roguelikes use that :P

sgeos
03-20-2009, 01:25 PM
Which is why the source for most roguelikes really scares me.

Epythic
03-20-2009, 07:29 PM
sgeos, why would you want to do that (use C++/Lua) ? I mean, seriously, a roguelike? What does C++ offer that Lua doesnt already have (other than a pistol and auto-aim towards your feet)?

Also, do you know that saying:

You have a problem.
You decide to use XML.
Now you have two problems.

Need I say more?

Anyway, if you want to make an engine, you'll probably (that is, with a higher chance than the already-high-chance of failing to make a game), fail. But feel free to go for that combination*.
If you want to maximize your chances of success, make a game instead, do not overengineer (<- two languages to separate game and engine), and just get it done**.

* = well, if you really want to.
** = means, use python, or something else, but not C++ ;)

Evil Knievel
03-21-2009, 12:38 AM
I don#t know... Other than Fortran, my only choice would be C++. It can have advantages and disadvantages. I think, in the end, I need to master both for different tasks.

One thing for Fortran: it's damn fast (probably about the same order of magnitude as native C) and it has relatively nice math support, whereas C++ does not really hold these things ready so easily. Most scientific codes I come in contact with are Fortran codes. Most of them will never be rewritten in other languages. C++ on the other hand has this extremely nice OOP, which Fortran obviously does only emulate more ore less, probably less. Then again, in C you have to mess around with these assembler-like pointers. You know, I hate C pointers... really, I really do...

More I cannot say. However, I must start with fortran since, as I said, my old and rotting pot of spagetti has taken its way from fortran77 (you can still find some go to statements in there...) to f90 to f95... so that's my fate for the beginning.

Regarding the game: I will think of something. Even if I have to use a return prompt for each input, I can still write the game. A solution to that can be found later... if the game will ever be worth it.

sgeos
03-21-2009, 02:11 AM
Binding lua to C++ is simple. Extending lua is simple. There are some things you don't want to write in lua. C++ offers extensions to lua. By extending lua you can create a domain specific scripting language. Domain specific languages get things done.

Re: XML, You speak as if you have no understanding of xpath. XML isn't hard to work with and it is easy to convert XML files to and from proprietary binary formats. I don't see the problem. Yes, the code to deal with XML probably wants to be written in something like C++ and the functionality made available via an API call on the lua side.

The two languages are to separate game engine and data. If you treat the effects of potions and whatnot as data, a roguelike is mostly data. Anything you can do to make data easy to add will net you gains in the longrun.

Epythic
03-21-2009, 09:12 PM
Binding lua to C++ is simple. Extending lua is simple. There are some things you don't want to write in lua. C++ offers extensions to lua. By extending lua you can create a domain specific scripting language. Domain specific languages get things done.
True, but C++ doesnt, and unneccessary code just to use multiple languages doesnt exactly help either. At least that's what I think.


Re: XML, You speak as if you have no understanding of xpath. XML isn't hard to work with and it is easy to convert XML files to and from proprietary binary formats. I don't see the problem. Yes, the code to deal with XML probably wants to be written in something like C++ and the functionality made available via an API call on the lua side.
Have you ever typed XML by hand? You have to type sooooo much.. but if you use C++, you are probably already used to that (or vice versa).


The two languages are to separate game engine and data. If you treat the effects of potions and whatnot as data, a roguelike is mostly data. Anything you can do to make data easy to add will net you gains in the longrun.

Yes, but now suppose you want savegames... see? You'd have to auto-generate lua code (you don't really want to do that, do you?). I personally like to use one programming language (python, in my case) and one data language (usually JSON (http://json.org)).

In the end, it's your decision.
(Although if that's not what I use, your decision is wrong ;))

sgeos
03-22-2009, 02:30 AM
The goal is not to use two different languages. The goal is to create a domain specific language to speed up development. Another goal is to sandbox your scripts. Another goal is to implement an environment where you can split work up between multiple members on the team. If you are an army of one, it really doesn't matter how you get things done. Another goal is portability. C and C++ can be used on any vaguely modern platform and Lua can be bound to either language. If you use Lua under the hood, you can therefore port to anything from PC to Mac to GBA to PSP.

Why would you type anything but simple proof of concept XML files by hand? Have you heard of... what were they called again? XML editors?

Autogenerate Lua code? Why? Please explain this one to me.

For saving games use XML, or some binary format or any of the great number of equivalent sensible solutions (JSON included).

> (Although if that's not what I use, your decision is wrong )

Try that one in a job interview.

Grey
03-22-2009, 03:43 AM
sgeos, think of the reality of game design for a second. Whilst it might seem ideal to generate lua code for certain aspects of the game (in praticular monster and item details) it ultimately comes down to a game being coded in one language and expansions coming that language. Sometimes expansions will be in other languages, like how Crawl uses sciprts, but initially there's no point bothering to think about such a premise. It's like a starving man thinking about which main course to choose at a fancy Italian restaurant - ultimately no course is right in any situation, and the starving man should choose whatever food he can grab of as soon as possible.

(Disclaimer: post made when drunk, sorry for any errors or completely stupid statements.)

sgeos
03-22-2009, 05:38 AM
sgeos, think of the reality of game design for a second.
The reality of your design and implemention is going to depend on the life cycle model your project uses.


Whilst it might seem ideal to generate lua code for certain aspects of the game (in praticular monster and item details) it ultimately comes down to a game being coded in one language and expansions coming that language.
I probably agree, but could you clarify?


It's like a starving man thinking about which main course to choose at a fancy Italian restaurant - ultimately no course is right in any situation, and the starving man should choose whatever food he can grab of as soon as possible.
So you advocate doing a quick and dirty job, just you have something, even if it is not extensible or easily maintained? Unless your goal is to code and fix until you get bored, I think you should spend a little more time figuring out what you are doing.


Sometimes expansions will be in other languages, like how Crawl uses sciprts, but initially there's no point bothering to think about such a premise.
Professional shops employ programmers and scripters. The programmers get paid a whole lot more than the scripters do, but there are usually more scripters than there are programmers. Why? Scripting requires less skill than programming. That means more people can do the job and they can be paid less. How does this relate to something like developing a RL? Given that a lot of what makes an RL interesting is the content, you will have an easier time making something interesting if you can grow your team. If your domain specific API is good enough, you ought to be able to recruit your cousin who knows nothing more than HTML. The "programmer" makes sure that the API is rock solid and they also make sure everything works under the hood. The "scripters" build the content. FWIW, the programmer can effectively function as a scripter.

If you insist on being a team of one, by all means use whatever setup works for you.

Epythic
03-22-2009, 12:23 PM
So you advocate doing a quick and dirty job, just you have something, even if it is not extensible or easily maintained? Unless your goal is to code and fix until you get bored, I think you should spend a little more time figuring out what you are doing.
Welcome to the world of roguelike development.

Sorry, couldnt resist.

Grey
03-22-2009, 01:46 PM
So you advocate doing a quick and dirty job, just you have something, even if it is not extensible or easily maintained? Unless your goal is to code and fix until you get bored, I think you should spend a little more time figuring out what you are doing.

Yes, I do fully advocate that, because anyone who's tried planning out huge strategies has failed. Roguelikes are not made like professional games, and the only ones that have succeeded are the ones that started out very small and gradually grew with hack after hack and rewrite after rewrite. It's not efficient and it doesn't seem sensible but it is tried and tested as the only method that actually produces visible results.

I'm not saying a roguelike game *can't* be done in the way you've described, but it's never happened and I think it's unlikely to happen, and I think it's bad to be telling a new developer to try doing something that has so far had a zero success rate.

sgeos
03-23-2009, 03:03 AM
You seem to be ignoring all the commercial roguelikes out there.

Grey
03-23-2009, 03:28 AM
True enough, heh, but in general professional game design is a long way from roguelike hobbyists.

sgeos
03-25-2009, 07:13 AM
I'm not saying a roguelike game *can't* be done in the way you've described, but it's never happened and I think it's unlikely to happen, and I think it's bad to be telling a new developer to try doing something that has so far had a zero success rate.
Sorry, I had to get over a culture shock moment. I forgot that for the most part roguelike developers seems be adverse to team development. Years ago, there was someone on rec.games.roguelike.development who made a big deal about this. The zero success has to do attempting a project that will take more time than a single person has (by multiple orders of magnitude). It has nothing to with using a program architecture that allows simple incremental additions of content, unless you simply don't have what it takes to implement such an architecture. If that is case, stick with an architecture you know how to make.


the only ones that have succeeded are the ones that started out very small and gradually grew
I agree. Designing your project to your team is a good idea. If you are a team of one, figure out what your own skillset is and work with it. Also strip down your requirements as much as possible. Don't aim for ADOM or Nethack at their current levels. Instead, aim for Rogue without items. If you can pull it off, then make it more interesting.

For what it is worth, I still think externalizing components in robust data files and scripts is the way to go. Basic lua (or equivalent) should take a day, and should basic XML (or equivalent) should take another, if, of course, you know what you are doing. You ought to have productivity gains in the long run, if you are determined to make your project last that long. If you are not determined to see your project through (even if the people around you are discouraging), then I agree, just slap something together.

Nate
03-30-2009, 02:39 AM
some quick comments:

From looking at Grey's code I think I like pascal! It reminds me of sql and bash. I guess I can see how that would feel ugly to some people, but personally I like writing nasty joins and sed/awk pipelines.

I too recommend python, it's a lot of fun and I say that as someone very new to it.

I have a funny feeling roguelikes are going to see a massive baby boom soon. Can't put my finger on why exactly, just a funny feeling.
________
Hartge (http://www.bmw-tech.org/wiki/Hartge)

mike3
03-30-2009, 06:48 AM
Sorry, I had to get over a culture shock moment. I forgot that for the most part roguelike developers seems be adverse to team development. Years ago, there was someone on rec.games.roguelike.development who made a big deal about this. The zero success has to do attempting a project that will take more time than a single person has (by multiple orders of magnitude).

But would it be possible to develop a roguelike with a team?

Epythic
03-30-2009, 03:20 PM
But would it be possible to develop a roguelike with a team?

Yes, but it will be quite weird. (http://en.wikipedia.org/wiki/Nethack)

sgeos
03-30-2009, 04:12 PM
Yes, there enough things that need to be implemented in a roguelike that you can make productivity gains by splitting up the work. Yes, this require organization, but organized projects have a higher chance of getting finished, all else being equal. The only thing team development might interfere with is the single vision.

Anyway, being able to work on a team is a Good Skill. For the most part, people who can only work as lone wolf developers get empolyed as lone wolf IT departments, or they have entirely different means of paying the bills. Software houses do not have use for people who can't work with others.

Dorten
07-01-2009, 09:31 AM
Say, Grey, are you going to continue your work on Gruesome any soon?

And also: can I borrow your map generation algorithm?

Dorten
07-06-2009, 12:18 PM
OK, I don't know all the mumba-jumba about GNU licensing, so i just put all the code (with Greys map drawing algorithm) here

I just started to do some little thingie, wonder if it will be any good...

This is just a test for a very base environment I set up.

Howewer, you have a goal there - kill all 50 Greys! (If Grey will be offended I can change the monster's name)

Next thing to do:
Random monster generation

Epythic
07-06-2009, 01:16 PM
OK, I don't know all the mumba-jumba about GNU licensing, so i just put all the code (with Greys map drawing algorithm) here

License stuff (unimportant, skip if you want)

A few words about the GPL and all the licensing stuff:

GNU is not a license (its a project), GNU GPL (GPL = General Public License) is.

If you take anything that is GPL-licensed and base your work on it, your work automatically is GPL too (or at least thats the effect -- to be exact, you don't have the *right* to distribute anything based on a GPL thing, but the GPL gives you that right, if you agree to make your stuff GPL too. That about the common misconception of the GPL "taking away" rights; it cant and doesnt).

I personally don't like the GPL, I prefer BSD-style licensing (in a nutshell: you get - and give, *if you want* - more rights that with the GPL).

I looked at your source code, and you obviously did a full rewrite [in another language]. If you just took Grey's map drawing algorithm you are legally in a very grey (no pun intended) area here.

If your work *is* derived from Gruesome, you *must* include the GPL text (see license.txt) and Greys copyright line (see readme.txt). You should add your own copyright line below Greys (above is fine too, but below is more polite).

I pretty much doubt that anyone here will ever sue for something like this, but its nice to be nice and honor the rights of the others, right? :)

Bottom line: blah.

Disclaimer: I am not a lawyer.


Other stuff

Can't test your program right now, its in C# and I am on linux. And I don't feel like installing Mono right now, its just a waaaay too heavy dependency.

Grey
07-06-2009, 08:00 PM
Howewer, you have a goal there - kill all 50 Greys! (If Grey will be offended I can change the monster's name)



I approve :) I'm sure gut would enjoy this too - his only dissatisfaction being that he'd have to stop at 50... Unfortunately I don't know how to get this compiled myself. Is there an exe version?

I tried looking at the code and couldn't make much sense of it, not even my own code. But then I've never been any good at that... In "GreysCave.cs" you may wish to add a comment at the top stating that you took the code from Gruesome, and where to find the original code. Otherwise I don't care at all about licensing - I only chose GPL because other people seem to be using it. Maybe in future I'll use BSD or some other thing.

Epythic
07-06-2009, 10:47 PM
I approve :) I'm sure gut would enjoy this too - his only dissatisfaction being that he'd have to stop at 50... Unfortunately I don't know how to get this compiled myself. Is there an exe version?
Check again - he included the .exe.

But you need either .NET or Mono installed to run it.

And I think I got an idea: lets (= someone; maybe I'll give it a shot someday) make a roguelike that has the more active forum members as monsters in it, with custom chat messages, custom attacks, custom behaviour etc. And g and G shall be the first ones. Dunno if that idea is good or bad (ok scrap that; I meant I have no idea just how bad it is), but it gave me a laugh :)


I tried looking at the code and couldn't make much sense of it, not even my own code. But then I've never been any good at that... In "GreysCave.cs" you may wish to add a comment at the top stating that you took the code from Gruesome, and where to find the original code. Otherwise I don't care at all about licensing - I only chose GPL because other people seem to be using it. Maybe in future I'll use BSD or some other thing.
Yay :D

Dorten
07-07-2009, 04:04 AM
In "GreysCave.cs" you may wish to add a comment at the top stating that you took the code from Gruesome, and where to find the original code. Otherwise I don't care at all about licensing - I only chose GPL because other people seem to be using it. Maybe in future I'll use BSD or some other thing.
Double yay!

Dorten
07-07-2009, 01:09 PM
Now we have random monster generation, yay!

next step: inventory and wearable/wieldable items. (plus random item generation)

In this version you can even see the list of commands via traditional '?'!

Laukku
07-07-2009, 02:36 PM
And I think I got an idea: lets (= someone; maybe I'll give it a shot someday) make a roguelike that has the more active forum members as monsters in it, with custom chat messages, custom attacks, custom behaviour etc. And g and G shall be the first ones. Dunno if that idea is good or bad (ok scrap that; I meant I have no idea just how bad it is), but it gave me a laugh :)

And lurkers should be shown as invisible stalkers.

Epythic
07-07-2009, 03:51 PM
And lurkers should be shown as invisible stalkers.

ie not at all?

Dorten
07-13-2009, 02:11 PM
If anyone is still interested, there is a new version.

Added some (very basic) inventory works and item generation (only weapons for now)

Now you can try and descend to the deepest levels of these caverns.

EDIT: BTW, pickuping is via ';'

gut
07-14-2009, 01:55 PM
Me can't makes it work.

Dorten
07-15-2009, 04:12 AM
Me can't makes it work.

What does it say?

gut
07-15-2009, 04:37 AM
When I try to execute theproject.exe it just gives
me an error saying:

"The application failed to initialize properly (0xc000007b).
Click OK to terminate the application."

I'm using Vista, and don't have .NET installed
(whatever that is).

Dorten
07-15-2009, 06:02 AM
The Google tells, that it' might be from some viruse, or from dirty registry.

Another variant is here (http://support.microsoft.com/default.aspx?scid=kb;en-us;961473&sd=rss&spid=13506), but I have no idea, what exactly it's all about.

I think, it's just a compat issues. I'm doing it with .NET 1.1, and Vist should have that for sure.

Dorten
07-17-2009, 09:03 AM
Well, I just try to post it the very last time here, since noone is interested enough AND can run the exe at the same time :(

Here I added some starting skill selection, armor, some generic monsters.
Changed skill and level advances a bit.

Epythic
07-19-2009, 02:48 PM
(I really must make a non-qualified comment here: )

.NET sucks.

I never understood why people would want a new OS every couple of years, but ok, thats how it is. But for programming languages this is just inexcusable. Because if the language changes, all my code goes away? Sorry, nothing for me. And C#/VB.Net code doesnt really run under linux, Mono is far from perfect and I see no reason to accept all the shortcomings of Wine here.

(Just trying to turn this thread either in a anti-MS rant or into a programming language flamewar. Both options are good for me :))

Dorten
07-20-2009, 07:19 AM
.NET sucks.


Oh, I know it better than you. :p

I just had a choice: C# or Delphi, since I don't have anything else on this comp.

But, well, yeah, I'm starting to think about switching to C++ in some way, while it didn't go too far.

Dorten
07-21-2009, 05:40 AM
Anyway. Here's what I found on our server:

Borland C++ Builder Enterprise v6.0
Borland C++ BuilderX 1.0 Enterprise
Borland Together Edition for C Plus Plus BuilderX

As I really don't know much about C++ (learned it long ago, and remember almost nothing), and about different environments for it, I ask an advice from someone knowing. What of these is simpler to get into to start coding ASAP?

Dorten
07-21-2009, 05:40 AM
Anyway. Here's what I found on our server:

Borland C++ Builder Enterprise v6.0
Borland C++ BuilderX 1.0 Enterprise
Borland Together Edition for C Plus Plus BuilderX

As I really don't know much about C++ (learned it long ago, and remember almost nothing), and about different environments for it, I ask an advice from someone knowing. What of these is simpler to get into to start coding ASAP?

I suspect, however, that they are somewhat related, since, you know, they all hve the word "Builder" in their name...

Epythic
07-21-2009, 07:44 PM
Oh, I know it better than you. :p

I just had a choice: C# or Delphi, since I don't have anything else on this comp.

But, well, yeah, I'm starting to think about switching to C++ in some way, while it didn't go too far.

What kind of reason is that? http://python.org/

Trust me. You almost certainly won't regret it.

:)

(By now everyone here should know that I have this... habit of... educating people what is the right language and what is not)
(But I *am* serious. Learning python is in the top 3 of things that have probably helped me most with programming: python, automated testing, version control, vim. and yes, thats four things.</rant>)

http://imgs.xkcd.com/comics/python.png

Not too wrong either...

(And don't get me started with this (http://blog.ravenblack.net/documents/xkcd_python.gif) pic.)

Dorten
07-22-2009, 04:04 AM
Ooooooo Keeeeey...

Now is probably THE time to start learning Python...

are there any complete newbie guides? :p

Dorten
07-22-2009, 10:37 AM
I has a question.

I'm still on windows. And I can't find a curses module for python that WORKS under windows. halp?

Grey
07-22-2009, 05:22 PM
You can do better than curses. Get libtcod: http://doryen.eptalys.net/libtcod/

It gives true colour, mouse and keyboard input, and also provides numerous common roguelike functions such as field of view, path-finding, dungeon generation, Mersenne twister random numbers, Perlin noise generator, save file compression and much more. You can do many wonderful and beautiful things with it, or just use it to make a normal looking roguelike but with a few functions made easier.

Epythic
07-22-2009, 06:19 PM
You can do better than curses. Get libtcod: http://doryen.eptalys.net/libtcod/

It gives true colour, mouse and keyboard input, and also provides numerous common roguelike functions such as field of view, path-finding, dungeon generation, Mersenne twister random numbers, Perlin noise generator, save file compression and much more. You can do many wonderful and beautiful things with it, or just use it to make a normal looking roguelike but with a few functions made easier.
And it uses its own window. No more playing over SSH or in a mode<5.

Of course yes, curses under windows is a bit tricky. Fine, go with libtcod if you want.


Ooooooo Keeeeey...

Now is probably THE time to start learning Python...

are there any complete newbie guides? :p

Here's some advice, things that felt weird to me when I started with python, and that I have seen others have problems with too. This is how I see it; others may disagree.

Version
Go for Python 2.6. Not 3.0. In a few years, maybe.

Tools and libs
Python has a huge standard library, but here are some thing I'd say are very important:

Before you start, get IPython (http://ipython.scipy.org/moin/). It's an improved python shell. Far better than the built-in shell. Tab completion and colors. And a really really useful feature: enter any symbol, then a "?", then return, to make it display a docstring. Use "??" to also show the source code of that thing.
Later on, I suggest "py.test" for unit testing. Do not use the integrated unit testing framework.
For user interfaces, do not use Tkinter, use something else. wxPython, PyGTK, PyQt are all fine. (I'd probably go for PyGTK because PyQt does not really run under windows and has licensing issues. Tkinter is just ugly, everyone says that.)


Learning

Pyhton has 30 keywords (http://www.python.org/doc/2.3.5/ref/keywords.html). Learn all of them. Well, maybe except "lambda", that one is a bit tricky and can wait until later. Same for "yield".
Use the coding conventions from PEP8 (http://www.python.org/dev/peps/pep-0008/) (especially under_scores instead of kamelCasing). And use 4 spaces for indents. Do not use tabs.
Read lots of code. Here are some basic snippets: link (http://wiki.python.org/moin/SimplePrograms).
"for" works different than in other languages. In python, you always iterate over a sequence. Say:


>>> data = range(5)
>>> data
[0, 1, 2, 3, 4]
>>> for item in data: # right
print item
...
>>> for item in range(length(data)): # wrong
print data[item]


Use IPython often and much. I usually have my editor on the left side of the screen and IPython on the right side. If in doubt, ask IPython. Fastest way to get documentation, for example.
You've probably already found the Beginners Guide (http://wiki.python.org/moin/BeginnersGuide). If you want look at a few tutorials there, but I think it's more important to write your own code.
Use docstrings:


def documentation_done_right():
"""This is the documentation for the function (a "docstring").

And yes, it can be multiline.
"""

# This is wrong.
# Very, very wrong.
def documentation_done_wrong():
# And this is wrong...
# ...too.


Reason: docstrings can be accessed later, for example by saying help(documentation_done_right) in a Python shell or with "documentation_done_right?" in an IPython shell.


EDIT: Oh and if you have any questions, feel free to PM me. I don't bite (at least not python programmers ;))

gut
07-22-2009, 06:47 PM
I just got 'The Project2" running. It flashes
a bit strangely whenever I press a key, but
it's working. I made it to dungeon level 9
and got killed by an orc lord. Wooh, they
are tough. I had some good gear, but it
didn't help much. I wonder if it is a bug
that I was allowed to equip both light and
heavy armor at the same time?

Anyway, it was just as fun to kill the guts
as the Greys : )

Dorten
07-23-2009, 04:09 AM
You can do better than curses. Get libtcod: http://doryen.eptalys.net/libtcod/

It gives true colour, mouse and keyboard input, and also provides numerous common roguelike functions such as field of view, path-finding, dungeon generation, Mersenne twister random numbers, Perlin noise generator, save file compression and much more. You can do many wonderful and beautiful things with it, or just use it to make a normal looking roguelike but with a few functions made easier.

Already got that. But all I managed to do so far is making a console window 80x25 with custom title. Text output? Well... I almost copy-pasted the
libtcod.console_print_left(0, 1, 1, libtcod.BKGND_NONE, 'The string')
And nothing. WHAT am I doing wrong here?

EDIT: AHA! libtcod.console_flush() !!!

EDIT2:

I just got 'The Project2" running. It flashes
a bit strangely whenever I press a key, but
it's working. I made it to dungeon level 9
and got killed by an orc lord. Wooh, they
are tough. I had some good gear, but it
didn't help much. I wonder if it is a bug
that I was allowed to equip both light and
heavy armor at the same time?

Anyway, it was just as fun to kill the guts
as the Greys : )
Flashes? hmmm... it shouldn't. orc lords are nothing compared to Soiranas, ant THEY are nothing compared to big white As, heh heh.

Anyway, what did you do, that it started working? If nothing, then it must be me compiling it under Release instead of Debug mode.

Light and heavy armor is just like that: you can wear leather armor or chain mail under some kind of cuirass or plate mail. It's not a bug.

Good gear is highly improbable in this vesion, since I went a bit too rough on higher material probabilities. Needs much balancing

gut
07-23-2009, 11:43 AM
> Anyway, what did you do, that it started working?

I ran some programs to clean up my system, but
I'm not sure that was the fix. It may have just
been the new release. I can't see why ADOM and
the rest of my roguelikes ran, but 'The Project'
wouldn't. I look forward to fighting some Soiranas
for sure : )

Fun game.

Soirana
07-24-2009, 06:07 AM
it shouldn't. orc lords are nothing compared to Soiranas, ant THEY are nothing


You named trolls after me? How sweet...

Dorten
07-24-2009, 01:02 PM
I'm going at vacation fo 2 weeks. Here's the last .Net version of the game.

I'm getting some progress with Python version, but will not post it until it's at least equals feature-wise to .net version.

Epythic
07-24-2009, 04:18 PM
I'm getting some progress with Python version,

Yay, the world has just gotten a tiny bit better :)

And then I'll finally too be able to play this thing :D

Sradac
07-25-2009, 12:44 AM
kinda funny how I started this thread but havent posted in 12 pages. You guys are too technical for me. Damn programming geeks...im just an IT geek.

Grey
07-25-2009, 07:19 AM
I'm not even much of an IT geek and I still managed to get a game released! If I can do it, any geek can.

gut
07-25-2009, 09:49 AM
What if you're a retard? Then what do you do?
Just asking out of curiosity.

Silfir
07-25-2009, 01:00 PM
I guess you start breaking your own lines in forum posts?

Dorten
08-12-2009, 09:11 AM
Waaahhh...

Jus as I get in touch with Python and need some advice on it, Epythic disappears. Anyone here knows where he might be accessible? PMs and e-mail do not reach him, apparently...

gut
08-16-2009, 09:39 AM
He and Soirana got into a snarkfest and wound up
killing each other.

Conundrum
08-16-2009, 10:37 AM
I thought you killed Soirana?

But seriously, where has he gone :P

Dorten
08-26-2009, 10:50 AM
OK, I made it to the point worth sharing!
It lacks armors, but it has levelling monsters and two weapon fighting.
Here (http://rapidshare.com/files/271663282/TP2D.rar)

It's for Python 2.6.2 and uses libtcod. Run TheProject.py.

And I really need feedback, cause my motivation fades away :(

Dorten
08-28-2009, 10:00 AM
Come on, anyone! It's been downloaded 5 times already.

If you say something like "that's complete sh&#37;t!" I still will be grateful for feedback:(

Epythic
08-29-2009, 06:23 PM
Hey guys, I'm back :) Real life got away...
[EDIT: Dammit, I meant "in the way", not "away"]

I now added the epythic gmail dot com account to thunderbird, so in future you'll be able to contact me that way. Also means PM's will find their way to me.

And I'll get to dortens questions shortly.

Dorten
09-01-2009, 12:49 PM
There (http://rapidshare.com/files/274241365/TP2D.rar)
Now it has everything, that was in .NET version. (well, except string input, but that's first on the list)

Now the only way is forward!

Epythic
09-01-2009, 06:46 PM
There (http://rapidshare.com/files/274241365/TP2D.rar)
Now it has everything, that was in .NET version. (well, except string input, but that's first on the list)

Now the only way is forward!


$ python TheProject.py
libtcod 1.4.1
SDL : cannot load fonts/9x9.png
$ ls fonts
9x9.PNG


Can you see the problem? Correct: PNG != png. Linux is case sensitive.

(Also, I had to add the linux .so files, you only included the windows .dll files. Meh.)

(Also, could you please use something other than rapidshare? I am sharing one IP with a few hundred users, means I can basically never download a file from them; had to tunnel through my vserver on the outside)


Other than that, well done. I like it. Definitely playable and maybe even fun :)

(your code is a mess, but thats excusable since you just started with that language. and it is definitely good enough to show me how to use libtcod :))

Dorten
09-02-2009, 04:29 AM
$ python TheProject.py
libtcod 1.4.1
SDL : cannot load fonts/9x9.png
$ ls fonts
9x9.PNG


Can you see the problem? Correct: PNG != png. Linux is case sensitive.

(Also, I had to add the linux .so files, you only included the windows .dll files. Meh.)

(Also, could you please use something other than rapidshare? I am sharing one IP with a few hundred users, means I can basically never download a file from them; had to tunnel through my vserver on the outside)


Other than that, well done. I like it. Definitely playable and maybe even fun :)

(your code is a mess, but thats excusable since you just started with that language. and it is definitely good enough to show me how to use libtcod :))

PNG != png ............ done
linux .so files ............. errr, I has no such files :(. The libtcod for linux is a separate download, so I just didn't got it.

other than rapidshare .............. what would you like?

your code is a mess ................ I'm trying :D

Epythic
09-02-2009, 04:19 PM
PNG != png ............ done
linux .so files ............. errr, I has no such files :(. The libtcod for linux is a separate download, so I just didn't got it.

other than rapidshare .............. what would you like?

your code is a mess ................ I'm trying :D

About the .so issue, I don't really care. If you know what to do (maybe write a README file!), its easy, and linux users wont just give up after unraring.

Maybe you should make a source-only version (no external libs), pack that as .tar.gz (most common format for linux), and let users download that. Then also offer a .exe for windows users, using py2exe or pyfreeze or one of those programs. Thats how i'd do it. But dont worry about that now, for now, everything's fine...

Here (http://en.wikipedia.org/wiki/File_hosting_service#Comparison_of_notable_file_ho sting_services)'s a list, pick one that has direct access, few traffic/bandwith limits, and long file expiration date. Thanks a lot.

@trying: :) [i didnt say that my code was better when i picked up python - and i certainly didnt write *and release* a roguelike just after a few weeks. congratulations again.]

Dorten
09-03-2009, 12:17 PM
Only python code in .zip (http://rapidshare.com/files/275067238/TP2D_src.zip)
With libtcod in .rar (http://rapidshare.com/files/275066759/TP2D.rar)
Windows binary (py2exe) (http://rapidshare.com/files/275067088/TP2D_dist.rar)

Also used psyco (it definitely speeds thing up :))

Still on rapidshare, though.

I tried almost EVERY service of that list, but the just can't upload anything. It starts, then our proxy asks for my password, and then it hangs :mad:

I have no idea why is that and what to do with it

EDIT: At last one worked. sendspace!
Here's the folder (http://www.sendspace.com/folder/w7zdwr)

gut
09-03-2009, 02:08 PM
>I tried almost EVERY service of that list

Now try myfreefilehosting.com

Doesn't even require javascript to be enabled.
It doesn't report number of downloads though.

And thanks for the project. If I can get the latest
version running, it will help me occupy my time
while I can't be active : )

Stupid lawnmower.

gut
09-03-2009, 03:27 PM
The program runs great, but it appears really
squished. I can't figure out how to unsquishify
it. : (

Epythic
09-03-2009, 09:13 PM
Yay, I can download from sendspace. Waaaay better than with rapidshare. Thanks :)

Dorten
09-04-2009, 04:29 AM
The program runs great, but it appears really
squished. I can't figure out how to unsquishify
it. : (

It's because font is :eek:SQUARE:eek:
And the screen is standard. 80x25. Which is squishy if the font is ..... :eek:SQUARE:eek:

You can pick anothef font, really. There is curses_640x300.PNG font file, which is a nice 8x12 font. You'll just need to change the filename in MyConsole.py:

font = os.path.join('fonts', '9x9.PNG') => font = os.path.join('fonts', 'curses_640x300.PNG')

yisk
09-04-2009, 06:39 AM
You can pick anothef font, really. There is curses_640x300.PNG font file, which is a nice 8x12 font. You'll just need to change the filename in MyConsole.py:

font = os.path.join('fonts', '9x9.PNG') => font = os.path.join('fonts', 'curses_640x300.PNG')Nothing changes.

gut
09-04-2009, 09:02 AM
I can't make it work.
Maybe I will try the squished version later.

Dorten
09-04-2009, 10:06 AM
Well, it's time to forge up da config file, then!

Dorten
09-09-2009, 09:14 AM
Python has properties!

Why haven't anyone told me that Python has properties!.. So musch dirty code :(

EDIT: update (http://www.sendspace.com/folder/wom9h8)
I obviously lack "Interface designer" skill :(
(still no init file, but I set font to the good looking one)

gut
09-09-2009, 10:22 PM
It fired up, no problem. Still really small though.
I'd say it was like 4 inches high, maybe 6 wide.
I reset my computer moniter's resolution to a
smaller one, and that made it big enough to play.
I killed a few monsters, found a dagger on the
ground, tried to equip it, then the game crashed.

I think it said something about it making a log
file, but it didn't occur to me until typing this
that it might be useful to you. If you want, I
might be able to find it.

gut
09-10-2009, 03:27 AM
Well, I tried again, and got a little further.
I opened up an image editor, opened the
file named 'curses_640x300.PNG' resized
it by 150%, saved, relaunched 'the project',
and it looked perfect.

There were some levels that generated very
quickly, and they all had walls similar to the
ones in ADOM. Then there were levels that
generated very slowly, and actually seemed
to display the level being generated. It was
kind of fun to watch the first one, but became
irritating very quickly.

I made it to dungeon level 11, then got this
screen:

Dorten
09-10-2009, 04:08 AM
it should be the file "TheProject.exe.log" in the project folder.

Show me please.

Dorten
09-10-2009, 04:10 AM
Whoops, so I forgot to disable level generation display :p
I can post a little file, which you'll need to put inside library.zip archive to fix it. Or I can post the whole fixed version :)

And for disconnected caves... I have no idea how it manages to create them. My head almost exploded, while I tried to figure it out...

Dorten
09-10-2009, 11:35 AM
Third post in row!

Here (http://www.sendspace.com/folder/9f8cdu) I added config.txt file, where you can select the font to use.

Also some minor tweaks, like adding primitive repeat command, affecting unarmed damage by gloves material and such.

Now I will dive deeply in game saving/loading :eek:

Epythic
09-10-2009, 06:06 PM
Third post in row!

Here (http://www.sendspace.com/folder/9f8cdu) I added config.txt file, where you can select the font to use.

Also some minor tweaks, like adding primitive repeat command, affecting unarmed damage by gloves material and such.

Now I will dive deeply in game saving/loading :eek:

For starters, look if the "pickle" (or cPickle, which is just a faster version of pickle) module that is included with python helps you. Later on you might want to use something better, but I guess for now pickle should be enough.

(Careful though, pickle has security "problems"; never unpickle untrusted data, it might contain code that will be executed...)

Just my 2e-2 euro.

gut
09-10-2009, 09:28 PM
Traceback (most recent call last):
File "TheProject.py", line 9, in <module>
File "MyConsole.pyc", line 5, in <module>
File "libtcodpy.pyc", line 35, in <module>
File "ctypes\__init__.pyc", line 428, in __getitem__
File "ctypes\__init__.pyc", line 423, in __getattr__
File "ctypes\__init__.pyc", line 353, in __init__
WindowsError: [Error 126]
Traceback (most recent call last):
File "TheProject.py", line 16, in <module>
File "Game.pyc", line 36, in NewGame
File "Game.pyc", line 126, in GeneratePlayer
File "Player.pyc", line 40, in __init__
File "Armor.pyc", line 20, in __init__
NameError: global name 'RNG' is not defined
Traceback (most recent call last):
File "TheProject.py", line 17, in <module>
File "Game.pyc", line 214, in Loop
File "LMap.pyc", line 160, in Tick
File "Creature.pyc", line 144, in Tick
File "Player.pyc", line 99, in Action
File "Interface.pyc", line 72, in Inventory
File "Interface.pyc", line 360, in ShowTree
IndexError: list index out of range



I don't know if that's the log from my crashed game,
as I've played more since then. I think it looks like
it though.

Dorten
09-11-2009, 04:35 AM
For starters, look if the "pickle" (or cPickle, which is just a faster version of pickle) module that is included with python helps you. Later on you might want to use something better, but I guess for now pickle should be enough.

(Careful though, pickle has security "problems"; never unpickle untrusted data, it might contain code that will be executed...)

Just my 2e-2 euro.

Pickle was my first try at saving. And my data format forbids using it. You see: every tile on map is an object. And it has ItemPile collection. And pickle writes its full structure into file. One level results in ~2 MB savefile, which is not good. I'll just need to have some custom savers for maps, and use pickle for small thingies, like items or monsters. And I'll still need some way to prevent saving Item.Tile.Map :D

And, Epythic, you'll be the first magic using monster, I promise.

Dorten
09-11-2009, 04:54 AM
Hmm, after reading some help on pickle I found the thingies about __getstate__ and __setstate__ methods. This can be helpful :cool:

gut
09-11-2009, 01:29 PM
"The Epythic conjures a python upon you!"

Epythic
09-11-2009, 06:43 PM
Pickle was my first try at saving. And my data format forbids using it. You see: every tile on map is an object. And it has ItemPile collection. And pickle writes its full structure into file. One level results in ~2 MB savefile, which is not good. I'll just need to have some custom savers for maps, and use pickle for small thingies, like items or monsters. And I'll still need some way to prevent saving Item.Tile.Map :D
Well yeah, I suppose thats bad... :D

The alternative is converting everything to dicts manually, then saving those dicts with something like json (http://docs.python.org/library/json.html) (which is included in the standard lib since python 2.6 and available as an external module earlier). If you really need to you can then run something like zlib (http://docs.python.org/library/zlib.html) to shrink it. This is how I did it (except for the "convert manually" part; my data classes are all subclasses of dict -- makes things easier. btw I also have a TwoWayDict that makes it easy to get the position (an x/y/z tuple) a monster is standing on by monster id or vice versa.). Of course I have no idea how easy/hard it will be to convert your stuff to just plain old dicts that only use the basic data types (you can use ints, floats, strings, bools, lists, tuples, dicts and maybe, i dont know, sets). But I bet this stuff can be done later on... for now whats the problem with a 200MB savegame?


And, Epythic, you'll be the first magic using monster, I promise.
Thanks; I really like that idea.

Except for me being called a "monster", of course.

I wonder if there are gods in your game? ;)


"The Epythic conjures a python upon you!"

assert gut in python # postcondition; ensure everything's alright

Dorten
09-14-2009, 04:27 AM
Well yeah, I suppose thats bad... :D
for now whats the problem with a 200MB savegame?


It does not load. Says something about unrestorable recursive objects :D

I'm digging it anyway:)

Epythic
09-14-2009, 05:45 PM
It does not load. Says something about unrestorable recursive objects :D

o_O ...

Dorten
09-15-2009, 05:26 AM
YAY! (http://www.sendspace.com/folder/flhecv)

Now it saves (and restores even)

Stupid pickle. I placed some init code in __setstate__ of tiles, but it does not execute at all if the state is an empty dictionary! Took me a couple of hours and thousands of brain cells to figure that out.

Added new level type, first artifact (yay!), changed light/visibility code, added debug option in config to allow seeing level generation.

Next step - ranged combat

And I need some inventory revision for ammo handling (poor me)

Dorten
09-17-2009, 08:02 AM
Update (http://www.sendspace.com/folder/0ekwy9)

Now we can shoot. Or throw something. With an f button (forgot to say so in command list, and too lazy to reupload)

Still bery bad ammo management, but I'm trying:o

EDIT: replaced the link to the new version, with some bug fixes

gut
09-24-2009, 04:12 AM
*bump*

Just trying to keep this on the first page : )

Dorten
09-24-2009, 04:23 AM
Yup. Bump (http://www.sendspace.com/folder/pa883r)

plus doors, plus enemies, that open doors, or move through them (or walls)

Dorten
09-30-2009, 12:22 PM
Here. (http://www.sendspace.com/folder/qlv04r)

Now enemies can shoot and run away if too injured.
The player got two new slots - Weapon Reserve and Off-hand Reserve. You can place something in there and swap with your main weapon/off-hand via 'z' command. I thought, that it can be useful for switching close/ranged weapons.

Next step - torches and other dynamic lights.

Dorten
10-16-2009, 09:56 AM
new version (http://www.sendspace.com/folder/21y3nb)

Torches are in, although still a bit buggyish. Also I've decided on the name of game: The Gloom, don't yet ask why :p. Oh, and credits screen is also available.

yisk
10-16-2009, 02:38 PM
Nice. But I want bigger font and less... brakes? Тормозит короче. )

The last boss must be ThOmAs BiSkUp =)

gut
10-16-2009, 05:11 PM
I have fixed the small font madness in one of the
previous versions by modifying the file
curses_640x300.PNG
in an image editor, then modifying a line in the
myconsole source file. I don't know if it will
work with the latest release though.

fazisi
10-17-2009, 12:47 AM
Ahahaha, I tried this out for the first time and sick Soirana kicked my ass!

Second try...

http://i186.photobucket.com/albums/x1/desyncer/greysdead.gif

Yes!
________
Gay guy (http://www.fucktube.com/categories/624/guy/videos/1)

yisk
10-17-2009, 05:37 AM
sick Soirana kicked my ass!She killed me too. :3

Epythic
10-18-2009, 12:59 PM
Just played it again (I think I skipped a few versions), and I gotta say, wow, that is really impressive.

I think I really should look into libtcod... although I don't like that it emulates its own terminal...

Silfir
10-19-2009, 12:59 AM
Grey's a pushover, Soirana's really badass though... How many HP does he have?

EDIT: gut just ran from me... How fast is that bastard? Still got him though.

Maybe at level 2 I've got a shot at killing a Soirana...

EDIT2: What the fuck is a Kristobal Hosevich, and why is he hunted?

Dorten
10-19-2009, 04:36 AM
What the fuck is a Kristobal Hosevich, and why is he hunted?

Look at the credits screen. He's the guy, who helped me a bit with missile stacs implementation.

And as for the slowness... Well, let's say, that I'm really trying, but am not very good at optimizing.

yisk
10-19-2009, 06:03 AM
Kristobel Hozevich - the hero of the book of brothers Strugatsky.

Dorten
10-20-2009, 04:47 AM
Kristobal Hosevich Hunta - Это ник такой у парня по имени Кристо, который на олд-геймс ру обитает. По русски вообще там лучше отписываться :)

DumbleDoor
10-21-2009, 09:04 PM
Second release already, to fix a couple of bugs likethe screen thing and add a darkness spell you can use to blind enemies. Should be a little easier now:

http://www.gruesomegames.com/gruesome0.0.2.zip
This was the only version I could download... The others don't work. Cool game, but I haven't found out how to attack adventurures (I am noob).
Edit: Figured out how to attack. Or really defend.

Dorten
10-22-2009, 12:47 PM
I have 0.03 on my comp now, can send it, if Grey doesn't mind.

However, I really wish, that he continues his work on Gruesome, since it's too cool an idea to be thrown away at such an early stage. It even has it's own page on Roguebasin!

Grey
09-05-2010, 02:12 AM
Hey Dorten, anywhere I can grab a copy of your game? I never got a chance to actually play it, and all the old links don't work any more. You should use some more permanent hosting like Google Sites.

Incidentally, in a couple of weeks there's going to be a new event - the Annual Roguelike Release Party, where developers are encouraged to make updates of their languishing projects, or bring their hidden works out of the shadows and into reality of a first release. Expect a new version of Gruesome at last...

gut
09-05-2010, 03:14 AM
I have a copy of 'the gloom' still on my HD.

Grey
09-05-2010, 04:29 AM
Care to share?

gut
09-05-2010, 05:14 AM
http://myfreefilehosting.com/f/14c2a18864_2.67MB