PDA

View Full Version : Abandonia Open Source Strategy Game


goblins
03-01-2005, 08:03 PM
Ok this is on topic on this thread what im proposing is an area "programmers forum perhaps" to increase the sense of community around here.

Perhaps allowing the would be programmers to come up with a special abadonia strategy simulation or other type of game - it would be GPL in nature - someone could get the ball rolling with a simple game and anyone can take the code and fiddle with it - you might end up with 10 or so versions of something - let it take an evoluationary role whatever the creative minds around here come up with.

It would be a sideshow to the main site but it might be something to consider to incresae involvement on this site and who knows the guys and gals might come up with a good quality game.

Of course it would be a 100% clean slate to to start with.

twisted-mystic
03-01-2005, 08:07 PM
Heh, you beat me to the post Goblins. Maybe we should pick a language? There is only so much portability between different ones.

And are we comming up with a common theme or is everyone going to work on their own version? I would think that having many people working on the same project could make a damn nice game.

goblins
03-01-2005, 08:11 PM
but it shouldnt distract from the main abandonia website but it could be linked - well dunno im totally hopeless at programming languages apart from http LOL

That said pearl c++ visual basic. I would have a similar idea to the angband variants - allow programmers to change it ever so slightly or a complete rejig and then put the different versions up on the main site. Invite people to change the code etc contribute music graphics etc.

But yes it has potential but i guess its up to kosta and co weather they want to allow it or weather it is to much off the beaten track.

Being a open ended project might mean a lack of co ordination but groups could organise themselves in 5-10 to perhaps agree to work on a common variant or improve on existing code.

Comments are welcome of course esp from admin.

twisted-mystic
03-01-2005, 08:16 PM
Well, if the Admins would allow, Might i suggest we work up some kind of rough outline so that there is a core program for any eventual developers to work on?

twisted-mystic
03-01-2005, 08:19 PM
Maybe I could do character art... I'm working on animé

Thats Sweet!! :ok: Artists are the hardest thing to come across by what i've found. What kind of look should we go for? that early 90's RPG style? Or maybe something a little less pixilated?

Havell
03-01-2005, 08:20 PM
Yeah, I could draw some things.

goblins
03-01-2005, 08:21 PM
danny252 - yes that is good anime art contributions may be able to be used - we want it so anyone can pick it up make solid changes and re submit it as a seperate or as a subsidary project others can take and run with - to open ended and loose it becomes a bit distracted but to tight and many wont contribute - have you guys had a look at the angband (variants website) where they have 20-30 different versions. Anyone is able to run with it though.

Im thinking hte same thing. Dunno lets see what admin have to say keep it coming though

QBasic well its an idea but other programming languages may tend to dominate.

This is going to be come a big thread i have the feeling

goblins
03-01-2005, 08:23 PM
you could have different graphics sets - or perhaps if 5 or so games get going those involved could have a forum where they make a call for specific graphics and others that could do it could contribute

We have anime, early 90s RPG style

Anything else.

Danny252
03-01-2005, 08:25 PM
stick figures?

goblins
03-01-2005, 08:31 PM
text based game ? thats real old school.

twisted-mystic
03-01-2005, 08:36 PM
I also have a big book of Java... and my dad's books
Ooh visual C++ books!

I've got a few e-books myself as Kon-Tiki can admit.

have you guys had a look at the angband (variants website) where they have 20-30 different versions. Anyone is able to run with it though

I think i see what your saying Goblins, but would'nt we need some kind of core game to get it started?

wormpaul
03-01-2005, 08:41 PM
Cartoon based graphics :ok:

Rogue
03-01-2005, 08:44 PM
I can test it. :D

Testers are hard to find too? :whistle: :blink:

goblins
03-01-2005, 08:45 PM
well you would need a webpage - forum link here and probably other aspects but im sure once up someone would contribute some starting files and a basic game that could be worked on - the collective conttributions woudl determimne what it is and how it evolves. You could have several going at once.

twisted-mystic
03-01-2005, 08:49 PM
I've got webspace i can contribute, Who wants to start on a core game?

Kon-Tiki
03-01-2005, 09:02 PM
Well, I do need to hone up my Java skills for the upcoming exams, so making a core engine in it would be good practice. It seems like I tend to boost my skills much better in semi-big projects than in tons of tiny ones. They're just good for finger-practice :D

I do agree with Twisted. We do need to agree on what the core would be like first, or we'd have some people make a turn-based strategy game and adding realtime strategy elements to it, which'd be incompatible with either the code itself, making it ilegible, or incompatible with the gameplay, which makes the game crap to play.

