View Full Version : HCOL Reverse Engineering
hclixinarcadia
10/06/2010, 15:03
Project Plan:
There will be four basic modules as outlined in the spec below: Figure-Object Editor, Team Management, Battlefield Manager, and Multiplayer. The plan is to develop incrementally, QAing each step thoroughly before moving on to the next. This ensures clean and generally bug-free code.
A shell will be developed that will have the menu options in place but will be stubbed to say "under construction" when the option is selected. As the parts are developed they are inserted into the appropriate module.
The following is the order in which the parts will be developed:
1. Convert data - the current BIN files need to be converted so it has the current file layout. This is as simple as reading and writing out the data.
2. Create the "Shell" - the overall program with menu options which will look a lot like the current HCOL. If you want a Jim Lee rendition of Storm in a swimsuit in the background... fine, we can add that in too.
3. Figure-Object Editor - this will look like the current HCOL custom figure editor with Attack type and Defense type added in. This will also allow us to view and QA the converted data. ...what's that? a Jim Lee rendition of Psylocke in a swimsuit in the background?... you got it.
4. Team Management - the next logical step after figures can be entered and viewed is forming/saving/loading teams... Cyclops in a speedo in the background? ugh but ok... we're equal opportunity here.
5. Battlefield Manager - the next logical step after teams can be formed.
6. Multiplayer - this should be last as it seems to be the most complex but then again there should be libraries out there that we can simply include to have this functionality.
7. Beta - get a few suckers... er volunteers to test the new product out.
8. Deployment - product release to the public. If there are bugs we can blame the beta tester who will then blame the programmers who will then blame the designers who will then blame me who will then blame Crow who will then blame the missing programmer/creator of HCOL... a win for everyone!
Specifications:
Create a program that provides the same functionality as HCOL. This includes:
Figure-Object Editor (Search Figures-Object/Edit Figures)
Team Management (Save/Load/Print/Edit/Build/Figure-Object Search)
Battlefield Manager (Maps/Display Toggles/Dice/Tokens/Clicks/Action Updates)
Multiplayer (Host/Join/Chat/Save/Load/Draft)
New functionality may also be incorporated:
custom images for figures and objects
incorporation of duo attack and indomitable
traits
support for dials with data for 12 clicks or more
Design:
BIN File Layout
Character data is housed in BIN files. The layout is as follows:
The file is delimited by null (hex 00)
It is preceded by 1 null
Each text field is preceded by number of characters followed by the value
Each numeric field is 3 characters wide stored as hex/binary
Each Boolean is actually a text field whose value is true/false
Field 1: Number of Figures (Num)
Field 2: Collector Number (Text)
Field 3: Character Name (Text)
Field 4: Character Team (Text)
Field 5: Range (Num)
Field 6: Targets (Num)
Field 7: Point Cost (Num)
Field 8: Rank (Text)
Field 9: Wing flag (Boolean)
Field 10: Dolphin flag (Boolean)
Field 11: Boot Transporter flag (Boolean)
Field 12: Wing Transporter flag (Boolean)
Field 13: Giant flag (Boolean)
Field 14: Double Base flag (Boolean)
Field 15: Speed 1 Value (Num)
Field 16: Speed 1 Color (Text)
Field 17: Speed 2 Value (Num)
Field 18: Speed 2 Color (Text)
Field 19: Speed 3 Value (Num)
Field 20: Speed 3 Color (Text)
Field 21: Speed 4 Value (Num)
Field 22: Speed 4 Color (Text)
Field 23: Speed 5 Value (Num)
Field 24: Speed 5 Color (Text)
Field 25: Speed 6 Value (Num)
Field 26: Speed 6 Color (Text)
Field 27: Speed 7 Value (Num)
Field 28: Speed 7 Color (Text)
Field 29: Speed 8 Value (Num)
Field 30: Speed 8 Color (Text)
Field 31: Speed 9 Value (Num)
Field 32: Speed 9 Color (Text)
Field 33: Speed 10 Value (Num)
Field 34: Speed 10 Color (Text)
Field 35: Speed 11 Value (Num)
Field 36: Speed 11 Color (Text)
Field 37: Speed 12 Value (Num)
Field 38: Speed 12 Color (Text)
The pattern repeats for each of, Attack, Defense, and Damage
Fortunately, the SPL and KWL files are documented in the user's manual.
SPL File Layout
See page 20-21 of the HCOL user’s manual
This file is tab delimited. Each record ends with a carriage return/line feed. Each power is on its own line.
The fields are as follows:
Collector Number
Ability
Click Numbers (separated by comma)
Power Description
KWL File Layout
See page 21-22 of the HCOL user’s manual
The first line of this file has "::start figures". The last line of this file has "::end figures".
Each record after that is tab delimited, ends with a carriage return/line feed and has the following layout:
Collector Number
Character Name
Keywords
LST File Layout
The following files have their respective documentation and layout description within and at the top of the file itself:
Objects.lst
Feat.lst
Bfc.lst
TA.lst
duoAtt.lst
Sets.lst
See the discussion on custom figures on page 19 of the HCOL user’s manual. This shows you how the sets.lst file should be used.
AE.lst
This is the arch-enemy list file. This is no longer in use and will not be discussed further.
TXT Files
The following contain descriptions of the power or ability. A quick scan of the contents is self-explanatory as to the layout.
Abilities.txt
Abilities2.txt
Attpwrs.txt
Dampwrs.txt
Defpwrs.txt
Movpwrs.txt
I’m not sure what basesize.txt has.
New CSV File Layouts
The current BIN file will be split out into three files: Figures, Teams, Clicks
The Figures file will contain strictly character data such as name, range, set and collector number.
Since figures can now have two teams, it's only proper to put this in a separate file to actually allow for an infinite number of teams to be linked.
By putting clicks in a separate file, the standard 12 is handled as well as 4x4's, and whatever else may come out in the future.
The format will be CSV which is a little easier to handle.
Figures.CSV File Layout
The new layout is as follows:
Field 1: Set (Text)
Field 2: Collector Number (Text)
Field 3: Character Name (Text)
Field 4: Range (Num)
Field 5: Targets (Num)
Field 6: Point Cost (Num)
Field 7: Rank (Text)
Field 8: Clicks of Life (Num)
Field 9: Speed Type (Text)
Field 10: Attack Type (Text)
Field 11: Defense Type (Text)
Field 12: Damage Type (Text)
Field 13: Double Base flag (Boolean)
Field 14: Transporter Flag (Boolean)
Field 15: Sprite Image (Text)
Field 16: Keywords (Text, double-quote delimited)
Field 17: Trait (Text, double-quote delimited)
Field 18: Speed Special (Text, double-quote delimited)
Field 19: Attack Special (Text, double-quote delimited)
Field 20: Defense Special (Text, double-quote delimited)
Field 21: Damage Special (Text, double-quote delimited)
Field 22: Start Line 2 (Num)
Clicks.CSV File Layout
Field 1: Set (Text)
Field 2: Collector Number (Text)
Field 3: Click (Num)
Field 4: Speed Value (Num)
Field 5: Speed Color (Text)
Field 6: Attack Value (Num)
Field 7: Attack Color (Text)
Field 8: Defense Value (Num)
Field 9: Defense Color (Text)
Field 10: Damage Value (Num)
Field 11: Damage Color (Text)
Teams.CSV File Layout
Field 1: Set (Text)
Field 2: Collector Number (Text)
Field 3: Team Name (Text)
Feats.CSV File Layout
Field 1: Set (Text)
Field 2: Collector Number (Text)
Field 3: Name (Text)
Field 4: Fixed Cost Flag (Boolean)
Field 5: Cost (Num)
Field 6: Pre-requisites (Text, double-quote delimited)
Field 7: Description (Text, double-quote delimited)
ATAs.CSV File Layout
Field 1: ATA Name (Text)
Field 2: Universe (Text)
Field 3: Fixed Cost Flag (Boolean)
Field 4: Cost (Num)
Field 5: Keywords (Text, double-quote delimited)
Field 6: Description (Text, double-quote delimited)
Objects.CSV File Layout
Field 1: Object Name (Text)
Field 2: Category (Text)
Field 3: Cost (Num)
Field 4: Continual Flag (Boolean)
Field 5: Description (Text, double-quote delimited)
BFCs.CSV File Layout
Field 1: Battlefield Condition (Text)
Field 2: Description (Text, double-quote delimited)
BIN KWL and SPL File Conversion Program
The conversion program will basically read a line from the BIN, SPL, and KWL file, process the data and write out a line to the new CSV files. If there is a trait in the KWL file, it will be stripped off and saved to the trait field.
For the BIN file, read each record from the old file and write it out to a new file, replacing the Giant Flag, Wing Flag, Dolphin Flag, and Transporter Flag with data using the following logic:
if Giant Flag == "true" then
Figures.Damage Type := "giant"
else Figures.Damage Type := "starburst"
end if
if Wing Flag == "true" then Figures.Speed Type := "wing"
else if Wing Flag == "false" then
if Dolphin Flag == "true" then Figures.Speed Type := "dolphin"
else Figures.Speed Type := "boot"
end if
if Boot Transporter Flag == "true" or Wing Transporter Flag == "true" then Figures.Transporter Flag := true
else Figures.Transporter Flag := false
end if
if Speed 1 Value <> 99 then
write out a line in the Clicks.BIN file with:
Clicks.Set := left$(Collector Number,2)
Clicks.Collector Number := right$(Collector Number, 3)
Clicks.Speed Value := Speed 1 Value
Clicks.Speed Color := Speed 1 Color
Clicks.Attack Value := Attack 1 Value
Clicks.Attack Color := Attack 1 Color
Clicks.Defense Value := Defense 1 Value
Clicks.Defense Color := Defense 1 Color
Clicks.Damage Value := Damage 1 Value
Clicks.Damage Color := Damage 1 Color
The colors currently used are as follows: red, orange, yellow, lime, green, blue, dblue, purple, brown, black, gray, white. Note that blue = light blue, dblue = dark blue, brown = gold, and gray = silver.
Currently "white" is also assigned for Special Powers. We need to go thru the SPL file, find the clicks with special powers and assign accordingly in the clicks file as "special" color. We also need to save the special power description to the corresponding special field in the figures bin file.
Repeat the above for each click and tally the clicks of life. After all the clicks have been written out, save this total into Figures.Clicks of Life.
write out a line in the Teams.CSV file with:
Teams.Set := left$(Collector Number,2)
Teams.Collector Number := right$(Collector Number, 3)
Teams.Team Name := Character Team
There is a corresponding entry in the KWL file that matches by collector number. If you find |DUO| then Figures.Attack Type := "duo" else Figures.Attack Type := "fist"
also, if you find |INDOMITABLE| then Figures.Defense Type := "indomitable" else Figures.Defense Type := "shield"
Note that the logic above is pseudo-code.
As you are done using the values in the KWL file to determine the values for the new fields in the CSV file, replace each instance of "|DUO|," and "|INDOMITABLE|," with null.
Note that the comma in "|DUO|," and "|INDOMITABLE|," have to be stripped off so that the keywords don't start out with a comma in front.
Now that you've stripped out the non-keywords from the KWL record, you then save the keywords to the keywords field.
The starting line 2 field will be saved with a "0". The files will then be manually edited to put the correct number there.
Feat Conversion Program
Since there are only a handful of ATAs, I manually entered these into atas.csv.
The current feat.lst file will filter out the ATAs and write the feats out to Feats.CSV. ATAs will have "keyword(s):" where the pre-requisites normally would be while all others are feats. Note that not all feats will have a "prerequisite:" line. There will still be some manual editing at the end to clean up the ones that didn't follow the convention.
Some things to note:
each feat/ata is separated by a line with "::end". The first line is contains three fields that are space delimited:
collectorsnumber
cost
feat name
Actually, use these fields and not the redundant ones that follow because those other ones will be all-caps and have unnecessary text in the feat name.
then that is followed by a line with "::cost" followed by a line containing the cost, followed by a line with the feat name in caps.
that is followed by a line with "::br" which is followed by the "prerequisite:" (for feats, sometimes all caps and sometimes proper) or "keyword(s):" for ATAs
another "::br" follows and the rest is the feat/ata description until the "::end" marker. Treat all "::br"s encountered as blank lines in between paragraphs within the feat description.
Object Conversion
I manually edited the current object.lst to fit into the aforementioned objects.csv layout
Battlefield Condition Conversion
I manually edited the current bfc.lst to fit into the bfcs.csv layout
HeroClix Online 2.0 Main Menu
this is the so-called shell.
The main menu will consist of the following options (sub-menus are in parenthesis):
Figure/Object Editor - (Search Figures, Edit Figures)
Team Maintenance - (Team Builder, Save Team, Load Team, Clear Team)
Battlefield Manager - (Choose a Map, Rotate Map 90, Toggle ALL Names, Toggle Home Team Names, toggle Opposing Team Names, Toggle Object Names, Draw Move Lines, This Team Selection Highlight, Opponent Team Selection Highlight)
Multiplayer - (Host Game, Join Game, Disconnect, Save Game, Load Game, Draft Game)
Exit
The image in the splash page will be configurable. You may put the image of your choice there.
Search Figures/Objects
there will be a quick search feature similar to what's in the team builder where the user can select from a dropdown of sets which then lists all the figures in the set.
There will be an advanced search feature similar to what's in "Search Figures." From the advanced search screen, you can search by name, set, team ability, size, speed type, attack type, defense type, damage type, cost, range, lightning bolts, speed value, attack value, and all the other pieces of data that is stored in the character.
Edit Figures
this will basically allow you to enter data for a character and work similarly to "Custom Figures"
New fields to be added are Attack Type, Defense Type, and Traits. Traits will be handled similarly to the way descriptions to powers come up, as a tooltip.
The user will also be able to enter data for the 12th click.
This program will basically allow the user to view, edit, delete, and save figure/object data.
The view section of this program will display the data that's in the figures file.
Team Management
This will allow the user to select figures, feats, objects, ATAs, and BFCs, to add to the team.
It will also allow the user to remove any part of this team
A running tally of total points will be displayed to the user.
The user will have the option to print out an army sheet... most likely in the format given in the www.heroclix.com/download section.
I will update the spec and design as I learn more about it.
Feel free to post corrections or suggestions and I will incorporate into this first post.
MangaFox
10/06/2010, 15:32
Is it possible to contact the creator of the original program and obtain the source code and/or make it open-source? Would be alot less work.
wolviefreak
10/06/2010, 15:44
Nope, he/she are long gone.
invisibo
10/06/2010, 16:48
I tried to track him down one time (apparently he used to live in my area) but no one remembered him where I play.
hclixinarcadia
10/06/2010, 17:02
I updated the first post to include the other file types.
MattMinus
10/06/2010, 18:26
You can't afford my hourly rate.
hclixinarcadia
10/07/2010, 13:29
here's an idea with regards to Duo Attack and Indomitable:
The boolean fields used for wing, transport, giant are actually simple text fields. So, how about we change usage of those fields so that:
the Wing flag (Field 9) becomes the Speed type field with possible values of: Wing, Boot, Dolphin, Boot Transport, Wing Transport, Dolphin Transport.
the Dolphin flag (Field 10) becomes the Attack Type field with possible values of: Fist, Duo, Sharpshooter
the unknown flag (Field 12) becomes the Defense Type field with possible values of: Shield, Indomitable
the Giant flag (Field 13) becomes the Damage Type field with possible values of: Starburst, Giant, Colossal
That means, a utility needs to be created and run to convert current values in those flags to their appropriate new values with the following logic:
if Giant Flag == "true" then
Giant Flag := "giant"
else Giant Flag := "starburst"
end if
if Wing Flag == "true" then
if Transporter Flag == "true" then Wing Flag := "wing transporter"
else Wing Flag := "wing"
else if Wing Flag == "false" then
if Dolphin Flag == "true" then
if Transporter Flag == "true" then Wing Flag := "dolphin transporter"
else Wing Flag := "dolphin"
end if
else
if Transporter Flag == "true" then Wing Flag := "boot transporter"
else Wing Flag := "boot"
end if
Loop through again and clear out the Dolphin Flag.
Actually, the Transporter flag probably needs to stay for other purposes, which means we need to use Field 12 as the Defense Type field... ok edited the post to reflect that...
any ideas?
Ok, but, how do you get any code you write on the side to interact with the existing HCOL.exe file? You still need to load the appropriate combat symbols, so you need to get at the .exe code and not just hack the BIN for a figure.
hclixinarcadia
10/07/2010, 13:42
actually to follow up on the above, the transporter flag is actually redundant if "transporter" will be saved in the speed type.
we can test for transporter in the program by simply checking for "transporter" in Speed Type
hclixinarcadia
10/07/2010, 13:43
Ok, but, how do you get any code you write on the side to interact with the existing HCOL.exe file? You still need to load the appropriate combat symbols, so you need to get at the .exe code and not just hack the BIN for a figure.
yes, you need a brand new exe... HCOL 2.0
hclixinarcadia
10/07/2010, 13:46
...and you'd need a new set of data with the new usage for those flag fields to go along the new EXE. The field layout, however stayed the same and you didn't break every figure already entered as the programmer originally thought.
the old HCOL exe can still run but it has to use the old data.
Note to the mods: you are welcome to move this discussion to the Heroclix Online Tools forum because it's rather technical.
In short - HCOL 2.0 is a cool idea, but two things daunt me:
#1 the length of time involved in coding it, particularly the Internet-connectivity aspect (which I know ZERO about) and the GUI which is time-consuming.
#2 the prospect of being shut down by an official action or even an official online product.
wolviefreak
10/07/2010, 14:21
Why would (wizkids/neca or whoever it is now) care when they've let HCOL 1.0 be? It's the same thing, just updated. But, I do understand your concern.
Why would (wizkids/neca or whoever it is now) care when they've let HCOL 1.0 be? It's the same thing, just updated. But, I do understand your concern.
They contacted me not long ago about HCOL. They may have let it go for now, but that's no guarantee. Ziran is trying to be a nice guy about it (he's very much aware that I'm just a fan of HC and not trying to do anything but play online) and I appreciate him for it, but this is potentially an issue for them and I don't want to cause trouble.
hclixinarcadia
10/07/2010, 15:15
They contacted me not long ago about HCOL. They may have let it go for now, but that's no guarantee. Ziran is trying to be a nice guy about it (he's very much aware that I'm just a fan of HC and not trying to do anything but play online) and I appreciate him for it, but this is potentially an issue for them and I don't want to cause trouble.
How about this: WK can have whatever we develop for HCOL 2.0. Think of it as us laying the groundwork for the official HeroClix Online.
As far as compensation goes, don't even worry about it. I'd do it and I know that you, Crow, do it for love of the game as well. And whoever else contributes should do it for the same reasons too. Of course, if WK decides to reward us with a case of WoS or something then who am I to refuse?
hclixinarcadia
10/07/2010, 15:20
Note to the mods: you are welcome to move this discussion to the Heroclix Online Tools forum because it's rather technical.
In short - HCOL 2.0 is a cool idea, but two things daunt me:
#1 the length of time involved in coding it, particularly the Internet-connectivity aspect (which I know ZERO about) and the GUI which is time-consuming.
#2 the prospect of being shut down by an official action or even an official online product.
Fear not, that's what google is for... simply type "Internet connectivity, Java" and click the Google button and voila. Or, if that doesn't do it, I'll ask my buddies.
As for being shut down by an official action, do it for the sheer challenge of starting something and getting it done and don't do it for profit. Then it doesn't matter if there is official action or not... which I think is light years away... as said in another thread... it's 3 years away from the fantasy stage, and then another 3 years from fantasy to reality.
ctrosejr
10/07/2010, 16:22
Crow, what language/platform are you contemplating using?
hclixinarcadia
10/07/2010, 17:21
I've updated the first post to include the Project Plan. For anyone who doubted it, now, do you see that it is possible?
spider_ham
10/07/2010, 17:53
Looks good! Count me in!
I tried to track him down one time (apparently he used to live in my area) but no one remembered him where I play.
I knew him. His name is Scott and he played for awhile at Valhallas Gate in Columbia, MO. This was years ago though. At the time he worked for Socket Internet which was located in downtown Columbia, MO.
I haven't lived in Columbia for almost 5 years and it has probably been 6 years since I have seen him.
invisibo
10/07/2010, 22:45
I knew him. His name is Scott and he played for awhile at Valhallas Gate in Columbia, MO. This was years ago though. At the time he worked for Socket Internet which was located in downtown Columbia, MO.
I haven't lived in Columbia for almost 5 years and it has probably been 6 years since I have seen him.
Yeah, I'm in como and the few players I asked didn't recall him--there was an article in the tribune mentioning him, though, which is how I was able to get his full name. No name listed in the phone book for him anymore though.
Yeah, I'm in como and the few players I asked didn't recall him--there was an article in the tribune mentioning him, though, which is how I was able to get his full name. No name listed in the phone book for him anymore though.
If we could find him that would save us considerable time, but when someone disappears just like that I suspect prison, death, or alien abduction.
hclixinarcadia
10/08/2010, 00:12
If we could find him that would save us considerable time, but when someone disappears just like that I suspect prison, death, or alien abduction.
Yup, finding him would make everything much easier.
Although, the hardest part of this project which is figuring out the layout of the BIN file is done.
As of now, someone can actually write their own program and use those existing files.
wolviefreak
10/08/2010, 01:35
So, you're now able to start a HCOL 2.0?
hclixinarcadia
10/08/2010, 02:24
So, you're now able to start a HCOL 2.0?
well, we actually started when we created the project plan, spec, and design.
The spec is pretty much complete. We need to start on design. The first step is to convert the existing BIN files, think of what this should be written in, and create the shell and figure maintenance programs.
I don't know Java that well. I've worked with DarkBasic (if anyone has ever heard of that). Let me research a little bit. For all we know there is freeware out there that lets us define the layout and maintain the bin file.
hclixinarcadia
10/08/2010, 02:25
Looks good! Count me in!
hooray! got any suggestions as to platform/language?
wolviefreak
10/08/2010, 02:29
Well, Spider_Ham knows.....uh, Flash I think :) Microclix was done in Flash if I remember him saying :)
spider_ham
10/09/2010, 12:46
Java will allow you to continue along the same lines of HCOL, although ActionScript/Flash would give you a nicer GUI. Flash's limitations are a lag in real-time updating and server-side dependency (using PHP, MySQL and SmartFox to handle users/games).
chrisghast
10/09/2010, 13:11
as a failing computer tech student I can't help you with anything in the computer department the most I know is a little Visual Basic however I would like to thank you all for the hard work you are doing to have this become a reality once it's up and running it should be fun, I would love to be a beta tester for it and once again thank you very very much.
wolviefreak
10/09/2010, 13:31
Oh yes, me too. I'll beta test the heck out of this thing!
And, yes, thanks to all of you who try to help out the rest of the clix community with helpful playing aids!!
hclixinarcadia
10/11/2010, 17:09
Java will allow you to continue along the same lines of HCOL, although ActionScript/Flash would give you a nicer GUI. Flash's limitations are a lag in real-time updating and server-side dependency (using PHP, MySQL and SmartFox to handle users/games).
hmmm... lag wouldn't matter as much with something turn-based like this. And, I've used some PHP and MySQL in the past for something simple. Plus, if there are database layout changes, it's an easy change in MySQL isn't it?
Just off the top of your head, how would you read the BIN File using PHP?
as a failing computer tech student I can't help you with anything in the computer department the most I know is a little Visual Basic however I would like to thank you all for the hard work you are doing to have this become a reality once it's up and running it should be fun, I would love to be a beta tester for it and once again thank you very very much.
lol, sure.Oh yes, me too. I'll beta test the heck out of this thing!
And, yes, thanks to all of you who try to help out the rest of the clix community with helpful playing aids!!
cool. I've updated the design to include the main menu. Perhaps we can start programming and getting prototypes using different languages... Java, I hear is free... PHP is free too but we need to be able to run it and test. Anyone have any suggestions?
FYI... my day job is in software quality assurance. Basically, I create test cases, test the software, and report the bugs back to developers. If you need help with QA let me know and I'll do what I can.
hclixinarcadia
10/11/2010, 18:18
FYI... my day job is in software quality assurance. Basically, I create test cases, test the software, and report the bugs back to developers. If you need help with QA let me know and I'll do what I can.
Nice! What kind of software and language do y'all use?
Nice! What kind of software and language do y'all use?
A mix of everything from C to Javascript. I test both standalone and web apps.
hclixinarcadia
10/11/2010, 23:15
... just a quick update. I played around and was able to read the BIN files using a language called DarkBasic... maybe I'll write it in that language... it's actually easier than C or Java... let's see.
wolviefreak
10/11/2010, 23:49
Hclixinarcadia
Just know I'm here rooting for you with double pom-pom's!!
:p
spider_ham
10/12/2010, 00:49
... just a quick update. I played around and was able to read the BIN files using a language called DarkBasic... maybe I'll write it in that language... it's actually easier than C or Java... let's see.
One solution could be writing a small utility in DB to output the BIN data to a new format, in which case you could add fields accommodate the missing symbols. My main issue with MC was that I didn't want to rewrite everything in AS3, but there are definite advantages.
What are DarkBasic's networking capabilities?
More importantly, how will the character data be handled? One file per set, individual character files, or one giant database?
hclixinarcadia
10/12/2010, 11:24
One solution could be writing a small utility in DB to output the BIN data to a new format, in which case you could add fields accommodate the missing symbols. My main issue with MC was that I didn't want to rewrite everything in AS3, but there are definite advantages.
What are DarkBasic's networking capabilities?
More importantly, how will the character data be handled? One file per set, individual character files, or one giant database?
Yes, outputting to a new format is certainly possible and easy.
DarkBasic was designed specifically for gaming. Multiplayer/Network programming takes only a few lines of code.
Not sure about character data... maybe load it into one big array at the start of the program. I'm guessing that's how the current HCOL in Java handles it since you can pick characters and it's up on the screen right away.
Hclixinarcadia
Just know I'm here rooting for you with double pom-pom's!!
:p
lol, didn't know you were a cheerleader by trade.
hclixinarcadia
10/13/2010, 07:29
Wolviefreak,
Looks like I'll need bmp files to use as sprites to replace the circles. Can you provide them for a small set such as Jonah Hex? Or maybe Blackest Night Starter?
wolviefreak
10/13/2010, 10:33
On it.....looks like I know what I'm doing tonight! :) or.....at work? :p
hclixinarcadia
10/13/2010, 10:38
On it.....looks like I know what I'm doing tonight! :) or.....at work? :p
lol, thanks. yeah, I was able to read all the data for jh.bin, which is Jonah Hex and then display the values on the screen. So, the conversion program will be easy to finish.
I do have a problem with the main menu program. DarkBasic lends itself well to creating matrices and handling multiplayer and 3d animation but not so well on a simple thing like creating a menu system... ugh. I'll try to look for ready-made code out there.
hclixinarcadia
10/13/2010, 10:51
ok, I found a couple of free source code for a menu utility... will try it later when I get home.
On it.....looks like I know what I'm doing tonight! :) or.....at work? :p
Out of curiosity, since the dials are so small on the screen, how we expect this to actually look? Are the images going to be generic Google-searched jpegs or the actual sculpted clix?
I still say using the images may attract unwanted attention - but I applaud the effort going into this.
How will Traits be handled? I think the custom dial maker will need an extra menu item.
wolviefreak
10/13/2010, 11:02
[QUOTE=Crow;5055711]
I still say using the images may attract unwanted attention - but I applaud the effort going into this.
QUOTE]
Yea, about this......should I just use generic "character" images from the web? I don't want to step on any toes :speechles
hclixinarcadia
10/13/2010, 11:14
How will Traits be handled? I think the custom dial maker will need an extra menu item.
Currently traits show up under keywords on the team builder screen but do not show up on the custom figure screen.
Is that how you currently work-around traits? by adding them in the keyword file?
How do you think that should be handled? We can certainly add it in.
Currently traits show up under keywords on the team builder screen but do not show up on the custom figure screen.
Is that how you currently work-around traits? by adding them in the keyword file?
How do you think that should be handled? We can certainly add it in.
That was my workaround, yes, I tossed them in with keywords - but it didn't work very well, especially since Traits can have a LOT of text and when you mouseover them in game the text appears as a single unwrapped line (and often overruns even a widescreen monitor).
When it is time and assuming the project gets that far, I volunteer to update figure information so that the .kwl files are no longer dumping grounds for Traits, Duo, Sharpshooter & Indomitable info.
The .spl file would easily be modified to add Traits - in the field where the combat value of the special power is entered (e.g. attack, damage) have it look for a new flag "trait". Instead of adding it to the figure dial's clicks, it should appear as a star icon appearing on the figure dial image itself, with text revealing on mouseover using the same protocol as for powers (and word wrap it for the love of god).
Oh yes, one other thing it's time to fix: the ability to enter figure dials longer than 11 clix. Black Adam & Shazam had 12 which created a problem. Colossals often have more. they can be treated as "exceptions" I guess, but why limit things?
Also - time to remove the soaring "wings" since that mechanic is gone.
hclixinarcadia
10/13/2010, 11:54
That was my workaround, yes, I tossed them in with keywords - but it didn't work very well, especially since Traits can have a LOT of text and when you mouseover them in game the text appears as a single unwrapped line (and often overruns even a widescreen monitor).
it's ok, what else can you do?
When it is time and assuming the project gets that far, I volunteer to update figure information so that the .kwl files are no longer dumping grounds for Traits, Duo, Sharpshooter & Indomitable info.
sounds good... whew, a lot of work but maybe not too bad considering those things only came about recently.
The .spl file would easily be modified to add Traits - in the field where the combat value of the special power is entered (e.g. attack, damage) have it look for a new flag "trait". Instead of adding it to the figure dial's clicks, it should appear as a star icon appearing on the figure dial image itself, with text revealing on mouseover using the same protocol as for powers (and word wrap it for the love of god).
sounds easy enough.
Oh yes, one other thing it's time to fix: the ability to enter figure dials longer than 11 clix. Black Adam & Shazam had 12 which created a problem. Colossals often have more. they can be treated as "exceptions" I guess, but why limit things?
Also - time to remove the soaring "wings" since that mechanic is gone.
yep, it is time to fix those.
the current plan is to get the main menu and conversion for the Blackest Night Starter (thanks Bruce, I got your bmp files) and then develop the other parts testing with just those figures, Shazam and Black Adam, and a colossal before we implement changes to all the data.
hclixinarcadia
10/13/2010, 15:11
i've updated the design section to include Figure/Object Search and Custom Figures
wolviefreak
10/13/2010, 15:16
My pom-pom's are a flying!! :)
hclixinarcadia
10/13/2010, 17:29
When it is time and assuming the project gets that far, I volunteer to update figure information so that the .kwl files are no longer dumping grounds for Traits, Duo, Sharpshooter & Indomitable info.
I was looking at the bn.kwl file and noticed that traits and indomitable are enclosed in "|" followed by the keywords. Is it the same format in all of the .kwl file? If so, then I can just write a program to strip off the "|" and anything within "|" to produce a file with keywords only. So, you won't even have to go thru them manually other than to double-check the new .kwl files.
I can also use those old .kwl files to set the values for the new attack type defense type, and trait fields. Basically, match on the collector number and then:
if there's TRAIT in there copy the trait description into the .spl file
if there's INDOMITABLE in there set the defense type to "Indomitable"
if there's DUO in there set the attack type to "Duo"
I think that's it right?
See, Crow all that work you did for DUO, INDOMITABLE, and TRAITS was more useful than you first thought ;)
I was looking at the bn.kwl file and noticed that traits and indomitable are enclosed in "|" followed by the keywords. Is it the same format in all of the .kwl file? If so, then I can just write a program to strip off the "|" and anything within "|" to produce a file with keywords only. So, you won't even have to go thru them manually other than to double-check the new .kwl files.
I can also use those old .kwl files to set the values for the new attack type defense type, and trait fields. Basically, match on the collector number and then:
if there's TRAIT in there copy the trait description into the .spl file
if there's INDOMITABLE in there set the defense type to "Indomitable"
if there's DUO in there set the attack type to "Duo"
I think that's it right?
See, Crow all that work you did for DUO, INDOMITABLE, and TRAITS was more useful than you first thought ;)
Heh, as you can see I do still think like a programmer... yes, I put those in as flags for just such a purpose. There may be one or two cases where I didn't use the word "TRAIT" but those can always be caught later.
hclixinarcadia
10/14/2010, 11:06
Heh, as you can see I do still think like a programmer... yes, I put those in as flags for just such a purpose. There may be one or two cases where I didn't use the word "TRAIT" but those can always be caught later.
ahh... so you did think ahead on those.
I was able to find free source code and start the main menu. The option selection is not as pretty as a windows app would look but a background with Storm flying around in a bikini makes up for it... lol.
I didn't know how to include images in these posts but emailed wolviefreak a screenshot.
Actually, the background will probably be configurable so it's either blank or you can put up your own image.
Oh, and I'll try to create a prototype of the battlefield using the bmps that Wolviefreak sent me and we can see if those will work better than the circles. I've found that it's better to toggle the names off those circles so they don't clutter up the screen. Is that what you do?
ahh... so you did think ahead on those.
I was able to find free source code and start the main menu. The option selection is not as pretty as a windows app would look but a background with Storm flying around in a bikini makes up for it... lol.
I didn't know how to include images in these posts but emailed wolviefreak a screenshot.
Actually, the background will probably be configurable so it's either blank or you can put up your own image.
Oh, and I'll try to create a prototype of the battlefield using the bmps that Wolviefreak sent me and we can see if those will work better than the circles. I've found that it's better to toggle the names off those circles so they don't clutter up the screen. Is that what you do?
Maybe the bmp of Storm flying around in a bikini should be a battlefield map. Man, I'd like to Leap/Climb onto her elevated terrain.
TheCosmicJake
10/14/2010, 12:35
I started to do this very thing a couple of years ago, but I was doing the client in Python with an Erlang server - the idea was to have a chat room where people could meet up to join games. The board was 3D and rotatable, zoomable. I got fairly far in, I still have the server code somewhere if someone wants that.
But I do have something I know you'll probably want: I wrote a PHP script that converts the BIN files to XML. I'll be happy to give it to you
hclixinarcadia
10/14/2010, 12:47
I started to do this very thing a couple of years ago, but I was doing the client in Python with an Erlang server - the idea was to have a chat room where people could meet up to join games. The board was 3D and rotatable, zoomable. I got fairly far in, I still have the server code somewhere if someone wants that.
But I do have something I know you'll probably want: I wrote a PHP script that converts the BIN files to XML. I'll be happy to give it to you
good to know... thanks.
why did you stop development?
TheCosmicJake
10/14/2010, 12:54
why did you stop development?
Amazingly, it was getting the 2D interface in Python. I thought the 3D would be the hard part, and it wasn't easy, but getting a 2D panel next to the 3D panel in the Python GUI was too much for me. I always wanted to go back and finish it... but I'm a daddy now and there's no such thing as free time.
I don't think I have the Python code anymore, but I do have the Erlang server beginnings and my PHP BIN->XML translation scripts.
Although if I were going to do it today, I'd probably use Adobe Flex on top of that Erlang server - I've actually done a game start to finish in that one:
http://sandbox.yahoo.com/Hordes
hclixinarcadia
10/14/2010, 13:00
Amazingly, it was getting the 2D interface in Python. I thought the 3D would be the hard part, and it wasn't easy, but getting a 2D panel next to the 3D panel in the Python GUI was too much for me. I always wanted to go back and finish it... but I'm a daddy now and there's no such thing as free time.
I don't think I have the Python code anymore, but I do have the Erlang server beginnings and my PHP BIN->XML translation scripts.
Although if I were going to do it today, I'd probably use Adobe Flex on top of that Erlang server - I've actually done a game start to finish in that one:
http://sandbox.yahoo.com/Hordes
I wrote one little table display program in PHP a while back. But I don't have webhosting anymore so I can't really test anything in PHP.
I'll be honest. I've never used XML but do you think it's better to load character data into MySQL?
TheCosmicJake
10/14/2010, 13:14
I wrote one little table display program in PHP a while back. But I don't have webhosting anymore so I can't really test anything in PHP.
I'll be honest. I've never used XML but do you think it's better to load character data into MySQL?
You can always host locally to develop, running Apache on Ubuntu is super simple.
As for MySQL vs. XML - it depends on what's going to consume it. If you want to have your data read by a client program, like I was with the Python app, MySQL isn't an option because the data files have to be present on the client machine. If you're planning on having your server do all the lifting, MySQL is fine, but if you want your client to handle the processing, XML is the way to go - even with web-based apps. This is because you're dealing with a finite data set.
During The Dark Times, I wrote a replacement for the HeroClix Gallery using these same XML files and having jQuery run XPath queries over the dataset - crazy fast, and your server doesn't have to do anything but serve the data file.
Personally, I'd use the XML in the Adobe Flex app, because Flex has a great built-in parser that converts XML data into usable/query-able objects automatically.
But, if you're going to do an app like the Units gallery here on the Realms, MySQL is definitely the way to go, because you want the server to do the searching/data prep.
That said, there's nothing wrong with storing your data in MySQL and building an XML file for client consumption from that. Just be careful with your schema - WizKids may throw you a curveball - just like HCOL can't handle multiple TAs/new dial symbols - you don't want your DB schema to fall into that pit trap.
Just an example, here's Cyclops from Mutations and Monsters in XML Format:
<figure id="mnm002" name="Cyclops" rank="Rookie" team="X-Men" range="8" targets="1" points="50">
<symbols>
<spd>Boot</spd>
<atk>Fist</atk>
<def>Shield</def>
<dmg>Star</dmg>
</symbols>
<specials>
<spd><name>Concusive Blast</name><description><![CDATA[When Cyclops makes a ranged combat attack and deals damage to an opposing character, the character is knocked back equal to the damage dealt.]]></description></spd>
</specials>
<dial length="6">
<click num="1"><spd power="RS">8</spd><atk>9</atk><def>17</def><dmg>3</dmg></click>
<click num="2"><spd power="SPC">8</spd><atk power="EE">10</atk><def power="WIL">16</def><dmg>2</dmg></click>
<click num="3"><spd power="SPC">7</spd><atk>10</atk><def power="WIL">16</def><dmg power="RCE">2</dmg></click>
<click num="4"><spd>7</spd><atk>9</atk><def>15</def><dmg power="RCE">2</dmg></click>
<click num="5"><spd>7</spd><atk>8</atk><def>14</def><dmg power="RCE">1</dmg></click>
<click num="6"><spd>6</spd><atk>7</atk><def>13</def><dmg>1</dmg></click>
</dial>
</figure>
Very flexible - need a trait? It's just a new node under the figure node. Need 2 TAs? Just make 2 <team> nodes under the figure node rather than using a team attribute.
Edit: although technically, you should make a <teams> node with 2 <team> nodes under it - still, pretty flexible
Hi, a friend of mine is a programmer and he told me he could help me develop a HC online program, the issue is that I didn't knew HCOL already existed! After playing it, I was wondering if me and my friend could help improving the game to make it more automatic regarding damage, movement and rules?
TheCosmicJake
10/14/2010, 13:25
Hi, a friend of mine is a programmer and he told me he could help me develop a HC online program, the issue is that I didn't knew HCOL already existed! After playing it, I was wondering if me and my friend could help improving the game to make it more automatic regarding damage, movement and rules?
I would argue that HCOL has the right idea by placing the onus on the players to keep track of this. It's an incredible pain to keep track programatically of all of the things that could modify movement and damage: Perplex, Running Shot, Charge, BFCs, etc, etc. HCOL tells you how many spaces a piece has moved - it's the job of the opponent to correct a mistake, just like at the table
hclixinarcadia
10/14/2010, 13:57
I would argue that HCOL has the right idea by placing the onus on the players to keep track of this. It's an incredible pain to keep track programatically of all of the things that could modify movement and damage: Perplex, Running Shot, Charge, BFCs, etc, etc. HCOL tells you how many spaces a piece has moved - it's the job of the opponent to correct a mistake, just like at the table
My plan was to first develop an HCOL 2.0 which is almost identical to how it is now save for some small additions.
Then from there, add in more bells and whistles such as having the program validate actions. For example, when you click on a figure, rather than dragging it to the location or declaring an attack and rolling the dice, you actually click on a drop down and select from a valid list of actions. That's easily done isn't it? The items on the drop down is a dynamic list that only shows valid actions such as move action and whatever shows on the dial.
For example, say it was the beginning of the turn and you had CM Hulk on the first click with 8 range, 1 bolt, 7 leap climb, 11 super strength, 16 toughness, and 2 leadership, next to an object, with two targets within range, the drop down would show:
leadership
pick up object
leap climb
ranged combat attack
say Hulk was adjacent to an opponent and it wasn't the beginning of turn, the drop down would show:
leap climb
close combat attack
or something like that, you get the idea. Totally do-able isn't it?
hclixinarcadia
10/14/2010, 14:02
You can always host locally to develop, running Apache on Ubuntu is super simple.
As for MySQL vs. XML - it depends on what's going to consume it. If you want to have your data read by a client program, like I was with the Python app, MySQL isn't an option because the data files have to be present on the client machine. If you're planning on having your server do all the lifting, MySQL is fine, but if you want your client to handle the processing, XML is the way to go - even with web-based apps. This is because you're dealing with a finite data set.
During The Dark Times, I wrote a replacement for the HeroClix Gallery using these same XML files and having jQuery run XPath queries over the dataset - crazy fast, and your server doesn't have to do anything but serve the data file.
Personally, I'd use the XML in the Adobe Flex app, because Flex has a great built-in parser that converts XML data into usable/query-able objects automatically.
But, if you're going to do an app like the Units gallery here on the Realms, MySQL is definitely the way to go, because you want the server to do the searching/data prep.
That said, there's nothing wrong with storing your data in MySQL and building an XML file for client consumption from that. Just be careful with your schema - WizKids may throw you a curveball - just like HCOL can't handle multiple TAs/new dial symbols - you don't want your DB schema to fall into that pit trap.
Just an example, here's Cyclops from Mutations and Monsters in XML Format:
Very flexible - need a trait? It's just a new node under the figure node. Need 2 TAs? Just make 2 <team> nodes under the figure node rather than using a team attribute.
Edit: although technically, you should make a <teams> node with 2 <team> nodes under it - still, pretty flexible
pretty cool... it's as easy as pie.
I think it's best to store in MySQL and then export to XML as needed. As for schema changes, I guess write a conversion when that occurs.
TheCosmicJake
10/14/2010, 14:28
For example, say it was the beginning of the turn and you had CM Hulk on the first click with 8 range, 1 bolt, 7 leap climb, 11 super strength, 16 toughness, and 2 leadership, next to an object, with two targets within range, the drop down would show:
leadership
pick up object
leap climb
ranged combat attack
say Hulk was adjacent to an opponent and it wasn't the beginning of turn, the drop down would show:
leap climb
close combat attack
or something like that, you get the idea. Totally do-able isn't it?
Personally, I wouldn't - it makes it hard to plan for the future. If a rules change comes along, you have to change the program or otherwise work around it. I'd spend time making the chat part easier. When I use HCOL, I'm either on the phone with the other player, or talking in IM, or using the HCOL chat function to declare actions. I still think this is the way to go. The program shouldn't do more than you can do at the table - it gives you quick reference to rules, shows you the current click of a figure, shows the map, has a line of fire tool, etc - by leaving the program "dumb" you enable your players to do whatever they want. No automatic calculation of damage, to hit rolls, range, etc - because all of this can change, either from in-game modifiers or from scenarios. The program shouldn't pigeon-hole the players. That's just my $0.02 though.
I would argue that HCOL has the right idea by placing the onus on the players to keep track of this. It's an incredible pain to keep track programatically of all of the things that could modify movement and damage: Perplex, Running Shot, Charge, BFCs, etc, etc. HCOL tells you how many spaces a piece has moved - it's the job of the opponent to correct a mistake, just like at the table
I understand that, I was just wondering if it's not an issue if we could try to work on the program. We'll gladly help developing it. Please pm me so we can talk about it
Personally, I wouldn't - it makes it hard to plan for the future. If a rules change comes along, you have to change the program or otherwise work around it. I'd spend time making the chat part easier. When I use HCOL, I'm either on the phone with the other player, or talking in IM, or using the HCOL chat function to declare actions. I still think this is the way to go. The program shouldn't do more than you can do at the table - it gives you quick reference to rules, shows you the current click of a figure, shows the map, has a line of fire tool, etc - by leaving the program "dumb" you enable your players to do whatever they want. No automatic calculation of damage, to hit rolls, range, etc - because all of this can change, either from in-game modifiers or from scenarios. The program shouldn't pigeon-hole the players. That's just my $0.02 though.
I agree 100% with this sentiment. It gives the most freedom possible and is the simplest.
hclixinarcadia
10/14/2010, 16:13
I understand that, I was just wondering if it's not an issue if we could try to work on the program. We'll gladly help developing it. Please pm me so we can talk about it
It's not an issue with me. We can all work on it. If you have suggestions post it and we can discuss and decide whether we implement it.
If we do implement, I can update the spec and design on the first page.
By the way, does anyone know how I can include screenshots in these posts?
Well I was thinking on making the game do the damages, powers and all the thing we have to do manually.. I know it's a lot of work in programming that's why I was offering myself and a friend to work on the programming so we could help.
Also, how do I read the traits on the game?
wow, just saw this. It would be awesome to have a new HCOL program. One thing I would like to see added is the ability to print out your teams. I use the current Heroclix Online program to create teams for tournaments now and wish it had a print option so I didn't have to copy them down every time.
Well I was thinking on making the game do the damages, powers and all the thing we have to do manually.. I know it's a lot of work in programming that's why I was offering myself and a friend to work on the programming so we could help.
Also, how do I read the traits on the game?
Currently you can find them listed with the figure's keywords, which you can see on the Battlefield view in the boxes beneath the figure, or in the Team Builder under the center dial preview.
hclixinarcadia
10/14/2010, 23:16
wow, just saw this. It would be awesome to have a new HCOL program. One thing I would like to see added is the ability to print out your teams. I use the current Heroclix Online program to create teams for tournaments now and wish it had a print option so I didn't have to copy them down every time.
that shouldn't be too hard. what exactly would you want to print? I'm thinking the stuff that goes on the army sheet?
that shouldn't be too hard. what exactly would you want to print? I'm thinking the stuff that goes on the army sheet?
exactly. Thanks.
hclixinarcadia
10/15/2010, 12:31
I've updated the first page with the following:
The spec mentions print as one of the options for team maintenance.
The design for BIN file conversion includes logic on how to convert the Dolphin Flag which will be used as the Attack Type (with values "fist" and "duo", and the Transporter Flag which will be used as the Defense Type (with values "shield" and "indomitable")
The design now includes the KWL and SPL file conversion.
hclixinarcadia
10/15/2010, 16:52
I updated the first page with the following:
The order of the modules in the spec was changed to match the order in the design. The items in the parenthesis for figure-object editor was also changed to match that of the design. "custom figures" was changed to say "edit figures"
The BIN, KWL, and SPL file conversion programs in the design were combined since they can be processed simultaneously.
hclixinarcadia
10/16/2010, 12:29
ahhh... the main menu is done... how do I include screen shots?
ahhh... the main menu is done... how do I include screen shots?
You need to be a diamond-level donor or above to do that (which is like $50 per year or something).
hclixinarcadia
10/17/2010, 02:28
You need to be a diamond-level donor or above to do that (which is like $50 per year or something).
I think I found a way thru an album. See:
http://www.hcrealms.com/forum/album.php?albumid=1293
hclixinarcadia
10/17/2010, 11:01
I've updated the design to include the layout for the IMG file. This file will be used to tell the program which BMP file to use as a sprite to represent the figure in the game.
hclixinarcadia
10/17/2010, 14:33
Crow, I'm thinking instead of separate BIN files (bb.bin, bn.bin, jh.bin, etc.), there should two big BIN files: one that has all the main info such as range, set (bb, bn, jh, etc), collector number, clicks of life, etc and another one that has click info. The "click" bin file will have set and collector number to relate to the main bin file, it will also have speed, attack, defense, and damage value and color per record.
Would combining it like that make it harder to maintain? It's more efficient to separate the clicks out. That way it's not hard-coded to only 12 clicks and you don't have to waste space by saving KO clicks in the file.
Let me know.
Crow, I'm thinking instead of separate BIN files (bb.bin, bn.bin, jh.bin, etc.), there should two big BIN files: one that has all the main info such as range, set (bb, bn, jh, etc), collector number, clicks of life, etc and another one that has click info. The "click" bin file will have set and collector number to relate to the main bin file, it will also have speed, attack, defense, and damage value and color per record.
Would combining it like that make it harder to maintain? It's more efficient to separate the clicks out. That way it's not hard-coded to only 12 clicks and you don't have to waste space by saving KO clicks in the file.
Let me know.
Well, it would make it harder for people to insert their custom sets. Otherwise I don't see a lot of difference.
wolviefreak
10/17/2010, 22:03
Have I said recently how much you all rock!?!?!
:)
hclixinarcadia
10/17/2010, 22:28
Well, it would make it harder for people to insert their custom sets. Otherwise I don't see a lot of difference.
I haven't tried inserting in custom sets. How would it make it harder? Give me an example say someone wanted to put in Teenage Mutant Ninja Turtles?
Have I said recently how much you all rock!?!?!
:)
hmmm... trying to think... actually no, not recently... lol
hclixinarcadia
10/18/2010, 01:15
I updated the first page with new layouts for figures.bin, clicks.bin, and team.bin. I also update the design for the bin file conversion to account for the bin file changes.
spider_ham
10/18/2010, 14:29
Looking good!
Well, it would make it harder for people to insert their custom sets. Otherwise I don't see a lot of difference.
Would dedicating two extra BINs for only custom content be realistic? These files could be read in separately and/or have their own menu item.
Is some sort of dial editor in the planning (errata, creating custom ones)?
TheCosmicJake
10/18/2010, 14:35
Crow, I'm thinking instead of separate BIN files (bb.bin, bn.bin, jh.bin, etc.), there should two big BIN files: one that has all the main info such as range, set (bb, bn, jh, etc), collector number, clicks of life, etc and another one that has click info. The "click" bin file will have set and collector number to relate to the main bin file, it will also have speed, attack, defense, and damage value and color per record.
Would combining it like that make it harder to maintain? It's more efficient to separate the clicks out. That way it's not hard-coded to only 12 clicks and you don't have to waste space by saving KO clicks in the file.
Let me know.
Putting them all in one BIN means you have to load all of the figure info in for all sets any time you want to do anything - that means it all has to be stored in memory. The advantage of separate BIN files is a smaller memory footprint, load only the ones you need.
Putting them all in one BIN file means easier searching, however.
hclixinarcadia
10/18/2010, 15:40
Looking good!
Would dedicating two extra BINs for only custom content be realistic? These files could be read in separately and/or have their own menu item.
How does it work now? Can you currently mix and match custom figures with regular ones?
Is some sort of dial editor in the planning (errata, creating custom ones)?
a dial editor as in the custom figures option that's already there? I haven't tried it but I thought you are currently able to change dials even for non-custom ones. Is that right?
Putting them all in one BIN means you have to load all of the figure info in for all sets any time you want to do anything - that means it all has to be stored in memory. The advantage of separate BIN files is a smaller memory footprint, load only the ones you need.
Putting them all in one BIN file means easier searching, however.
You're right on both points.
But, I think the current HCOL does load them all in memory. I say that because, if you click on the drop down and change to several different sets, the list of available figures pops into the window instantaneously. If it has to read that from disk, you will see the drive light come on and there will be a slight pause... but there's none.
I also looked at the save file for teams and all it has is the collector number and assigned feats. If figures are not already loaded in memory, it would take a while to fetch those different figures from disk but they all come up instantaneously as well.
Easier and faster searching is important though and there aren't that many figures so loading them all into memory should be ok.
spider_ham
10/18/2010, 23:30
How does it work now? Can you currently mix and match custom figures with regular ones?
...
a dial editor as in the custom figures option that's already there? I haven't tried it but I thought you are currently able to change dials even for non-custom ones. Is that right?
You can use custom characters with any of the other characters. It's just a matter of creating the BIN, keyword list (.kwl) ,and special power list (.spl). However, because of hidden formatting characters, there are issues with some of the special powers or keywords not being read in properly, from my experience. :ermm:
The dial editor within HCOL is fine, but adding in fields for assigning special powers and keywords would be a huge improvement.
The ability to be able to read/display dual TAs would also be cool.
Don't work too hard! :)
hclixinarcadia
10/19/2010, 01:20
You can use custom characters with any of the other characters. It's just a matter of creating the BIN, keyword list (.kwl) ,and special power list (.spl). However, because of hidden formatting characters, there are issues with some of the special powers or keywords not being read in properly, from my experience. :ermm:
The dial editor within HCOL is fine, but adding in fields for assigning special powers and keywords would be a huge improvement.
The ability to be able to read/display dual TAs would also be cool.
Don't work too hard! :)
I see, you want keywords and special powers integrated into the dial editor instead of having to open up the file in another editor... yeah, it should just be done in one editor.
Oh, I added some more screenshots of maps with the sprites that wolviefreak provided... I'm still experimenting with transparency but I got some of the sprite manipulation commands to work... yipee!
here's the link to the album once again:
http://www.hcrealms.com/forum/album.php?albumid=1293
here's the link to the album once again:
http://www.hcrealms.com/forum/album.php?albumid=1293
Lookin pretty good!!
spider_ham
10/19/2010, 12:13
Oh, I added some more screenshots of maps with the sprites that wolviefreak provided... I'm still experimenting with transparency but I got some of the sprite manipulation commands to work... yipee!
Nice! Have you tried experimenting with images in .PNG format?
hclixinarcadia
10/19/2010, 12:20
Nice! Have you tried experimenting with images in .PNG format?
yeah, I took wolviefreak's bmps, opened them in Photoshop, magic wand and deleted the white background and saved as bmp, jpg, and png, but all of them have that same white background.
I saved the png file as interlaced. I don't remember the other option... maybe I should have picked that other one?
I've gotten a bmp to have a transparent background before. Maybe I need to save with certain settings?
wolviefreak
10/19/2010, 13:19
GO GO GO!!!
RAW RAW RAW!!
/shakes pom-poms
:)
hclixinarcadia
10/19/2010, 13:39
GO GO GO!!!
RAW RAW RAW!!
/shakes pom-poms
:)
Actually, I'll deal with the transparency later. Since Crow asked about it earlier in the thread, I also wanted to see how wolvie's bmps would look... and now we know.
I have to work on the figure editor/viewer now... which can't be too hard.
hclixinarcadia
10/19/2010, 14:33
I'm putting back the transporter flag and making the valid speed types "boot", "wing", and "dolphin" just to make it consistent with how HCRealms does it.
I am also separating out the keywords into separate records rather than one field that holds all of them separated by comma. It's cleaner and easier to search that way.
I'm trying to figure out how the clicks should look. Maybe with a scrolling bar ala Thor's Mighty Chariot and other 2x2s. But what about Galactus? It probably should scroll as well.
hclixinarcadia
10/21/2010, 03:24
I just added a screen shot of the figure editor using Mera as an example.
As you will see, it is not done. I'm still trying to add the KO click (only 1 is enough) and I don't know (yet) why the value isn't showing for damage on that last click.
I've added it to the album:
http://www.hcrealms.com/forum/album.php?albumid=1293
wolviefreak
10/21/2010, 10:46
I have just one word.....PIMP! :)
hclixinarcadia
10/21/2010, 10:57
I have just one word.....PIMP! :)
I stayed up til midnight working on that one. I have to try things out here and there ya know?
The part that displays the clicks is a subroutine where I pass the click number, colors, and values that comes from the bin file... I didn't know how it would be done at first... now I do.
We've now chipped away at what used to be so daunting. Still a lot of work to do though.
wolviefreak
10/21/2010, 11:36
PIMP = awesome....just to clarify ;)
hclixinarcadia
10/21/2010, 11:59
PIMP = awesome....just to clarify ;)
I knew that. Are you trying to say I'm too old to understand these things? lol
wolviefreak
10/21/2010, 12:03
LOL
$ says I'm older :p
wolviefreak
10/21/2010, 12:04
but enough bantering....
/whipsnap
Back to work you!!
hclixinarcadia
10/21/2010, 12:31
lol, ok back to work then.
The next parts of the program that are still unknown are:
1. how to program drop-down or popup lists (so the user can choose from a valid list)
2. editing and saving character info from the screen to disk
3. draft game (I don't know how that currently works)
4. picking up and dragging sprites to different locations.
The above are all do-able. It's just a bit of an unknown and may be tedious to program. Multi-player is actually easier to program and I have tons of programs from which to copy source code. So, I'm not too worried about that.
wolviefreak
10/21/2010, 12:57
hopefully one of the other smart guys will chime in :)
/pokes the smart guys
hclixinarcadia
10/22/2010, 01:13
I added another screenshot of the updated figure entry. This time the KO click and the last damage value shows. The rank is also indicated by a colored circle around the TA.
See: http://www.hcrealms.com/forum/album.php?albumid=1293
I added another screenshot of the updated figure entry. This time the KO click and the last damage value shows. The rank is also indicated by a colored circle around the TA.
See: http://www.hcrealms.com/forum/album.php?albumid=1293
Looks functional, if a little raw. Do the dials go up to 11? :)
hclixinarcadia
10/22/2010, 11:33
Looks functional, if a little raw. Do the dials go up to 11? :)
the dial can go over 12. Clicks of Life is saved in the datafile so it will loop for 1 to clicks of life displaying each click as it goes... and then at the end, one KO click is displayed.
I will probably make that view figure screen more compact, kinda how it looks on HCRealms and HCOL's team builder on the right side.
What is the largest number of clicks? What does Galactus have?
wolviefreak
10/22/2010, 12:19
The big guy I think is 20 clicks deep
hclixinarcadia
10/22/2010, 12:30
The big guy I think is 20 clicks deep
I think those are the 2x2s which I believe have 26 clicks max.
Galactus has way more.
spider_ham
10/22/2010, 12:46
I believe that 49 is the maximum (colossal Dr. Manhattan). Spectre and Galactus' Veteran versions weigh in at 41 clicks each.
wolviefreak
10/22/2010, 13:45
meh.....so, I haven't played in a while :)
TheCosmicJake
10/25/2010, 10:35
hclixinarcadia: Can you put your code in github (http://github.com)? Then other people may be able to lend a hand on your dropdown woes.
hclixinarcadia
10/25/2010, 12:16
hclixinarcadia: Can you put your code in github (http://github.com)? Then other people may be able to lend a hand on your dropdown woes.
Thanks. Will do when I get home later.
I'm thinking of ditching the BIN and tab-delimited files and just going with CSV files. That way, it can even be loaded into Excel and easily read by other programs. Does anyone see any disadvantages in doing so?
Space-wise, the CSV would take up less since most integer fields are only 1 byte long while the bin files have a fixed 3 bytes.
spider_ham
10/25/2010, 13:02
CSV sounds good. The ability to create custom figures/sets within Excel or Spreadsheet (OO) would be very convenient and easy, especially if a theme could be used to display the data in a recognizable format.
Would you assign one file per set, then?
hclixinarcadia
10/25/2010, 13:24
CSV sounds good. The ability to create custom figures/sets within Excel or Spreadsheet (OO) would be very convenient and easy, especially if a theme could be used to display the data in a recognizable format.
Would you assign one file per set, then?
Normally, it should be in one giant file. Let me get the Blackest Night file up and running and then I can tinker with separate files vs combined.
The issue with separate files would be that I need another file that has a list of sets... what it has now. It's kinda mickey-mouse-ish though isn't it?
Yep, Mickey Mouse is an actual technical programming term. hahaha.
TheCosmicJake
10/25/2010, 22:04
The issue with separate files would be that I need another file that has a list of sets... what it has now.
Instead of using an index file, use a specified directory and all .hcs files (which are really csv that you change the extension on) are sets. Listing the directory gets you the list of sets - you could use the first line in the hcs file for set info.
The problem with csv is once again a rigid structure. If they introduce a new mechanic, you'll have to cap the dials or change the format... unless the dials go in csv files separate from the other figure info.
If you get your code up into an open repo like github, I'll be happy to contribute code snippets.
hclixinarcadia
10/26/2010, 01:31
Instead of using an index file, use a specified directory and all .hcs files (which are really csv that you change the extension on) are sets. Listing the directory gets you the list of sets - you could use the first line in the hcs file for set info.
The problem with csv is once again a rigid structure. If they introduce a new mechanic, you'll have to cap the dials or change the format... unless the dials go in csv files separate from the other figure info.
If you get your code up into an open repo like github, I'll be happy to contribute code snippets.
I didn't get a chance to get on github but I will look at it sometime soon. Here is part of the code I have right now. It's rather crude in good ol' basic and will probably change later on:
function draw_entry_screen(message$,x,y,max, val$)
set cursor x,y+4
print message$
set cursor x+150,y+5
print val$
line x+145,y,x+225,y
line x+145,y+25,x+225,y+25
line x+145,y,x+145,y+25
line x+225,y,x+225,y+25
endfunction
hclixinarcadia
10/27/2010, 12:35
I've updated the design for the conversion program with handling for special powers and how it should be saved in the clicks file (color="special")
I've also updated the design for the figure editor with some detail on how to view figure and click information.
spider_ham
10/27/2010, 22:29
Sounds good! Keep up the good work!
hclixinarcadia
11/02/2010, 12:15
just a quick update so y'all know I'm not slackin', hehe. I've been testing the conversion and put in the figure viewer routine but the graphics part has been acting funky... a simple little edit causes some problem with the display routine which takes a long time to debug.
So, what I'll do is remove all the figure viewing, put in simple print statements, get done with the conversion program, and move on to the figure entry program.
Isn't there a way just to download the new sets?
hclixinarcadia
11/02/2010, 16:20
Isn't there a way just to download the new sets?
I think Crow takes care of entering new sets and probably has a data update soon if not already.
Since we can't find the original programmer, I'm re-writing the program so we can add in new things like duo, indomitable, etc.
He updated it, but the complete program, I only need brightest day :D
hclixinarcadia
11/04/2010, 11:11
He updated it, but the complete program, I only need brightest day :D
Usually, there's also a link in Crow's site for just the new stuff. Look further down. Edit: I guess not, there is only that one link.
I also update the design. We will no longer use KWL and SPL files. Those will just be in the main figure info file. For now, keywords will be in one big field separated by commas (same as how it is in the KWL files). In the future, we may separate them out to one keyword per record.
I've been testing and debugging the conversion and it's coming along slowly but surely.
He updated it, but the complete program, I only need brightest day :D
Sorry, when I want to circulate a new map I make people re-download the package deal. If I separate out all downloads it leads to people having different stuff from each other and chaos in the streets.
hclixinarcadia
11/05/2010, 13:33
Sorry, when I want to circulate a new map I make people re-download the package deal. If I separate out all downloads it leads to people having different stuff from each other and chaos in the streets.
... and so concludes the first lesson in version control.
on a different note, I finally figured out what that unknown flag is for field 12. It's the wing transporter flag and the one before it, field 11, is the boot transporter flag... yay!
The field layout has been updated in the first post.
... and so concludes the first lesson in version control.
on a different note, I finally figured out what that unknown flag is for field 12. It's the wing transporter flag and the one before it, field 11, is the boot transporter flag... yay!
The field layout has been updated in the first post.
Is there a dolphin-transporter flag? It may not have existed as we didn't get any such figure for a long time (until, I think, Black Manta).
hclixinarcadia
11/05/2010, 13:56
Is there a dolphin-transporter flag? It may not have existed as we didn't get any such figure for a long time (until, I think, Black Manta).
I don't think there's a dolphin transporter flag. Field 12 was the only unknown.
I checked AA Black Manta in the AA.bin file and found that the dolphin flag and boot transporter flag are = true.
So, it looks like HCOL uses the dolphin flag and the boot transporter flag to determine whether to show the dolphin transporter image there.
I don't think there's a dolphin transporter flag. Field 12 was the only unknown.
I checked AA Black Manta in the AA.bin file and found that the dolphin flag and boot transporter flag are = true.
So, it looks like HCOL uses the dolphin flag and the boot transporter flag to determine whether to show the dolphin transporter image there.
By the same logic, the wing-transporter flag can probably be removed since those can be checked independently. Maybe to make room for Indomitable :)
hclixinarcadia
11/05/2010, 15:22
By the same logic, the wing-transporter flag can probably be removed since those can be checked independently. Maybe to make room for Indomitable :)
oh yeah, those flags will be reworked. Instead it will be:
speedtype: {boot, wing, dolphin}
attacktype: {fist, duo, sharpshooter}
defensetype: {shield, indomitable}
damagetype: {starburst, giant, colossal}
transporterflag: {1,0}
the only other flag that will be kept is the doublebaseflag which is also a 1 or 0.
I actually have the conversion close to being done. I will put it in one big file but I will actually need people to check the data for accuracy. It will be as CSV file loadable in Excel.
I will separate them out by set so it's not overwhelming and I can email the excel files out to people who want to check them.
Any volunteers?
I actually have the conversion close to being done. I will put it in one big file but I will actually need people to check the data for accuracy. It will be as CSV file loadable in Excel.
I will separate them out by set so it's not overwhelming and I can email the excel files out to people who want to check them.
Any volunteers?
I Volunteer! *Hand Raised*:a-fist: email: empirecomicsidaho@yahoo.com
John
hclixinarcadia
11/05/2010, 18:01
I Volunteer! *Hand Raised*:a-fist: email: empirecomicsidaho@yahoo.com
John
awesome! And I finally finished debugging that damned conversion program so I will send you the hypertime file. It only has figure information in it, no click information.
Crow, would you mind enclosing the ones with extra TAs within a "|TEAM - " identifier and I can handle those programatically.
For example, for Bombastic Bag-Man, instead of:
|Bombastic Bag-Man also possesses the Fantastic Four team symbol|,Fantastic Four
make it say:
|TEAM - Fantastic Four|,Fantastic Four
or for Sandman, instead of:
|Sandman also possesses the Sinister Syndicate team symbol|
make it say:
|TEAM - Sinister Syndicate|
There should only be a handful of those right? Let me know if that's possible and I will download the new files from your site. Thanks!
awesome! And I finally finished debugging that damned conversion program so I will send you the hypertime file. It only has figure information in it, no click information.
Crow, would you mind enclosing the ones with extra TAs within a "|TEAM - " identifier and I can handle those programatically.
For example, for Bombastic Bag-Man, instead of:
|Bombastic Bag-Man also possesses the Fantastic Four team symbol|,Fantastic Four
make it say:
|TEAM - Fantastic Four|,Fantastic Four
or for Sandman, instead of:
|Sandman also possesses the Sinister Syndicate team symbol|
make it say:
|TEAM - Sinister Syndicate|
There should only be a handful of those right? Let me know if that's possible and I will download the new files from your site. Thanks!
I can take care of this, give me a bit.
Also, PM me your e-mail so I can drop you the updates directly as a /sets zip instead of making you download the package.
wolviefreak
11/05/2010, 19:25
I can help out with going through the CSV files!
hclixinarcadia
11/06/2010, 01:14
I can help out with going through the CSV files!
wolviefreak,
I just sent you the infinity challenge figure and clicks CSV files. Thanks!
hclixinarcadia
11/08/2010, 18:11
just a quick update:
being that DarkBasic isn't too friendly when it comes to GUI types of stuff, I downloaded the free version of Visual Basic and that works out much better with the figure selection.
ListBoxes and DropDowns are all built into Visual Basic and so I was able to replicate the sets selection and listing of figures... the way the current HCOL does it. I tested with the bmps that Wolviefreak sent me for BN and it works!
I'll work on displaying click info next.
TheCosmicJake
11/10/2010, 10:31
Isn't Visual Basic going to cut out all of us Linux people and all the Mac people as well? Or has the technology changed since I last used it?
hclixinarcadia
11/10/2010, 10:55
Isn't Visual Basic going to cut out all of us Linux people and all the Mac people as well? Or has the technology changed since I last used it?
Honestly, I don't know. Let me find out.... darn portability issues.
Displaying click info is so easy too with VB... I may have a team selection/figure display exe ready soon.
hclixinarcadia
11/10/2010, 11:20
Isn't Visual Basic going to cut out all of us Linux people and all the Mac people as well? Or has the technology changed since I last used it?
well, you're right... looks like it needs to be in Java.
I'll continue developing for the PC based, finish that off and worry about the other platforms later.
Honestly, I don't know. Let me find out.... darn portability issues.
Displaying click info is so easy too with VB... I may have a team selection/figure display exe ready soon.
There is a technology called Mono (http://www.mono-project.com/Main_Page) that allows .net to work on Linux and Macs. I've never used it before, but it's worth looking into.
TheCosmicJake
11/10/2010, 11:39
Mono never really took off - it's been available for a very long time at this point, but no one uses it.
Java isn't your only option, though - PHP+GTK is an option, Python with PyGame is an option, Ruby is an option.
Just about every programming language is an option - except for the ones that Microsoft made up.
Also, Gosu was released yesterday if you don't like Java (which I don't), it's much cleaner-looking.
hclixinarcadia
11/10/2010, 11:41
Mono never really took off - it's been available for a very long time at this point, but no one uses it.
Java isn't your only option, though - PHP+GTK is an option, Python with PyGame is an option, Ruby is an option.
Just about every programming language is an option - except for the ones that Microsoft made up.
Also, Gosu was released yesterday if you don't like Java (which I don't), it's much cleaner-looking.
question is, which ones are free?
Mono never really took off - it's been available for a very long time at this point, but no one uses it.
Java isn't your only option, though - PHP+GTK is an option, Python with PyGame is an option, Ruby is an option.
Just about every programming language is an option - except for the ones that Microsoft made up.
Also, Gosu was released yesterday if you don't like Java (which I don't), it's much cleaner-looking.
You're right, Mono isn't super popular, but still it creates an option. The "no one uses it" is a little harsh.
I still feel that the best way to go is a web based program. You could continue staying with .net by creating an asp.net website. Of course that requires a web server that is windows based, but that will allow any OS to access it.
Or do what he said and create it with html and css and then use python, ruby or php for the programming. All of those should be free to use (although, it may cost you to find a good editor. I'm not sure what the good free ones are.)
TheCosmicJake
11/10/2010, 12:20
Granted, it is a bit harsh - it's just the Mono was supposed to be the "saving grace" and it left those of us outside the Windows garden a little cold.
The problem with a webserver is that it's a centralized system that costs money - unless you want to host it out of your home, but that's a huge drain on bandwidth and generally makes ISPs mad. When it goes down (and it will, it's inevitable), it makes the players sad.
As for free editors, I hear good things about Notepad++ in Windows-land.
TheCosmicJake
11/10/2010, 12:22
question is, which ones are free?
All the ones I listed are free.
PHP+GTK
Python+PyGame
Java
Gosu
Ruby
All can be used with either Notepad++ or Eclipse, which are both free.
Once you leave Windows, a lot of things are free.
Notepad++ is a good tool, I've used it when I didn't have Dreamweaver and it worked great. I would have named that, but didn't know if it supported the other stuff.
hclixinarcadia
11/10/2010, 13:29
All the ones I listed are free.
PHP+GTK
Python+PyGame
Java
Gosu
Ruby
All can be used with either Notepad++ or Eclipse, which are both free.
Once you leave Windows, a lot of things are free.
I think I've seen Notepad++ in action before and was recommended by a programmer friend of mine.
What would be nice is a visual developer tool like VB where you can plop in objects such as drop downs, listboxes, and pictureboxes where all the gui is handled automatically.
With that, what do you all recommend out of:
PHP+GTK
Python+PyGame
Java
Gosu
Ruby
TheCosmicJake
11/10/2010, 13:36
Probably Python. Java is the only other language that's going to give you the drag and drop UI building, but you need an IDE like JBuilder, or I think there's one in the .NET Studio for their Visual J - I have no idea how that will be cross-platform though.
Python is going to be the least painful. Java is just plain hard to write.
I write PHP code 8 hours a day, 5 days a week and I don't think I'd do it with PHP+GTK - the infinite-main-loop paradigm has always felt wrong to me.
Visual J is pretty old, they stop supporting it either in 2003 or 2005. Java is a pain to write and even their drag and drop tools aren't that great (at least the free ones.)
I've never used Python, but I hear it's a great language for scripting. Is it powerful enough to run a game?
hclixinarcadia
11/10/2010, 14:17
Visual J is pretty old, they stop supporting it either in 2003 or 2005. Java is a pain to write and even their drag and drop tools aren't that great (at least the free ones.)
I've never used Python, but I hear it's a great language for scripting. Is it powerful enough to run a game?
HCOL isn't that complicated of a game... basically you have a 2D map, a team, and then you do things that get communicated over to your opponent's pc.
It's not like a 3D First-person shooter where you have a world all around you or Real-Time Strategy game where a million things are happening at once.
Someone who knows Java or Python inside out and has the tools can probably whip HCOL out in less than 200 man-hours... just an estimate.
TheCosmicJake
11/10/2010, 14:42
PyGame actually has some pretty cool stuff: http://www.pygame.org/
You could keep rolling with your VB version, as long as you're totally open with your communication protocols and data files, someone else could make a cross-platform client.
Just remember: share your source, or we'll be right back in this same spot again. HCOL does everything we need it to as far as gameplay goes, it's just lacking support for the new features of the game and no one can update it
hclixinarcadia
11/10/2010, 15:11
PyGame actually has some pretty cool stuff: http://www.pygame.org/
You could keep rolling with your VB version, as long as you're totally open with your communication protocols and data files, someone else could make a cross-platform client.
Just remember: share your source, or we'll be right back in this same spot again. HCOL does everything we need it to as far as gameplay goes, it's just lacking support for the new features of the game and no one can update it
yup, that's the idea... share the source so it can be updated by someone else if need be.
I do have the old and new file layouts in the first post... so as of now, anyone can develop what they want using the old files... when I convert everything into the new layout, then anyone can develop using that layout as well.
And, thanks for the link, I'll check out pygame.
Sarcanis
11/10/2010, 23:55
Visual Basic can be emulated in WINE.
hclixinarcadia
11/11/2010, 10:18
Visual Basic can be emulated in WINE.
You know, a friend just sent me a link to WINE... I think it's winehq.com. Have you used it?
And a quick update on the figure viewer I created in VB... it works! I just need to add in Team display.
I'll create and post screenshots tonight and maybe an exe that the people checking the CSVs can use instead of painstakingly going thru the data in Excel. They can just put the screens side by side and compare.
hclixinarcadia
11/11/2010, 13:07
I think teams will just show up as text in a listbox with no graphics. It will have room to show two and if there are more than two teams assigned, you can scroll down to see the others.
As of now, I think the most assigned are two teams but if there are ever more in the future then we won't have to change the handling for it.
hclixinarcadia
11/11/2010, 17:20
I updated the design to include file layouts for feats and ATAs and a conversion program for them. I also changed the extensions of the names of the new files from BIN to CSV
hclixinarcadia
11/12/2010, 02:15
I've added new screen shots from the figure viewer using Visual Basic. See:
http://www.hcrealms.com/forum/album.php?albumid=1293
I've added new screen shots from the figure viewer using Visual Basic. See:
http://www.hcrealms.com/forum/album.php?albumid=1293
Wow dude... that looks sweet! I love how clear it is to see the figure information.
Are you gonna be able to do the on-mouseover text pop-ups for when the battlefield version of a dial is showing?
hclixinarcadia
11/12/2010, 09:18
Wow dude... that looks sweet! I love how clear it is to see the figure information.
Are you gonna be able to do the on-mouseover text pop-ups for when the battlefield version of a dial is showing?
yeah, those mouse-overs should be do-able.
oh I added the screenshot for shazam/black adam. I manually edited the csv files first though to combine bb055a and bb055b.
gotta tackle how to handle 2x2s, 4x4s and others though.
edit: oops forgot to edit the name... now, it's ok... deleted the old one and uploaded the new screen shot with the correct name
hclixinarcadia
11/13/2010, 01:16
I updated the design to include a new field to handle the 2nd starting line mechanic for AEs
I uploaded new screenshots to show how this looks. See:
http://www.hcrealms.com/forum/album.php?albumid=1293
spider_ham
11/15/2010, 22:20
Looking great! The dial display is much cleaner and better organized than Battle Planner's GUI, imho. :)
The previous screenshots (menus) were taken from the Dark Basic build, and you are currently working in VB, correct?
hclixinarcadia
11/15/2010, 23:27
Looking great! The dial display is much cleaner and better organized than Battle Planner's GUI, imho. :)
The previous screenshots (menus) were taken from the Dark Basic build, and you are currently working in VB, correct?
yes, the figure viewer is in VB. The menus should also be changed to be in VB and not Dark Basic.
hclixinarcadia
11/16/2010, 01:19
I added a couple more screen shots with the main menu re-worked in VB, showing different backgrounds which can be changed according to user preference.
See:
http://www.hcrealms.com/forum/album.php?albumid=1293
Sarcanis
11/18/2010, 06:03
Hey, I've been working on a HorrorClix patch for the current HeroClix Online for a while now. With a game like that, with a small number of players and a community-driven development process, it's important to attract new players. For that reason, I am super excited about figure images in HCOL 2.0! It's alot easier to get people interested in a game that has visuals, especially something as flavor-driven as HorrorClix.
Anyway, I had a couple of things I'd like to humbly request.
For one, I saw earlier in the thread that you were planning to remove soaring indicators. Would it be too much to ask to leave them in? WizKids never actually removed soaring/hovering from HrC... but I understand that this is HEROclix online and HeroClix doesn't use that mechanic anymore. So I don't expect you to leave it in on my account, I just thought I'd ask, as it would make things much easier on us.
Secondly, could you add a way to move objects face-down? In HCOL1.0 we use objects as victim tokens, which are mixed up and placed face-down on the bloodspots on the maps at the beginning of the game. Since that's not possible with HCOL1.0, we use a system where each player rolls a d6; low roll chooses a gender and high roll chooses the specific victim. If objects could be placed and moved face-down, we could play them as they were intended to be played.
Finally, since someone mentioned mouseovers already anyway, how about a mouseover or menu option that displays a figure's card? Preferably this would not be too size-restrictive so that I could plug in images the size of two HrC cards (http://www.itswickedfun.net/images/themadmonk.jpg) (to show both sides of the card).
hclixinarcadia
11/18/2010, 10:38
Hey, I've been working on a HorrorClix patch for the current HeroClix Online for a while now. With a game like that, with a small number of players and a community-driven development process, it's important to attract new players. For that reason, I am super excited about figure images in HCOL 2.0! It's alot easier to get people interested in a game that has visuals, especially something as flavor-driven as HorrorClix.
Anyway, I had a couple of things I'd like to humbly request.
For one, I saw earlier in the thread that you were planning to remove soaring indicators. Would it be too much to ask to leave them in? WizKids never actually removed soaring/hovering from HrC... but I understand that this is HEROclix online and HeroClix doesn't use that mechanic anymore. So I don't expect you to leave it in on my account, I just thought I'd ask, as it would make things much easier on us.
I think instead of soaring, we can place a note field there where the user can type in whatever they want. So in case the figure is soaring, you type 'soaring' there, etc.
That would also handle any new mechanics... for example, if they added a new range type called "all-reaching" and the program doesn't handle it yet, you can simply note it in that field and it will show while you are playing.
Or if you were playing a custom game with custom rules, you can use that note field for whatever use your game calls.
Secondly, could you add a way to move objects face-down? In HCOL1.0 we use objects as victim tokens, which are mixed up and placed face-down on the bloodspots on the maps at the beginning of the game. Since that's not possible with HCOL1.0, we use a system where each player rolls a d6; low roll chooses a gender and high roll chooses the specific victim. If objects could be placed and moved face-down, we could play them as they were intended to be played.
I'm not sure how easy this is but I'll see.
Finally, since someone mentioned mouseovers already anyway, how about a mouseover or menu option that displays a figure's card? Preferably this would not be too size-restrictive so that I could plug in images the size of two HrC cards (http://www.itswickedfun.net/images/themadmonk.jpg) (to show both sides of the card).
I'll check into this as well.
Edit:
I'm starting on the conversion for objects, feats, and ATAs and updated the design with the changes. I actually just finished manually creating the csv for ATAs.
As for objects, I will probably manually enter them as well but have only one for standard heavy, and only one for standard light, and then individual entries for special objects.
Edit2:
I've manually created the objects.csv and updated the design. I also made minor changes to the design: changed references "Team Maintenance" to "Team Management", put a distinction between "Text" and "Text, double-quote delimited" for field types in the CSV file layouts.
Edit3:
I've manually created the bfcs.csv and updated the design. As soon as feats are converted, I can complete the Team Management program.
Sarcanis
11/18/2010, 22:58
I think instead of soaring, we can place a note field there where the user can type in whatever they want. So in case the figure is soaring, you type 'soaring' there, etc.
That would also handle any new mechanics... for example, if they added a new range type called "all-reaching" and the program doesn't handle it yet, you can simply note it in that field and it will show while you are playing.
That would be perfect.
hclixinarcadia
11/30/2010, 00:11
I uploaded new screenshots to show the latest Team Management. The only thing that is not yet functional is the print button.
See:
http://www.hcrealms.com/forum/album.php?albumid=1293
I uploaded new screenshots to show the latest Team Management. The only thing that is not yet functional is the print button.
See:
http://www.hcrealms.com/forum/album.php?albumid=1293
Looks amazing!
hclixinarcadia
11/30/2010, 12:16
Thanks Crow.
And, the data that's in feats, objects, bfcs, and atas are directly from the lst files that you already had in there. I merely edited them manually to be in csv format. It didn't take too long thanks to all the preliminary work already put in by you (Crow).
Now, I start work on the Battlefield Manager which I frankly don't have a clue yet how to do in VB. Maybe we can all brainstorm a little. We need:
1. ability to load the map as a background - should be easy
2. based on the team that's currently in memory display play pieces - not sure how
3. allow the user to pick up these pieces and place them on other areas including removing them from the board - not sure how
4. display a description of actions in the status/chat screen - should be easy
5. simulate the figure/current click display that the current HCOL has - should be easy
6. Have the ability to click, put, tokens, type notes for each playing piece - not sure how but should be do-able
7. Have the ability to toggle figure labels, LOF line, etc - not sure how
8. Have the ability to place extra objects and pieces on the board - not sure how.
9. Have the ability to assign BFCs - should be easy.
Suggestions are welcome and if there's anything else that might be missing please feel free to suggest it.
Thanks Crow.
And, the data that's in feats, objects, bfcs, and atas are directly from the lst files that you already had in there. I merely edited them manually to be in csv format. It didn't take too long thanks to all the preliminary work already put in by Crow.
Now, I start work on the Battlefield Manager which I frankly don't have a clue yet how to do in VB. Maybe we can all brainstorm a little. We need:
1. ability to load the map as a background - should be easy
2. based on the team that's currently in memory display play pieces - not sure how
3. allow the user to pick up these pieces and place them on other areas including removing them from the board - not sure how
4. display a description of actions in the status/chat screen - should be easy
5. simulate the figure/current click display that the current HCOL has - should be easy
6. Have the ability to click, put, tokens, type notes for each playing piece - not sure how but should be do-able
7. Have the ability to toggle figure labels, LOF line, etc - not sure how
8. Have the ability to place extra objects and pieces on the board - not sure how.
9. Have the ability to assign BFCs - should be easy.
Suggestions are welcome and if there's anything else that might be missing please feel free to suggest it.
Here's some of my suggestions, hope they are clear and helpful:
2. Not sure what you're getting at with this
3. Should be able to use the mousedown and drag functions for this. Then continue to move the picture of the figure wherever the mouse is currently at (using mousemove or something like that.)
For removing the figure, just create a menu using the rightmouseclick, which includes removing the figure, or you can make it do it when it drags it off the board.
6. I would personally add all of these functions in the rightmouse menu I described above. Also, you can make buttons with icons in them above the board to do the same for the selected figure(s).
7. Line of Fire will be tough, but I would suggest a button tool or part of the right click menu to let the game know that you're doing a line of fire. Then click at the beginning square, dragging to the ending square and let go. Use the graphics to draw a line. Then calculate the line of fire based on the map, which will probably be the toughest part.
8. Again, use right click menu and/or button icons to add these.
Hope this helps.
I would add that removing a figure from the board should be handled way differently than the old HCOL. It would be nice to have KO'd figures that the user drags off the board appear in their own little space (totaling victory points as we go) from which they can be brought back easily (e.g. user mistakenly KOs someone, is playing Deadman, a piece has been captured, etc). It's like a dial purgatory.
I would add that removing a figure from the board should be handled way differently than the old HCOL. It would be nice to have KO'd figures that the user drags off the board appear in their own little space (totaling victory points as we go) from which they can be brought back easily (e.g. user mistakenly KOs someone, is playing Deadman, a piece has been captured, etc). It's like a dial purgatory.
That should be pretty easy, just set up a KO figure area for each player somewhere. Using a right click menu, you can do different things with the KO figures, like return them to the map or click them (like Ra's Al Ghul) or anything else that needs to be done with KO figures.
Also, there could be a temporary holding area for captured and carried figures who are removed from the map for a short while.
hclixinarcadia
11/30/2010, 13:22
First of all, great suggestions. Yes, we should implement all of them.
Here's some of my suggestions, hope they are clear and helpful:
2. Not sure what you're getting at with this
Oops, I meant the initial placement of the playing pieces/sprites.
3. Should be able to use the mousedown and drag functions for this. Then continue to move the picture of the figure wherever the mouse is currently at (using mousemove or something like that.)
Awesome. I will google (the beauty of the internet) mousemove, visual basic, and drag (insert joke here). I'm sure it will turn up some good suggestions.
For removing the figure, just create a menu using the rightmouseclick, which includes removing the figure, or you can make it do it when it drags it off the board.
6. I would personally add all of these functions in the rightmouse menu I described above. Also, you can make buttons with icons in them above the board to do the same for the selected figure(s).
Yes, the right-mouseclick is perfect.
7. Line of Fire will be tough, but I would suggest a button tool or part of the right click menu to let the game know that you're doing a line of fire. Then click at the beginning square, dragging to the ending square and let go. Use the graphics to draw a line. Then calculate the line of fire based on the map, which will probably be the toughest part.
we'll have to see about LOF, maybe just show a line there and let the user eyeball whether it hits the blocking square... probably all we can do there... highlighting squares was kinda useless wasn't it?
I would add that removing a figure from the board should be handled way differently than the old HCOL. It would be nice to have KO'd figures that the user drags off the board appear in their own little space (totaling victory points as we go) from which they can be brought back easily (e.g. user mistakenly KOs someone, is playing Deadman, a piece has been captured, etc). It's like a dial purgatory.
That should be pretty easy, just set up a KO figure area for each player somewhere. Using a right click menu, you can do different things with the KO figures, like return them to the map or click them (like Ra's Al Ghul) or anything else that needs to be done with KO figures.
Also, there could be a temporary holding area for captured and carried figures who are removed from the map for a short while.
haha a purgatory... yes, that's exactly what it is... and as Svanxx says, it should be pretty easy.
Thanks guys.
I've got a web site that I need to work on which will probably take me to the end of the year, but if you need some help after that, let me know.
hclixinarcadia
11/30/2010, 14:32
I've got a web site that I need to work on which will probably take me to the end of the year, but if you need some help after that, let me know.
Thanks, hopefully I can be done by then.... and needing help beta testing.
Sign me up for beta testing then!
we'll have to see about LOF, maybe just show a line there and let the user eyeball whether it hits the blocking square... probably all we can do there... highlighting squares was kinda useless wasn't it?
.
I've got to differ here - this is one thing that HCOL got right and should be recreated as much like the original as possible. Highlighting squares is the right way to go because it removes all doubts (and can be accomplished mathematically... if you need a pseudo-code algorithm, I might be up to the task).
One difficulty I also noted was that HCOL used its own "grid" which may or may not be perfectly aligned with whatever JPG image is the map. I tried to make all maps centered perfectly at 696x696 pixels, but occasionally there was some "fat" at the top or side that made it unleveled. If the virtual overlayed "grid" on which the figures appear could be incremented pixel by pixel with the arrow keys, it might help make alignments easy in-game, but there's really no way to "stretch" things well if it's a scale mismatch. Oh well... I can try to fix the maps one at a time.
Speaking of maps I've got like 6 new ones ready and another 6 I can land in the next few weeks from online sources! They'll go up with the DC 75th figures, which I've entered every one but the last 8 that haven't been seen yet.
hclixinarcadia
11/30/2010, 14:47
Oh, I do have a VB question though. I want to be able to click that print button under Team Management and out comes an Army Sheet in the format that WK has it in... lines and everything would be nice.
Any suggestions on how to properly do that in VB?
Is there a way to define a form and then fill in the fields before printing it out?
hclixinarcadia
11/30/2010, 15:03
I've got to differ here - this is one thing that HCOL got right and should be recreated as much like the original as possible. Highlighting squares is the right way to go because it removes all doubts (and can be accomplished mathematically... if you need a pseudo-code algorithm, I might be up to the task).
...shows you how much I know. :) Educate me if you will. If no blocking square is highlighted then does that mean LOF doesn't go thru that square? I can see how it will be useful for knockback to determine the path but how is it used for LOF?
One difficulty I also noted was that HCOL used its own "grid" which may or may not be perfectly aligned with whatever JPG image is the map. I tried to make all maps centered perfectly at 696x696 pixels, but occasionally there was some "fat" at the top or side that made it unleveled. If the virtual overlayed "grid" on which the figures appear could be incremented pixel by pixel with the arrow keys, it might help make alignments easy in-game, but there's really no way to "stretch" things well if it's a scale mismatch. Oh well... I can try to fix the maps one at a time.
I was wondering about this. How does HCOL know what the map properties such as starting area, and dimensions are? Is there some kind of map.lst somewhere?
Speaking of maps I've got like 6 new ones ready and another 6 I can land in the next few weeks from online sources! They'll go up with the DC 75th figures, which I've entered every one but the last 8 that haven't been seen yet.
There are no figures with 2nd starting lines in DC 75?
You do a lot of work entering figure info into HCOL, Crow. That's what you call love for the game.
wolviefreak
11/30/2010, 20:03
Again, to all of you smarties keep up the great work...many of us less than smarties appreciate what you're doing for the clix community.
Also hclixinarcadia, consider me for any beta testing, image compiling, etc... that you may need.
Cheers!!!
...shows you how much I know. :) Educate me if you will. If no blocking square is highlighted then does that mean LOF doesn't go thru that square? I can see how it will be useful for knockback to determine the path but how is it used for LOF?
Line of fire is drawn from center-to-center between two squares (the shooter/source and the target). The line, of course, passes through many intermediate squares on the way. If one of those squares is blocking, hindering, or a character or elevated or... any number of things, really, then it affects the line of fire in different ways. That's why having the squares in the line light up red is useful - it resolves arguments about which squares the line goes through and which it does not.
I was wondering about this. How does HCOL know what the map properties such as starting area, and dimensions are? Is there some kind of map.lst somewhere?
maps.lst contains the gridded dimensions of the map ( in the maps folder). Right now they are all 24 by 24. HCOL originally contained a way to play larger maps (more squares) by shrinking the dials down proportionally... the author must have had a second set of "dial images" for this particular case. In any event, I scrubbed those maps since they didn't work well.
There are no figures with 2nd starting lines in DC 75?
.
It doesn't seem so.
rorschachparadox
12/03/2010, 01:15
Again, to all of you smarties keep up the great work...many of us less than smarties appreciate what you're doing for the clix community.
Also hclixinarcadia, consider me for any beta testing, image compiling, etc... that you may need.
Cheers!!!
i couldnt agree more, on both counts! i just found this thread, and im stoked! im a longtime user of the old hcol, and am always grateful to crow for keeping up with it, and now some improvements are in line and i love it!
so three things really...one, id be willing to betatest, but you seem to have a number of volunteers! :) two, i am not any kind of techie or designer, but i am willing to di any grunt work you might need doing. now sure how much that would be, but im putting the offer out there. three, a techie question: will this run on a windows mobile device, the same as it does in normal windows? (i really really hope so!) barring that, is it a lot of work to port to mobile platforms? (again, fingers crossed big time!)
again, just wanted another voice to make it known that all the time and effort is very much appreciated! thanks and keep up the good work!
By the way everyone, I've just unleashed the latest update to HCOL (the original).
DC 75, baby! It's all in there (well, all but the LE and BtB figure that haven't leaked).
Also - 6 new maps (DesertVillage1 and 2, Warehouse2, Vigilante'sLair,HallofHeroes and Plaza)
Go get it! crowsnest.amelieschoice.com
hclixinarcadia
12/04/2010, 09:51
I've update the figure viewer to support more than 12 clicks. It will have a scroll bar if there are more than 12 clicks, and no scroll bar if there are only 12.
See:
http://www.hcrealms.com/forum/album.php?albumid=1293
Ignatz_Mouse
12/04/2010, 10:06
By the way everyone, I've just unleashed the latest update to HCOL (the original).
DC 75, baby! It's all in there (well, all but the LE and BtB figure that haven't leaked).
Also - 6 new maps (DesertVillage1 and 2, Warehouse2, Vigilante'sLair,HallofHeroes and Plaza)
Go get it! crowsnest.amelieschoice.com
Feel free to add my map, if you like. See sigfile.
wolviefreak
12/04/2010, 11:18
I've update the figure viewer to support more than 12 clicks. It will have a scroll bar if there are more than 12 clicks, and no scroll bar if there are only 12.
See:
http://www.hcrealms.com/forum/album.php?albumid=1293
Damn, that is looking SLICK!!!
/cheer!!:laugh:
Feel free to add my map, if you like. See sigfile.
Thanks! Done!, It will be in the next update, probably whenever the LE's get spoiled for DC 75.
May I draw attention to the front page where it has become obvious that Heroclix is going online in an official capacity? What this means for all our efforts is unclear.
hclixinarcadia
12/06/2010, 13:58
May I draw attention to the front page where it has become obvious that Heroclix is going online in an official capacity? What this means for all our efforts is unclear.
ahhhh... it's all good for me Crow. All my efforts were for love of the game (and programming) which means it continues for me.
I can probably at the very least finish the bin conversion and complete the team management with army sheet printing capability and release that.
hclixinarcadia
12/07/2010, 00:53
I converted all of the bin files (except for the lf.bin file - large figures) and are now selectable under the drop down.
See screenshot in: http://www.hcrealms.com/forum/album.php?albumid=1293
I will work on the print functionality and the Team Management portion of it will actually be done.
hclixinarcadia
12/21/2010, 03:27
I have a hypothetical question:
say, a person applied to be a beta tester for the upcoming WK online game. And then, that person received the email with the attachments, signed and sent in the Non-Disclosure Agreement but hasn't heard back from WK.
Does that mean that this hypothetical person can continue to develop an online program on his or her own?
After all, nothing has "been given to Recipient by Disclosing Party" right?
I have a hypothetical question:
say, a person applied to be a beta tester for the upcoming WK online game. And then, that person received the email with the attachments, signed and sent in the Non-Disclosure Agreement but hasn't heard back from WK.
Does that mean that this hypothetical person can continue to develop an online program on his or her own?
After all, nothing has "been given to Recipient by Disclosing Party" right?
Well a close reading of the NDA ought to make this clear, but it's not possible for you to know what ideas you may be infringing if you haven't received any!. Your life is not "on hold" from creativity until they finally reveal what this product is. After all, it's no more or less legit than it was before for you to pursue this. You could be making art with macaroni and then find out that the product is really MacaroniDoodle 3.0.
hclixinarcadia
12/21/2010, 12:43
Well a close reading of the NDA ought to make this clear, but it's not possible for you to know what ideas you may be infringing if you haven't received any!. Your life is not "on hold" from creativity until they finally reveal what this product is. After all, it's no more or less legit than it was before for you to pursue this. You could be making art with macaroni and then find out that the product is really MacaroniDoodle 3.0.
well alrighty then, lol.
I found a way to move a figure around on the map. I also got the coordinate calculations correctly now so that if you click anywhere in the square, the figure will go in that square... pretty exciting stuff... for a computer geek like me... yup!
I just need to figure out how to load an array of pictureboxes at runtime in VB.
But before I babble on, let me post my hypothetical question in that call for game testers thread.
Sarcanis
01/25/2011, 03:52
Any progress or news? I'm very excited about this project, I believe it could be the key to the future of HorrorClix, and it would be an incentive for me to play more online HeroClix as well.
hclixinarcadia
01/25/2011, 12:27
Any progress or news? I'm very excited about this project, I believe it could be the key to the future of HorrorClix, and it would be an incentive for me to play more online HeroClix as well.
nope, no progress. I did give away my source code for free before I signed the NDA... it's possible that others are working on it.
Sarcanis
05/08/2011, 03:39
nope, no progress. I did give away my source code for free before I signed the NDA... it's possible that others are working on it.
Okay, so I'm gonna bump this thread and ask if anyone is working on it.
wolviefreak
06/01/2011, 15:01
I wish someone was because the offical game forces player vs player.
I want a Heroclix game where I can play against myself (offline).
I know HConline is available, but something 3d would have been nice.
Oh well...FU Wizkids....I'm not buying your HC game :p
rorschachparadox
07/03/2011, 15:48
I guess I'll do the monthly "bump" this time. But with a more specific question:
Now that the legitimate version of HCOL has moved beyond "secret" development, went through open Betas into a paid Beta, what is the current standing of those who signed NDAs? Are they barred from working on a project like this for a fixed amount of time? Indefinitely? Until a benchmark in development? Something else entirely?
Barring that, has anybody picked up the source code? Was it handed off to a particular somebody who took the lead? Or was it posted online for anybody to obtain, and just assumed somebody did so?
Regardless of production status, is the game in a working state as is? In the previous screenshots, it looked like at least the entire BatB set was input. Is it just a matter of adding figures? I don't know VB, but something like that, (rote brute force) might be something I'm capable of picking up.
wolviefreak
07/03/2011, 15:55
hclixinarcadia was the one working on it. I'm not sure if he gave the code away or not. Hopefully he will come by and let us know.
I too am interested in this now since HCO will be ONLINE only. The only issue now is that with HCO coming out there may be legal concerns with continuing what hclixinarcadia started.
I for one, would be willing to help although I do not know how to code anything :)
I'll PM him to see if he can come here and respond.
vBulletin® v3.7.0, Copyright ©2000-2012, Jelsoft Enterprises Ltd.