Tuesday, November 18, 2008

Some progress ;)

As I've said, things are slowing down for a while for me, but I chip away every once in a while.  Today I successfully got a dedicated server administrator console up and running; so the system can run a game (with a small minimap for observation) without the active user interface for sound or graphics.  Networking is not yet operational and the other half of the equation (the client) still waits in the background to be assembled, but this was a major step in development.  I'm also happy to report that system requirements for running a server appear to be very low so far, but I already knew that network bandwidth will be the bottleneck.  Hopefully I can optimize code well enough to keep things running quickly over most lines.

Friday, October 17, 2008

Preview 4 update

Turns out the HBR1.com Ambient stream (which I still recommend you check out) was somehow causing crashes with my code when it hiccuped.  So, I've removed the stream altogether.  If you don't have the music files, I'll just leave it up to you to find music that suits the atmosphere.
Also, I've fixed a bug with Mercenary deployment, and added something some of you may like.  Try out the scrollwheel on your mouse if you have one.  ;)

Saturday, October 11, 2008

Preview 4 up for download

This update contains mostly speed improvements with some minor gameplay updates.  You'll notice pathfinding behaving differently than previous games (if you pay attention to that sort of thing), and in general I expect most computers to experience much better frame rates with higher unit counts.
In the near future I'll be putting up the source code for this project at http://code.google.com/p/dune2/.  My focus in life needs to turn now to personal and professional affairs for some time.  If any of you are brave enough souls to look at my hideous source code, feel free to take a shot at bringing networked multiplayer capabilities to life.  Otherwise, you might have to wait some months before I get the energy and willpower to return to this project.  Thanks to everyone following and especially to the contributors.
And let this serve as an early birthday present where applicable.  ;)

Thursday, September 18, 2008

1.29 Update

Recently I became reunited (in a manner of speaking) with the most important person in my life, so progress has been less of a priority.  I have however continued to move along.
Recent changes:
  • Optimized large parts of the pathfinding and targetfinding routines
  • Cleaned up several bugs
  • Decided to move to OpenGL graphics drivers for cross-platform compatibility (only in testing now)
  • Increased accuracy of Trikes and Quads to increase effectiveness against infantry

Monday, September 01, 2008

1.27 update

So I spent this entire holiday weekend going over my pathfinding routines. In researching alternate methods, I discovered I was unknowingly making use of Dijkstra's Algorithm (I'll let you look it up) up to this point. I had spent days developing that system and purposefully avoided using any pre-existing methods in order to keep ownership of the code. So now that the whole project is solidifying, I decided to jump back into it for the sake of optimization. The end result is that I've converted the entire pathfinding system into A* (proper), and the next release should show a marked increase in performance with many units on-screen.

Monday, August 25, 2008

Preview 3 is up (also music files)

Hello all,

Preview 3 is now up and ready for download. You will need to install OpenAL if you want sound, and if you want music, download the music files and unzip them into a folder called "music" wherever you place the executable file.
If you choose a faction, you'll have one random AI opponent automatically; if you play in Observer mode, you can enjoy watching three AI players duke it out.

Major recent changes:
  • After a boatload of research and testing, I have successfully switched the audio library to OpenAL. Two major reasons: One, it's multi-platform, which is a must. Two, this allows streaming of music, which means no more needing 800mb of RAM free to decompress the files!!! I think you'll also find the sound is much cleaner in general. However, it does mean you will need to install OpenAL to have sound in the game.
  • Computer opponents are now (nearly) fully implemented. They aren't the smartest on the planet and their performance is erratic, but they'll beat you up good if you let your guard down. They won't build special units, so consider that your advantage.
  • Made some more minor graphical changes, including removing the "half-radar" screen you get without an Outpost and replacing it with your House Emblem. Haven't decided whether to keep this.
  • Optimized a few parts of code, hopefully it's noticeable on slower systems (we'll see).
  • Config.ini file now working properly, so you can play the game in FULL-SCREEN at glorious 640x480!
  • Added an "Air Strikes" toggle at the HTF allowing you to recall/release all Ornithopters in one go.
  • Move orders now default to Protect orders at destination. This was only logical.
  • Death Hands still destroy themselves when launching, but will not detonate over a wide area. Malfunction rate is higher though.
  • Power penalties for buildings now scale more drastically with distance. Knocking out an enemy's windtraps at a remote station will very likely bring the whole station down.
  • Combat production buildings release units outside of the buildings now, instead of inside one of the building cells. They are still most likely to come out near the old "exit" zone. Refineries and Starports are unchanged, since they have cells that are intentionally traversable by friendly units.
  • Homing bullets now function more effectively and should not fail to strike infantry at high speed.
