L.C. Posted March 12, 2007 Report Posted March 12, 2007 Do you plan to clean up some of your files, Bak, and pump them into like one DLL file or something to make it look at cleanly organized and structured like Continuum or better (closer to Subspace/VIE) once you have made all the modules? Your client would win me over if you did that... Bleh. Even a prettier title would. But until then, not much to say. Modules, modules, modules! Quote
Bak Posted March 13, 2007 Author Report Posted March 13, 2007 ASSS sorta does that where you can have multiple modules in one dll, but in my experience I often want to change a single module, so I think it's easier to just replace the file then either change modules.conf or recompile all the modules in the .dll. If more people express this concern, I'll consider it more. What names would you suggest? Quote
L.C. Posted March 13, 2007 Report Posted March 13, 2007 (edited) Download this and read along.http://www.hlrse.net/Discretion.rarThank you for asking. I was thinking along the lines of this kind of directory structure (let us assume \ is the root directory of X:\Discretion\): \banners - Banners are stored here\graphics - Graphics are stored here\logs - Logs are stored here\mods - Modules and client "modifications" (ie. Half-Life: Sven Co-op)\server - I don't know how you want to do it' date=' but kind of like my ServerKit (click here)\skins - Skins are stored here\sound - Sound is stored here\zones - Zone Files are stored here \bannersDiscretion should accept *.bm2, *.bmp, *.png formats (why I do not include other formats, see further down this reply). Any image with these extensions that have the correct dimensions should be selectable through Discretion. Discretion should also support WinRAR archives in the *.dat extension. A person could place a few hundred *.bm2/bmp/png banners into one of these WinRAR *.dat files, allowing a person to organize between their personal banners, their friend's banners, a huge banner pack they downloaded, etc. This would also save just a little amount of harddisk space (considering the compression WinRAR might be able to offer when archiving). \graphicsSupported formats should be *.bm2, *.bmp, and *.png. This should be the same as Continuum with only one exception. \logsThis should be exactly the same as in Continuum. It would be nice if logs could feature time and datestamps too, and some kind of notification for when the player leaves/enters an arena or connects/disconnects from a zone or whatever. \modsModules should be compiled into a DLL and stored here. In Discretion you should be able to go through a checklist of Mods you have stored in this directory and check the ones you want Discretion to load and leave the ones you don't want loaded unchecked. \serverI don't know. I cannot think of anything yet. \skinsMimic Continuum. Perhaps you could later develop skins further to allow people to make more than one menu. Remember the old Subspace menu where you would have the menu with the "Play Intro," "Tutorial," and whatever buttons? Let's say that is MenuA. MenuB would be the menu that Continuum/Discretion has right now. Perhaps a person should be able to make menus like that - maybe their own menu for the Zones, Profiles, Macros, etc functions. Would take a lot of work though to make identifiers for all the little functions and fields there are though. :S \soundsMimic Continuum. Have support for *.wa2 (or *.wav), *.mp3, and *.ogg. Did I leave anything out? :X \zonesInstead of storing zone files plain out raw inside a "ZoneNameHere" folder (ie. \zones\Jackpot SVS\) it would store it in a WinRAR archive using the extension of *.dat. To override zone content, a person would have to extract or open up the file in WinRAR, create a folder that is titled the arena name they want to override content for and place the content they want to use to override the zones content.For example, in Continuum to override Public arena graphics with your own, you would create a folder in \SSCU Trench Wars\ called (Public). Inside (Public) folder you would put your ships.bm2 to override the custom shipset TW uses in one of their LVZ files (this is an example, I know TW doesn't have a custom shipset).Basically \SSCU Trench Wars\ is replaced with \SSCU Trench Wars.dat. The content that would normally be inside the TW folder would instead be in a RAR. The advantage of this is that a zone could possible have their zone content "passworded" or "encrypted" by Discretion to keep people from overriding zone graphics or sound, or whatever. Maybe ASSS could have a module that would co-operate with Discretion, and a part of it being able to toggle whether the zone wants its files passworded/encrypted or not.Otherwise, if you don't feel comfortable using this method, I would just go ahead and mimic Continuum on its zones folder. "Why I do not include other formats."The reason I keep *.bm2 is only so that a person doesn't have any problems importing files directly from Continuum smack dab straight into Discretion. *.bmp is so that newbies could have an easier time making something in Paint and just saving it (as *.bmp is the default extension Paint saves in). *.png because it supports transparency and transparent, colored pixels pretty well. The reason for these three extensions is simply for the quality of the images. It wouldn't be very nice (even for saved diskspace) to see *.jpg and *.gif, as they have quality loss with some image distortions. It really shouldn't be too much of a big deal to just use *.bm2, *.bmp, and *.png. Besides that, the only advantage here is the *.png: while having slight compression, there really is no quality loss, has support for transparent colored pixels, it is easier to define transparent regions of the image, and it might be a little more efficient than the *.bm2/p when it comes to how fast it takes to load up the image (allows greater image dimensions). About *.conf files. What are those? Source code files or the modules themselves? Do you compile them or does Discretion interpret those on the run? To me, *.conf has always looked scary. If it is something you compile, could it be compiled into/as a DLL please? (See my description on "\mods.") The root directory of discretion could have files like...Discretion.exe (like Continuum.exe) client.dll (basically how the client functions and everything, including whatever the components.dll (this could contain required/used files, like msinet.ocx, zlib.dll, Comdlg32.ocx, MSVBVM60.dll, etc that Discretion is involved with or something the user needs in order to run Discretion)This might not work out too well though. :\ Could scrap this thought and just contain these kinds of files in Discretions root directory. menuXXXX.dll files do that Continuum has) profiles.dat (this could be a WinRAR openable file)Inside it could be a .dat file for each "profile" in Continuum. Each .dat file would contain pretty much zone.dat, keyboard.dat, macro.dat, and a bit more - like resolution settings, graphics and sound settings, OpenGL settings, etc. However, the skin the user was using at the time being will not be recorded, only to allow people to quickly cycle through all their profiles. Maybe in a profile a person could also define a custom graphics/sound/whatever file. Maybe custom belongings could be stored in the "\mods\custom\" directory inside a *.dat archive. The *.dat archive could have a graphics and sound folder; in each folder you appropriately place your custom content. Would this impact load times? :XThere are two modes of how this works: Login screen or Continuum mimic.Login Screen:When a person launchs Discretion, they first see a "MenuA" that possibly has a list of Profile Names. They would either select their profile and click the login button or create a new one. After selecting their profile, they would select the "Login" button, which would basically take them to "MenuB."Continuum Mimic:There would be no login screen. Scrap the thought altogether. A person would launch Discretion and see a profile button, they would click it, recieve the profile manager window, etc. Nothing different here. When they select a profile, Discretion would load those settings. client.dat (would contain the following files; this is a WinRAR archive)* Commands.hlp (mimic Continuum)* Ticker.hlp (mimic Continuum)* title.dat* Whatever else is necessary Discretion.ico (this is the icon file that Discretion should load, maybe?? :X What do you think?) Client.skn in \skins would be the default skin that Discretion loads. A user could replace this with something else and basically have Discretion load that as the primary. If however, the file is replaced with a corrupted or invalid skin, Discretion should replace it with a backup copy, possibly stored in menuXXXX.dll or client.dll and continue to load the client, now using a fresh default client.skn. Perhaps Discretion could feature frame-by-frame graphics files (for those that have animations) or just having all the frames in one image file.If you make each frame of one of the graphics that have an animation (like ships.bm2) as an individual image, you would store this in a *.dat archive that is named the image it is replacing. In this instance, we would name our archive ships.dat. If a *.dat is present over an image alone, Discretion should decide to load ships.dat instead of ships.bm2/bmp/png. For ships.bmp, each frame for the Warbird could be in this format:ship1f0.xxx (where xxx could be bm2, bmp, or png).ship1f1.xxxship1f2.xxxetc..Though instead of naming the file ships.dat, you would name it as shipX.dat (X being the ship number). If you only did a file for ship1.dat and didn't make one for all the other ships, Discretion should completely skip the frames for Ship1 (warbird) in ships.bm2 and use the frames f The only way we can do ships.dat is if we have all the frames of every ship as individual images, so that we don't see the "missing image" placeholder.If you have an animation with frames arranged in a 4x2 grid, and you are missing the last frame, Discretion should load that "missing image" picture in place of the frame. Advantage of this is that it might be easier to use larger image dimensions for each individual frame. Having all the frames in one image file is exactly how ships.bm2 as we speak is presented. You just have all the frames arranged in one picture in order of going from left to right, starting at the top row (or frame). This does not have to be in a *.dat archive. Here is an example of most of the above. Feel free to have your WinRAR open and to try open some of the *.dat files and check out how I've placed them around. Bak, I think eventually you'll have to add support for Discretions own encryption and online protocol some day to accomplish a game-rebirth (I'm not talking population/player-wise). Heh, perhaps even another day you might take ASSS and redo some parts of it to make it have this kind of organization/cleanliness (or as Subgame does or whatever). Edited December 21, 2009 by Samapico Quote
Bak Posted March 15, 2007 Author Report Posted March 15, 2007 nice, definately some good ideas I'll use. Some of the things, like encrpyting server files, would probably be impossible with an open source client. The conf files are nothing to be afraid of. They're like .ini files, interpretted settings. I think the fact that they're so many settings that you can change (and soon the server will be able to change), is a huge plus for customizability.\ You seem to like the winrar .dat files for a lot of things... any specific reason? Is there an open source library that you know of that I could use to read/write from these sorts of files easily? Quote
»Ceiu Posted March 15, 2007 Report Posted March 15, 2007 One thing you should do differently (vs Continuum): Don't reload all graphics when the game window regains focus. You can probably figure out a work around for why I think it's a problem, but it's generally a useless function anyway. In MG, there's about 4.6mb worth of media for the public arena. When a player goes to change a song or something stupid that requires minimizing the game, when they go back they almost always trigger the arena's spike detection due to the time spent reloading the images/sounds. Now, I could remove the lag settings (but, I won't), or I could attempt to educate players as to what's happening. Really, the only people who make use of this "feature" are those who edit images and sounds for their zone. Everyone else doesn't even know it's there, but still suffer from the negative effects. ...aww !@#$%^&*. I had more, but I forgot it all while writing that rant. Oh well. Quote
L.C. Posted March 15, 2007 Report Posted March 15, 2007 You seem to like the winrar .dat files for a lot of things... any specific reason?I've seen a few in-between to big games use this before. Not sure if it is the most efficient, but if you could find something better or possibly even develop your own kind of archive to offer more efficiency, speed, archiving, and organization, then go for it. One thing you should do differently (vs Continuum): Don't reload all graphics when the game window regains focus.Ah shoot. That reminds me Bak, I forgot to add something to my big quote. When you connect to a zone, the client should have an option (that can be toggled, just for the sake of the user having a choice - might be better for some people to have it off if they have low memory) to preload all graphics before actually connecting or entering the zone. In Continuum, if you have too large of a graphic for your video card or machine to handle, Continuum will seem to "freeze" for a few moments at the loading screen, then finally you would see yourself disconnected from the zone for "lagging" or spiking with such intensity. See what I mean? Discretion should prevent this. :\ Would be nice to use some huge graphics. Quote
corvey Posted April 1, 2007 Report Posted April 1, 2007 (edited) Hello, I am inquiring about this project. I think it's really great and I hope it continues into a full playing version. I want to be involved in learning C++ programming and the structure of Discretion while producing a module exclusively for this client. Since I am new to this project I will have many questions to get myself started. I would like to now introduce myself. I am a old school computer user since the mid 80's. I played Subspace since the betas started to hit the internet, then finally after it came out, I purchased Subspace the very first day it came out for $29.99. I have always loved this game . I still have the CD, case, and box! Although I haven't really played much SS in the past 5 years, it doesn't mean I have forgotten about it. I happened to stroll across this this SS clone project and found out this is open source, and this has rekindled my spirit of the game. I happened to use an alias "MC=NOOB" for my real alias on the text board on the main site, basicly to inquire and see if it was really still alive, and apparently it is, so please forgive me for that name . Please welcome me here, and I will look forward to making my dream module come true with the help of this project. I am particularly interested in how smooth the game plays in practice mode as compared to Continuum. I am to believe that this client can be superior to Continuum in the future due to this single fact alone. I am impressed by the work you have done so far Bak, and I hope you can mentor me in making a module. Thank you, corvey Edited December 21, 2009 by Samapico Quote
Bak Posted April 1, 2007 Author Report Posted April 1, 2007 Thanks, we sure could use your help. Here's a simple module tutorial topic, post there with any questions you run into: http://forums.sscentral.com/index.php?showtopic=13168 Quote
BoogaBooga Posted April 11, 2007 Report Posted April 11, 2007 Ive been playing SS/Continuum on and off since 2000, and its really nice to see that things are getting done! Even though Discretion is still in its infancy, I must say, it feels very comfortable to play. I am sure its much to early to worry about this, but I agree with some of the posts. The file structure (although convenient for developers) might be a little ..intimidating.. to the novice. Having mp3 or ogg files for the sound effects might be a little overkill, I know ogg is open-source, but isn't a lisence for mp3 required to encode files. I think wave files more than satisfactory and are much easier to work with. The only place where I see any reason for compressed audio is if a zone would have background music or something. I really wish I could contribute more to the project, but I've only finished an introductory course in C. It seems I am in the wrong feild of study to be of any help . I might be able to help out with some of the graphics though, and maybe sound effects too. Anyway, to those developing, you guys are doing a great job! Keep up the good work and have fun! Quote
L.C. Posted April 11, 2007 Report Posted April 11, 2007 I think wave files more than satisfactory and are much easier to work with.I agree with this too. The reason I "added MP3 and OGG" to the list was because they can be sometimes a little more convenient than the WAV format. OGG might be a bit more intimidating than MP3 and WAV though, but atleast whoever would have knowledge in using and converting to those formats would be able to take advantage of abilities. Quote
Witchie NL Posted April 11, 2007 Report Posted April 11, 2007 Id say use mp3.... Most people know it... most editors can edit it... has a good sound quality aswell. Quote
Hakaku Posted April 11, 2007 Report Posted April 11, 2007 I think Midi files should be supported as well. Quote
Witchie NL Posted April 11, 2007 Report Posted April 11, 2007 wtf do you need to use midi for!? Quote
BoogaBooga Posted April 11, 2007 Report Posted April 11, 2007 (edited) midi could be nice.. Although, the problem with midi is that not everyone might have a decent wavetable and it could sound really crappy on some machines and really nice on others. However, if you're good with midi sequencing, you can make some really nice sounding background music. It can't hurt to implement it eventually I think. However, as far as music and contunuum go, I think it would be better for the game and the community to simply rely on radio stations run by the people for their listening needs. Edited April 11, 2007 by BoogaBooga Quote
L.C. Posted April 11, 2007 Report Posted April 11, 2007 Well really, it doesn't hurt to have multiple extensions supported as long as the proper codecs (if any necessary) are also provided. Quote
tcsoccerman Posted April 15, 2007 Report Posted April 15, 2007 (edited) I also agree that midi files should be used along with others. Midi files, if i recall correctly, have a much less size as a .wav/.wa2. Why not supposrt them all? also, when you make more progress on discretion, where do you put the updates? Edited April 15, 2007 by tcsoccerman Quote
Witchie NL Posted April 15, 2007 Report Posted April 15, 2007 You ever heared a midi file!? its just some high and low tones played after eachother to make a 'song'. Just like a Nokia 3310 Ringtone.. bleep bleep bleep peep pong Quote
Bak Posted April 15, 2007 Author Report Posted April 15, 2007 http://209.197.106.133/19580222/rock/beatl...ComesTheSun.mid Quote
L.C. Posted April 15, 2007 Report Posted April 15, 2007 Midi's are ok for low-end audio. Some music that I've heard before wasn't that bad on midi either, sounded pretty decent. Might give a nostalgia feeling though. Pretty much the midi is like at a set pace, each pace a certain key of sound is played (my little guess explaining why midi's are very inexpensive when it comes to filesizes). Quote
Witchie NL Posted April 15, 2007 Report Posted April 15, 2007 If their usefull it should be added indeed.. but if its not realy neccessairy mp3 will be fine aswell.. Quote
Dav Posted April 18, 2007 Report Posted April 18, 2007 i know im constantly talking about pocket PCs but would this be able to work on one, or at least a strip down vertion? Quote
Witchie NL Posted April 18, 2007 Report Posted April 18, 2007 Its C++ and since i heard you talking about a special compiler for it i guess it will. Quote
L.C. Posted April 18, 2007 Report Posted April 18, 2007 Hah, just had a thought. If a PocketPC had slight problems being able to render Subspace graphics, it could be stripped down enough to where ships would be textureless (nulled faces), wireframe (white colored) ships, a "null" background (or just black), wireframe projectiles, and perhaps wireframe walls (with some light shading inside them). Quote
Drake7707 Posted April 19, 2007 Report Posted April 19, 2007 ah, but there are a lot of midi's out there, especially game music (www.vgmusic.com). I find most midi's better than some music i hear on the radio (then again, i hate most of the music they play on the radio anyway) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.