Archive for March, 2013

Splitter: bug fix 2

These are just bug fixes that fix crashes and critical errors.

Splitter bugfix2 7DRL2013 by graspee

changelog:

The game was giving you a free rest cycle after you’d picked up an item, leading to you filling your hp or mp when you picked up an item with + those things on.
Fixed message log again. This time it was bits of old text showing up once you looped round the length of the buffer. I did have a fix in place for it but I’d made a mistake in it.
Fixed bug where you would level up but it wouldn’t turn off key handling and because you are holding down the key to repeatedly bump the monster you would end up trashing the level up screen so you couldn’t see it.
Game was still expecting game over screen to be in an absolute location on my hd and therefore crashing

Older files:
Splitter 7DRL2013 by graspee bugfix 1

Splitter 7DRL2013 by graspee

3d Experiments

Over the last few days I’ve been experimenting with a possible engine for a roguelike that would be 3d, displayed in ASCII in multiple views:

The views are, on top row, left to right: “Left”, “Top”, “Right”. On the bottom row is the “Front” view.

The left and right views are basically if you took the scene and split the world in half, vertically, on either side of the player, so the left view is everything on the same vertical slice as the player, and to the left, while the right view is everything on the player’s slice and to the right.

It seemed to work not too badly when I was just dealing with a flat world I placed blocks in, but having added some perlin landscaping it doesn’t seem so clear anymore.

For reference here is the same scene rendered in isometric:

The isometric view can be ambiguous sometimes. (It would be better with shadows). Even so it trumps the multi-view for ease of “getting your head round”, at least in my view.

I’m still experimenting so we’ll see what happens.

graspee’s top picks

I decided to keep track of which other RL games from the 7drl I have tried that I like. I’ll keep updating this post so it will never be “finished” as
such. I’m not mentioning bad ones, but if I don’t mention yours it doesn’t
mean it’s bad.

Like a Rogue by rogue.games

It’s another dungeon master style game with really cool lighting and ambient style music. Love it.

Rodney by Slash

Great game

Lovely-looking letters. Non-square ASCII doesn’t detract from the game. The skills are well done and the game is challenging.

Rogue’s Eye by Paul Jeffries

Cute Maus

This is awesome- it’s like dungeon master, which is very roguelike, from a certain point of view. (The view being first person); You get to fight many times maus. They call it a Giant Rat but don’t be fooled- it’s a cute maus.

Rogue Dream by Zhamul

Weird dream chicken.

This is essentially another dungeon master-like game but you have freelook with the camera and the graphics are more hi-res. It’s still good but not quite as good in feel as Rogue’s Eye. Maybe I just suck at it – it does seem quite tough, and I didn’t get far.

Dungeon-X by grimm bros

dungeon x

It was made by a team and it shows. Music, sound effects, proper artwork. Very professional. [edit] It has come to light that a lot of the graphics, music and sound effects were pre-existing, before the 7drl though. Although it doesn’t break any rules, the combination of pre-existing assets, the fact that it’s a team effort, and the fact that they are a commercial company trying to get established have lead myself and some others to wonder just how much of a “7drl sprint oh wow guys we are all in this together” this really was, and how much of a seized marketing opportunity.

And they put an End User Licence Agreement in their zip! It tells you all that normal crap about how you can’t disassemble it and limitations of liability and so forth. I don’t think they really get the point of 7DRL…

Splitter Bug Fix 1

A few people who tried the game were reporting crashes when picking stuff up. It turned out that when you tried to pick up grey vendor trash (Child’s doll, bowl or giant pretzel) it was crashing because of my last minute code which automatically tries to equip anything you pick up. (I added this because I didn’t have time to add a real equip command).

I didn’t notice it myself because of it being last minute, and also I’d got out of the habit of picking up the grey items.

New zip attached. Only the exe is different. I hope people will try it again if they are interested.

Splitter 7DRL2013 by graspee bugfix 1

Splitter: 7DRL 2013: 168 hours are up. Success or Fail? Honestly can’t decide.

day 7

“Finished” Product