twisted-mystic
03-01-2005, 09:03 PM
Is it safe to assume we would require OOP?

Danny252
03-01-2005, 09:05 PM
I can get us a forum for discussion

feminista
03-01-2005, 09:06 PM
On the subject of graphics, you could do early 90s RPG AND anime. Think Disgaea. 16-bit sprites + pretty anime'd-out drawings == good fun.

Myself, I do some C++, which I think is always a good choice, since I doubt we're too worried about portability. But really, I haven't done much in the way of games programming (though I've een trying to lately). htpp://nehe.gamedev.net is a good place to start, anyway, if you plan on using OpenGL.

Anyway, game projects tend to die pretty quickly, but I'll contribute as much as I can if we can find someone who has actual programming experience.

Kon-Tiki
03-01-2005, 09:06 PM
Easiest way for open source, no? Want to add more enemies -> Create extra enemy objects. Want to take .txt savegames to something only the game can read -> Edit the saving function (Btw... Dunno how to write to files in Java yet >_> Can read from .txt files though :D )

Danny252
03-01-2005, 09:10 PM
Kon-Tiki, random guess, but try looking for random access file tutorials for Java. Thats the name of it in Qbasic and Java and QB are similar.(ish)
Basically we can just rename a .txt file (file1.sav) and it should work. I got it to save to a custon .dat :)

TheVoid
03-01-2005, 09:11 PM
I could help with graphic stuff and some plot/dialogue.
Can't promise anything tho :whistle:

Danny252
03-01-2005, 09:11 PM
oh and I can do dialogue too :D

Kon-Tiki
03-01-2005, 09:14 PM
Danny, Qbasic and Java're far from the same. Java's about the most Object Orientated programming language around, while Qbasic's straight-forward. You can jump around and even simulate functions, but that's as OO as that one goes.

'bout that saving as a different extension... never thought of that, but it's a good start. You can still open it in Notepad, though ;)

twisted-mystic
03-01-2005, 09:15 PM
we can find someone who has actual programming experience.

It's what i do for a jorb :D

I'd tend more tword C++, mainly cause i know nothing about java LOL.

Reading and Writing files should'nt be to tough, in .NET there is the streamreader/writer objects, so i'm sure that Java has to have something simliar Mr. Tiki.

Is it possiable for Java to implement C++ classes?

Kon-Tiki
03-01-2005, 09:17 PM
Dunno much 'bout implementing from other languages (still fairly basic in Java myself), but the syntax's 'bout the same as C++. Only thing you've got to keep in mind when switching between C++ and Java, is that Java is more OO, so some things'll behave different (like my recursion in that assignment... would've worked like a charm in C++, but in Java... )

twisted-mystic
03-01-2005, 09:19 PM
Heh, lets just all do it in Assembler Language for the x86 :D