Next major release will have multiplayer capabilities, but this will be some time in the future, likely many months from now. Hold your water.

Sunday, August 17, 2008

1.23 Update

Done a lot in the last few weeks. Tried out many different ways of changing the construction methods in the game, such as auto-spreading concrete and requiring concrete to build. Eventually I settled on what evolved into several of the game updates listed below.
  • All buildings can only repair when outside of combat now. This makes the game much more offensively oriented as even a single unit can eventually take down an undefended building.
  • Various minor balance changes reflecting above change.
  • Several noticeable graphical changes (for the better).
  • When a building is destroyed, it leaves rubble. This rubble prevents any buildings from being placed in that location for ten seconds. This resolves land-spamming issues.
  • Microwave upgrade now allows buildings to be placed at three times the normal distance, instead of at any distance. Power penalties for distance still apply, and factor heavily in taking damage to expansion bases.
  • There will be an AI opponent in the next release. :)
  • Wormsign is now a timed event that lasts for random durations. Approximately every two minutes, the status of worms in the area changes. Movement of heavy vehicles should be limited during Wormsign.
  • Expect many further minor changes in unit stats, costs, etc.

Thursday, August 07, 2008

BlitzMax coders needed for possible recruitment

Hello everyone. I have an announcement.
While working on the AI routines and thinking about the future of the project, I've been toying with an idea I've mulled over for some time: Turning this project over to a group. This single project has been too long in the making for me in many ways, and I'd like to be able to devote some energy to other things, new things. I have over 700 hours personally invested in it now, including the original Dune 2: TSHA up through the current Universal Version.
So here's the situation. The structure of the gameplay itself is basically intact, and works as I would like it to for a single player. If any readers have provable BlitzMax experience and want to join a potential group to take this game all the way to the end stages of production (AI, multiplayer, better chatroom/wrappers, etc.), contact me. The project will still be under my control, so if I do this, don't expect to inject a lot of your own personal creativity beyond the code itself; however, you will have full credit, and you will be part of a group that may do something even better some day. I may not approve any deviation from gameplay, but I will be very open to rewrites and code enhancements. I know I'm not the world's greatest coder.
Please only contact me if you have good BlitzMax experience, or are very confident you can lend expertise in some other way (such as being a C++ guru, or a sound editor, etc).

Monday, July 21, 2008

Preview 2 up for download

Preview 2 is up for your pleasure. Once again, no multiplayer, config file or AI support yet. Also bear in mind you should legally have a purchased copy of the original Dune 2 game to download and use any of the Dune 2: TSHA files, since they use resources ripped from the original. I'll begin working on AI support shortly so you won't see another preview for many weeks.

Recent improvements:
* Removed network code causing crash
* Corrected formation toggle graphic for control groups
* Corrected retreat level graphics for control groups
* Enabled Units Lost and Enemy Destroyed counters
* Function keys now select only powered buildings
* Home key centers on ConYard
* Harvesters on Move orders are no longer homed by bullets
* Rocket launchers and Sonic weaponry will never home
* Homing bonuses to bullet range reduced
* Bullets receive enough range to target center of buildings
* Protect orders now work properly (attacking only enemy attackers within range)
* Guard orders now check for buildings within distance

Sunday, July 13, 2008

Preview 1 is up

Some rules: First of all, this one's for Windows only. Host a game, choose a faction and monkey with other settings, then play what I've set out for you. Don't try anything else with the game or your computer might explode (or the game just won't work). There's no tutorial yet so you'll just have to get used to it.

Enjoy. :) And feel free to send in a donation to help with my costs, or at least click on a few ads.

Saturday, July 12, 2008

Preview video up

