Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Blacken

Pages: [1]
1
Introduction

So I recently started mucking around with writing a roguelike in .NET, and to save me some time I went and eval'd the various C and C++ toolkits that I could import into .NET and work with. It came to little surprise that they weren't user-friendly at all in their native languages, let alone in .NET, so I decided to start hacking together something that was more .NET-focused.

The first "real" release of Sharplike is prepped and ready. You can check out our full feature list at our RogueBasin page.

You can download Sharplike 0.4.0 here (4.3 MB). Documentation is still a little lacking; if you need assistance, you can visit our Sharplike discussion forums in our issue tracker. Or, if you'd like to be kept up to the minute with Sharplike development, you can SVN checkout straight from our trunk at:

http://opensource.edropple.com/svn/Sharplike/trunk

Hope you like Sharplike!

Questions/Comments

Why a new roguelike library?
Because the ones I've seen out there aren't very good for what I wanted to do. You design and implement .NET code differently than you write C or C++; the different structure leads to different semantics. You can pull in C libraries into .NET, but you have to do all sorts of ugly screwing around to make them work. Sharplike's intention is to provide similar features, within a conventional and user-friendly object model and while doing as much code as effective performance allows inside of .NET.

What about Linux and OS X?
Sharplike targets version 2.0 of the .NET Framework, and as such should run fine on any 2.x branch of the Mono Framework on OS X or Linux. I make no claims that it will do so, but I'll look into bugs related to running it on those platforms if any come up. I do not actively test in either, but I am intentionally concentrating on writing very cross-platform CLR code.

For developing in Mono, I hear MonoDevelop has made great strides; I've never used it.

Are you planning for any other platforms?
If MonoTouch hadn't gotten ganked I'd be targeting that. As it is, I'll evaluate MonoDroid when it hits and see if I can do anything with it.

Do I have to use C#?
No. In the near future I'll be adding VB.NET, IronPython, and F# projects to the Tests namespace to demonstrate using it in other CLR languages.

Building the solution is complex. Any way to make it simpler?
No. Unfortunately, I don't know how to better deal with VS2008 and VS2010 using the same codebase. Hopefully OpenTK releases an updated Build.exe fairly soon that can generate VS2010 project files, to cut down on the screwing around.

If you are on Windows, I strongly recommend upgrading to VS2010. Even if you own a copy of VS2008 I'd go and get Visual Studio 2010 Express; it's that good. Also remember that if you're a college/university student, you can get a ton of Microsoft tools and operating systems for free through MSDN Academic Alliance (if your school participates) or DreamSpark regardless of your school's MSDNAA status. VS2010 is absolutely awesome, and well worth it.

Why doesn't it have <function that other roguelike library has>?
One of two reasons. One, maybe I didn't need it or foresee needing it. Two, maybe it's already in .NET. Like, I'm not going to have a libtcod style "configuration parser"--System.XML is good, XML serialization is already built-in, and you can use Nini if you want INI-based files (or a different style of XML parsing). I'm not going to have data compression, because SharpZipLib is already right out there available. I'm not going to reinvent the wheel--I'm going to build useful abstractions for roguelikes, where they are applicable.

