Archive

Articles taggués ‘libtcod’

Bringing cmake to libtcod – And then there was Linux

Source: If Error Throw New Brick

Since my last post I've accomplished a few things. One of them includes: The sample programs were ridiculously easy to move to cmake. Almost one liners in fact. Beyond that, opengl has been added back. That was pretty easy, find_package has to be the coolest macro in cmake. Linux support happened this morning. Other than some bashisms in my script to generate the cmake files, all it took

Bringing cmake to libtcod – First Successes

Source: If Error Throw New Brick

I just checked in cmake files that will build libtcod and libtcod-gui under both visual studio and msys/mingw. I still have a laundry list of things to do left including: Build the example programs Add back opengl support Test linux (and mac if I can get ahold of one) builds. Seperate C and CPP libraries for linux. Install build stuff to root directory A list of nice to have.

Bidden day #3

Source: Kooneiform » roguelike

time so far: 26 hours

The mockup slowly wrenches its way toward a real game. Believe it or not, up to this point in my programming self-education I had never touched procedural map generation — always working with hardcoded maps while doing other things. Luckily libtcod makes all of this fairly painless. I can’t imagine doing all of this from the ground up as some entrants are doing!

The above is a simple binary-space partition, with the borders of the rooms walled in, and then tunnels dug from room to room (somewhat randomly). I’m quite relieved to have made this milestone actually, as I was worried it was going to be a major stumbling block. I think I’ll be able to produce a rougher ruin map, and a twisting labyrinth map, in similar fashion. Of course it’s an open question if I’ll have any content to fill those maps with!

Basic movement and collision is in of course, and along with that and the level generation a proper code structure for the map as well.

I spent a bit of time with generating a template for title creation — if you look in the header you’ll see a partial example of that. In the story of this world there are many groups and factions, forming in every which way, and I hope with the titles to add some of that flavor.

Wrangled more with the json saving and loading — found since everything is unicode in json I need to convert symbols to str before printing with libtcod. It’s turning into more of a cost than a benefit, but one of my goals with this project was to give json a go, and I’m certainly doing that!

My long weekend is over, and it’s back to the dayjob Tuesday-Friday. Hopefully I’ll have some extra free time during the day this week, otherwise I see some long evenings ahead. My goal now that I have the basic structures is to get a playable run from start to finish, even if this just means the bare minimum of content required.

Almost double the number of entries this year compared to last year by the way — incredible!


Bidden day #2

Source: Kooneiform » roguelike

time so far: 16 hours

Not much more than another mockup, but I like this one better than having the big sidebar not really doing much. The descriptive style of the header in this one is a bit of an experiment.

Spent a lot of the day working on saving and loading, choosing json instead of the tried and true YAML. Went for a walk in the afternoon and realized that was probably going overboard. Do I even need save games? Probably not, though I want them. In any case it’s worked out now, so I’ll go with it.

Tightened up the design, eliminating the mountain and slum map generation parameters. Also realized I should have a power limiter of some kind for boons, so put in limited uses. As you complete tasks you get more uses; at the same time the chance of more dangerous enemies and traps increases. I don’t want this to be a difficulty scale per se, though — there still should be low power enemies you can just blow away later in the game.

addenda: I couldn’t resist a couple of more hours post-post. For some reason I’ve decided to try a publisher/subscriber for the first time with this game. I got the game components to register handlers with an event broadcaster, and now keypresses send an event to the broadcaster, which propagates them to the appropriate handlers.


python on steroids

08/03/2010 jice Aucun commentaire

Source: The Chronicles Of Doryen

Jotaf’s posted two videos on youtube to show the use of libtcod’s fast color filling function for python. Along with numpy, he gets some pretty amazing fps even with fullscreen animation (and this is only using the SDL renderer). Note that libtcod’s python sample works in 1.5.0 only if you don’t have numpy installed. The numpy version is fixed in the latest svn version.

[edit]erratum : in fact the renderer is OpenGL, not SDL.[/edit]

Bidden day #1

Source: Kooneiform » roguelike

time so far: 8 hours

Nothing playable yet; just created a mockup in libtcod after making some notes and sketching out the code structure with Leo. The extent of my design:

I had the basic idea a couple of weeks ago and I figured the rest out in the notebook this morning. You play a bidden, a creature brought into a fantasy world to fulfill the wishes of the summoner.

In trying to keep this simple, yet still interesting and a roguelike, I’m planning the following:

* summoners bind you to a task, either to hunt (kill something), to seek (get or activate something), or to bear (deliver something).

* these summoners represent groups of different interests in the game world, but this aspect will be largely cosmetic.

* tasks take place in a terrain (valley, mountain, desert, cave — mostly cosmetic), and a place (tower, ruin, temple, labyrinth, slum) that influences what creatures are encountered (elevated, ancient, divine, beastly, mutated).

* Your bidden can wield one weapon and wear one piece of armor; these will be somewhat unlike conventional weaponry (in a cosmetic sense), and generated.

* Your bidden can have two boons (powers), with one active at a time. I have six boons planned, three each for combat and movement.

* Your bidden also can be warped. Each warp changes the active boon. I’ll have two warps, so counting the unwarped state, there are 18 possible powers. Particular victories and items/locations create warps.

* all attacks hit automatically, with a chance to destroy weaponry (based on the weapon/armor involved), or inflict a wound. The bidden can take five wounds before death. Particular items and victories heal wounds, and there’s a heal up when the bidden completes its task.

* the command interface:

* cardinal movement only
* use boon, ‘x [direction]‘
* pick up or manipulate, ‘ [ctrl + direction]‘
* cancel or main menu, ‘[escape]‘
* confirm, ‘[space or return] ‘
* switch active boon, ‘[shift]‘
* wait, ‘.’
* scroll message history, ‘ [pageup or pagedown] ‘
* command help, ‘?’
* bump to attack or open doors (maybe open doors is configurable)

* a list of achievements (tasks completed)

* a victory file

* a death file

So….probably way too ambitious! We’ll see.


Bidden 7DRL

Source: Kooneiform » roguelike

It’s the inaugural post for my 2010 7DRL. My first 7DRL attempt, and my first attempt at a complete roguelike. Here we go!

In typical fashion, I’ve just created the home site for Bidden before there is an actual game!


Mines of Elderlore, work in progress

I am still working on Mines of Elderlore, here are the new features:

  • there are achievements that the player can accomplish, like his best hit, his best weapon combo, or the least rounds before winning
  • a menu system has been added,to change player name, dungeon name, view your scores and achievements, and replay past games

Anyone wanting to beta test it is welcome!

Mines of Elderlore libtcod 1.1.20100228 (37)

4 digits fps…

21/02/2010 jice Aucun commentaire

Source: The Chronicles Of Doryen

Smocking FPS…

Antagonist’s GLSL renderer has been succesfully integrated in libtcod 1.5.1 svn trunk. While I consider it currently highly unoptimized (in both the libtcod “client” part and the critical fragment shader), it already skyrocketed the true color sample to the unknown and mysterious world of 4 digits frames per seconds…. It’s only available if you have an OpenGL 1.4 compatible video card (it requires the GL_ARB_shader_objects OpenGL extension). If something goes wrong with openGL, libtcod will hopefully fall back to the default SDL renderer. You can also completely disable the OpenGL renderer by compiling libtcod with -DNO_OPENGL make option, or by uncommenting this option in libtcod.h.

Wrapping frenzy !

Paul Sexton’s common lisp wrapper cl-tcod should be compatible with libtcod 1.5.0 since there are no API changes between 1.5.0rc1 and 1.5.0. Get it there.

Other news on the wrapping side of the force are an ongoing community brainstorming leaded by Jotaf about refactoring the python wrapper. There’s a poll here. Be sure to check it if you’re using the python wrapper for libtcod.  Altefcat also started to work on a epydoc standalone documentation for python that will hopefully be available in the 1.5.1 release.

Umbrarum dokumentum…

Last but not least, Mingos started the documentation reskinning sisyphal work. The new look will be more user friendly and more “library documentation”-esque :) .

libtcod 1.5.0 released!

Source: Umbrarum Regnum: The Codex of Eréimul blogs

OK, so, libtcod 1.5.0 is out. It's now the official current stable version. Get it here.

 

You need to log in to vote

The blog owner requires users to be logged in to be able to vote for this post.

Alternatively, if you do not have an account yet you can create one here.

Powered by Vote It Up