Here's a nice (albeit low-res and soundless) video preview of Dune 2: TSHA vU:
http://www.youtube.com/view_play_list?p=C6D7FC66E905D4B3
I'll try and get higher-res stuff up soon. I'm not sure about releasing a beta yet because I don't need testing or suggestions at this time, but I wanted to give everybody some sign of progress.

Tuesday, July 08, 2008

I cannot see him yet but he's very close now...

Okay, so the first beta release is right around the corner. It's a gauntlet-style situation where you set up a base in the middle and weather constant attacks until you're ground into dust, but it should make for a good testing environment. ;)
Keep your eyes open for something to play with soon.

Wednesday, June 11, 2008

Ornithopters

Hi all,
I'm asking for your help. I've come to an impasse regarding Ornithopters. I have two major problems with them: One, how to implement them programatically... That one I'm not worried about. But the other issue is, how do I implement them in the game period? Here are the main issues.
1. They need to function more or less like in the original game. Basically my only real requirement is that they are not directly controllable or selectable.
2. I would not want them doing suicidal things like attacking any enemy unit on the map.
3. I also don't want a whole boatload of options and settings to be required for efficiently controlling just this one unit type.
4. Of the options I can think of, the first is that they stay out of the Hi-tech factories and patrol constantly looking for local targets (near units or buildings), sort of like being permanently on Guard orders for the whole base. This would be kind of a random pattern though (to save on resources) and raises issues about distance and building value (don't want a fleet of 'Thopters getting shot down trying to defend a Trading Post after all).
5. Another option is that the player selects an area and manually issues some kind of order for 'Thopter support, and otherwise they remain docked. Sounds like it would get ugly though, and require some micromanagement from the player. Maybe this could be timed or something.
6. A final option is to make them behave just like they did in my last version of Dune 2: TSHA (RC3), where they use the settings for supporting Harvesters, Units, and Buildings. However, these are now global settings, and I'm no longer crazy about the idea of having these settings be lumped together with Carryall behavior.

So, I'm asking you to visit the forums and drop a line in Suggestions regarding this issue. Either vote for an existing option or come up with something new and interesting. Please leave your comments as soon as possible.

Sunday, June 01, 2008

0.94 Update

Hi All,
I've been stomping bugs for the past month, cleaning things up and tweaking things here and there. I've got a few minor gameplay changes in mind that I'll leave as surprises for you. Lately I've fixed up the starport, mercenary, carryall, and general combat routines. I have more issues to resolve, then I have to finish the Ornithopter code, the worms, and set up some kind of gauntlet-style situation where you (as the beta tester) will have to deal with constant merc attacks, or something of this nature. As I've said, progress may have slowed a bit, but it is ongoing. Keep them blue eyes peeled.

Tuesday, May 06, 2008

0.9 Update

Hi all,
I've been working consistently on re-writing all the Carryall code. It's not something a player might necessarily notice, but from a programming standpoint it's much more object-oriented and responsive. Carryalls will smoothly transition from one pickup target to the next and there is less room for bugs or errors now. This took many hours to finish but I'm becoming happy with it.
I've been working (professionally) a lot lately, so I haven't devoted quite as much time as usual to this project. I still hope to have the first beta up for testing in a month, but things might be slow for a while.

Thursday, April 17, 2008

Forums created

Hi everybody,
I've created a Google Group sort-of-forum-thing over at http://groups.google.com/group/dune2. Please leave any comments you have over there in the correct place. I visit the forums often and I'll be slowly filling the pages up with information over time as well, so feel free to join up.

Sunday, April 13, 2008

0.8 Update

Progress is ongoing and really starting to develop. A few minor design changes get thrown in here and there, but it's all about finishing the code conversion and making things playable again right now. At the current rate of things I should have something that at least behaves like the RC3 within a month. After that the priorities will be, in order:
1. AI routines
2. Multiplayer syncing
3. Code optimization
4. New ideas
Stay tuned and help support this project in any way you can.

Also, by the way, that bit I said last time about "freeing" up units from cell-to-cell movement... that's a load of crap. I tried it out a little and didn't like it one bit, so we're back to the original Dune 2-style of unit movement.

Monday, March 17, 2008

Getting the game to work

Just dropping a note here for new visitors regarding getting the RC3 version working. Please note, this was the last release of the original game project, and has nothing to do with the current project.

