Bay 12 Games Forum

Other Projects => Other Games => Topic started by: Fenrir on March 08, 2008, 10:28:00 am

Title: Strike the Code!
Post by: Fenrir on March 08, 2008, 10:28:00 am
So some of you are planning to make an MMORPG, eh? I can't help, I'm a Dabbling Programmer, a Novice Web Developer, a XXPixel ArtistXX, and I'm even worse at planning (probably the worst part).
Title: Re: Strike the Code!
Post by: Dark on March 08, 2008, 10:31:00 am
Copy and pasted!

Features eh...? For starters:

1. Ability to carve out tunnels and rooms inside mountains and hills.
2. Ability to alter the ground by digging trenches or making dirt paths.
3. Ability to murder trees and process them into usuable material.
4. Ability to make various items from rock and wood.
5. Ability to make walls outdoors with wood and stone.
6. Ability to attack traitorous dwarves.
7. Ability to destroy walls and fill in empty trenches.
8. Ability to collect plants and channel water to promote plant growth.
9. Ability to plant seeds outdoors and grow cavecrops in caves.
10. Ability to sleep in beds to slowly recover health.
11. Ability to eat to speed recovery when resting.
12. Ability to apply herbs to speed recovery when resting.
13. Ability to apply herbs to accidentally poison your best friend.
14. Ability to brew alcohol from various plants and crops.
15. Ability to play as a dwarf!
16. Ability to create simple tools and advanced tools.
17. Finally require tools to work with material, start with some tools.
18. Ability to give tools and materials to other players without having to drop them.
19. Ability to find metal ores while mining.
20. Ability to refine metal ores with smelters and fuel.
21. Ability to find coal to use as fuel instead of wood.
22. Ability to create tools and items from metal at a forge.
23. Ability to find gems while mining.
24. Ability to work gems into various shapes.
25. Ability to encrust items with gems.
26. Ability to examine an item to see its quality and what gems its encrusted with.
27. Ability to decorate items.
28. Ability to make melee weapons and armour from metal.
29. Ability to fight various monsters.
30. Ability to form different factions, groups or guilds.
31. Ability to fight or trade with other factions.
32. Ability to upgrade dirt paths into roads.
33. Ability to make signposts.
34. Ability to gain skill in various trades.
35. Ability to make better items and tools with higher skill.
36. Ability to deal more damage with higher skill.
37. Ability to play as a human.
38...
39...
40...

We would of course have to go into each of these in more detail as we add them. Plus theres room at the bottom to add more features!

One more thing, this would be far easier if we used tile based 2D graphics rather than 3D. So far ive yet to see a 3D game in which you can dig tunnels, excluding Wurm because that uses a tile system.

[ March 08, 2008: Message edited by: Dark ]

Title: Re: Strike the Code!
Post by: Fenrir on March 08, 2008, 10:33:00 am
You could use Toady's development goals and alter them for online play.
Title: Re: Strike the Code!
Post by: Dark on March 08, 2008, 10:42:00 am
I dont think it would work, theres too many of them, plus I would rather not copy Toady and Threetoe's goals, but rather make my own, which may be very similar in every way. Plus I need to choose a programming language and actually get good at it before I even start this insane project! Plus I need helpers.

So anyone who wanted to join in the previous thread that had nothing to do with programming, post here and vote for which language to use! Then we shall practice until we're no longer dabbling, maybe even until we're no longer novice! After that we can try create some sort of base program than we can start adding features to, hopefully with relative ease.

[ March 08, 2008: Message edited by: Dark ]

Title: Re: Strike the Code!
Post by: Fenrir on March 08, 2008, 01:49:00 pm
It would seem that interest has waned.

EDIT: Spelling

[ March 08, 2008: Message edited by: Fenrir ]

Title: Re: Strike the Code!
Post by: subject name here on March 08, 2008, 02:06:00 pm
I have one important bit of advice for you. Do not open source your code with the intention of having everyone else finish the game for you. That's how lots of projects die.

Many newbie programmers seem to think if they make their program open source random people from the internet will start giving them a hand. They won't.

That's why DF is fully playable and all the other ambitious games haven't even left the planning stage.

