40 X 40 sprites needed for Browser-based Warcraft II clone
by Matthew McDevitt · in Jobs · 01/27/2006 (10:36 am) · 18 replies
If you could go to a website (from work, school, a friend's house, etc.) and play a real-time strategy game like Warcraft -- totally free, and with nothing to install -- wouldn't that be cool?
I have ALREADY WRITTEN such a game -- sprite-based, runs in a browser (Internet Explorer only), using Ajax technology (Javascript, DHTML, etc. -- though the XML part of Ajax will not be necessary). The dynamics are very similar to Warcraft II. You build up a city, gather resources, and build an army -- while the computer opponent does the same.
I am in need of at least one graphic artist -- there is a lot of animation in this game. All the units have an Up/Down/Left/Right, and there are two frames (each direction) for walking. Then I need 2 frames (each direction) for hitting, and maybe 1 frame each direction for "gather/build/repair".
Sprites are 40X40 pixels, no limit on colors or anything. I can convert them to transparent GIFs myself.
I have -- prepare yourself for this -- implemented saving and loading! Since this is a Javascript game, the only option here is to write data to my webserver. So I am doing just that, using Ajax.
This is going to be SOME javascript game!
It has all the goodies like sound effects, background music, and a special mouse cursor.
Also, I have removed ANYTHING that would remind you that you're playing in a browser. The game launches a pop-up "game window", which has no navigation buttons, etc. and is resized to the correct size and placed in the middle of the screen. All "keyboard shortcuts" like "F5 - reload page", etc. are re-assigned to a game function or disabled. When you right-click somewhere, the selected unit goes there (or fights that unit, etc.) To put it simply, the game feels and plays like a real video game, or just like Warcraft II in particular. You really forget the thing is being hosted by your browser!
This game will only require A) Internet Explorer B) a 1 GHz PC with 256 MB of RAM, and C) a dedicated video card. (Graphics are always horribly slow on motherboard-based "let me borrow 32 MB of your slow SDRAM for video RAM" video cards) Right now the entire download (program, graphics and sound) is about 1.3 MB. Of course that will go up before the game is released, but not by THAT much...
---------------------------------------------
A bit about me -- I got my first computer when I was 16 (1992) and started programming right away. I wrote a couple of Zelda clones in Quick Pascal in the mid 90's, and started several games after that, which I never finished. I wrote many other programs in C++. Around 1998, I began studying software engineering, program design, software testing, etc. on my own, using various college texts. That is when I really learned how to program -- I left the ranks of amateur programmers, and become a professional. I got my first job programming in 1998. I took up web programming in 2004. Here I am a year later, proficient in HTML, Javascript, DHTML, and PHP! :)
UPDATE:
The computer AI is functional (he will gather resources, build up, defend himself, and attack the human player until he wins) but further tweaking is likely. All difficult elements have already been coded -- only easy, fun stuff (like adding new types of units) still remains to be done.
Behavior AI (fight, build, guard, move, gather resources, etc.) has been completed, tested, and works well.
There is much more to the game than can be seen below -- the graphics are around 20% done, whereas the programming is around 80% done.
For example, the peons and soldiers use the same sprites, even though they act completely different!
Never-before seen screenshots of the game:
Screenshot 1 - A view of home
Screenshot 2 - The bad guy's civilization
Screenshot 3 - Note that units DO walk between tiles.
I'll keep you posted!
Matthew McDevitt
I have ALREADY WRITTEN such a game -- sprite-based, runs in a browser (Internet Explorer only), using Ajax technology (Javascript, DHTML, etc. -- though the XML part of Ajax will not be necessary). The dynamics are very similar to Warcraft II. You build up a city, gather resources, and build an army -- while the computer opponent does the same.
I am in need of at least one graphic artist -- there is a lot of animation in this game. All the units have an Up/Down/Left/Right, and there are two frames (each direction) for walking. Then I need 2 frames (each direction) for hitting, and maybe 1 frame each direction for "gather/build/repair".
Sprites are 40X40 pixels, no limit on colors or anything. I can convert them to transparent GIFs myself.
I have -- prepare yourself for this -- implemented saving and loading! Since this is a Javascript game, the only option here is to write data to my webserver. So I am doing just that, using Ajax.
This is going to be SOME javascript game!
It has all the goodies like sound effects, background music, and a special mouse cursor.
Also, I have removed ANYTHING that would remind you that you're playing in a browser. The game launches a pop-up "game window", which has no navigation buttons, etc. and is resized to the correct size and placed in the middle of the screen. All "keyboard shortcuts" like "F5 - reload page", etc. are re-assigned to a game function or disabled. When you right-click somewhere, the selected unit goes there (or fights that unit, etc.) To put it simply, the game feels and plays like a real video game, or just like Warcraft II in particular. You really forget the thing is being hosted by your browser!
This game will only require A) Internet Explorer B) a 1 GHz PC with 256 MB of RAM, and C) a dedicated video card. (Graphics are always horribly slow on motherboard-based "let me borrow 32 MB of your slow SDRAM for video RAM" video cards) Right now the entire download (program, graphics and sound) is about 1.3 MB. Of course that will go up before the game is released, but not by THAT much...
---------------------------------------------
A bit about me -- I got my first computer when I was 16 (1992) and started programming right away. I wrote a couple of Zelda clones in Quick Pascal in the mid 90's, and started several games after that, which I never finished. I wrote many other programs in C++. Around 1998, I began studying software engineering, program design, software testing, etc. on my own, using various college texts. That is when I really learned how to program -- I left the ranks of amateur programmers, and become a professional. I got my first job programming in 1998. I took up web programming in 2004. Here I am a year later, proficient in HTML, Javascript, DHTML, and PHP! :)
UPDATE:
The computer AI is functional (he will gather resources, build up, defend himself, and attack the human player until he wins) but further tweaking is likely. All difficult elements have already been coded -- only easy, fun stuff (like adding new types of units) still remains to be done.
Behavior AI (fight, build, guard, move, gather resources, etc.) has been completed, tested, and works well.
There is much more to the game than can be seen below -- the graphics are around 20% done, whereas the programming is around 80% done.
For example, the peons and soldiers use the same sprites, even though they act completely different!
Never-before seen screenshots of the game:
Screenshot 1 - A view of home
Screenshot 2 - The bad guy's civilization
Screenshot 3 - Note that units DO walk between tiles.
I'll keep you posted!
Matthew McDevitt
About the author
#2
When you're talking about 120 objects moving around, each with perhaps 60 bytes of data, plus the world map, plus misc. global variables -- you're talking several KB of data.
It takes about 20 seconds to save the game right now -- that would have to be reduced to a fraction of a second if it were to work well for multiplayer.
So smaller games (word games, etc.) or NON-realtime games would be fine-- but for this particular one, multiplayer is technically impossible.
Matthew
01/27/2006 (2:46 pm)
It is technically possible, through Ajax, to have multiplayer Javascript games -- but remember, real-time games require that the game state data be sent to every machine every 1/2 second or so (so they can all be on the same page, as it were)When you're talking about 120 objects moving around, each with perhaps 60 bytes of data, plus the world map, plus misc. global variables -- you're talking several KB of data.
It takes about 20 seconds to save the game right now -- that would have to be reduced to a fraction of a second if it were to work well for multiplayer.
So smaller games (word games, etc.) or NON-realtime games would be fine-- but for this particular one, multiplayer is technically impossible.
Matthew
#5
Also, using flash would require that the users install the Flash viewer, whereas this game only requires a Windows PC with Internet Explorer.
Matthew
01/29/2006 (8:04 pm)
I don't even know if Flash could do such a thing -- I've never looked into programming in Flash, since I thought it was for non-programmers. I prefer C/C++ style syntax (as found in Javascript, PHP, etc.)Also, using flash would require that the users install the Flash viewer, whereas this game only requires a Windows PC with Internet Explorer.
Matthew
#6
Much higher than Windows, much higher than IE.
If you are beginning your career in software development, i would strongly, strongly urge you to take a look at flash. this is *the* technology for what you want to do, plus is the stepping stone to making *real* money in the future.
01/29/2006 (8:27 pm)
@Matthew: Flash is everywhere. it has over a 98% install base, on all browsers, on all os's.Much higher than Windows, much higher than IE.
If you are beginning your career in software development, i would strongly, strongly urge you to take a look at flash. this is *the* technology for what you want to do, plus is the stepping stone to making *real* money in the future.
#7
The whole reason I even write games is to get practical experience, and "master" a new programming language, so to speak. After months of working on this game, Javascript is becoming quite familiar.
I'm not inclined to give up on 3 1/2 months of work -- I'm going to finish this one no matter what. If I was that easily distracted, I'd never get anything done (which would be 'shame on me!') But maybe I'll do ANOTHER game in flash later on.
Matthew
01/30/2006 (4:51 am)
Well, I will probably look into it. And if it's a real programming language, I should be able to port the game there later (re-using a lot of my work: all the same sprites, game design, etc.)The whole reason I even write games is to get practical experience, and "master" a new programming language, so to speak. After months of working on this game, Javascript is becoming quite familiar.
I'm not inclined to give up on 3 1/2 months of work -- I'm going to finish this one no matter what. If I was that easily distracted, I'd never get anything done (which would be 'shame on me!') But maybe I'll do ANOTHER game in flash later on.
Matthew
#8
01/30/2006 (5:31 am)
Flash uses ActionScript which is very close to JavaScript.
#9
I went to their website, and didn't see anything offhand. I found www.actionscript.org and found a few shareware/freeware programs -- but can they do the whole thing, or do you need to have some product from Macromedia/Adobe installed to use them?
In other words, is there a cost of entry for using Flash? Because for all it's alleged "inferiority", Javascript is at least free for developers. All you need is a good code editor. I like that.
Incidentally, I'm not a "1337 wAReZ d00d" -- I don't use stolen/pirated software. So that's not an option for me.
Thank you for all your help so far,
Matthew
01/30/2006 (6:49 am)
Just out of curiosity -- is Flash FREE for developers, or do I have to pay Adobe $999 for a copy of Studio 8?I went to their website, and didn't see anything offhand. I found www.actionscript.org and found a few shareware/freeware programs -- but can they do the whole thing, or do you need to have some product from Macromedia/Adobe installed to use them?
In other words, is there a cost of entry for using Flash? Because for all it's alleged "inferiority", Javascript is at least free for developers. All you need is a good code editor. I like that.
Incidentally, I'm not a "1337 wAReZ d00d" -- I don't use stolen/pirated software. So that's not an option for me.
Thank you for all your help so far,
Matthew
#10
I don't know where you got that statistic but that's just not true. I have a cpu I use at my job; p4, 3.19 ghz, windows xp, and I had to install flash on it. I feel the same way as Matthew, if I were to do a web game I would prefer to use javascript(or java) over flash only to avoid redirecting the user to an install site.
And Matthew as far as I know, you're going to have to either pay for a fresh copy of macromedia studio, or just try to find one off of ebay.
01/30/2006 (7:14 am)
"Flash is everywhere. it has over a 98% install base, on all browsers, on all os's."I don't know where you got that statistic but that's just not true. I have a cpu I use at my job; p4, 3.19 ghz, windows xp, and I had to install flash on it. I feel the same way as Matthew, if I were to do a web game I would prefer to use javascript(or java) over flash only to avoid redirecting the user to an install site.
And Matthew as far as I know, you're going to have to either pay for a fresh copy of macromedia studio, or just try to find one off of ebay.
#11
www.macromedia.com/software/player_census/flashplayer/
Compare that to the number of people that have javascript turned off:
www.w3schools.com/browsers/browsers_stats.asp
Flash or Java is the way I would go.
01/31/2006 (10:05 am)
Taken with a grain of salt because it is from macromedia, but:www.macromedia.com/software/player_census/flashplayer/
Compare that to the number of people that have javascript turned off:
www.w3schools.com/browsers/browsers_stats.asp
Flash or Java is the way I would go.
#12
Even Micro$oft provides a FREE path for writing .NET applications -- they give the compiler away, you're just on your own for an IDE.
Macromedia doesn't even offer that courtesy!
Javascript, DHTML, (even Java) are free for developers.
I have my serious doubts about the "must-have" status of ANY platform that costs hundreds for developers to join. It's simple economics.
Matthew
01/31/2006 (10:14 am)
But now the discussion is not so much about whether Flash is good, but whether I can afford it. I don't $1,000 to invest in a development platform.Even Micro$oft provides a FREE path for writing .NET applications -- they give the compiler away, you're just on your own for an IDE.
Macromedia doesn't even offer that courtesy!
Javascript, DHTML, (even Java) are free for developers.
I have my serious doubts about the "must-have" status of ANY platform that costs hundreds for developers to join. It's simple economics.
Matthew
#13
those stats are interesting. I didn't have any idea how pervasive flash has become. maybe I should consider learning this technology...
however, there's no way I can believe that there are more people with an up-to-date flash player than people who have javascript enabled in their browser... especially on a global scale. that's the good thing about js, you don't ever need to worry about updates, versions, downloads, compability or anything like that.
01/31/2006 (11:05 am)
James-those stats are interesting. I didn't have any idea how pervasive flash has become. maybe I should consider learning this technology...
however, there's no way I can believe that there are more people with an up-to-date flash player than people who have javascript enabled in their browser... especially on a global scale. that's the good thing about js, you don't ever need to worry about updates, versions, downloads, compability or anything like that.
#14
www.necromanthus.com/
02/01/2006 (2:47 am)
Necromanthus wrote one of these a while ago in Flash/Director, and a more recent 3d one in Director.www.necromanthus.com/
#15
I think I should stop calling my game a "Warcraft II clone" -- since mine is a completely original game. I only call it that because it's a 3 word description that quickly tells people what kind of gameplay to expect. (Necro's is an actual CLONE -- it couldn't be too widely distributed without getting in trouble with Blizzard, right? He's using their actual graphics and sound effects.)
Anyhow, this just intensifies my resolve to use DHTML/Javascript/Ajax to do my games -- I can see the downsides of using FLASH. This Necro guy has some pretty good rip-offs, I'll give you that. He's a good programmer. But he's suffering under the limitations of Flash, it would seem. You can't right-click, save, etc. I read a few of his forum posts -- he sounds like me: "This is a browser game -- there are limitations. It's indirect access to your system resources." etc. He also said that it took some programming skill to end up with a decent (playable) framerate.
So Flash -- like Javascript -- is interpreted and slow, compared to compiled languages like C++.
Flash games are good for short puzzle games that need no saving, and no console-like game experience. If all you need is a left-click, you're fine going with Flash. Flash seems to allow pixel-by pixel scrolling, but it's rather slow. There's a REASON people identify Flash games with "play when I have a few spare minutes" puzzle games.
But to make a player forget he's not playing a standalone PC game (installed from a CD), you need full control over everything.
Anyhow, I was impressed with some aspects of his Warcraft demo (guys move just like in WC2, mini map, etc.) but I wanted to use the arrow keys or scroll wheel to move around, as well as use the right mouse button. None of these were possible (except the arrow keys -- that was his programming choice).
There were also some bugs in it that I found in about 2 minutes of gameplay. If you select a peon, then try to select the Town Hall, the last peon is STILL selected, and starts running around the Town Hall. So you can't create more peons.
But his website demonstrates that Necro is pretty typical -- a programmer, full of ideas but a bit short on discipline. It IS very hard to finish something, and he seems to be VERY average in this regard. The first month of development is exciting, you're coming up with lots of new stuff to show people -- but after a while, it becomes "work": debugging, putting in lots of detail -- that's the drudge work that takes real discipline. I'm not singling out Necro, for most programmers have to suffer from this temptation to "start something new" before they completely finish ONE project. I used to be that way, actually.
Most of his games are just what he calls them -- technology demos. He flexes his programming muscles, but doesn't have any games to distribute as finished products. Demos like his you say "whoah cool!" for about 5 minutes, but then when you see just how shallow they are (no levels, many bugs/things missing, can't save or load, etc.) you won't exactly be playing them very much.
Even I said "Whoah -- cool!" for about 5 minutes :)
Matthew
02/01/2006 (6:28 am)
Thanks for the link -- I was WONDERING if anyone had written anything like that.I think I should stop calling my game a "Warcraft II clone" -- since mine is a completely original game. I only call it that because it's a 3 word description that quickly tells people what kind of gameplay to expect. (Necro's is an actual CLONE -- it couldn't be too widely distributed without getting in trouble with Blizzard, right? He's using their actual graphics and sound effects.)
Anyhow, this just intensifies my resolve to use DHTML/Javascript/Ajax to do my games -- I can see the downsides of using FLASH. This Necro guy has some pretty good rip-offs, I'll give you that. He's a good programmer. But he's suffering under the limitations of Flash, it would seem. You can't right-click, save, etc. I read a few of his forum posts -- he sounds like me: "This is a browser game -- there are limitations. It's indirect access to your system resources." etc. He also said that it took some programming skill to end up with a decent (playable) framerate.
So Flash -- like Javascript -- is interpreted and slow, compared to compiled languages like C++.
Flash games are good for short puzzle games that need no saving, and no console-like game experience. If all you need is a left-click, you're fine going with Flash. Flash seems to allow pixel-by pixel scrolling, but it's rather slow. There's a REASON people identify Flash games with "play when I have a few spare minutes" puzzle games.
But to make a player forget he's not playing a standalone PC game (installed from a CD), you need full control over everything.
Anyhow, I was impressed with some aspects of his Warcraft demo (guys move just like in WC2, mini map, etc.) but I wanted to use the arrow keys or scroll wheel to move around, as well as use the right mouse button. None of these were possible (except the arrow keys -- that was his programming choice).
There were also some bugs in it that I found in about 2 minutes of gameplay. If you select a peon, then try to select the Town Hall, the last peon is STILL selected, and starts running around the Town Hall. So you can't create more peons.
But his website demonstrates that Necro is pretty typical -- a programmer, full of ideas but a bit short on discipline. It IS very hard to finish something, and he seems to be VERY average in this regard. The first month of development is exciting, you're coming up with lots of new stuff to show people -- but after a while, it becomes "work": debugging, putting in lots of detail -- that's the drudge work that takes real discipline. I'm not singling out Necro, for most programmers have to suffer from this temptation to "start something new" before they completely finish ONE project. I used to be that way, actually.
Most of his games are just what he calls them -- technology demos. He flexes his programming muscles, but doesn't have any games to distribute as finished products. Demos like his you say "whoah cool!" for about 5 minutes, but then when you see just how shallow they are (no levels, many bugs/things missing, can't save or load, etc.) you won't exactly be playing them very much.
Even I said "Whoah -- cool!" for about 5 minutes :)
Matthew
#16
02/01/2006 (7:11 am)
Wasnt the original version of alien hominid writtin in flash?
#17
By the way, can't flash games use easy buttons like CTRL and ALT, and SHIFT? Javascript games certainly can.
It's really hard to use the alpha keys for anything other than hotkeys. To use S for jump and A for fire is NOT good "play control"
Anyone remember Nintendo Power? They used to have 4 categories for every game reviewed: graphics, sound, fun factor, and play control.
Most flash games -- action (non-mouse controlled) games mostly -- would get a 1.5 or 2.0 out of 10 in the Play Control category.
Matthew
02/01/2006 (7:23 am)
I just checked it out -- It's a cool side-scroller -- it certainly fits into one of the categories of games that can be made with flash (even according to Macromedia, you can make "Action games and mind games") They never mention RTS, simulation, RPGs, etc.By the way, can't flash games use easy buttons like CTRL and ALT, and SHIFT? Javascript games certainly can.
It's really hard to use the alpha keys for anything other than hotkeys. To use S for jump and A for fire is NOT good "play control"
Anyone remember Nintendo Power? They used to have 4 categories for every game reviewed: graphics, sound, fun factor, and play control.
Most flash games -- action (non-mouse controlled) games mostly -- would get a 1.5 or 2.0 out of 10 in the Play Control category.
Matthew
#18
1) Flash environment is not suitable for sophisticated projects.
2) On necromanthus.com everything is for free.
For this reason you can NOT find FULL games available for download.
3) My intention is to promote several excellent game developers (ID Software, Blizzard, etc) and their masterpieces (Doom, Quake, Warcraft,etc).
So "tech demos" only !
4) You're a talented developer. Keep up the great work there.
cheers
02/16/2006 (8:00 am)
To Matthew McDevitt :1) Flash environment is not suitable for sophisticated projects.
2) On necromanthus.com everything is for free.
For this reason you can NOT find FULL games available for download.
3) My intention is to promote several excellent game developers (ID Software, Blizzard, etc) and their masterpieces (Doom, Quake, Warcraft,etc).
So "tech demos" only !
4) You're a talented developer. Keep up the great work there.
cheers
Torque 3D Owner Sean H.
I'm wondering how you were able to implement multiplayer into your game. as far as I know, javascript doesn't have any facilities for tcp/ip. did you implement this part using server code?