ID:48171
 


About a year ago when BYOND 4.0 beta came out, I got excited about working with BYOND now that I could finally implement my own GUI. To me, the interface was one of BYOND's biggest problems. Unfortunately, BYOND still has problems. While I have not grown tired of the idea of my game, I have grown tired with BYOND.

This post is basically going to summarize what I've worked on for so long, and where my work is heading in the future. I've wanted to say this for months, but never found the time. Well now, I have the time.






This, is Stellarsapien.



Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us


Stellarsapien at the core was meant to be a role-playing, space exploration and colony management game, designed to be played in either various short casual game modes or a hardcore adventure mode spanning multiple hours and savefiles to Alpha Centauri and back.

The game however does not take place entirely on a space station. Using a procedurally generated universe, players would have been able to take shuttles and land on planets or submerge into oceans and do various things, such as collect minerals, randomly generated creatures, randomly generated plants, etc. It would have been possible to encounter other stations along the journey and trade with them or just raid them for various technologies.

There is no way in hell I would let BYOND make maps by itself so my plan was to use an external C program I created to create large global maps like this:

Image Hosted by ImageShack.us

and then zoom in on sections (like that red box) and create 500x500 maps like this (yes, every map in stellarsapien is 500x500), which are then converted to text files and built by BYOND at the last step.

Image Hosted by ImageShack.us



To keep the station going players would have to cooperate. Fuel, Power, Hull Repairs, expansions, experiments and attacks are just some of the few things that have to be taken care of. The game was built to have a strong construction element. Using materials and resources players would have been able to build entirely new parts of the station. Not just rooms, but stuff like engines, nuclear reactors, shuttles, etc. In fact, the idea would be to start the station off with only minimal stuff and have players build it up however they like on the fly. The material system is huge. EVERYTHING in the game is made out of some material, which has various properties, densities, etc.. Some of the materials used for the alpha tests were:

#define NO_MATERIAL 0
#define TITANIUM 1
#define OLIVINE 2
#define CELESTINE 3
#define BARITE 4
#define GYPSUM 5
#define FLUORITE 6
#define QUARTZ 7
#define HEMATITE 8
#define URANITE 9
#define PYRITE 10
#define APATITE 11
#define ALUMINUM 12
#define IRON 13
#define GOLD 14
#define SILVER 15
#define PLATINUM 16
#define COPPER 17
#define NICKEL 18
#define ZINC 19
#define TIN 20
#define LEAD 21
#define DIAMOND 22
#define MELLITE 23
#define CERITE 24
#define GRICEITE 25
#define THORIANITE 26
#define ICE 27
#define BROMELLITE 28
#define GRAPHITE 29
#define SILICON 30
#define SULFUR 31
#define ARSENIC 32
#define SELENIUM 33
#define CADMIUM 34
#define INDIUM 35
#define ANTIMONY 36
#define TELLURIUM 37
#define MERCURY 38
#define BISMUTH 39
#define CHROMIUM 40
#define TESTGLASS 41


There was a lot more promising stuff, but I don't really feel like talking about it, because basically it's not going to happen on BYOND.

I haven't worked on this project in over 3 months, and I know the latest version of BYOND has screwed up the font a bit and introduced some new bugs. But what has bothered me most about BYOND are its limitations in the sake of simplicity. Now let me tell you, I have done a lot of stuff with Stellarsapien that I thought wouldn't be possible. The game handles huge maps, a gas system that can allow for an unlimited number of gases (currently at 14 though), fire, water, radiation, viruses, 30 organs per mob and a bunch of other stuff very well without going to hell. Hell, the gas system alone was so fast that if you left a door open to space you could depressurize an entire station within seconds, eventually I just had doors close automatically after 5 seconds to prevent this (although doors can still be blocked and jammed open). All this is mainly because of some good design that I have done though, not really anything to do with BYOND's power. I researched BYOND for MONTHS. Much of what you see here was programmed at the beginning of March and ended sometime in June.

BYOND is a language for 12 year olds to make games, and that has demoralized me more than anything as I go further and further into this project. It's slow, sluggish, it's just not the best thing for what I wanted to do. In the end, no matter how good the game got I couldn't really be proud of it because its something that I should have made when I was 12.

The final nail in the coffin was when I attended WWDC this year and decided I want to focus on iPhone development for a while. I'm working on 2 Apps for the iPhone right now, on top of some research project and a couple other hobbies I want to dedicate time to. I simply don't have time to work on BYOND game right now. I will basically get nothing out of completing Stellarsapien.

And it's just not fun for me to work with BYOND anymore. Constantly having to struggle with BYOND's gotchas and performance problems pisses me off. One such example: My game uses static backgrounds when you are in space, and no matter how much I optimize, the backgrounds just never display smoothly over a network (although they do work just fine offline). Christ.


That does not mean the project is completely dead however. As of a few days ago I have handed down the project to a group of people that have worked closely with me in developing it. They aren't going to complete the vision that I started with, but what they are going to do is make a playable game out of my work. Over the next few weeks, over the next few months, they are going to read through my code, fix bugs, cut some features, add some features, finish some art and generally change around some of the game's workings to produce a pure SS13 clone, and then they will expand from that I imagine. They will likely work with the same optimism I had when I first started.

I wanted to make this post, because the next time you see Stellarsapien on BYOND, it could be radically different.


Before I go, I just want to say that although I don't like working in BYOND anymore, I still do believe in Stellarsapien's original idea, and I have begun working on my own tile based engine in OpenGL. The progess is slow, but it's there, and I'm enjoying it. So if you ever see Stellarsapien in a polished, professional form outside of BYOND, you will know where it came from.