Kon-Tiki
03-01-2005, 09:25 PM
Ask Allen, if he's on. He's the only one I know on here that knows Assembly (and I'm not going to learn it yet... I will someday, but not for now)

punch999
03-01-2005, 09:27 PM
hey i have been wondering bout this 4 a while does qbasic need a editor or is it out of notepad

Kon-Tiki
03-01-2005, 09:29 PM
Qbasic needs an editor, which came standard with Dos back in the days. You can still download it from the net. Lemme look for a link...

Lots of information and tutorials for Qbasic (http://www.qbasic.com/qbindex.shtml)
Another one, with good downloads (http://www.hitmill.com/programming/qbasic.html)

punch999
03-01-2005, 09:35 PM
free?

Kon-Tiki
03-01-2005, 09:38 PM
Yep, there should be free ones there. If not, just google further. Enough results for it :ok:

mouse31e
03-01-2005, 09:42 PM
Also try qb4all (http://www.qb4all.com/) which has downloads and loads of tutorials as well as user programs and stuff.

I'll volunteer to do some testing and i'll try and contribute to the plot. :D :D

punch999
03-01-2005, 10:26 PM
MAN gb4all is the coolest thing in the world

I LOVe QBASIC!!

Havell
03-01-2005, 11:01 PM
So far all I've managed to make a program that counts up REALLY FAST. Me and Dad have been tring to slow it down (we put a loop that counts to ten billion in between every main number count up, that didn't work, so we put another loop that counts to ten billion INSIDE the first loop, and it still goes stupidly fast : :wall: )

Kon-Tiki
04-01-2005, 12:03 AM
How 'bout something like this?


timer = 0;
do {
*timer++;
* *if (timer == 10) {
* * * *counter++;
* * * *print Counter;
* * * *timer = 0;
* *}
loop until (counter == 10.000.000.000.000)

punch999
04-01-2005, 12:18 AM
woot new section for programming!!!

well hmm does anyone who knows about qbasic

how long does it take to really start having fun

Ababo
04-01-2005, 01:13 AM
Has anyone thought about using Python (http://www.python.org) as a language for it? I used it for my programming project last year and it's stupidly easy to use and really fast. It'll even work in conjunction with Java and C++! It's rather lovely. :D

Kon-Tiki
04-01-2005, 01:17 AM
Python... still got to learn that to make that demo-game for a friend's adventuregame engine. Jiggy Jiggy Uh! Uh! 2, as he requested. Seems like you need to install a Python environment for it first, though. Well... got to do that for Java too, but that's almost standard nowadays, even on Win98, but Python might be a tad bit harder, no?

Ababo
04-01-2005, 01:26 AM
Originally posted by Kon-Tiki@Jan 4 2005, 02:17 AM
Python... still got to learn that to make that demo-game for a friend's adventuregame engine. Jiggy Jiggy Uh! Uh! 2, as he requested. Seems like you need to install a Python environment for it first, though. Well... got to do that for Java too, but that's almost standard nowadays, even on Win98, but Python might be a tad bit harder, no?
Installing it is pretty damn easy. Just download Python 2.3 off the webpage (2.4 is just out, but stuff like pygame and PIL haven't been updated for it yet I don't think) and you'll be sorted! And as for it being harder to use, I found it FAR easier than Java. It just seems simpler to me.

goblins
04-01-2005, 01:28 AM
well this took off in a few hours - this forum could also double up as a programmers Q and A area where you guys can exchange tips, code etc on programming of GPL games etc.

You can organise in small groups or a larger project - it is a natural fit on teh side for abandonia - anyone got a small game that could be used as a base start any game type i guess would be welcomed and people could add stuff to it.

This is exciting = any frustrations well jus agree to hit it from another angle i guess. So lets get started.

Kon-Tiki
04-01-2005, 01:57 AM
Alright. Let's see what we need for the very basic of the strategy game...

1) A gamefield
2) Two players
3) One unit-type for each player
4) One building-type for each player
5) A way to either place a building or move a unit
6) Winning condition

As for an explanation of each part...

1) Gamefield
Easiest to start off, would be to make it in squares. Tile-based, but without the isometric view. Each tile has two sets of values, one representing which player occupies that square and one which unit type of it is there. If nothing's on it, playertype is 0, so there's no need to check for the unit type. I suggest using a double array for this.

If the tile's occupied, it'll check the first part of the double array (which player occupies it). When this value's different than the current player, the unit'll attack. Otherwise, it won't do anything.

2) Two players
Standard two players, switching turns whenever a player has either built something or moved a unit.

3) The unit-type
The unit-type exists out of four values (for now): HP
Defence
Attack
Movement
To keep it easy for a starting, movement is either 1 or only horizontal or vertical. When attacked, the damage that's substracted from HP is Attack-Defence. To keep it possible to win, this one unit will need a higher attack value than defence value.

4) One building-type
The building-type exists out of three values (for now): HP
Defence
Building time
Again, damage to HP is done by Attack-Defence (just to keep it simple for us. Can make the formula more complicated afterwards).
Building time is the amount of time left before a new unit is made by this building. If it is higher than 0, you can't make a new unit yet. There'll have to be a function which'll run through all buildings of the player whose turn it is next and checks for the building time variable, then substracts 1 from it if it's bigger than 0.

5) Movement
Highlighting a square with the cursors, then selecting it and pressing either B to build, M to move or R to recruit would work. C would be used for Cancel.

When moving, pressing M again will move that unit to that spot, if it can (or attack that spot if needed). We can change this afterwards to one button, which brings a menu up, or to work with the mouse.

6) Winning
At the end of each turn, it'll check if the player whose turn it's about to be has any units or buildings on the playfield. If not, the player that ended its turn, wins.




Is this a good start for it, or did you have anything else in mind?

Ioncannon
04-01-2005, 02:28 AM
awww a Turn based Stratagy? Why not RTS? Thoes requier more skill! Also what is the setting? Is it a modern war? a ancient empire? Progression through history (Civ and EE)?

goblins
04-01-2005, 03:04 AM
ive got an idea someone give us a basic game that runs. give it to abandonia to upload + source files. Keep it basic then see who works on it LOL - its all very open ended and why not a turn based and a RTS to get us rolling.

twisted-mystic
04-01-2005, 03:16 AM
No way on an RTS, those are for the click happy, it takes more wits for a turn based, i'm with Tiki on that. :ok: :bleh:

