SC: Decisions.. Decisions..

Posted By BOwen on July 7, 2012

I’ve had some interesting thoughts as of late. Learned a few more things. Made a few changes and tidied things up a bit.

I mentioned before that star types would be configurable through XML. Well that will no longer be the case. Instead, star configurations will be done in standard Torque script as datablocks. (Datablocks in Torque script serve the same function as structures in C). It’s still in ASCII and is MUCH easier for users to read as well as being a lot easier to handle internally. There’s just no reason not to do it that way.

The universe generation scripts will no longer be run off the main menus but rather in-game during the tutorial phase. It’s a bit more emersive and easier to handle. Again, no reason not to do it that way.

Today I’m working on cameras and usable, placeable objects. Hopefully, it won’t give me too much of a hard time. The docs and tutorials never seem to give me the information I want. Isn’t it always the case? Well that’s fine. I learn better through working it out on my own anyway. One byte at a time.. that’s how you do these things.

One interest idea I had was to allow the player to switch control over different crew members. That is if you have a crew you could take direct control over which ever one you want to do different tasks. I think it would make having a crew a bit more interesting. The problem I see here is that right now I’ve no idea how to take a multi-person team anywhere off your ship. Then again, once I have NPC AI figured out I’m sure a solution will present itself. I shall worry about other things until such time as I need to address the AI.

I shall (hopefully) soon be working on how to design ships. Have I mentioned this little tidbit before? There will be a selection of default ship designs to choose from but players will also be able to design their own but internally and externally to some extent. That’s the plan anyway. I’m thinking there will be an in-game editor (as well as an external one) that will allow you to piece together a basic structure and save the design. You’ll decide on the floor plan and the default specs. From there you can pay a shipyard to build your design and you might even be able to sell your design and see your ship flying around in your travels.

Will I be able to pull it off? Can my game engine do what I want it to? Well I have a sneaky suspicion that I can. It will no doubt take longer than I want it to but doesn’t it always? Well that’s the word for now. Back to work!

SpaceCraft: Keep It Simple Dummy!

Posted By BOwen on June 20, 2012

Wouldn’t it be like, totally awesome to make the game you want without leaving anything out? Every aspiring game designer has the next big idea that is full of every little idea that is the next best thing since sliced bread so of course the game has to be like, equally awesome right? So why leave anything out?

In my desire for a certain measure of realistic detail in SpaceCraft I’ve been doing some research as of late. Various types of nebulas and their properties. The structure and composition of planets and solar systems and the conditions of habitability. While all that is very interesting I was reminded that there are reasons other than schedules and budgets to drop a feature from a game. No matter the game you’re working on there is one question you need to ask for every feature:

How does this feature enchance game play?

If the answer is “it doesn’t” then you should probably consider dropping it altogether. I was originally thinking that randomly generated planets should include all sorts of details like core types, magnetic fields, whether or not there’s any tectonic activity etc.. but I as examined details of our own solar system most of the details I wanted to randomize appear to be common. There are for example just two types of planets, ones with a solid surface and ones without and nearly every one has some form of atmosphere.

Yes, a molten iron core to generate a magnetic field is necessary for a terrestrial planet to hold an atmosphere, but if every terrestrial planet in our own solar system meets that requirement then why on Earth should I randomize it? Suddenly the nature of my questions began to change from “Does this planet have a molten core? and therefore this, that and possibly some other thing?” to “Does it really enhance game play if the player has to check a planet’s core data?” and “So can we land on this planet or not?”

Why did I spend all those hours doing research only to arrive at the conclusion that it was a waste of time? Well honestly, it wasn’t really a waste but if I hadn’t gotten carried away by the complexities of my own vision I would’ve spent more of that time coding the basics of generating planet data. The moral of the story is: Not every idea we think is ‘cool’ will make a game any better. We need to examine them objectively and be willing to drop the ones that aren’t worth our time and energy. If it doesn’t enhance the game in some way then it’s not a priority. Your average player isn’t going to care about what lies beneath the surface of a planet unless it’s something they can use in some way.

As for the state of development I’m afraid I was thrown off my groove for awhile there. Between some volunteer work that ate up much of my normal work hours followed by a particularly nasty cold I didn’t get much done last month. I’ve been getting my groove back this month and planning out a much simplier system of generating planets and other stellar bodies. One problem of a one man team is there’s so much to do it’s hard to decide what to do next!

SpaceCraft: StarGen 0.1a

Posted By BOwen on April 26, 2012

It doesn’t look like much but finally I have something to show. I suppose a more experienced programmer would have a good chuckle at this relatively simple device but we all have to start somewhere don’t we? Everyone starts off as a “newbie” so let us bask in the glow of our “minor” accomplishments.