[ March 08, 2008: Message edited by: subject name here ]

Title: Re: Strike the Code!
Post by: Boksi on March 08, 2008, 02:10:00 pm
Actually, no. Don't expect a post every half a hour though.

I support 2d tile-based graphics, and would like to propose the following system for goals:

D: Demand
S: Sub-demand
T: Technical solution

D1: Starting the game:
It must be possible to run a certain file to start playing the game.
T1: Compile an exectuable file.

D2: Making a character:
It must be possible to create a character.
   S1: The character should be different from other characters.
   S2: It must be possible to play as a dwarf.
   S3: Other races, such as humans, might be implemented.
T2: The game must contain and save an extensive array of variables that is a character. They include race, looks and abilities.

D3: Internet connection:
The game must be able to communicate to a central server, which relays and coordinates data going between all machines playing the game. In essence, everybody is playing the same “level”, albeit in different locations both physically and datawise. They must also be able to interact with each other.
T3: The game must be designed around a certain system that allows for efficient multiplayer. It must also contain code that sends and receives all necessary information and applies it accordingly.

D4: Player action:
The player must be able to move and interact with his environment.
   S1: The player must be able to dig tunnels.
   S2: The player must be able to build various buildings.
   S3: The player must be able to destroy various buildings.
   S4: The player must be able to cut down/harvest and plant seeds and plants, above- and underground.
T4: This requires code that changes the variables, which I shall call character_x, character_y and character_z. It also requires code that changes what a certain tile contains.

D5: Player crafting:
The player must be able to make, examine, improve, repair and use various items.
   S1: The player must be able to turn wood into various items, such as beds.
   S2: The player must be able to turn rock into various items, such as doors.
   S3: The player must be able to smelt and forge various metal items.
   S4: The player must be able to improve a basic item with other items.
   S5: The player must be able to view the items and it’s improvements.
   S6: The items must be usable and used in various tasks such as mining.
   S7: The player MUST be able to brew booze and drink it.
   S8: The player must be able to plant, harvest and process various plants.
T5: This basically is just more arrays and HAS_<ITEM> boolean checks.

D6: Player skills:
The player must have various skills, such as mining, carpentry and lye making. It must be possible to improve them through using them, and they should affect success chance and quality.
T6: Just a large array, really.

D7: Fighting:
The player must be able to attack and be attacked, either by NPCs or other players. Various things to do should be in, such as various fighting styles. Skill and equipment should affect combat.
   S1: Wrestling needs to be in.
   S2: A detailed wound system should be in.
T7: This one’s a toughie. Lots of booleans, arrays, variables and plain RNG action is needed.

D8: Player-to-Player interaction:
The players should be able to interact with each other in more ways than just fighting.
   S1: The players should be able to barter various items.
   S2: The players should be able to form actual alliances, guilds and towns.
   S3: The players should be able to wage wars between alliances.
   S4: The players should be able to build roads and signposts.

D9: Various nonsense:
The word shouldn’t be boring; it should be varied. Ships would be fun to have, too. Carp, elephants, unicorns and GCSers. Magma. Crazy engineering projects. Varied plants, booze, alchemical stuff, minerals, rock types, trees, gems, coal and lignite, and lot’s of stuff like that.
T9: Devote lots of time into making a small array of data for each and every item, for one thing. have various kinds of weather and support for multi-tile creatures. Various kinds of mechanisms.

Feel free to subdivide the demands set forth here further, it'd be better.

Also, if we'll use tiles, what resolution should we use? 16x16 DF tiles? 32x32 tiles for more details? Some other size?

PS: It's waned, not wained, I believe.

Title: Re: Strike the Code!
Post by: Fenrir on March 08, 2008, 02:45:00 pm
I might steal that goal system for my own purposes.
Title: Re: Strike the Code!
Post by: Keiseth on March 08, 2008, 03:03:00 pm
Suggestion! Assuming you're not locked to a console-window number of "tiles" (80x25 I believe?) make your tiles variable width and variable height and allow the player or what not to use his own tilesets. Basically, akin to DF, but I was originally thinking of NetHack/SlashEM.