Man, i take off for school for a few hours and this whole thing exploded, so are we gonna do it in C++ or Java?

Also what is the setting? Is it a modern war? a ancient empire? Progression through history (Civ and EE)?
I think that will come once the engine is completed Ion.

EDIT: Re to goblin, i could probally put something descent together with C# using the GDI, but i don't know how many people here are keen on the idea of .Net. Any Votes?

goblins
04-01-2005, 03:29 AM
.net dunno about that c++ though could be a goer - lets see if anyone is able to come up with something first to get the ball rolling so to speak.

feminista
04-01-2005, 03:30 AM
Feh, Java is annoying. I vote for C++.

twisted-mystic
04-01-2005, 03:31 AM
I'll vote that way, Anyone know some good tuts on how to draw to the screen in C++?

EDIT:
Doh! i could use "Visual" C++ LOL. Given that everyone is cool having this run on windows computers

goblins
04-01-2005, 03:32 AM
something could be started in C++ and see how far it runs and evolves. As for others if anyone has any solid code to contribute put it up and let others tinker lots of smart brains around here could come up with a decent effort.

twisted-mystic
04-01-2005, 03:40 AM
I'll start making up some simple classes in C++, i'll post em' here when i'm done. For the sake of simplicity "And modifyability" i'll leave them as uncompiled .H files. My knowledge of C++ is limited so if i do something stupid, let me know in a loud, fanatical way.

twisted-mystic
04-01-2005, 05:25 AM
Ok here is the creature class, note the namespace, I've also attached the
a.) Implementation.CPP The cpp i used to test the class
b.)stdafx.h In case your not using the MS visual studio (not sure how it works)
c.)unit.h Contains the actual class shown here

i've left out the implementations, but their pretty self explanitory