First of all, if you have trouble with game speed, rename the "music" and "midi" folders in your Dune 2: TSHA directory. This will disable music, but free up your resources. Midi music uses a lot of CPU power, and the MP3 music takes a lot of memory.

Next, if you actually can't get the game running, I may not be able to help you much. I tested it on an awful lot of systems and didn't have problems, except for a minor graphic glitch with placing unit build queues on some older graphic chipsets.

Regarding networking, the following will remain forever true for that version, since I had little community support and no longer wish to think about it much:
  • There are still a couple minor bugs left in there which might cause crashes after playing for some time (usually at least half an hour). I've had longer games than that though, and it's stable for the most part.
  • Finding an online server is hit-or-miss in terms of functionality. Your best bet is to get your friend's external IP address so you can connect directly that way across the internet.
  • If you have firewall issues, I can't help you. The port you need opened is 10191, that's the best I can tell you. I've never even been able to get confirmation from anyone that they got this working through a firewall.
  • More than two players in a single game will probably never work, so don't try it.

Thursday, March 13, 2008

vU.0.3

Hey all,
Lots of big decisions lately.

  • I've firmly decided this next version of the game will be a bit less faithful to the original game. I think I can make something better.
  • Units are now no longer bound by the 16x16 "cell". Movement is free in 360 degrees (although the standard 8-direction graphics are still used).
  • There will NOT be a dedicated server version anytime soon. This proved to be too great a challenge on top of porting all of the code. I was much too ambitious and I want to finish something this decade.
  • There will be some graphical changes. Spice will be more smoothly implemented visually in order to cut down on the calculations needed to determine the correct cell graphic. I may also do this with rocks and such; we'll see how it shapes up.
  • There will be options to choose between micro- and macro-managing your faction. These may involve special grouping, reinforcement, combat-level AI, and automated buildings.
  • I am continuing to build the foundation for all of these things, and progress is good. I expect something playable in a few months.

Monday, February 18, 2008

Some thoughts

Hey everybody. Just wanted to pop in again for an update. Progress has been very slow for the last month due to many other life concerns, but my thoughts never stray far from the course, and I plan on resuming normal operations soon.
Regarding the tactic of repeatedly dropping new buildings down on attackers, I concede that is a valid point. I do think that if your opponent is concentrating on doing this to slow you down, that it's taking up some of his time and you should be able to exploit that somewhere else on the board. It also does cost the opponent some money to do this, so I don't see it as a game-breaking flaw. However, it's made me think a lot about it.
I have three choices basically. I can add a time limit to stop building-mashing from being possible, just like the concrete-slab-timer currently works. I'm kind of iffy on that one because it opposes the whole dynamic of reducing management for placing structures. Another option is to add a minimum cost to the placement of a building (like 25%), so more is lost if it's destroyed right away. That's not a bad idea but I'd have to re-write a few things. Finally, I could change the way units behave toward uncompleted buildings, making them ignore them if they're under a certain health level, or even completely. I'll do some thinking on this for a while, and feel free to post your thoughts in a comment.
Regarding Death Hands (again), I still have to say I think you'd get destroyed every time by a good player on a small board if you were focusing on getting to Death Hands. A Palace, Heavy Factory and all the power they both need make a slow and expensive goal to reach, and on a board that small, protecting against exploration and hiding it out are not an option. If I get five Quads and three Combat Tanks instead of your Palace, HF and a Windtrap on a small board, I consider you in big trouble.
Also, yes, my version of the game is a bit of a CPU hog. There are lots of good reasons for this (such as those listed in the DOCS which everyone SHOULD READ), but one of them is definitely slow code, which I think will be greatly improved in this new version.
***EDIT***
I just remembered that I never put up the Mp3 music files, and that may be one of the reasons people are having speed problems. The MIDI files that came with the game actually use a surprising amount of horsepower on some machines, so I recommend wholeheartedly you download the MP3 music files now included on this site. The only real disadvantage is the extra RAM you'll need to hold the MP3 files in memory, which is kind of a lot. Just expand the Zip and all files into a folder called "music" in your Dune 2: TSHA directory, and the program will automatically recognize and prefer to use the MP3 files.
Alternatively, if you don't want to sacrifice the RAM or the CPU cycles, just go into the config.ini file in the TSHA System folder and put a zero in the line for Music. :0)