If you want to see the game in action, then be advised what you will see is an ALPHA, VERY buggy, VERY incomplete, and full of concept art, and is by NO means a reflection of the final product at ALL. There ARE bugs, and you WILL see them. For instance, if you try to ride those mechs around, and then you get out, you will never be able to move again. Some stuff is finished, but that doesn't mean everything is. But the server is generally up at: 70.90.61.145:11000. Stop by and check it out. And yes, one of the station layouts on the test map is a copy of SS13, get over it. You might need this font for the GUI: http://www.kiefersutherland24.net/PageFont.htm (BankGothic Md BT)

And that's the end of that. I'm glad it's finally over. Thanks for reading.
Not much I can say, but the game looks very interesting. I enjoy space related games, especially role playing games. Keep me updated with future non BYOND development.
This really sounds like something digitalmouse wanted to make. You should try getting him to work on the project.
Game looks very good :D
You know, it's not really anyone else's fault but yours that you hated doing it in DM. DM wasn't ever built for this sort of thing, and that's been said over-and-over again in multiple places.
another great, original, and well done byond game thrown into the dumpster bin.
whyy!
...i feel just the same way you do though, i'm not tired of creating my own net dreams but i am tired of BYOND as a whole.
Sorry it didn't work out for you. We tried. It's hard to make a program that is both easy to use and flexible. I should have anticipated that 12 years ago.
It's a shame things didn't work out for you here. This seems like a really well thought out game (proof that game designer is just as valid a job as programmer or artist, even on BYOND).

One thing I've got to ask though is why BYOND? Like you say, its fairly obvious that the language is intended for younger/new developers and this is pretty ambitious even outside of DM. Did it start out as something simpler and grew as you thought of new ways to go beyond the boundaries?



I should probably mention that Kunark used to post about some BYOND-like libraries he was working on in C (I think it was C) with some other people. You might be interested in digging through his blog and finding those. Might save you some dev time.
There were a couple reasons why I had ended up with BYOND.

First, I didn't come to BYOND with the intention of making a game, I simply wanted to see what the new 4.0 beta was all about. It turned out I liked what they did with the new GUI stuff, in fact it reminds me a lot of interface builder on the macs, so I decided to mess around with BYOND.

It's a long story as to how Stellarsapien finally ended up getting designed, but I basically went through a lot of game concepts, did a lot of research in optimizing code, started over from scratch about 3 times, changed the graphic style once, and a bunch of other stuff.

Now, the only reason I decided to go through with this was basically because BYOND already had the graphical tile engine and netcode working. Especially the netcode. If BYOND didn't have multiplayer I probably wouldn't have even touched it. It was also VERY easy to code in BYOND, but little did I know that simplicity would come at a price much later on.

It seemed like the more I learned about BYOND over the next few months, the less I enjoyed it.



The only thing I really got out of this whole experience was learning how to design and organize a game well. I don't think I'll be seriously attempting a game project again for a while though. Although, I do hear the Game Engine for Infinity will be publicaly available. Hmm...
It was also VERY easy to code in BYOND, but little did I know that simplicity would come at a price much later on.

Unfortunately, this appears to be a universal truth among computing languages (aside from Perl, which is neither easy to code in nor efficient). BYOND sort of falls in the middle as a language that is "real" (i.e.; not lego-building blocks), but has some inherent limitations in order to manage a lot of the behind-the-scenes functionality in a transparent way.

For instance, it has some frame-rate limitations because so much is processed on the server. Managing stuff client-side would be more efficient but would require a lot more from the developer, as well as from us, to support both modes. We are constantly working to improve on things (the 4.0 GUI stuff, for example, actually has some provisions for client-side events), but it is slow-going in a project of this size.

You sound soured on the system, but I hope you got some good things out of it (I hope everyone who makes an honest effort does). I think that, regardless of its limitations, BYOND is an excellent tool to help budding game designers, because it does allow you to get stuff up and running. The best games of my generation were those that were well designed-- good storyline, characters, randomization, and so forth-- and a lot of these games had far less glitz than the typical BYOND game (due to computing, not language, limitations of the day).

I disgree with DarkView about starting an ambitious project in lower-level language, because 99% of those don't go anywhere because there's nowhere good to start. You can't see any results and that leads to demotivation for all but the most persistent of us. At least with BYOND you can get something going. Sometimes it's about the journey, not the result. Or something.

That said, I can appreciate the frustrations in trying to workaround these issues with hacks-- you certainly aren't the first to express this sentiment and you won't be the last.
The game looks very good. It's a shame you will not be completing it.
Tom wrote:
(aside from Perl, which is neither easy to code in nor efficient).

I remember when I came to the choice of "PHP or Perl" way back when. I looked over the sources of two scripts relatively the same, and went with PHP. I think I'm happier for it. =)

As for you Obs, it's a shame you wont be completing the project in BYOND. Just because the engine has limitations, doesn't mean you can't keep your ideas for another language, and redesign the game so it'll fit better.
Tiberath wrote:
it's a shame you wont be completing the project in BYOND. Just because the engine has limitations, doesn't mean you can't keep your ideas for another language, and redesign the game so it'll fit better.

Yeah, just look at how Alien Hominid got started!
Like I said, I wasn't tired of Stellarsapien, I was tired of BYOND. It's possible that I might make an attempt at my own game engine some other day when the time is right. That would allow me to expand ideas even more and do some things that weren't feasible on BYOND.