To all SSC Station occupants
Thank you for the donations over the past year (2024), it is much appreciated. I am still trying to figure out how to migrate the forums to another community software (probably phpbb) but in the meantime I have updated the forum software to the latest version. SSC has been around a while so their is some very long time members here still using the site, thanks for making SSC home and sorry I haven't been as vocal as I should be in the forums I will try to improve my posting frequency.
Thank you again to all of the members that do take the time to donate a little, it helps keep this station functioning on the outer reaches of space.
-D1-
I'm making this post so that my knowledge is shared among the people of this forum. It's bad enough i've fallen to some obvious pits in development, so why not benefit the rest and help avoid some very painful and discouraging situations. I've found myself burned more times i can remember 😥
I will split the whole subject in multiple posts in this thread so it's easy to read.
GAME OUTLINE - Draw a road map.
LANGUAGE AND ENGINE - How to pick.
CONTENT PIPELINE - The jabberwock.
PEOPLE - To team or not to team?
Hope you enjoy it and benefit from it ... 🙂
This is not the games design document. It's simply a rough sketch of what kind of game it is and the very basic features it will have. Don't be specific in any area as that can change in time. Here is an example ...
BUDGET: 100$ maximum which i'm willing to spend on things that i may need in the future like a software but not on content like textures/models.
THE CAUSE: I'm making this game for the pure fun of it.
REWARD: I will not try to actively sell it but if someone is interested in it, i'll see. I can't wait for the others to burst in tears of joy or jealousy ... 😈
THE SACRIFICES: I'm coming from work back at 6:00pm every day except weekends. I'll do 1 hour each Mon,Tue,Thu and 4 hours at Sat. I'd like to do more but if i try, it'll probably burn me up faster.
THE LEARNING CURVE: I'm past my days of learning so i'm just going to use whatever language i know but if the rendering engine requires playing around i'll do it just to get things working but not further.
GAME: Single player only.
GENRE: Action space simulator game.
PERSON: 3rd person view but i'm considering adding a 1st person too if that's not too much work.
ENVIRO: Space because it's easier implemented.
DEVICES: Mouse and keyboard primarily. The first person view (if i do it) would really benefit from the joystick but it would be a hassle to switch from 3rd to 1st view. Maybe it'll give it a try and then decide.
GENERAL STORY: I'm a trader in space who makes money by trading and doing missions.
ACTION ELEMENTS: There will not be large battles as it's not going to be a military style game, but a fair amount of conflict would be present if pirates would try to steal my cargo.
GAME LIFETIME: I'm considering making progress hard by raising the prices of new items very high. Also it might be nice to provide a ranking ladder of lots or ranks that would unlock new stuff to buy and trade as well as new places to go.
IMMERSION: I'll concentrate on sound more than in visual detail. One thing i will pay close attention is control over that players ship. That should be easy to pickup but provide room for advanced maneuvers and improvement of flying skill if the player wishes it.
WEBSITE PROMOTION: I'll subscribe to a bunch of forums and create an avatar or signature that will tip who ever reads my posts. Maybe i'll even link the images to some page that will give more information about my little gem.
DISTRIBUTION: I'll ask spacesimcentral.com if it can lend me some space to put the project up but i must first have to have some playable stuff of at least medium quality to put up there ... 😀
That's a tough one but we'll try to do it with baby steps. Just remember the 3 key rules.
A. There is no such thing as an 'all purpose' language or engine.
B. There is no need to re-invent the wheel.
C. There is no way you can keep learning for ever.
So let's start ...
1. Decide whether you will use a programming language with a rendering engine or a game maker package. If you don't have any experience in programming you should go with the second choice. If you choose to use a game maker, you can stop here as they pretty much provide all the help you'll need.
2. Make a list of all languages you know or feel comfortable working with and GOD please don't pick C++ just because you've heard that game developers use it or it's fast, ... etc.
3. Do some research for rendering engines and be extra careful to note the tools (if any) they provide, the community and on-line resources available (as you'll need a lot of them), the languages they support and their cost. Also don't neglect to check their development status as some may be dead, abandoned, in Alpha or Beta or have serious bugs that can cause problems. A good indicator (but not the only one) is whether there are any titles released with it.
4. WATCH OUT for the content pipeline they use. The best case is when an engine can load and use a number of different formats of models (.X, .OBJ, .MDL, .3DS, ... etc), images (.png, .dds, .tga, .jpg), sounds (.wav, .mp3, .ogg), ... etc.
5. If you're serious about protecting your content (i'm not) you should also check if the engine supports compression of data in PAK files or some other proprietary format. It's not uncommon for rendering engines to provide proprietary locked (read only) formats for content that can be used with that engine and cannot be converted back to another format.
6. Ask around about this engine. Don't just go in the forum of that community and ask something like 'Hey, is this engine good?'. If do decide to ask that community, consider only the comments of old members but be very cautious about them.
7. Download a tech demo or even a copy of the engine and check the code samples. Test them, tweak them and briefly explore the structure of the engine to see if you feel comfortable with it.
Choosing the right language and engine is mostly a matter of preference based on existing skill, experience and some other factors like time, .. etc. As this is probably the most important part, if you find the right development tool, it's well worth to spend your cash (if you have) to buy it. Other peoples choices should not dictate you're going to use and how you're going to use it ... 🙂
Some engines i've come across (some of them are free, others in Beta, others dead) ...
Torque
Ogre3D
Truevision3D
Irrlicht
Unreal Development Kit
Genesis3D
DarkBasic
BlitzBasic
... and many more which i'm sure you'll find with a bit of googling.
That's the scary part.
First, get some free textures and models from the internet to do your testing. Remember that you DON'T EVER create something you don't need. It's a waste of time, it clutters the project and it's highly insecure to invest in something purely out of the notion that it will be needed at some point 😕
1. Get a list of tools for your various content (modeling, texturing, drawing, video editing, sound editing, music composing, ... etc).
2. Evaluate their import and export capabilities to make sure that the formats they support are also supported by your rendering engine. If something like that isn't possible, try to find a free converter to do the job.
3. Download the application and spend some time to get familiar with it and see if it feels right to you. Don't dismiss the rest of the tools just yet. This is for picking what you're comfortable using since you'll certainly need to do some content work yourself, at least in the beginning. Later on you may find people that want to join you and it's likely that they will like to use some other tool, if they don't already.
4. ORGANIZE, SIMPLIFY, CLARIFY. Content files tend to pile up REALLY FAST. Structure your content in folders and keep your editable/source content in different folders than your finals.
Here are some tools i like using ... 🙂
MODELING
-Milkshape3D
-Wings3D (My favorite).
-Blender
-Roadkill
ART
-GIMP
-Paint.NET
SOUND
-The free Aduio Editor.
-Daniusoft Audio converter.
VIDEO
-Wax video editor.
I really wouldn't like to talk about this subject but since it's a common thing, here i go.
First, having a team or being a part of one has many challenges and none of them has anything to do with skill but with communication. Things don't just come crushing down suddenly. They progressively work their way to a point where it's inevitable. I'm not talking about a paying project !!!
The people that will ask to join your team or the the people you should ask to join the team are NOT professionals (since you're not paying) but they must be able to work in a professional (or close) manner and produce near professional quality stuff.
Things you'll need BEFORE you go recruiting ...
1. At least a working sample of what you're creating.
2. A website of your own (yep, forget asking spacesimcentral.com to host your project), where you're providing all the details of what you're seeking, like the expectations and minimum requirements for every post you're recruiting.
3. A nice team and content organizing tool to install on your website.
4. At least a basic design document to hand over or e-mail to people (don't post it on the internet).
... and finally ...
5. REALIZE that you will be managing more and producing / creating A LOT less if nothing at all.
In a project that doesn't pay, the manager is accountable to the team and not the other way around. Keep that in mind ... 😉
Hope you liked all the articles ..... wish i had time to elaborate more, but i don't think that you could stand it ..... 😆 😆 😆 😆 😆
Some nice insight here Micmanos.
Kinda opened my eyes to what I would actually need to get started on my own project and now I can see why a lot of projects never see the light of day. I will add this article to something new I am configuring for the site update.
So any other devs out there please place your wisdom here for all to learn from 🙂
Nice.
This will help people who want to develop a game but do not know where to start.
A "case history" or example project would round this out nicely.
.
Actually, all that is before you start 😉 or in order to start if you like.
Unfortunately, that's a bit tough to do since it would require an actual project but there is one good way to actually see how a game is made. Download a community driven open source game project and watch how it's structured. Watch the folder structure, the formats of the content and how it's managed in general. Watch the way new content is injected into the existing content and how replacement is made. Watch the function of the website and any updating mechanism it may have. Find out about the project and what tools they use for various things like the menu, the world, textures, models, sound, coding, .... etc. Don't be afraid to open files and examine them. If a format is unknown simply use Notepad or Notepad++ to view it's contents. You'll be surprised as to how many of the files actually contain editable and clearly readable information !!!
PS: You can start by browsing the installation folders of any existing game you've got on your computer and you'll learn plenty of useful information, coming straight from the top developers. When i first did that, i was surprised of how demystified i got regarding games and how they are built .. 😎
Care to explain why?
PS: let me guess, you're a java fan?
Certainly, but first let me clarify that i'm not against any specific language. C++ is the hardcore of computer programming as it's as close to assembly and its power is breathtaking. No doubt the things you can do with C++ surpass most things in existence. However, and this is a typical response from many C++ gurus, to take advantage of the power of C++ in its very core (like direct hardware access, direct register and CPU access) you'll have to be more than proficient in it and that's something that you cannot achieve easily or fast. The learning curve of game programming itself is so steep, it reminds me of this (the learning curve of allegiance in respect to other games) .... 😆 http://www.freeallegiance.org/FAW/index.php/Complex_learning_curve 😆
I guess, it all depends of someones agenda. If you're going for pro in the gamedev industry, by all means don't listen to me. C++ is the right tool and you should learn it, along with other things, as good as you can. Somehow though, i suspect that that's not the case with many of us. From VB6, Java, Pascal, Delphi, C, C#, .NET, Python (sorry if i missed anyone), people want to use their knowledge to create something, have fun doing it and share it with others. It's a hobby that needs to stay fun and easy to do. It's really as simple as that and i didn't want to imply anything or start a flame war ... 😳
😆 No, but that was a good one ... 😛
What about Assembly? 😆 😎
At the moment i'm looking into C#.
Though i never did windows programming, i'll go ahead with my secret-but-probably-will-never-finish/start project.
I already chose OGRE3D plus the other one for physics i don't remember. 😀
But....
Who knows.