1 finished level up screen
2 It’s all slowing down now. Finding more problems in the text interface engine,
feeling burned out, frustrated. Don’t think it will be finished in time. Annoyed
3 Now when I descend levels Visual Studio is saying it hit a breakpoint and stopping.
It’s not a user breakpoint, it’s some kind of runtime exception but it’s hard to debug.
The despair is mounting, since it seems I’m going backwards.
I still need ranged combat for player and mobs, random loot, ability to equip things
and a proper endgame. I also did plan to have skilltrees but I abandoned those ages ago
when I didn’t seem to have time.
4 Fixed the corruption but I need to eat, I’m getting tired and I’m running out of time.

–went to sleep–

5 Wrote routine to generate random items. I love the names it produces:

Rare footwear: Poulaines of the Pangolin CON+3
Normal headgear: Unswaying helmet CON+1
Normal earring: Evasive Dangler AGI+1

6. Everything went a bit panic-filled now as I got more and more stressed and tried to implement equipment picking up and putting on. In the end I had to cheat and make it so you auto-wear anything you pick up, even if that means wearing 14 pairs of gloves.

So here’s the final file:

Splitter 7DRL2013 by graspee bugfix 1

Was it a success or a fail? I can’t decide.

You can move round the dungeon, there’s random loot to pickup which boosts your stats automatically, there’s mobs to fight which are easy on the first two levels (easy is relative) then much harder later. The monsters scale with dungeon level too. You can descend levels and the colour scheme changes (maybe should have taken that out). There’s no end though.

What did I want to put in but didn’t have time for?

Ranged combat for player and mobs
Magic system
Usable items like scrolls and potions with identify guessing game.
Skill tree with three trees: Warrior/Paladin, Thief/Rogue and Mage/Priest.
Endgame on level 11 where red player and blue player are finally on the same map and must join forces to battle the lich. The lich has three phases and in one of them he split himself as he split you. *spoiler!* Make sure to forget that if I ever get the game finished.

Splitter: End of Day 6

day 6

1 Got corpses dropping. It properly displays a red star instead of a black percent when
there are two corpses on a tile, which looks like a gib pool but it just a generic
mechanism to indicate multiple objects in one place.
2 Added simulated light falloff from an imaginary torch the player is carrying. It makes
zero difference to gameplay but it looks nicer than flat colour. I think, at least.
3 Big Problems: I was intending to empty my listbox control and add each item and mob
found when calculating FOV once per turn, to make a nice little “stuff visible” area.
This turns out to be very time consuming, making the game very sluggish. Thinking…
4 Turned out I was emptying and filling the info box once per cell, not per turn,
(i’m a chakabops) so info box now fills and displays. It’s a good way of noticing a mob
has appeared in your “other” window.
5 Fixed all three remaining bugs on the message log. If I’d had time to test my textual
user interface more before 7drl I wouldn’t have had to, but I was writing it right up to
the wire.
6 You can now pick things up. I was going to make a little window so you could choose what
to pickup but it has to appear on both sides at the same time and the way I really
separated the two virtual games makes it too hard to put this in at the moment, so I
settled for “space attempts to pick up the first thing that is not utterly useless”.
(Corpses are utterly useless)
7 Added some vendortrash items to the dungeon to the dungeon to test picking stuff up
8 Added Inventory screen and clicking header tab buttons swaps views. Some bugs though. Now
squashed.
9 Fiddled with Pango Text User Interface engine again, this time to allow me to change
the colour of buttons so I can indicate which mode is in effect in your little info box
to the right of the map.
10. Added level up screen. Not quite done yet.

New lighting, inventory, objects and mobs in view window

Not quite finished level up screen with radiobuttons.

Splitter: Lighting

I’m just about to go to bed now, but I carried on programming past the “end” of day 5, so this is part of day 6 coding. Just thought I’d give everyone a look at my simulated light falloff thingy whatsit effect. No effect on gameplay- just for the look of it. I like it.

Lighting

A corpse. The first of many. They will never catch me.

Finally! This is the first ever corpse in Splitter, and the very first item drop.

Baby’s first corpse!

Splitter: End of Day 5