.NET is slow, blah blah blah
Not for my purposes (and, for anyone who isn't writing Dwarf Fortress, probably not yours either). You're welcome to use libtcod or whatever else you want.

Mono, Novell, evil, RMS says so, blah blah blah
Don't care what RMS says; this thread is a No Freetard Zone. Got it? Thanks.

What is the license of the code?
It's currently licensed under the Common Public Attribution License (CPAL), version 1.0. This license is a derivative of the Mozilla Public License. It is not GPL-compatible; it is compatible with linked LGPL libraries. You can read the full text of the license here or a simplified (but not legally binding) explanation of the license here. Make sure to read the MPL page to understand your rights and responsibilities when using CPAL-licensed code.

All dependencies will always be CPAL-compatible, and usable in closed-source code (CPAL makes no claims on your code, it can be under any license as far as CPAL is concerned--the problem is that the GPL decides that CPAL is incompatible with it, not the reverse). OpenTK is X11-licensed.

Will you relicense it for me?
I'll consider relicensing under the CDDL or MPL if asked; I will not relicense to a GPL-compatible license. This is not up for debate; if you really care you can PM me for my reasoning but it's not a topic for discussion here.

Why do you hold the copyright?
Simplicity. Me, Karantza, and Total_Meltdown are all good friends, and we intend to transfer copyright to our game dev label when we incorporate it. I'm a little more knowledgeable and conversant with the ins and outs of copyright, and it was my project idea to begin with, so I'm holding it.

I'd like to contribute, how can I do that?
Drop me a PM here on the forum, and we'll talk. I'd be happy to have some help. Disclaimer, though: any contributions will require assigning copyright to me personally for now, and our game startup once that launches.


Contributors
  • Blacken
  • Karantza
  • Total_Meltdown


Any feedback or suggestions are appreciated.

2
DF Bug Reports / [0.31.01] Strange material pathing/enumeration
« on: April 02, 2010, 06:04:35 pm »




So...yeah.

3
DF Dwarf Mode Discussion / HFS causing FPS implosion?
« on: June 06, 2009, 04:43:58 pm »
After cracking open the HFS, my framerate went from 300FPS to about 60FPS. What causes this (no FS have un-H'd) and is there a way to reverse it (maybe by flooring over the glowing pit)?

4
I'm in a fortress without pets or trees (yay deserts). I'd love to be able to tell my military dwarves to use metal bolts for practice. Not the iron and steel ones, of course, but I have more than enough silver to pave my 40x20 meeting hall and I want to use it for something worthwhile.

Maybe a three-way toggle: "Marksdwarves Don't Practice With Metal Bolts" / "Marksdwarves Practice With Cheap Metal Bolts" / "Marksdwarves Practice With All Metal Bolts"?

5
DF Gameplay Questions / Dwarf stats?
« on: July 20, 2008, 11:21:34 am »
I've got a couple dwarves who have been sparring now for about three years. Both are Ultra-Mighty and Perfectly Agile--and not even Tough, just "normal" for toughness.

Can some dwarves just never increase certain stats?

6
DF Dwarf Mode Discussion / Catsplosions: why you should fear them.
« on: July 18, 2008, 11:33:22 pm »
I started the game with 4 cats, a horse, and a donkey. Out of masochism I added 4 dogs, 2 cows, 3 more horses, and 3 more donkeys later. A few mules found their way in there too, mostly because I bought their cages to smelt.

Five years after the game started...this is the result.

Spoiler (click to show/hide)

7
DF Bug Reports / [39c] Liaisons keep talking when paused
« on: July 18, 2008, 01:43:19 pm »
I was just playing a new fortress and the liaison was trying to whine at my leader dorf while I was laying out some mining areas.

"Let's talk about your situation." So I hit space to pause, so I could finish designating. Undeterred, the still-paused liaison asked "what can we get you next year?". The usual trade screen did not show up, but, still paused, the liaison says "remember, trade agreements strengthen bonds, etc. etc." as if I hadn't ordered anything.

8
DF Suggestions / Hollowed out construction areas
« on: July 15, 2008, 06:02:55 pm »
First: I love the ability to now lay out "fields" of construction.

Second: It would be far, far more useful if you could designate a "hollow" field, like so:

Code: [Select]
XXXXX
X   X
X C X
X   X
XXXXX

(The C is not a tile, but is where the cursor is centered.)

I'd think it to be pretty useful.

9
DF Community Games & Stories / Dwarven Musical Chairs
« on: January 21, 2008, 01:58:00 pm »
Signups are closed, the game is in session. See the current game scores!


Hey, folks. Instead of a normal succession/Bloodlines game, I'm going to be pitching something different--a "musical chairs" game, where everyone playing plays a fortress for a week, then passes it on to the next guy. This way, everyone involved gets to play a new fortress (or, sometimes, their old one). And there will be prizes at the end of the contest.

The rules are simple, and follow later in this post. The majority of them were cribbed from SupremeOverlord over on Ars Technica, so consider credit given.

TO JOIN THE GAME
Email (ed [at] edropple [dot] com) with the following information:
-Email subject of "BAY12GAMES: Dwarven Musical Chairs" (this is so my filters pick up on it, any email that does not have this subject will be ignored)
-Your forum name
-Your relative level of experience with the game
-Any attachment-size limits to your email address (for example, GMail is limited to 20MB attachments).

I will respond to your email giving you the email address of the person you will always send your fortress to. If you have a problem with someone else knowing your email address, tough--don't sign up for this game.

At the end, there may be prizes.

PLAYING THE GAME

The main objective of this contest is NOT to eliminate players. The objective is to create as many parallel successful fortresses as possible. Everyone who plays is on the honor system to at least TRY and do a good job. This means that even though you know you're not going to see a given fortress again for maybe 5+ game years, you should try to do the best you can to plan for the future anyways. As an example, when a dwarven caravan comes, and you have a meeting to discuss what you'd like to import the next year, please choose what you think the fortress will actually need. Don't order up a bunch of piccolos and toy boats because you think it'll be funny.


Rules as follows:

1. Each player creates their own starting region and selects their own starting equipment and dwarves, with the restrictions listed below.
2. Every player will recieve the e-mail address of the player "after" them, and will zip up and send their current fortress to that player every Sunday (or earlier if they wish), and then begin to play the fortress they just recieved. (they will also copy me with each game, so in case someone drops off the face of the earth the most recent save will be available).
3. Every player will recieve 1 point for each full season they play with the fortress that is currently "theirs", up to a maximum of 4 points per "session" (i.e., each player gets the most points by playing 1 year per week, but may play more if they want to, and someone too busy one week to play a full year gets partial credit). To make it easy to keep track of, whoever is playing at the moment the season changes gets the point. The exception to the rule of 4 points per session is this: if a player does not complete a full year, the player after him or her can finish the previous player's turn and their own for full points. For example, if Alice plays two seasons, she gets two points; if Bob gets the fortress next, he can play the remaining two seasons of Alice's turn and the four seasons of his own, for 6 points.
4. When a fortress is no longer playable the player whose turn it is AND the previous two players to hold the fortress each lose 5 points. (This is so players do their best to make their fortress survives long-term, not doing their best to sabotage it for the next player.)
5. When there are fewer fortresses than active players, whichever player has the lowest score is removed from the circle of fortress and whoever used to send them their game weekly moves on to send to the next player. (It is possible, if not likely, that before the first fortress dies, one or more players will have withdrawn due to time constraints or personal lives getting in the way, in which case no player removal may be necessary). In the case of a tie, I'll use a random number generator to decide who goes.
6. The game ends when there are only 3 fortresses left. At that point ranking is determined by points of the remaining players.
7. Unless a showstopping bug is found, we will use the current version (.33g) all the way through the end of the contest. This way we don't have to worry about some people not upgrading when a new version comes out.
8. Players are on the honor system not to use any game utilities such as reveal.exe.

Restrictions for start location:
a. Starting region size between 3x3 and 6x6 (there are currently bugs reported with 2x2 areas and anything over 6x6 takes too much CPU time)
b. To at least be mildly challenging, you may not play in an "easy" biome whatsoever--no Joyous Wilds, no Mirthful, no Serene, no Calm.
c. If you start in a region with an aquifer, you must personally penetrate it before sending your fortress on to the next player.
d. You must either start with magma, OR with at least one starting biome with a fair amount of trees ("Woodland" or "heavily forested", or a lot of regions marked "sparse") to allow sufficient crafting.
e. Rename the folder after your Bay 12 Games Forum username. (i.e. I would change the folder from "Region1" to "Blacken")
f. Remember to embark with supplies for building a long-term fortress. Don't show up with a large pile of food but no seeds, for example.

A fortress is defined as "no longer playable" when:
a. There is no food and no immediate way to get more (i.e. no farms with pending harvests, and no animals to hunt/slaughter), OR
b. There is nothing to drink and no immediate way to get more (i.e. no unfrozen water on map, no booze, no plants to run through a still), OR
c. The only dwarves left are non-workers (nobles, babies, children, champions, weaponmasters, injured dwarves, insane dwarves, dwarves in prison), OR
d. There are fewer dwarves left than the year of the game (i.e. fortresses start in 1051, so if it's 1061 and you have less than 10 dwarves), OR
e. The fortress is subjected to a severe flood of water or magma, rendering the majority of it uninhabitable, OR
f. If something else not listed happens that you feel that the fortress you were just mailed is unplayable, it will be evaulated by me.

If a fortress that you receive falls under one of these categories, e-mail me.

At a guess, the game will probably run at least 2 months. If you're not willing to play at least one season a week for that long, don't sign up. If someone doesn't play a full year for two weeks in a row, they'll be removed.

At the end of every player's turn, they will receive an extra point if they upload their maps on DFMA and post it here; they will receive another two extra points if they write up an in-character journal of their fortress and post it in this thread (screenshots are a plus, too), with a link to the DFMA map. (The DFMA map is a requirement in order to get the two points from the journal.) Put some effort into the journals; if it's a couple lines long, I'll LOL at you and won't award points. You guys should know by now what these things require.     :)

[ January 21, 2008: Message edited by: Blacken ]

[ January 21, 2008: Message edited by: Blacken ]

[ January 27, 2008: Message edited by: Blacken ]

[ January 27, 2008: Message edited by: Blacken ]


Pages: [1]