So what this is, is the beginning of SpaceCrafts universe generation. The main window right now is just a console display to give me feedback but later it will display detailed information on the major star types or well, that’s the plan currently.

Star Type data and generation odds are read in from an XML file so it will be player modable as I think I mentioned before. Most of the rest of the display is pretty self explanatory. I’m hoping a friend of mine will help me pretty this up a bit.

What the script is actually doing right now is randomly generating stars by mass rather than class. It then fudges the mass a bit and then calculates the star’s subtype. I decided to do it this way because the star’s mass can be used extensively in calculations and have the game look everything by star type turns out to be more combersome the more I think about what I want to do. So star type and subtype and by extention other features I haven’t worked on yet are all calculated by the star’s mass.

After that is figured out each star has a 1 in 10 chance of being randomly aged. (Approximately 90% of all stars are main sequence stars which is where I came up with 1/10 odds). As you can see from the screenshot the random aging produces a variety of results which are also based on the star type. A Class O star for example will eventually become a black hole while your typical G class will even up as a black dwarf etc.

The coordinate system right now is pretty basic. It finds a spot within a 100×100x10 space which I plan to also make configurable. Although personally I think a universe of 100,000 locations to fly around in is plenty big enough for most purposes. Well, ok technically it’s closer however many stars your have but that’s still not to be sneezed at.

It doesn’t save the data yet. I will hopefully get around to that in the next week or so. I’m becoming amazed at just how fast time flies when I’m doing something that seems so simple. Of course, thinking up a better way to do something you’ve already done doesn’t speed things along in the short term either. (It is worth the time investment though).

SpaceCraft: Oh Be A Fine Girl *SMOOCH*

Posted By BOwen on April 20, 2012

Apart from feeling like my head is going to explode if I cram any more information into it I suppose all is well. Several distractions are out of my way and I can spend more time working and less time, well, being distracted.

What I’m working on right now is the universe generation GUI and scripts. The game will support the 7 major star classes, O, B, A, F, G, K, M as well as user defined custom “rare” classes. Of course, the 7 major classes will also be customizable. I’m a firm believer in moddable games and am striving to make mine as configurable and flexible as possibe right from the beginning.

I’m planning on using XML for as much as possible including being able to define anything within the game that doesn’t require custom scripting. Naturally this includes being able to define new star types like brown dwarves, Wolf-Rayet or anything else players want to add, fictional or otherwise. At this time, any custom stars need to be defined prior to universe creation.

Another feature of universe generation is the random aging of stars for some interesting phenomion. Rather than simply saying ‘ok I want x % chance of a black hole’ in order to spawn a black hole somewhere, the game will take a look at the largest stars capable of becoming a black hole. Then if that star is old enough it will become a black hole in the game. This isn’t just limited to black holes. Young stars, planetary nebula, super nova etc will all be randomly determined by the star’s initial size and age. I have a good lead on how to generate three dimensional nebula which I’m looking forward to exploring so hopefully I’ll be able to put in a variety of nebula as well.

I’ve been thinking about randomly generated planets and have come to the conclusion that the best course of action for me is to use one simple algorithm but to have those routines available for modders. I’d rather spend months working on the gameplay than perfecting random terrain generation. I’ll go more into planets another time.

SpaceCraft: Learning not to wait..

Posted By BOwen on April 6, 2012

There are often times in our lives when certain things are out of our control and we need to learn to wait patiently for situations to change before we charge blindly ahead. On the other hand, the lesson I need learn is to fill those times with the things I can still do. This isn’t always to see. We can’t always think of something until we see the immediate need to do so but that shouldn’t mean we can’t be productive.

So now I get to kick myself a bit here. For several months I had to wait for personal matters to settle down, wait for new software, wait for money to become available in order to make sure this or that happened. Now don’t get wrong. Filling up that time with Skyrim or an old game from my collection isn’t necessarily a bad thing. However, I could have spent some of that time working on concept art or researching things I would want to know before I set about a task like designing my random star generation routines.

I suppose this is a bad habit of mine. If a certain aspect of a project is forced to be on hold I tend to want to wait until it’s resolved. So I need to learn not to do that. It’s not just research. Concept art would have been helpful to have done before I gained the ability to work on models and animations without worry of having the process interrupted (as was the case until recently).

Looks aren’t everything but when it comes to game design they have a huge impact on development. Millions are spent on a game so teams can focus on just one aspect of game development over the course of years to get one game done. Now I don’t want to copy that blocky look of Minecraft but I can’t afford to spend dozens of hours on just one model or texture either. That means I need to keep it simple-stupid or else I won’t ever get anything done. So that remains another significant challenge for me, deciding on the overall look of the game. Something that is simple and not very time consuming but also something that players can change easily with mods.