namespace Abandonia
{
//In the future it's probally best to give each type of unit a class of their own
//I'll work on that one later, for right now were just getting the basics down
//And like i said, i'm not so great at C++, i'm especially concerned about using
//Char pointers for the name and description, something about that just does'nt
//sit right with me.

//Unit Class Prototype
class unit
{
private:
*int _hp; *//Units Health Points
*int _def; *//Units Defense Value
*int _att; *//Units Attack Value
*int _mov; *//Units Movement Value
*char* _desc; //Units Description
*char* _name; //Units Name
*int _type; *//Units Type, figure 1 = fighter, 2 = mage etc etc etc
*bool isDead(); //Check to see if the units HP has gone under 0;

public:
*unit(int HP, int Defense, int Attack, int Movement, char* Description, char* Name, int type); //Default constructor for the unit
*int HP(); * *//Funtion to return the number of Hit Points Left
*int Hit(int Amount); //Function to process a hit against the units HP, returns remaining HP
*int Heal(int Amount); //Function to proccess a heal against the units HP, retuns the remanint HP
*int Defense(); * //Function to return the defense value of the unit
*int Attack(); * //Function to return the Attack value of the unit
*int Movement(); * //Function to return the movement abilities of the unit
*char* Name(); * //Function to return the name of the unit
*char* Description(); //Function to return the Description of the unit
*int Type(); * *//Function to return the units Type IE fighter, mage etc
};


Default Constructor

unit::unit(int HP, int Defense, int Attack, int Movement, char* Description, char* Name, int Type)
{
*_hp = HP;
*_def = Defense;
*_att = Attack;
*_mov = Movement;
*_desc = Description;
*_name = Name;
*_type = Type;
}

goblins
04-01-2005, 06:04 AM
great start - now to get it into a runnable program.

twisted-mystic
04-01-2005, 06:36 AM
it has to start somewhere :D besides, if were all working on creating objects and such, then we can get a better idea of how to build out the engine. After all, the engine just takes and crunches all our objects.

I dont personally know how to code a GUI in unmanaged c++, is the GDI the same as it is in VB6?

Honestally though, i don't think GDI is the way to go. I know there is someone on the board who knows Dx7, probally the best way to go.

heh, and thanks for the Encouragement there Goblins :bleh:

goblins
04-01-2005, 07:30 AM
so dx7 as an option - just encouraging things forward people that are acknowleged are more likley to do good things

Yes an software engine sounds like a good start.

Kon-Tiki
04-01-2005, 10:09 AM
Koen knows DirectX7, but in VB. Dunno if he knows it in VC++. I myself prefer C++ over Java too, but can't make GUIs in it, nor use VC++ as I don't have it >_> Also am not a big fan of .NET, as I don't want to install it. Too much hassle the last time I tried.

punch999
04-01-2005, 01:58 PM
I VOTE Q BASIC LOL!!!

twisted-mystic
04-01-2005, 02:14 PM
well, Visual C++ does'nt require .net (not for the unmanaged atleast) so thats a good start. I'll look at some Direct X stuff for C++ but i promise nothing. I wonder if Kohen would be able to create a GUI in VB6 that could implement C++ Classes.

A note on the previously posted code. I think that this class should be abstract, and change all the public variables to protected, just a thought.

Anyway, this is kinda fun heh, i'll start working on a building class tonight, and i've had some ideas for the Map class if no one else is working on it.

The map class was going to be easy, i was acutally going to create a ..


* *struct maptiles
* *{
* * * *public int player; * * * * * * * * * * * //What player this tile belongs to, 0, 1, or 2
* * * *public Element objectOccupied * //Any object that rests here, NULL if none
* * * * * * * * * * * * * * * * * * * * * * * * * * *//All Units, buildings etc. ect. should inheret
* * * * * * * * * * * * * * * * * * * * * * * * * * *//from the Element object
* * * *public Terrain terrain; * * * * * * *//What graphic to use? and may other
* * * * * * * * * * * * * * * * * * * * * * * * * * //settings on the terrain it'self
* *}


for each map tile, then the constructor for the Map Class could use a 2 dimensional array, like Tiki suggested, to create the grid.


Any Thoughts?

Yamcha
04-01-2005, 02:18 PM
I can do some drawing stuff :ok: If u need :whistle:

Kon-Tiki
04-01-2005, 03:37 PM
Looks like it's time to hone up my C++ skills :D Too bad Dev-C++ and VC++ got compatibility problems. Let's hope we won't encounter those, or I can't provide code.

twisted-mystic
04-01-2005, 03:38 PM
what kind of compat. problims? I've never used Dev-C. You know, you might be able to pick up a copy of Visual C++ 6 cheap :sneaky:

Kon-Tiki
04-01-2005, 03:44 PM
Hehe, will be looking for a cheap copy tonight and hope it won't overwrite some dll-files which'll make my comp slow as hell (it did that before on a different comp, but that was entire Visual Studio). 'bout the compatibility problems... Friend of mine and me had a project of making a Windows version of Picedit (Dos program to draw backgrounds for early Sierra advanture games) and add improvements to it. Friend of mine was coding the GUI, and to keep the thing open source, it had to be compatible with both VC++ (which he used) and Dev-C++ (which I use). If it's compatible with both, it won't have much trouble when coming to being open source. Now, the thing was... when it compiled fine under VC++, it gave some errors and refused to compile under Dev-C++. If it compiled fine under Dev-C++, it gave errors and refused to compile under VC++. Never got further than the GUI on that one due to it. Now doing it in Java, as you don't have compatibility issues with that, and the GUI won't be the main headache.

Data
04-01-2005, 04:33 PM
why use direct X ?

try useing libsdl (as dosbox does)

as it's then portable to other oses.

twisted-mystic
04-01-2005, 05:02 PM
Do you know how to develop against it? By what i've read it uses OpenGL and i've heard some horror sotries about developing against that. Also, would we need to package a runtime with the game?

EDIT: After playing with some samples, it appears that this does'nt even use the graphics card, which would mean a system getting severly bogged down.

twisted-mystic
04-01-2005, 05:07 PM
Originally posted by yamcha565656@Jan 4 2005, 10:18 AM
I can do some drawing stuff :ok: If u need :whistle:
Could you post some samples? I think were looking at Top down for the game at this point

Data
04-01-2005, 05:56 PM
sdl development is quite easy

simpler then directX i recall

that opengl is an extension, but not used in general.

you just allocate a surface
and put the data in it (simple 256 or whatever colordepth you want ) and you do a sdl_flip to display it on the screen.

Danny252
04-01-2005, 07:50 PM
I VOTE Q BASIC !!!
Please Punch, if you can't help us don't mess up the thread.

Anyway now I can post again...

I don't really understand the coding bit but maybe we should have a coding/game and a storyline/graphics group? Or maybe it's too early yet ;)

Yamcha
04-01-2005, 08:15 PM
Originally posted by twisted-mystic+Jan 4 2005, 08:07 PM****</div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (twisted-mystic @ Jan 4 2005, 08:07 PM)</td></tr><tr><td id='QUOTE'> ******QuoteBegin-yamcha565656@Jan 4 2005, 10:18 AM
I can do some drawing stuff* :ok:* If u need :whistle:
Could you post some samples? I think were looking at Top down for the game at this point [/b][/quote]
What drawings u need?Characters =, terrains, objects? Pixeled ot hand drawings?

twisted-mystic
04-01-2005, 08:59 PM
yes