Monday, January 07, 2008

Death Hands

Hi guys,
Thanks again for the feedback. Most of the questions you have can be easily explained by reading the documentation for the game (such as the buttons not working and the inability to attack single enemy units).
However, I wanted to comment on two bits of feedback which I found interesting, namely on the Death Hands and on Microwave power.
In my own playtesting with numerous friends, we found many ways to counter both these tactics. First of all, if you aren't allied with Corrino, you should be allied with one of the other two house, which both have powerful weapons also. The Spacing Guild has saboteurs, but more importantly a discount at the Starport, so they can really mobilize armies in a hurry. And the Fremen have Warriors who can sneak around the map because they don't show up on radar (and also PWN large vehicles like Death Hands), and don't suffer losses from worms often.
I found it easy to counter Death Hands. Of course it goes without saying that the most important thing in the game is exploring the whole board, so I always got that advantage early. Once I knew my opponent had them, these are some of the tactics I used:
  • Since their accuracy is horrible over longer ranges, your enemy needs to get them close to you. However, they can't be airlifted, so they have to be moved into place (and remember, units on MOVE orders always take extra damage). Always keep a small group of units in reserve outside of your base to fly/run out to eliminate them in short order. 500 credits may not seem like a lot, but when they're killed so easily, your opponent won't use them often and survive.
  • Since their use requires some micro-management, put some pressure on the rest of your opponent's base while he's working on them, and you can cause much more damage than the average Death Hand shot.
  • Try to force your enemy to fire them from within his own base, before he's had a chance to move them closer to you. They malfunction 10% of the time and land right where they're fired, which can be great fun to watch.
  • Also keep in mind they must be launched one at a time; this combined with the risk of malfunction makes it very wasteful for an enemy to keep them in groups or to send them out with escorts. If he insists on doing so he'll eventually lose a couple thousand credits instead of just 500 when launching one, which will leave a sour taste in his mouth.
  • If I had Fremen, keep a few Warriors scattered around the open areas of the map. They can cause huge disruption to harvesting and Death Hand operations because they excel versus larger units. If I had Saboteurs, run one right up to the Death Hand and detonate. Or, more insidiously, watch his Death Hands to see when he's using them, and take that time to use the micro-management needed to get your man into the perfect place to cause him large monetary losses. Otherwise, even a small team of Trikes and Quads is an effective counter. You'll get there fast, and he's guaranteed to lose at least 500 credits.
In the end, I reduced their price to 500 simply because they weren't useful enough. They're gone after one shot, easily killed, require management time, and don't hit targets often. Personally I'd rather build another squad of Sardaukar and a Wall.

As for Microwave power, sure, those three turrets can do some damage. Only a few problems with that though. First, they can be destroyed while being built, and if they're being constantly repaired, they're chewing up more credits than you think. They can also be picked off one at a time or out-ranged. But most importantly, they're using a lot of extra power if you've built them at a great distance. So, while you're busy doing that, I'll send an attack group into your Windtraps and disable a large part of your base.
I've never had a problem dealing with an opponent using Microwave power. It's really supposed to be more help with expanding your base, rather than as an attack vector. However, I'll be revisiting it during the final phases of the next version (along with everything else, at least a moment), so there might be changes to it in the future.

In my testing, when spice production levels were even, the game ended up being very nicely balanced after the final changes were made.

Thanks again everybody!

Wednesday, January 02, 2008

Some quick notes...

Just to respond to some of the comments I've received...
Thanks a lot for all the the fine words! It's nice to get some appreciation for all the hard work.
Please be sure to read the documentation file, and focus on the Interface section. That's always a big issue with people, but once you get used to it, I think it's superior.
Just to answer some quick things:
You can select multiple units easily - by double-clicking!
I may very well add game-speed control in the new version. AI is definitely planned.
Microwave power allows you to build structures at any distance from any other structure. The normal power system is still in effect though, so expect that far-out WOR facility to soak up a huge amount of power.
The other bugs I'm aware of. They will not be an issue with the new version (but expect some brand new ones! :P )

Back to work...