Another difficulty for me is simply to think small. I do believe it’s better to think big and then scale down as needed but my ideas simply keep coming and getting more and more complicated as I go. It’s an urge I need to resist up to a point or I’ll spend more time trying to figure out the best way to put it into the game and not enough time actually making the game. It may be a good quality for a designer but I have to code, model, animate and everything else as well so I need to find a good balance between the idea and implimentation.

SpaceCraft Dev. Begins

Posted By BOwen on March 31, 2012

Well it’s been a few months and life happened. Without going into too much detail I ended up moving to a new place, upgraded my OS to Win7, reinstalled everything, met the neighbors, fed the cats and the usual assortment of other things that somehow managed to take up several months of my time. Then again, playing Skyrim and Pharoah didn’t help with the delays but trust me, there were legitimate life reasons.. like getting my new OS taking longer than expected, the afore mentioned move etc.

I’m finally squared away and life is stablizing somewhat so I am now (finally) ready to begin development in earnest. I expect the first steps will take awhile as I’ve a lot to learn. Thankfully I’m a fast learner and most of it is just familiarizing myself with the C++ and Torque environments as well as the project files. I am already somewhat familiar with code, textures, 3D modeling & animation etc so I’m not too worried.

My main concerns for SpaceCraft lately are travel times and proper scale for planetary exploration as that will largely determine my approach for randomly generating a planet’s surface. Just how much should be explorable? How large should that explorable space be? Can you land your ship anywhere or only in predesignated locations and so on.

The immediate tasks at hand however (aside from learning new things), is building the initial environment for the tutorial level and random generation of the playable universe. I don’t expect much difficulting in simply generating the data but as I’m not yet very familiar with my game engine it will be an interesting task converting that data into a viable in-game map.

So on the coding side I need to review the main game loop and begin adding tools and options for universe detection and creation. I also need to consider detection and loading for game content. This specifically to allow for ease of modding. Having a highly moddable game is important for me. I really want players to be able customize the game any way they want.

For 3D models I need to begin building the tutorial level. Textures and PC model can use Torque defaults for now until I have a playable alpha of the game.

How to eat an elephant

Posted By BOwen on December 2, 2011

I’ve skimmed over the tutorials and information that came with Torque3D. There’s a lot to learn. It’s times like this when I remember why I’m not a big reader. It’s just as well, if you try to cram too much into your brain at once I have it on good authority that it will melt. I’ll just have to eat this elephant one byte at a time. (yeah I know, you don’t have to say it). Well in any case, the meal has started and I’ve sat down for a feast.

Now usually it’s a good idea to write your design docs BEFORE you start development. For whatever reason it doesn’t look like that’s going to happen this time. I’ll be sure to mention how much I’ll regret it later. It should also make for a more interesting post-mortem. I suppose we’ll see if I’m as talented as I know I am or just an idiot who has to learn by screwing up first.

So in my last post I dubbed my project SpaceCraft. So what is it? Apart from the painfully obvious “it’s a game”, it’s a game that takes place.. here it comes.. get ready for it.. in space! Here’s the High Concept:

A completely open ended, sandbox style SciFi where the player is free to do and build whatever they like within the game.

Hmm.. that sounds pretty good considering it’s the first time I put the idea into one sentence. So what sets SpaceCraft apart from so many other sci-fi games? I’m glad you asked. For starters the game will have a certain level of scientific accuracy, something which is notably absent in science fiction. The explorable universe will be substantial and players will be able to design their own spacecraft (among other things).

Yes. I know. SPORE allows you to design your own ships. This isn’t what I mean by designing your own. I mean you get to design the INSIDE of the ship as well. You can customize the components of the ship from engines to weapons. You can customize the textures. Just about anything you can want within reasonable limits.

The game will also be designed right from the beginning with custom content in mind. Importing textures into the game for example, will be as simple as placing image files in the proper folder. Custom meshes however will require a little more work but that can’t be helped. I will try to write tutorials for how to mod the game as I build it so everything should be well documented.

Starting to sound interesting? I can’t make too many promises yet. I have a bad happen of thinking big. In fact, I don’t know if it’s even possible for me to think small. There are so many other things I want to squeeze into this game and I’m looking forward to seeing the mods people make for it as well.

First thing’s first though. My first major challenge still lies before me, creating the universe! My first GUI and the basis for random universe generation should be simple enough. I already have a fairly solid idea of how to generate the data. Turning that data into a viewable in-game map is another story entirely.