Yamcha
04-01-2005, 09:05 PM
Today i downloaded 3d gamestudio and i made a house. Then I didnt get the resizing stuff and the level building so I erased all. Anyway ill try to make the handdrawings tommorrow. But tell what are the main chat, the monsters and the landscapes

twisted-mystic
04-01-2005, 09:21 PM
:ok: Cool, Rasterized 3d images are always a plus

punch999
05-01-2005, 12:08 AM
any help from me needed?

feminista
05-01-2005, 12:12 AM
I think the goal with compatibility should just be that it can compile with g++, because that's the standard, and I'm sure if it compiles there, it will compile in VC++, can't say about Dev-C++, as I haven't used it. And either DirectDraw or sdl would be fine, I'm sure, though DirectX stuff isn't portable (well not entirely, anyway).

punch999
05-01-2005, 01:17 AM
oh yes a question about c if any one knows how much does a editor cost and how complex is it???

qbasic isnt good enough 4 me to simple

Kon-Tiki
05-01-2005, 01:23 AM
Qbasic too simple, eh? :D Well, you can get a free one at bloodshed.net, called Dev-C++.

goblins
05-01-2005, 02:15 AM
great thanks i will download that one myself is that the tools to programme using C++ ?

twisted-mystic
05-01-2005, 02:54 AM
with g++, because that's the standard

Where is g++ the standard? it's great for learning but i don't know so much about it being standard for an editor

For simplicity sake, lets just choose a platform. I vote windows since thats what the recent Poll (http://www.abandonia.com/forum/index.php?showtopic=1994) said the most people liked.

Yamcha
05-01-2005, 09:49 AM
So what language will u use at the end?

punch999
05-01-2005, 12:13 PM
thx alot

twisted-mystic
05-01-2005, 03:03 PM
Originally posted by yamcha565656@Jan 5 2005, 05:49 AM
So what language will u use at the end?
C++; :D

It provides the most flexibility while being prolific enough that we can be assured we'll have a few people who know it on the board.

Thats my advice at least, and what i've started coding in. :Titan:

If anyone can suggest something better, it'd be great to hear from ya, but we need to agree on these basic things if we want to get anything done.

Sorry Punch, but qBasic aint' going to cut it.

Yamcha
05-01-2005, 03:25 PM
Why this should be a strategy and not a RPG. Cuz I alredy made some pictures. (well only 2 but ill continue)

Kon-Tiki
05-01-2005, 03:27 PM
Cause a strategy game engine's kinda easier to make than an RPG engine? Anyways, both're easily combined. Just got to add more objects and let the engine use them properly too.

Yamcha
05-01-2005, 03:29 PM
There are few RPG makers..and with the tutorials we can easily make a medium game. Plus using some level desainers make this ame 3D. I tried #dgamestudio yesterday and it wasnt that hard to do.

Data
05-01-2005, 03:30 PM
I could provide some assistance.
-I have some experience in C++ coding and sdl coding. Both with Visual C 6 and NET and with mingw (g++)
-experience in crossplatform coding.

- little time but give some help/pointers on sdl/cross-platform coding.
- Could help setting up the source and other things.

Kon-Tiki
05-01-2005, 06:59 PM
Although we're making it in C++, I've been working on it in Java, just for practice (as I do need practice in Java for school). Results up till now can be found here (http://www.abandonia.com/~kon-tiki/Friendsstuff/Strategy.zip). Comments're in Dutch, along with some variable names, but it shouldn't be hard to figure out :) What's done up till now: Drawing a basic playfield
Moving a selector over the playfield
A class for the units
A class for the buildings

The playfield is made up from a double array object. The double array's indexes are the x- and y-coordinates. The object itself contains information 'bout what is on it.

The selecting uses two classes: one for input, one for checking and changing the unselected pic to the selected one. This changing's done with a few switch-commands. For now, it might look useless that it has only one case in some switches, but the more unit- or building-types will be added, the more cases will come, so I wanted to have it right from the first time.

The units-class has five variables: one for HP, one for defence, one for attack, one for movement points and one for the time it takes until this type of unit is recruited. This last one needs to be passed on to the building that's recruiting.

The building-class has four variables: HP, defence, recruiting time and recruited type. Recruiting time is 0 in standard, meaning that nothing's being recruited. The recruited type is to know which type of the object Unit to make once the recruiting time comes to 0.

To do
Creating types of the unit- and building objects.
Getting the selector to select and allow choices
Moving units
Attacking/Defending + destroying
Turn-switching
End game checking

twisted-mystic
05-01-2005, 08:15 PM
Heh did i code that simple unit class for nuthin then? :eeeeeh: heh.

Data, do you know if SDL utilizes the GPU on the graphics card? When i ran some sample apps from it, they all appeared to run on the CPU.

As far as RPG vs Strategy ; there just ain't enough turn baised strategy games about, everyone wants "AH! I have more army men than you, RUSH!" and less "If i move here, you might move there..."

Tiki, you seem to have the most experience on this project, what class do you suggest we make next in C++? Also, i know nothing about java, how do i view your class files?

:cheers:

Data
05-01-2005, 08:28 PM
i think it doesn't do much on gpu (well maybe some basic blits) unless you go for the opengl then offcourse you are doing it on the gpu.


But you must make a pretty big game would you need the gpu to draw for you :) (or program real inefficent)

as most people here aren't master programmers I doubt that we would need much hardware accelerated graphics.

it should be an easy and nice game as far as I know.
maybe some 50.000 lines ? maybe 100.000 dunno. not that much.

twisted-mystic
05-01-2005, 08:31 PM
well, my concern is that your redrawing the screen say, 15,000,000 times per second, and when that load goes all to the proc, you max it out. rendering to the gpu makes the game run much smoother and more efficientally because the CPU Can handle in game calc's and the GPU can handle the drawing.

How hard would it be to do it with OpenGL? i know dx has a steep leraning curve but not to bad.

sorry for the spelling ahead of time, i think my fingers are about to freeze off :blink:

Data
05-01-2005, 08:32 PM
why draw a screen that many times.
monitors run on 100 hz. no need to draw the screen faster.

twisted-mystic
05-01-2005, 08:34 PM
even still your talking about redrawing a 800x600 screen 100 times a second, a load the cpu shouldnt have to shoulder if someone spotted a couple of hundred for a video card.

Your also talking about RAM consumption insted of memory on the video card.

Danny252
05-01-2005, 08:35 PM
I'm on about 80hz here... and that much going to the CPU when the cpu is calculating all that might just puff it out as you said.

Kon-Tiki
05-01-2005, 08:39 PM
You'd need to download Jcreator or similar to see those files. I can turn them into .txt files though...

As for the next class to make, I suggest one for the floortiles. You'll have all building parts then, which have to be glued together and made so they can interact with each other.

Data
05-01-2005, 08:41 PM
in general you always draw in system memory and every now and then ( say 50 times or 25 times a second)

you order sdl (or whatever thing) to draw your buffer on the screen.

yes this takes some cpu power.
but some intellegent programming

(like keeping the background in a buffer copying it each time (then drawing the characters on it) ) will safe quite a lot of power.)