1 Fixed Progress bar – was broken (Used for hp/mp/xp).
2 Fixed a nasty message log bug that’s been on my todo list almost since the start.
3 Wrote a combat system. tried hard to make it fair and balanced but to be honest a few
hours isn’t enough to work it out. I should have worked it out before the week started.
4 Now the player can die! I added a game over screen involving real-time dithering even
though I could just pre-dither it! Thousands of cpus will spend a tiny extra bit of
energy dithering it! Actually though, the delay helps the screen not get insta-skipped by
key press, which is a problem which should be easy to fix but blah blah blah I can’t hear
you.
5 Probably the wrong time to do this, but implemented 3 different resolutions and choice
of fullscreen or windowed: 640×360, 1280×720, 1920×1080. The screen is always 80×45 chars
in all resolutions, and never blurrily scaled; it’s either 1x 2x or 3x pixel zooming.
On my particular setup the 640×360 fullscreen doesn’t fill the screen and does something
nasty with blurry rescaling, but I can’t help that.
6 Player can now fight back. Since most of the combat is now done, in fact all of it that
matters at that start (e.g. you have no armour and cool items) it’s become clear the game
is SRSLY, SRSLY HARD. I’ve taken out the monsters I had, which were things like giant
rats with 2 claw attacks per round (that is seriously OP for level 1!) and put in tame
zoo animals like bats and beetles and stuff. Even so it’s freakin’ hard still.
7 Resting is in. You get 10% of your hp and mp back per turn. It’s still viciously hard.
8 Fixed formatting of numbers on interface.
9 I put in code for objects- at least seeing them on the floor, and a routine to drop a corpse
when a mob dies, but it doesn’t seem to work yet. If that had worked and I had also got the mobs
in fov noted in the little visible stuff window then I would have achieved all of today’s goals.
It was certainly close.

http://i.imgur.com/bLgNYhA.png

Combat

Game over screen.

Splitter: End of day 4

1 Added mobs. They draw when in FOV but they don’t move and you can’t attack them
and they don’t attack you. Basically they are attractive “mob statues” available
in three sleek designs: giant rat brackets gasp, Orc, Orc Mage brackets exclamation
mark and kobold. You can tell I’m typing this so I don’t have to code. HELP ME, FUTUR
GRASPEE!
2 Added flag so mobs become “aware of player”. So now they are freakishly held-in-place
but they become AWARE OF YOUR PRESENCE. All that’s holding that giant rat back from
jumping at your face with his two claw attacks per-round is a hundred lines of code or so.
Are you afraid yet?!?!! I am!
3 Monsters weren’t being cleared when you changed levels which lead to rats in the walls.
They were literarily (sic) in the walls! Tough crowd
4 Mobs have finally found their legs and move about. They ignore the player, although
they do, as mentioned set a flag when they notice him. (“I’ve got my eye on you, buddy”)
5. You can now rest. This makes it easier to watch the mobs moving around randomly; you no
longer have to run repeatedly into a wall.
6 Realized by writing nullptrs into where mobs used to be in a certain data structure I
was wiping things like stairs, open doors etc off the map:
>kobold walks across staircase.
>now no way off level
7 Implemented the world’s worst pathfinding routine for mobs. (They go left if you are
left of them, up if you are above them, etc.) Messed up even this routine, so mobs were
able to go diagonally while I couldn’t.
8 Upgraded to second worst pathfinding routine: now the mobs randomly check either vertical
position relative to you first, or horizontal. This stops the silly dance when you go
alternately up and down and the mob copies you instead of moving horizontally towards you.
9 Mobs now respect other mobs and don’t move on top of them. Mobs still don’t attack you
so it’s kind of fun to “train” them round the dungeon. They tend to get stuck on things
though. If I had more time, I would do better pathfinding, but I need to try to get this
done in time! Almost end of day 4! PANIC!
10 Player is now treated as a mob. This is to make combat easier. Mobs now attack you but
don’t actually do damage yet, plus you can’t fight back. How unfair!

Is it “OK” if we attack you? (oops it says day 3 but it was day 4)