|
Post by rotary on Apr 6, 2011 20:24:34 GMT -5
Hey guys, As some already have seen in another topic, I brought up the idea to rebuild HardWar, wondering how it was living among the fans, but I didn't give much more details about it. However, via this topic I hope I can inspire people or at least get a better idea of the slumbering wishes among HardWar-fans! One note though; since I can't view the old forum, my idea might be a copy from someone else, without me knowing it, sorry if that's the case. Don't worry, I don't mind critics! Ok, the idea's I had.. Until now, most efforts (AFAIK) have been trying to build own engines, or use the original one. I also get the strong idea that modding is only possible for a few skillfull guys, knowing the ins and outs of the original version using HEX-editors and stuff. Therefore I thought it would be good if there was a remake that would be flexible enough to support easy modding of important parts. Heck, why not even support building in-game! What is the basic idea? Build the main-frame with Blender 3D: Blender 3D is an Open-Source creation suite for 3D applications. It has a built-in physics engine (Bullet) which can be used (or not). It can create 3D models, animations, texture mapping, rendering, etc etc. It can also import models from some external modeling-programs, making it more flexible for people to create models. Blender uses python for its logic. Python is also Open-Source, so everyone can do its magic with it. It is object-oriented, a bit less user-friendly than .net (at least, when used within Blender, since it does not give suggestions, only shows where it gives errors in the script). Ofcourse you cannot reprogram the physics engine itself, anything within it can be manipulated by logic, from changing/creating variables, applying forces, torque, vectors etc, destroying/creating objects, changing meshes, textures, materials, lighting, etc, but also the AI's, faction-strategies, economy-rules, physical properties, missions, you name it. You can literaly create a world from scratch, just with logic.. All you need is this main-frame to run it! This shows how powerful modding becomes, making it available for the public; where Remakes start and end. Of course, it is much easier to create a basic world within the main-frame, so I suggest to keep it there, since it is still editable via logic (remove/edit/create), and gives a more solid ground to work with. The nice thing from Blender is that it can eventually use external files for its models and scripts. This makes it quite flexible for other users to cooperate. This way everbody can work on models on its own pace, and models can easily be updated or imported. For the modeling you can eventually use other modeling-software, but in Blender you can store additional data (price, resources, type of product, eventual restrictions, etc etc). Therefore those models have then to be imported to Blender to add the data, and save it. Of course modeling it in Blender will save the exporting/importing troubles it could give, but Blender does have built-in ex/importing of 3DSMAX, X3D, Stanford, COLLADA, and some more. Besides the build-up of the game, for modding I suggest using JSGME, since this supports easy switching on/off of individual mods, without loosing the original files. This way people can bring their mod as a MOD-package, which can be either dis- or enabled by the user. -------------- So far for the intro  Now for some more practical parts. Ofcourse I am a human, and I know a few, and initiatives like modding and game-building take time and efforts, which can (actually, will..) loose its interest for some working on it. That's exactly the reason why something Open-Source and moddable parts should be used, to make it easy to pick up for newcomers, not to let it die with some1 getting married, getting a child, finding another hobby, getting bored or getting another job, because this WILL happen in time. If we make it possible for a regular player to implement stuff like models, it will greatly boost community support, and in the end, that's the fuel. Well... A lot of talk, enough for today at least. Just spit out what you think of it. I'm having exams in 1,5 week, so am very busy, but I will definitely follow the thread, and respond when I have time. If you have a better suggestion for use as a Main-frame, or anything else, beat me! All valuable tips are welcome. Greets, Rotary
|
|
|
Post by Pilot on Apr 10, 2011 8:56:43 GMT -5
The biggest problem with any engine is that more of us are gamers, and few of us have any skill in programming.
|
|
|
Post by Captain Zedo on Apr 11, 2011 6:33:15 GMT -5
Reverse engineering code is much more complex than writing it. People have different styles and use different approaches to "standard" items like loops and decisions.
I worked as a web developer for three years and had quite a reputation before I was any good at solving problems in other people's code. That's mostly what I do today.
In short, it takes not just a programmer, but a really good programmer to deconstruct a complex game and be able to modify it. No small feat.
|
|
|
Post by rotary on Apr 11, 2011 14:18:38 GMT -5
I agree with both of you completely, that's why I thought it would be much more efficient to build from scratch with a relatively accessable instead to reverse engineer like the mods do now.. There are 3 main parts in the game: the modeling, graphics and the logic. The graphics are not difficult. It's as simple as painting within the lines of a model. It's only a lot to paint.. Modeling requires you to make 3D models of objects. Moving/ adding/ connecting 3D points, making faces (flat areas of a model). In principle simple, but can be more difficult when you want to make sliding doors and stuff, since it has to interact with other objects via logic. I already built some doors though, and they look ok  The logic is the most difficult part, since you want the objects to interact. The physics are already built-in by Blender (balls rolling on surface, gravity, bouncing, velocities, etc), so the only logic left is the AI forming factions, trading, navigation and piloting, and building/trading interaction. I'll show some pics of what I have until now, with a bit spare time in between studying. Example1.png shows a bunch of AI's keeping their moth upside-up and flying several waypoints (100 moths in total). It keeps a nice 60 fps, but since I want a much higher population than just 100 moths, I will improve the piloting AI still, and also make a different version for out-of-sight moths. Also graphics are going to ask more later on, however the biggest concern is still the AI. Attachments:
|
|
|
Post by rotary on Apr 11, 2011 14:36:07 GMT -5
Picture of a hangar-door (don't mind the ugly building, its for testing purposes). I'm still thinking whether I should 'transport' a moth entering a hangar to oblivion and back when leaving, or to really let them enter the interior of the building. The last will enable buildings all have different hangars, and also have to assign parking spots anywhere in the building. This way larger and different (custom) hangars are possible. Besides, I also noticed that (in HardWar 1) in some hangar's the interior doesn't really fit realisticly in the originating building, when looking at the building size.. I guess they do not show the actual entering, but a simulated footage. Attachments:
|
|
|
Post by rotary on Apr 11, 2011 14:41:11 GMT -5
just to get an Idea how to model something in Blender (its the building). Applying the proper textures is not shown here, but is a bit more complicated than modeling itself. Attachments:
|
|
|
Post by rotary on Apr 11, 2011 15:21:06 GMT -5
And last, to give an idea how programming inside blender works, see the pic. I try to write using external (custom) modules as much as possible. This way it is always possible to later change the AI, economy, weapon-specs, behaviour, etc etc. Also it gives more flexibility in making flexible AI's, choosing their own destiny as trader, pirate, faction leader, building owner, or even change their destiny when things get bad (loosing their moth, or not turning profit). I am really trying to program from a individual doing bussiness, rather than a pilot glued to his moth doing stuff making him more like a decoration. My basic idea is to build a module for an individual, giving it decission-capabilities. Once a trade (as in trader, pirate, etc) is found, it will work with several modes. Each mode is a step, en results in an action depending on the trade, which is made by calling the corresponding trade-module. This module on his turn will call another module for a good trade-oppurtunity, or a valuable target flying around, or a building for sale, or a position for hire, etc. It then can also call the navigation module, asking for the way there, and tell the piloting module to go/land/buzz there. Once the piloting module reports its done, another module can be called for a specialised action like trading, fighting, scavenging, towing, etc. As you see I really try to make layers, making it possible to change individual modules. This seems to me as the best way keeping modding flexible also after release. Of course once released, an overview will be added to give the layout of the AI. At the moment I'm busy writing this modules, and it looks positive, as in possible to make it with my knowledge. Hope this clears up a bit instead of confuse  Attachments:
|
|
|
Post by duncan on Apr 14, 2011 2:49:47 GMT -5
Hi,
Yes, you should pursue Blended Hardwar.
How about a hardwar clone, take models out of original hw and recreate the engine in blender first, to keep the project focussed. Remember the feel to the original hardwar engine is quite unique and essential to mimic as close as possible. When there is a working framework, then expand with new ideas. At least thats the idea lodged in my head and find myself pursuing from time to time over the last 'almost decade.' However, I did not get further than converting game models to more usable formats sofar.
There's the good news for you, the entire hardwar world is available as a blender mesh, texture mapped - although I believe the texture coordinates are not accurate.
Lately I've been busy getting up to speed with python, to code yet another model reformatter, which could take proper tex coords into account.
I'll check if the blender world is available somewhere. PM me with an address to send it to if you're interested.
Cheers, Duncan
|
|
|
Post by duncan on Apr 14, 2011 3:05:13 GMT -5
|
|
|
Post by duncan on Apr 14, 2011 3:16:00 GMT -5
s52.photobucket.com/albums/g40/hwduncan/Some more images - not only blender efforts. Note the grey buildings in textured terrain, that was a succesfull effort to separate terrain from building meshes. --edit reading the captions it seems the texture mapping is fine. only some textures seem missing, although it just could be a material without bitmap
|
|
|
Post by rotary on Apr 14, 2011 13:59:43 GMT -5
That's VERY good news duncan, and will safe tons of time! (I mainly work with logics/python now for the engine, and therefore didn't really put effort into the modeling yet.) I didn't know of its existance, and I'm also glad I'm not the first and only one with that idea. Although I agree that we should aim for a vanilla copy first, I think starting flexible will make it much easier afterwards to enhance it, compared to hitting the same rocks like with the original version, being a pain to mod. On the other hand I realize that aiming too high is not going to help anyone.. You said (and I see) the map does include and recognizes buildings too, so that means they can be exported as apart objects also, right? I guess that some building-frames excisting of several buildings connected count as 1 object, and that walk-ways are part of the buildings, and cannot be distinguished? The reason why I prefer apart .blends of buildings and maps, is because it makes it: + more flexible to implement build/destroy options into it, + individual buildings updatable for mod-extensions, + usable for other maps, + moddable without having to screw up the main-file or limiting it to 1 map&building-mod, - disadvantage: more difficult to import it correctly in the game. At the moment I already import objects/groups from external .blends (the map, the building, the moths), and assign them properties and python-scripts according to the type. So if you can manage to seperate .blends containing the map, building-types and moths, that should probably work fairly well already.. Note however, that of this I am not sure yet though whether it is the smartest way, since its much easier (and visual) for someone to build a world and buildings at the same time, instead of importing certain objects to certain locations via script. Maybe another option is to implement a 'map-creator/interpreter'-module of python, which can 'eat' both custom built/generated maps, and complete prebuilt maps, to insert it into the game on a standard way. But that is maybe even more work, only complicating things.. I will PM you my adress for the map(s). Besides being lovely ;D, It allows me to plan for the pathfinding and importing hangars for buildings. Concerning pathfinding; I think a vertex-network with A*-like pathfinding is easiest, although a combination of custom-created path's by the moth within craters and standard path's for travel between craters might work also. Disadvantage of vertex-network is it could create silly traveling behaviour, like traveling 'zigzagging' towards the target. I am very curious how they used it in the original one, although I must say the navigating capabilities weren't hugely impressive; it's very easy to lure an enemy into a building/structure. Last note: I have some heavy exams next week, so don't expect much activity until after that time... 
|
|
|
Post by wadeyboy on Apr 15, 2011 23:26:19 GMT -5
I'd love to see this remade. I still think it's one of the best, if not THE best game of it's genre. There's so much that could be done with it and I'm dying to see a 'work in progress' with screenshots, etc of how far the project has got
|
|
|
Post by rotary on Apr 18, 2011 10:19:44 GMT -5
Agreed, its one of the few games that always sticked in my mind. However showing the updates of it is at the moment quite difficult, since the engine has to be built first, and the coding-progress is not the most visual bit  Ofcourse I'll keep you guys updated about significant steps forward, however, I have exams now (atm 3/7 done, 4 till thursday). The point is to make a good start.. The thing i'm currently looking into is whether to give each object its own script, or (I prefer) let one master-script decide what scripts it runs. The latter can improve performance a lot, however it does make it more complicated. Now en then when studying, my mind wanders off about new ideas, structures or approaches, and bit by piece a picture starts crystalizing.. Again, remember, the engine is the most important part of the game, it can be a pain to redesign at a later stadium. But to visualize, maybe I can post piles of new and abandoned code  ;D
|
|
|
Post by Pilot on Apr 22, 2011 22:42:57 GMT -5
I remember long ago playing a ?demo? of something called Sims Tower or something of the sort where you'd build a tower with restaurants, offices, a ?subway station?, stairs, elevators, etc. and try to make it into a profitable venue.
Each thing had a room size and you could build up in a stacking sense.
_________________ __|.office|_stairs_|____|. |_Lobby_|_stairs_|_bar_|
This is only a idea, if the game ever got to the place where users could buy land, towers, hangars, to perhaps be able to add their on rooms. Apartments Low- Class, Mid, High, Extravagant. And offices, security as such.
The game was a 2d side view just to give you an idea of how easy it could be to program the rooms that would make a difference to the outside landscape. Even Monorail connections.
|
|
|
Post by rotary on Apr 23, 2011 2:54:19 GMT -5
I do remember that game, actually played it. I had something like this in my mind (hold faction-leader parties where you could make deals and up your rep, etc), the biggest question is how to show these upgrades, cause I actually want them walkable. It's also possible (and much easier!) to use rooms with (several) camera positions. The rooms would be showing eventual upgrades like factories (and for example building size would come in play with amount of rooms possible). However it really depends on how I will design the engine. What I aim for is to implement the ability to walk around in buildings and walkway (looking outside from the walkway to see moths flying by would rock) , however, again, this will make buildings much more complicated I'm affraid, and I am not sure if it will be possible without making it too heavy. 
|
|