copying of data goes very fast. (ram to ram)

with opengl you can probably save the background in a few textures and overlay the image on it.

It's also not very difficult, but that depends on your programming experience.

twisted-mystic
05-01-2005, 08:45 PM
Here is a ss of a simple GP app, taken from the SDL website.

It's just easier on the PC to draw from the video card. It's there, why not use it.

Data
05-01-2005, 08:53 PM
it's not very hard to make something use all processing power:)
LOL even with gpu it's very simple :)
it all depends on your update speed. (untrotled always sucks all power)

but feel free to differ. doing opengl would be interresting for me as well.
I only used it once.


Take for example old games. (like C&C) those didn't have gpu as well. (just like the sdl without opengl case) that game had a decent framerate i would say. So it all depends on your skills)

if you can always later add gpu specific drawing fucntions i think.

I think it's best to use a library as sdl as that one has a simple interface to all outside devices (timer/sound/keyboard/mouse/joystick/video)

optimizing can be done in a later stadium.
But I'm only giving some advice based on experience. So do what you want with it.

twisted-mystic
05-01-2005, 08:58 PM
You make a good point with C&C, would you know how to handle throttling in sdl? My concern is that utilizing all of the processor is in general, a bad thing.

Data
05-01-2005, 09:01 PM
yes I know how to throttle stuff done it multiple times

but opengl with sdl is a lot simpler the directX ( I asked some fellow programmers who programmed under both)

So if you want opengl ... :)

but you wouldn't need it if you don't have 3d objects... I think a 3d game is a bit too difficult to start with.

Kon-Tiki
05-01-2005, 09:02 PM
Let's keep it tile-based for now, as that'll allow us to concentrate on the game itself, not the graphics (which can still be improved in a later stadium)

twisted-mystic
05-01-2005, 09:06 PM
Ok so were agreed on using the following:

C++
SDL

are we concerned with using it on different OS's?

I apoligize, Data, for being pig headed, I should have gotten my facts straight before starting an open debate :whistle:

As far as the floor tiles, we'll just need a really simple object right? Like the example i posted earlier?

Kon-Tiki
05-01-2005, 09:17 PM
Seems about fine. Leaves room for additions (for when we'd make different types of terrain, like forests slowing movement down with 1, hills with 2, mountains being impassable, water only accessible by boats...), yet it looks pretty functional for the core already.

goblins
05-01-2005, 10:07 PM
hey guys great stuff when you get the source code put up on this site is it possible to tweak it myself using dev c++ (can i use that on C++ programmed files) ? thats the open source version.

Available from sourceforge.net - actually its available from bloodshot.net (i think thats the link)

Kon-Tiki
05-01-2005, 10:25 PM
Bloodshed.net, and you'd need the binaries, not the source code, as the source code needs to be compiled (with something like Dev-C++), while the binaries're the compiled version.

goblins
05-01-2005, 10:48 PM
so i need the bineries and not the source code - then what compile the binaries and i get the game to the stage where i can alter it to suit my programming outcomes

Sorry im a complete novice here - just getting started got dev c++ already so now its time to go learn some c++ programming.

Am i correct so far.

Kon-Tiki
05-01-2005, 10:51 PM
Hmmm... I'll explain this step by step, to make sure I don't word it confusingly ;)

1) Get the binaries of Dev-C++
2) Run the binaries (aka install Dev-C++)
3) Start Dev-C++ up
4) Open the source code of the program you want to see or edit in Dev-C++
5) Edit as you want
6) Compile
7) Test + Debug

goblins
06-01-2005, 01:43 AM
Thanks for that im up to step 4 - ive got the coltoo source files from sourceforge.net (colonization 2 sequel open source) the project is moving slowly but i want to see the files to get a feel for improvements i could make - sort of like my learning project)

Reaperman
06-01-2005, 04:25 AM
I have found an open-source strategy game engine at: This Website (http://pulp.fiction.net/~jeske/Projects/HZ/)

Danny252
06-01-2005, 03:15 PM
thats for RTS games.. we're looking for a Turn based game, right?

twisted-mystic
06-01-2005, 04:13 PM
Yup, turn baised keeps it simple.

Kon-Tiki
06-01-2005, 08:04 PM
Algorithm problem... can't seem to find one that'll do this:

When the player selects a unit, it'll show the squares it can move on. So if that unit can move 5 squares, it'd mark a field like this:
http://www.abandonia.com/~kon-tiki/Pics/5.png
or
http://www.abandonia.com/~kon-tiki/Pics/5border.png
when the unit is more to the border
or when it's 2 squares, it'd mark a field like this:
http://www.abandonia.com/~kon-tiki/Pics/2.png

goblins
07-01-2005, 08:01 AM
work it around a 2,4,8,16 sceniro that might work but go backwards - incorparate that into a boarder algatheium (*does that help* if within 4 squares of border movement ratio is cut in half or 1/4 if right on board.

Data
07-01-2005, 09:26 AM
to give you a little hint on how to solve it.
do you know how to solve it if the movement is 1 ?
if so try doing first 1 and from those points 1 again.

Kon-Tiki
07-01-2005, 12:16 PM
Using recursion? Ooooh boy, that's a pain in Java. It's easy enough to do that for 1 moving point, and even for 2, but when doing that same algorithm with more than 2, it'll show up how wrong it is, as it'll show straight lines in 8 directions, not make a filled diamond. Also, when cutting off at the border, it tends to ignore having to jump up or down a spot, so that kinda messes it up too. Will try to solve it with recursion now.

goblins
08-01-2005, 08:05 AM
any solution on how to solve this recursion problem or perhaps something else that could be added to involed the boarder element

Kon-Tiki
08-01-2005, 08:11 PM
Can't seem to get it right with recursion. Doesn't feel right either, trying to get it done with that. Feels more like there's a better way.

twisted-mystic
13-01-2005, 05:13 PM
Hey guys, i know this is going from one end of the spectrum to another, but what about making the game in Flash?

Kon-Tiki
13-01-2005, 05:53 PM
Go ahead, but don't count me in for it :whistle:

feminista
13-01-2005, 11:41 PM
Ugh, flash hit detection is SO frustrating. Plus, flash is more suited to a quick-loading, arcade-style game than an in-depth game like a strategy game, RPG, etc, though I suppose it could work for an adventure game. But SDL is much better for what we're talking about here, and C++ is more versatile than ActionScript anyway.

goblins
14-01-2005, 07:22 AM
well you could try flash - heck at worst its programming practice for you guys that might come in handy later on = things slowing down a bit now but some games esp the treasure theives is coming along nicley