Even better, more akin to NetHack/SlashEM for now, make the area that the game is drawn in variable size as well. People with small resolutions will be able to use large tilesets at the cost of how far they can see without 'l'ooking (or equivalent.)

Title: Re: Strike the Code!
Post by: qwertyuiopas on March 08, 2008, 03:25:00 pm
Whatever.
I will still try to make a 3D one on my own as I already have opening a window and successfully using opengl done...
Title: Re: Strike the Code!
Post by: Boksi on March 08, 2008, 03:45:00 pm
(http://www.freewebs.com/bokaormur/DFMULTISPRITES.PNG)
Creatures are not to scale. Creatures are not on the same scale, even.

I dislike having such small tiles, but small, well-designed images are quite pleasant to look at if you can appreciate them. Mine aren't that great.

Title: Re: Strike the Code!
Post by: Fenrir on March 08, 2008, 03:48:00 pm
Where'd you get that goal system, Boski? Is that something you created yourself? I always fall short when it comes to planning.
Title: Re: Strike the Code!
Post by: Dark on March 08, 2008, 03:48:00 pm
Thats some good stuff Boksi, we could go through everything in more detail once we actually start, which wont be now. By the way I think we'll be going with 32x32 tiles or larger. We wouldnt want the graphics too hardcore, but not too ugly either. Also this is important, will we make the game, not the graphics, 2D or 3D. I mean like DF before the Z levels got added. 3D would be far better, but 2D is simpler.

2D example: You are restricted to a flat world that has various hills and cliffs that can be dug into. You cannot see or move on top of hills or cliffs because sight and movement is restricted to any tunnels dug into the hills and cliffs.

3D example: You can move all over the surface, including over hills and up cliffs and you cannot see anything underground. If you stand on a tunnel entrance tile then you lose sight of everything on top of the hills or cliffs but can now see and move underground.

The second example would need some kind of layering, with a surface layer and an underground layer. Plus even more layers if we want to allow players to dig tunnels downwards or upwards too.

In programming I have no idea how to do that! Anyway have we chosen a language yet? I want to get some kind of practice in before we start, otherwise we'll just create a Game instead of a +Game+, or worse, a !!Game!!.


Edit: Actually perhaps 64x64 would be better, my screen is awfully big and I dont want things to be too small, but not too big either.

Im also wondering if Toady could give us a few tips, though that's a lot to ask for.  :p

[ March 08, 2008: Message edited by: Dark ]

Title: Re: Strike the Code!
Post by: Boksi on March 08, 2008, 04:01:00 pm
I took a course in game design. In fact, today was the day I finished said course.

Anyway, if we're going to have 32x32, I can probably whip up a few graphics. Just as placeholders, though. Eventually I might be able to make it so the sprites would reflect your equipment as well, but that'd be after the game is actually somewhat made.

Title: Re: Strike the Code!
Post by: Dark on March 08, 2008, 04:42:00 pm
Thats all fine, but what programming language should we use?!   :roll:
For now I vote for C# since its less scary than C++.

quote:
He recommends C#, which is much easier on the fresh programmer, but can only run under Windows and may possibly run a bit slower than C++. It will prevent holes in the programming from appearing or at least ruining your comp.

[ March 08, 2008: Message edited by: Dark ]

Title: Re: Strike the Code!
Post by: Torak on March 08, 2008, 05:50:00 pm
What would the object that need graphics be, are we using ASCII or graphics, or a Mix?
Title: Re: Strike the Code!
Post by: Dark on March 08, 2008, 06:29:00 pm
Well while ASCII is awesome in its own unique way, I think we would be using some kind of isometric, tile based pixel art. We'll need a tile for every terrain type as well as tiles for where different terrain meet. Then I think we would add objects on top of that, like trees and rocks. How I have no idea, but the base of trees would be impassable, while the tops of trees would cover other tiles while being passable, but objects under them would be hidden behind the graphic. Or something like that anyway, I should find some kind of reference picture...

[ March 08, 2008: Message edited by: Dark ]

Title: Re: Strike the Code!
Post by: Fenrir on March 08, 2008, 06:46:00 pm
quote:
Originally posted by Boksi:
<STRONG>I took a course in game design. In fact, today was the day I finished said course.</STRONG>
Awesome. Have you any wisdom to share?
Title: Re: Strike the Code!
Post by: Kagus on March 08, 2008, 09:43:00 pm
I would like to point out that 2D graphics can look quite nice.  From what I've seen of Illarion, the graphics are just fine (and looking at some of the spells, most certainly tile based).  The only missing component would be the animations, something which I feel is particularly needed.


I'd rather have a junky looking character that moved around and interacted with his environment than a really cool looking one that stayed in the exact same pose for eternity.

However, graphics on the scale of Illarion would require full-scale graphical artists, not just knights of the pixel.  I don't know if we have anyone of that type around here.

Illarion has changing terrain (thus allowing the placing of crop fields and the construction of buildings/statues), and at least a rudimentary elevation system (might just be a trick of the eye thanks to some well-made isometric graphics), but I don't think you can actually dig into the ground.  I haven't played Wurm Online, so I don't know what it looked like or acted like when you dug into a hill or a mountain.

Title: Re: Strike the Code!
Post by: Boksi on March 09, 2008, 05:47:00 am
C# is okay with me. Never liked that note, though.

And when you speak of isometric, dost thou speaketh of this?
(http://www.freewebs.com/bokaormur/DFISOMETRICEXAMPLE.PNG)
The tunnel is terrible, but the rest is decent.

And remember, elevation is just another variable, although it makes some things like projectiles more difficult.

Title: Re: Strike the Code!
Post by: qwertyuiopas on March 09, 2008, 08:23:00 am
Wurm has 2 heightmaps, one above ground, and one below.
C# is not as much C as .net, and that is just confusing, and it puts it's own window code in, slowing everything down, but it has the code for premade components so it is more a simple personal choice.
Title: Re: Strike the Code!
Post by: Kagus on March 09, 2008, 09:19:00 am
It also has a built-in stupidity deflection system.  You can't program a suicidal doomsday device as easily in C# as you can in C++.
Title: Re: Strike the Code!
Post by: Dark on March 09, 2008, 09:25:00 am
Boski thats pretty much it, except more detailed. But for the sake of simplicity I think we should stick with + shapes rather than x shapes, otherwise movement would be kind of tricky and hard to get used to. The deeper people can dig the better, so if we can have a tonne of elevations I think we should.
Title: Re: Strike the Code!
Post by: Kagus on March 09, 2008, 09:38:00 am
X shapes would work better in an isometric view than + shapes, I think.  And it won't take people that long to get used to.  Hell, Diablo worked on an X grid, and you didn't see that deter people!


But if we're going for a top-down view instead, + shapes would indeed be better.

Title: Re: Strike the Code!
Post by: Dark on March 09, 2008, 09:48:00 am
Well I would like to get a mix between form and function, but if people are alright with X grids then theres no reason why not. We could probably use the keypad for controls.

[ March 09, 2008: Message edited by: Dark ]

Title: Re: Strike the Code!
Post by: Kagus on March 09, 2008, 09:55:00 am
Well, I'm currently running on a laptop, which doesn't have a keypad.  I had to switch the numpad secondary menu keys around so that I could play DF, so it would be nice if you at least provided the functionality for shifting controls over to the main keyboard.
Title: Re: Strike the Code!
Post by: Dark on March 09, 2008, 12:52:00 pm
We'll be sure to do that. If we ever get started that is.  :(
Title: Re: Strike the Code!
Post by: Soulwynd on March 09, 2008, 01:41:00 pm
I thought of making a DF mud sort of thing. Not exactly a mud, since it would need its own client to be more decentralized. I don't think the programming would be hard, but then I didn't think of adding all the details toady puts in his own game. I've done things like that before, it's not hard, I just don't have the patience or dedication anymore.

I can give a hand if people start a project like this tho. I don't mind coordinating projects or giving programming hints, since I've done it before.

Title: Re: Strike the Code!
Post by: Dark on March 09, 2008, 06:30:00 pm
Well I reckon we should do something. If everyone agrees with C# then maybe we could go through this tutorial that I miraculously found: http://www.publicjoe.f9.co.uk/csharp/tut/tut.html

Then once we're novice programmers rather than simply dabbling, we can try and organise outselves better. Then maybe we'll experiment with the code a bit to see if we can create any remotely game-like program. Then after a while we might become even become programmers rather than simple novices.

Then we coordinate our efforts and put what we learned to the test, or we fail and give up, if we havent given up earlier on.

If we dont all agree on C# we can try using C++ or something, but whatever we do we should do it soon. Talk doesnt give experience or get any work done. Once we get started it should get easier, or harder then easier. Or just harder, but easier to progress! Or perhaps not, who knows...

Title: Re: Strike the Code!
Post by: Fenrir on March 09, 2008, 06:51:00 pm
quote:
Originally posted by Dark:
<STRONG>Talk doesnt give experience</STRONG>
Sure it can! It can even make you superdwarvenly strong!
Title: Re: Strike the Code!
Post by: Mephisto on March 09, 2008, 10:19:00 pm
quote:
Originally posted by Dark:
<STRONG>Talk doesnt [snip] get any work done.</STRONG>

Actually it does this, too. From what I've learned so far, it's best to just start out talking. Start with the most complex, as in "I want to make a great game that does w, x, y, and z." Talk a bit and find out how to break everything down into the simplest parts possible. I've basically just defined top-down design.

Title: Re: Strike the Code!
Post by: Torak on March 09, 2008, 10:36:00 pm
I'll gladly help with graphics and the like, but I'm terrible at programming.
Title: Re: Strike the Code!
Post by: Kagus on March 10, 2008, 01:55:00 am
Well that's nice.  We've got several graphic artists, a couple wet-behind-the-ears programmers, and then there's me.    I have no skill with either graphics or programming, but I make up for it with huge loads of ideas.

Because the most important thing we need right now is more ideas, as we don't have nearly enough things to bog down the proggers with.

Title: Re: Strike the Code!
Post by: qwertyuiopas on March 10, 2008, 08:27:00 am
I THINK that C# needs a compiler that must either be bought or you get a limited version, and thats where C++ might be better.

edit: also, C++ has the potential for multiple platforms without a complete language change and rewrite, if it ever gets that popular.

[ March 10, 2008: Message edited by: qwertyuiopas ]

Title: Re: Strike the Code!
Post by: Dark on March 10, 2008, 09:47:00 am
quote:
Originally posted by Kagus:
<STRONG>Because the most important thing we need right now is more ideas, as we don't have nearly enough things to bog down the proggers with.</STRONG>

As someone who hasnt even written a single line of code yet, or even managed to completely decide on a language to use, or even know how to compile the code once its done, or what other software I may need: I really hope you werent serious. For now I would be happy with something I can actually move a preset character around on, nay, overjoyed. I havent even started anything and I'm already bogged down! The sheer mass of the lack of knoweldge I have is threatening to bend space and time!

Title: Re: Strike the Code!
Post by: Soulwynd on March 10, 2008, 12:06:00 pm
I'd rather use D myself. It's easier to program, has a built in compiler debuger, has a visual version now, and there are plenty of libraries for it now. I don't know if there's a free C# compiler, but there are plenty of C++ ones you can use.
Title: Re: Strike the Code!
Post by: Dark on March 11, 2008, 08:39:00 am
I'm just going to come in here all sneaky like and bump the thread.
Title: Re: Strike the Code!
Post by: Kagus on March 11, 2008, 08:56:00 am
Should we move this thread over to Fenrir's forum?  Instead of having our two seperate groups going off in different directions with the same goal in mind, why not just join together?  We could claim our own little segment of the forum, provided the great wolf consents.
Title: Re: Strike the Code!
Post by: Dark on March 11, 2008, 11:29:00 am
That would be fine with me, as long as we actually make some progress, people are all talk and no action. They're convinced that talking will help the game progress when all they're doing is worming their way out of it. If we dont do some actual programming soon the whole thing will die quietly in its little hole. I actually had to bump the thread, to no avail.  :(

Alas, all our hopes and dreams are shattered, at least mine are.

Title: Re: Strike the Code!
Post by: Aeloi on March 13, 2008, 12:50:00 pm
Sorry if I address something said before, as I didn't read *all* the posts, however, if we're going to talk isometric based graphics - why not go Zelda - Link to the Past style?(SNES) That would be freaking awesome... I think anyway.

Also as far as language, I would not recommend C#.  Definately feel that C++ is the way to go - it's not that scary.  Here is a free fully featured IDE: http://www.bloodshed.net/devcpp.html

Turns out the site also has programming tutorials and resources including OpenGL tutorials and game source among other things.

[ March 19, 2008: Message edited by: Aeloi ]

Title: Re: Strike the Code!
Post by: Dark on March 13, 2008, 01:05:00 pm
We'll keep it in mind for when we actually get around to it, thanks! I feel like a shining beacon has been lit. Awesome.
Title: Re: Strike the Code!
Post by: qwertyuiopas on March 13, 2008, 05:01:00 pm
NeHe. Opengl.
Title: Re: Strike the Code!
Post by: Keiseth on March 17, 2008, 05:56:00 pm
Aeloi, thanks for the link. I was trying to write some C++ in Notepad++ and using a seperate compiler and as far as I know, Notepad++ doesn't have any syntax checking. That made things a bit slower for me.
Title: Re: Strike the Code!
Post by: qwertyuiopas on March 17, 2008, 07:47:00 pm
I nearly have opengl pong, or a very primitive version, but its a start.
Title: Re: Strike the Code!
Post by: Gigalith on March 18, 2008, 12:12:00 pm
I'm going to bet that the reason nothing has been done is because no one knows how to use TCP/UDP. Given that that is the first step in making an MMORPG, no further steps can be taken.

So I present  this guide. It explains the dark and terrible secrets of TCP/UDP in C/C++. If anyone can survive the arcane and chthonic land of internet sockets and return victoriously with a @-moving-around-the-screen demo that works over the internet, then you will be able to continue on the path.

Title: Re: Strike the Code!
Post by: qwertyuiopas on March 18, 2008, 05:17:00 pm
Know what? I think Ill try for multiplayer pong!
Title: Re: Strike the Code!
Post by: Nadaka on March 20, 2008, 05:58:00 pm
I am a relatively new app developer with a BS:CS degree. I would love to work on this, but my time is very very limited between my dayjob and fiance.

That said, this game you suggest is not a single application.

It is 2 or even 3.
1: the model.
-hold the state of the world
-persists state to file system as needed
-determines outcomes of command queue

2: the server.
-provides an outside interface to the model
-asks the model for information
-sends it to the user
-recieves commands from the user
-inputs them to the models queue

3: the client.
-Connects to server.
-transmits commands.
-displays information that it is sent.

Under most systems 1&2 are (and should be) integrated. The server contains an instance of the model. The client can be implemented in any language, in fact many different clients can connect to the same server, one might be ascii based, another with sprites and tiles, and yet another renders everything in 3d.

my suggestion here is c++ for the server, as it has the highest performance you can get out of an object oriented language. The clients can be anything really, c++, C#, java, VB, python, anything that can open a socket over the internet.

Title: Re: Strike the Code!
Post by: qwertyuiopas on March 21, 2008, 06:30:00 pm
If anyone wants, I have a small opengl powered 2D game that could lead into this.
Title: Re: Strike the Code!
Post by: Pope Hannibal on March 22, 2008, 12:46:00 am
Microsoft has a free C# compiler, Visual C# 2008 Express. On top of that, there's an open source implementation of C# shipped as part of Mono, and it currently runs on quite a few different O/Ses.
Title: Re: Strike the Code!
Post by: qwertyuiopas on March 22, 2008, 01:41:00 pm
sorry about the load of posts, but it appears to me that the express edition of c# is missing features.
Title: Re: Strike the Code!
Post by: Pope Hannibal on March 22, 2008, 07:38:00 pm
Eh, Express is fairly good for being free, it's language complete, has essentially all the same capabilities as the full blown product. There's a few features missing in the IDE, but they aren't a huge deal.