Duke4.net Forums: Project Bubblegum: An HRP downloader/updater [PHP Coders Welcome] - Duke4.net Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • This topic is locked

Project Bubblegum: An HRP downloader/updater [PHP Coders Welcome]  "Soon to be a front-end for eDuke32"

#1

Project Bubblegum
An HRP Downloader/Updater
(Soon to be a complete eDuke32 front-end)


What Is It?
Bubblegum is a project I hope will change the way we play and use eDuke32. It will be an installer, an updater, a front-end, a launcher, a map/mod community, a multiplayer matchmaker and server, and whatever other useful features I can cram down its throat.

Download
Latest release: hrp-update.exe
Latest source: hrp-update.7z (written in PHP)

Instructions
Installing/running
Download from above
Place hrp-update.exe in same folder as eduke32.exe
Run hrp-update.exe

Compiling/Editing
Download the source above (I recommend downloading 7Zip, but WinRAR should also open it)
Extract to a folder on your computer
Execute "compile.bat". This will generate hrp-update.exe
Source code is in the hrp-update folder.

License
Project Bubblegum is licensed under the GPLV2. License is available in the zip download

Current Features
(7/06/11) Download required tools (ftp, zip/unzip, wget, SVN)
(7/06/11) Check that important folders/files exist (autoload, autoload\hrp, eduke32.exe, OpenSSL libraries)
(7/06/11) Back up existing HRP (if found)
(7/06/11) Download complete HRP from SVN
(7/06/11) Update HRP from SVN (if HRP zip has svn_ver.txt)
(7/18/11) Beginnings of repack feature (in case the program choked out at some point)

Next Features
Downloading latest EDuke32 synthesis
--Need to store setting for it somewhere, I'm thinking a new section in eduke32.cfg
----EDuke32 should ignore the section, and I have a command-line tool for editing INI files)
--Need to keep time of last download in form of unix timestamp, otherwise might hammer the server too hard
Progress meter for SVN downloads (currently, have to either show every download or let it sit uncomfortably long without doing anything)
Explorer won't let go of folder handles when we want to rename the backups folder
-Unlocker: files.brothersoft.com/utilities/system_utilities/unlocker1.9.0-portable.zip
-Supports command line options
Get a list of all files in SVN, before repacking check that all files exist
Split the repacking to a separate function
Auto-download OpenSSL
-Download page has latest of 0.9 branch and 1.0 branch, just need 1.0 branch
New function for all file handling and folder execution (avoid accidental line breaks and tabs that will screw up processing)


Future Features
Delete texture caches on updates (to make sure there isn't any old data), necessary?
Write changes to be made (downloads and deletions) to text file, remove them as they are made (so you can continue a broken operation)
If more than 50% of the whole HRP needs to be downloaded, delete all and do a fresh checkout
Bootstrap installer/updater
-Check if the bubblegum folder exists
--If not, download latest source
---Set date for all files as server date
-Main program: get list of scripts and version from server
--Just have a file that defines each file in the project
---If the file doesn't exist, download it
---Use curl to get date of each file on server, if file is newer than source, download
--If newer files, run a batch program to terminate bubblegum and run bootstrap with cmd line parameter to recompile
-Launch bubblegum when installed
-Move all bubblegum content to new folder
Update eduke32.cfg (specifically, "ConfigVersion = ###" [needs to reflect current SVN version downloaded])
Auto-searching for DUKE3D.GRP (in current folder, then maybe "dir *.grp /S" on root of all drives and present results to user, maybe search for GOG downloaded file, maybe ask user to insert a Duke CD)
--Getting version via hash (not sure if the version is in the GRP file somewhere)
--Downloading shareware version if user chooses to
--Check c:\program files\gog.com\Duke Nukem 3D (and (x86))
--Look for GOG.com setup_duke3d.exe
--innounp http://innounp.sourceforge.net/
--innounp -x -e setup_duke3d.exe {app}\duke3d.grp
----duke.rts
Automatic add-on installation (including searching for new or missing add-on files and updating accordingly)
--Probably with much inspiration by Hendricks266, although I originally did this project in a batch file and couldn't reuse ANY code (mainly because PHP doesn't have goto, which is very handy for batch files)
--Prompt user whether to download shareware versions of DC or NW
Look for maphacks.zip and duke3d_hrp.zip in autoload (saw these in the "Installer" directory, any other names of HRP files would be useful)
XXX HRP (& store the option somewhere)
Automatic DukePlus downloading/updating
Music Packs (HRP and a couple others I've seen)Polymost HRP
--HRP 4.0 = Polymost? http://hrp.duke4.net/download.php
--Polymost Update Pack http://forums.duke4....-update-pack-41
GUI to cover all options so far
Create shortcuts with icons (have a command-line program that can do that)
Copy sounds from DNF to eDuke32 (if DNF is installed)
Verify hash of files http://corz.org/wind...d-line-switches
--Create hash on download
--After unzipping (and before update), verify hash; if anything fails, add it to the update list
--delete the hash files, then recompute hash for all files (and then repack)
Command-line options function
--from a sync.py script: parser.add_option('-d', '--daemon', dest='daemon', default=False, metavar='(yes|no)', help='run as daemon')
--(gives parameters to look for, a default value if not set, what the help text is)
Automatic updating of this program
--Could keep PHP files separate and just download those
--Could also create a separate update program to update (probably can't update/delete software while it's running)
Use devcon.exe to determine if you are using an ATI video card and warn about potential problems
--devcon.exe http://support.micro...b;EN-US;Q311272
----No restrictions against distribution in EULA
----works in Win7 x64
--"devcon driverfiles =display *1002*"
----1002 is the vendor ID for ATI; this command shows any ATI video cards installed
----Replace "driverfiles" with "find", read everything after ": " to get card name
--Potential Problems:
----White boxes (should be fixed several months ago)
----Memory leaks
----Crashes

Attached thumbnail(s)

  • Attached Image: Community Site.png


This post has been edited by BrentNewland: 20 July 2011 - 09:35 PM

4

#2

Notes
These are random notes I've been keeping on possible features
Please ignore any ridiculous ideas, I'll find out how ridiculous they are when I try to implement them


Utilities
---------

Quote

Possibly integrate driver scanners from nVidia, ATI, and Intel websites?
-nVidia driver widget http://www.nvidia.co....asp?lang=en-us
--nVidia system software (adds advanced features and driver update checks) http://www.nvidia.co...tools_6.06.html
-Could show websites inside program, but can't integrate - uses software from System Requirements Lab, would get in trouble
-Can offer after a certain amount of time has passed, or possibly get install date of current drivers from system
-Could also offer to show scanner if you experience crashes
-Can query WMI to get name of video card
--If doing that, also get specs on processor and RAM, will show what average specs are
--can probably get driver version, allow devs to set minimum driver version (or blacklist driver versions)
-Can create automatic driver updater
--http://sites.amd.com/us/game/downloads/Pages/radeon_{os}-{arch}.aspx
----{os} = win7 or xp
----{arch} = 64 or 32
----wget *dd_ccc*.exe
--wmic path Win32_PnPSignedDriver Where "DeviceClass = 'DISPLAY' and Manufacturer = 'ATI Technologies Inc.'"
----Get strpos of "DriverDate", first "D" matches up with driver creation date
------Version equals characters 3-6, ignore 5 if = 0
------Note: date might be behind actual version
----nVidia: DriverVersion, remove periods and first four digits (rest will be driver version); manufacturer="nVidia"
--Can also get version from registry
----"HKEY_LOCAL_MACHINE\SOFTWARE\ATI Technologies\Install\ATI Catalyst Install Manager"
------OriginalDB/SourceDIR contains path to installer (should be c:\ati\support\XX-x_{os}_{arch}(more stuff after)
--Use vendor ID and product ID to determine exact card and send to "legacy drivers" downloads
----Can use in future to disable features based on GPU
----ATI http://www.pcidataba...ails.php?id=240
----nVidia http://www.pcidataba...ails.php?id=606
------nVidia drivers with versions of software last supported http://www.nvidia.co...t/IO_18897.html
------Use advanced search source code http://www.nvidia.co...aspx?lang=en-us
--------Uses AJAX; can select each product type to get series values, then assign each PID from PCI Database to one of the option values
--------Directly use API; http://www.nvidia.co...ntID={ParentID}
----------TypeID 1: Gives ParentID options; TypeID 2: Gives Product Series optionsl TypeID 3: Gives product list; TypeID 4: Gives OS list; TypeID 5: Gives language list
-nVidia
--Search for registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ Uninstall\*_Display.Driver key: DisplayVersion (will be the nVidia driver version)
-Need an option to dump data and send to developer (me) if you have one of these but it isn't recognized (maybe due to older installation software)
Command line tool to get gateway (from ipconfig or wmi), download index.html of gateway, determine router model number, link to portforward.com
-Even password prompt gives you name of router (for linksys), d-link should have name on login page
-Auto-try default router login and report to user
-Maybe even detect firmware version and show latest firmware and 3rd-party firmware (unnecessary for this project, useful for others)


Multiplayer - Bubblegum
-----------------------

Quote

Include only content that is used when compiling cons and resources for a multiplayer match (reduces de-sync)
-Content is syncronized to all players via Bubblegum before clients connect
Auto-detect if using Hamachi or have a private IP and offer to search for servers or clients on network
Custom player skins
-Player's downloaded skin will be sent to the MP host, then other clients (from the MP host), CON files will be adjusted automatically
-Newcomers can choose from skins installed on the server (and active) or default skin
Final file verification to make sure players have the same files
-If client has mismatching files, offer to retrieve from MP Host, or put to a vote whether to allow join with mismatching files
-If needed files are available online, download from there
Automatic port tests (use online service)
-Link to router config website if ports closed


Multiplayer- Website
--------------------

Quote

Number of players per map
-Can we get this from the map's number of starting points?
-Adding more or different start points would be a great mod and doable with the abstraction engine


Website
-------

Quote

Compatibility reports (get data from Bubblegum users)
-Allow uploader/author/maintainer to set a target version
-Allow ^^ to set HRP, DukePlus, and eDuke32 compatibility
Multiple roles on an entry
Bug reports per entry
Compare hash of map with existing maps to prevent duplicate uploading
-For adding new stuff (excluding updates): Compare % of similarity with other maps (using abstraction engine)
Log changes on all entries
-Users can subscribe to an entry (to be shown updates and news)
-Publicly visible (like the way Wikipedia handles revisions)
OpenID authentication http://en.wikipedia....penID_Providers
-Covers AOl, Yahoo, Myspace, Google, Steam, and more
-Can possibly store info in account http://openid.net/sp...-1_0.html#store
--Might be best to store information on server, never know how reliable third-parties are going to be


Bubblegum UI
------------

Quote

Data sent to client from server is all XML
-Bubblegum will generate web pages
--Will allow users to have local themes
-Won't have to send any website pictures, should save bandwidth
-Will be able to use AJAX for updates and cache responses (in case server goes down temporarily or user goes offline)
--Show page date at bottom of UI


Engine Interaction
------------------

Quote

Auto-copy save game files to a special folder for the specific map/episode/TC
Automatically track screenshots
-Tag with the map name, add-ons loaded with EDuke, versions, etc.
-Have a special "Screenshots" section in the Bubblegum UI to allow you to upload a screenshot to your page or submit to the map page
Auto-change from Polymer (HRP) to Polymost HRP if system below specs
Perform hash check of all EDuke32 files and add-on files (to verify no files are corrupt)
-Auto get all hashes when updating downloads
--For EDuke, HRP, maps, etc.
-Option to keep mismatching files (in case you have modified a file yourself)
--Option to always keep specified mismatching files and alert you if they change


Art
---

Quote

Fingerprint all art resources
-"php image comparison algorithm" http://www.google.co...rison+algorithm
-Will allow us to determine which maps use a certain art piece and how many times it's used (total and average per map)
--Statistics will allow people to prioritize which art needs replaced
-prevent duplicate downloads (for users, from website) or hosted files multiple times
-specify higher quality replacements
--if user chooses to auto-download higher quality art - in other words, HRP for fan content)
--Show all different qualities of a piece of art side by side
---Also show different styles of a piece of art in a separate gallery page
----Users can choose to make their art piece an alternate of another, pending moderator approval
--Will change art references to "fingerprint(original-fingerprint)" to enable automatic use of newer art while knowing what original art was
-Maybe compare to similar art and flag if art is XX% similar to another piece of art
--That would possibly make it easier for people to take existing HRP art and modify it to match the art needing upgraded
---I imagine a fair amount of art is based on other art
--Could also have it flagged for moderator review, so they can match art that might be the same piece at different qualities
---e.g. very low and very high resolution textures
ARTDIFF A program which will compare your user ART files to the built-in 3D Realms ART files, and output a difference file containing the differences between them.
-http://archive.dukertcm.com/knowledge-base/downloads-rtcm/general-tools-editart/ artdiff.zip
Name art files after the fingerprint
Extract all art from *.art files
-Will recompile the *.art files using all the resources specified by the map
--When importing a map with matching *.art and (probably?) *.con files, replace con references to art with fingerprint of art file
---Same with art references in maps
---When compiling the files before gameplay, replace all fingerprints in original files with pointer to art at new tile location in new files


Abstraction Engine
------------------
*Note* While this may sound far-fetched, it is not only possible to do but similar code already exists - see Torrentbits (PHP BitTorrent tracker) source code

Quote

Ability to list all resources, resources that have replacements, and go through all the .con and other files (work it like a database)
-Then just keep all DB-able files for maps and TC's in an internal DB, generate on-demand when needed and remove later
--Can set custom options for maps
--Can give options to download mods for your maps
---Other users can upload mods for maps
--can auto-update maps
--Can have user submitted AI paths
--Can import a DMO demo file and use command-line program to generate the demo video
---Need to auto-generate demo to show what map looks like with latest graphics (and your graphics)
---Offer to submit video to map/mod page
-CON: Text file
-GRP: Archived file
Compare md5 of maps to find duplicates
-make a DB of md5's of different versions of 1 map to offer to upgrade a user to the latest version
-If maps can be accessed like DB, find similar maps based on most matching data points and flag for review
--make sure someone isn't uploading a slightly edited map, or if they're uploading a newer version under a different user or name
Allow users to edit maps or cons and keep changes while rest of file gets updated
Auto-convert tiles and other images if you want to view them through the program
-ImageMagick should be able to do this through PHP
-Also use to convert PCX to a more usable format


Cross-Platform
--------------

Quote

All development is being done for windows
Incompatibilities - http://wiki.eduke32....latform_Modding
-If you can treat files as databases, you can automatically convert all references to lowercase and convert all file names to lowercase (as they're used)
--This improves Unix/Linux based OS compatibility


This post has been edited by BrentNewland: 20 July 2011 - 09:34 PM

2

#3

These are some new features I was tossing around, stuff that would allow more integration or more advanced features
Or, in some cases, just stuff I thought would be cool or useful


eDuke32 Enhancements
--------------------

Quote

Option to start/stop recording demo in-game
Command-line option to generate a demo video given a demo file, map, and extra resources (e.g. DukePlus, HRP)
-Option to specify how long to record, split into separate files (based on time or size), and maximum file size
-Record file in MKV or h.264 or some royalty-free format
Command-line option to benchmark with specified resources (specific map and demo file, HRP, DukePlus) to determine maximum settings
-If no map specified, will play through a default map and demo
-Tests different combinations of all settings and compares average framerates
-Ability to export results (e.g. csv, text file with variable=value & line break between variables)
--can import into PHP and possibly share results online to recommend default settings given certain hardware
Overlay UI (e.g. Shift+Tab steam overlay)
-Create a transparent layer over entire screen?
-Could probably get away with just having it use an embedded browser, handle most of the stuff via a web page
--With a web page, we could do: bug reports (engine and map, with screenshots and logs and even record a video to upload), browsing matches, chat with friends,
friends lists (and invites), map reviews


Mapster enhancements
--------------------

Quote

Generate differences between current map and another
-Compare location of named items
-Track deleted and renamed items
-Bubblegum can use this to create a mod file and apply it to the original map before launching the game
-Could use maphack spec - edit map in mapster, create maphack for changes from original
Command-line option to generate a 2D overhead map of a level (in an image format)


eDuke32 Multiplayer Enhancements
--------------------------------

Quote

Send users who have bad connection to host to a waiting room
-Option to auto-ask for vote to kick player if connection quality doesn't improve
If desync is detected, perhaps go into slow-motion to allow clients time to re-sync
-Also identify source of de-sync
-During slow-mo, if a player has been averaging low FPS causing desync or delay, reduce graphics settings automatically
Vote to kick
-Maybe record kicks in profile, allow to view kicks by users who vote to kick
Friends lists (matching website)
-Flag games that a friend is playing in
-Personal ban (will flag matches if a player you banned is in them)
Chat (via IRC address specified at command line)
-Bubblegum will use PHP to create a new channel on the server (and post creation date/time in title)
--Will try to delete channel after match is over, but website will look at all channels and close channels older than XX hours
--Bubblegum will also connect to IRC inside interface (User can see live chat from inside a match on the match page in Bubblegum)
---Will use IRC to send instant messages, or send a PM on website (user chooses, IRC only available if user is online)
----IRC messages show up in separate chat window (or in a sidebar)
-Automatically change nickname to nickname specified via command line (and use that for in-game name)
-Friends list (use IRC as online/offline notifier and to send private messages)
Voice Chat
-Would have to have eduke32 launch Bubblegum, and run at all times, otherwise voice chat would just be in-game
--I think Google Talk might be the best one to go with this, no central server required and libraries are open-source
-Can use Mumble/Murmur (which can be controlled via command line)
--How to connect to a mumble server and chat room: http://mumble.source....net/Mumble_URL
--Tools to control a Murumur server with PHP http://mumble.source...ty_Applications
--Authenticating Murmur with phpBB3 http://mumble.source...atabase.2FForum
--Mumble/Murmur uses Positional Audio for supported games (player's voice sounds like it's coming from their avatar)
---http://mumble.sourceforge.net/Games#Positional_audio
--Would have to have centrally hosted server
---can get a seedbox with gigabit connection up/down for $100/month, should be able to find something to fit our needs)
-Could use Google Talk/Chat http://code.google.com/apis/talk/
--Browser plugin to do video/audio chat (not sure if IE compatible) http://www.google.com/chat/video
---Embeddable Google Chat gadget (for web pages): http://talkgadget.go...lkgadget/client
--Uses XMPP for messaging, Jingle for video/audio and file sharing
---Share demo/save games in-game?
---Developer page: http://code.google.c...unications.html
--How it looks: http://www.google.co...n&answer=159499
--Supports Voicemail? http://googlesystem....s-official.html
--Would need to create separate client (or modify existing one) to support rooms (can't control official client)
-Voice chat automatically joins the channel specified via command line


This post has been edited by BrentNewland: 06 July 2011 - 06:59 PM

2

User is offline   Hank 

#4

Sorry to be the pest, but my security system will not permit, exe files to be downloaded. Can you zip or rar the exe file? Thanks.

Other then that All the Best Posted Image

This post has been edited by Hank: 06 July 2011 - 05:19 PM

0

User is offline   Micky C 

  • Honored Donor

#5

Hopefully if this does the job, and gets into distribution, we'll be seeing a lot less noobs asking trivial questions on how to get something working on these forums.
0

#6

View PostHank, on 06 July 2011 - 04:58 PM, said:

Sorry to be the pest, but my security system will not permit, exe files to be downloaded. Can you zip or rar the exe file? Thanks.

Other then that All the Best Posted Image



If you can't download the exe, you can download the 7zip file (winrar should support it) and run compile.bat. That will compile the program directly from the PHP source code.



I will appreciate any feedback. It's still in its early stages, and while I've put in a lot of basic script exits, I need to know how it works on other people's systems to find the spots where I need to do more advanced error handling. The script should try to backup your files automatically (although I haven't had problems with that - explorer likes to lock folders and not let you rename them). It shouldn't affect any mods you have installed, or any settings.


I'm working on adding the rest of the basic info to my first posts.
1

User is offline   Hank 

#7

View PostBrentNewland, on 06 July 2011 - 05:57 PM, said:

If you can't download the exe, you can download the 7zip file (winrar should support it) and run compile.bat. That will compile the program directly from the PHP source code.

I did that. And like what you did so far. Posted Image

Still, I'd suggest to zip any given exe file. New or unknown programs get tested by most security systems, if there is no identifier, the file is handled as dangerous and will be automatically removed. As I said before, I know I'm a pest, playing devils advocate, and hope you don't mind. Posted Image

Once more, all the best. Posted Image
0

#8

I have updated the posts with everything I have so far.
0

#9

I added some more information.
0

User is offline   Hendricks266 

  • Weaponized Autism

  #10

Please note, it is EDuke32 with a capital E.
1

User is offline   Micky C 

  • Honored Donor

#11

View PostHendricks266, on 13 July 2011 - 03:46 PM, said:

Please note, it is EDuke32 with a capital E.


Is it? Huh, I never noticed. I guess I always spelled it eduke32. Still, if we're going to get technical, it should be "A HRP" in the title and not "An HRP" I believe.
0

#12

View PostMicky C, on 13 July 2011 - 05:04 PM, said:

Is it? Huh, I never noticed. I guess I always spelled it eduke32. Still, if we're going to get technical, it should be "A HRP" in the title and not "An HRP" I believe.


I chose "An HRP" because you aren't sounding out the H, you are saying it (sounds like "aych", "a" before a word starting with a vowel should be changed to "an"; if it was pronounced like "herp" then I would change it to "a herp", but that sounds crazy).


Also, I try to use the preferred "EDuke32", but I keep typing "eDuke32". Maybe my subconcious thinks it looks cooler or something, but I will try to use the proper spelling.



*edit* Just added some research I did to the Next Features section. It will let me list any ATI graphics cards on the system, or error out if there aren't any. This way the script can warn users about potential incompatibilities.

This post has been edited by BrentNewland: 14 July 2011 - 11:13 AM

0

#13

I'll be doing some work on it today since we're slow here at my workplace. I guess no one's really tried it out yet (I just found a bug, after extracting the zip files in the autoload folder it moves the zip files AND the extracted files to the HRP folder, which breaks everything).
0

User is offline   Master Fibbles 

  • I have the power!

#14

Says I need OpenSSL DLLs to run it. Don't know what that is or if you say I need it to run in this post but I'd appreciate a warning. :(

I'm inclined to wait until you have a GUI but I'll see if I can get it to work. OpenSSL is complaining about my x64 system.
0

User is offline   Danukem 

  • Duke Plus Developer

#15

Would it be possible to give a better name to this program? I realize that "bubblegum" is a reference to one of the lines that Duke uses (which was stolen from a movie), but "Project Bubblegum" doesn't sound like it has anything to do with Duke Nukem. How about:

Nuclear Launch
2

#16

View PostMr.Flibble, on 15 July 2011 - 05:05 PM, said:

Says I need OpenSSL DLLs to run it. Don't know what that is or if you say I need it to run in this post but I'd appreciate a warning. :(

I'm inclined to wait until you have a GUI but I'll see if I can get it to work. OpenSSL is complaining about my x64 system.


When you got that message, it should have told you to go to a certain link and download the OpenSSL libraries. Most computers should have them, but some don't for some reason.

From the source code:

Quote

echo "Warning: The Curl extension is not loaded.\n\n";
echo "This could be an internal error with Bubblegum, but more likely means that the program could not find libeay32.dll or ssleay32.dll on the computer.\n\n";
echo "Please download OpenSSL for Windows from http://www.slproweb....n32OpenSSL.html\n\n";
echo "Look for Win32 OpenSSL Light; when the installer asks where to copy the OpenSSL DLLs to, choose 'The Windows system directory'";



I'd like to have it auto-download and install OpenSSL, unfortunately there's no link to the latest version and he has multiple versions on the same page (meaning I can't figure out a way to download JUST the latest version automatically, although I might be able to work around this problem). I'll see about having it automatically open the default browser to the right page; until then, just open the link in your browser and download "Win32 OpenSSL v1.0.0d Light".

I've put up my latest copies. Fixes the problem mentioned in my last post plus a new one I found (apparently having \t in a file name gets converted into a tab and breaks command-line functions; temporarily fixed, but I'll have to write a new function to make sure it doesn't happen in the future). For now, I suggest making sure none of the folders start with a "T" (e.g. C:\test\eduke32 is BAD, c:\1test\eduke32 is GOOD, c:\windows\Temp\eduke32 is BAD, c:\windows\notTemp\eduke32 is GOOD).
0

User is offline   Master Fibbles 

  • I have the power!

#17

Found OpenSSL and all. After I fiddled with my folder structure, I think I have it working. I will need to remove the zip files I have hanging around though since I had installed the HRP but in some way different than the program expected or something. Whatever it is, I made it work. It is downloading the SVN stuff I think so when that is done, I'll see if it worked.
0

#18

View PostDeeperThought, on 15 July 2011 - 07:03 PM, said:

Would it be possible to give a better name to this program? I realize that "bubblegum" is a reference to one of the lines that Duke uses (which was stolen from a movie), but "Project Bubblegum" doesn't sound like it has anything to do with Duke Nukem. How about:

Nuclear Launch


I've been considering other names (perhaps something to do with Doctor Proton or Tiberius Station).


More importantly, you seem to do some of the craziest stuff with EDuke32 (with DukePlus). I'd like your input on the "Abstraction Engine" section at the bottom of the second post; do you think creating/patching con, map, art, and other files on the fly at runtime would be useful? I think at the least it could open up the possibility of modifying the original maps without having to redistribute them (to better take advantage of new EDuke32 features).


Also, I've been trying to think of a way to auto-update DukePlus (assuming you have no problem with that), but need some way to tell the difference between versions without downloading the whole thing every time (and eating up your bandwitdh); any thoughts?

This post has been edited by BrentNewland: 20 July 2011 - 12:12 PM

0

User is offline   Danukem 

  • Duke Plus Developer

#19

View PostBrentNewland, on 20 July 2011 - 12:10 PM, said:

More importantly, you seem to do some of the craziest stuff with EDuke32 (with DukePlus). I'd like your input on the "Abstraction Engine" section at the bottom of the second post; do you think creating/patching con, map, art, and other files on the fly at runtime would be useful? I think at the least it could open up the possibility of modifying the original maps without having to redistribute them (to better take advantage of new EDuke32 features).


I have just looked at that, and you did list some intriguing possibilities. Do you currently have a good understanding of map format, or did you just list those as theoretical possibilities? Right now I'm having trouble thinking of a use for it that would justify the effort it would take to implement it.

View PostBrentNewland, on 20 July 2011 - 12:10 PM, said:

Also, I've been trying to think of a way to auto-update DukePlus (assuming you have no problem with that), but need some way to tell the difference between versions without downloading the whole thing every time (and eating up your bandwitdh); any thoughts?


Can you check the last modified date on DUKEPLUS.zip without downloading it? If not, I can make sure there is a little file in the directory with that information that can be downloaded separately.
0

User is offline   Hendricks266 

  • Weaponized Autism

  #20

View PostDeeperThought, on 20 July 2011 - 02:03 PM, said:

Can you check the last modified date on DUKEPLUS.zip without downloading it? If not, I can make sure there is a little file in the directory with that information that can be downloaded separately.

I know there's a way to do that but I can't think of it right now. :/
0

User is offline   Danukem 

  • Duke Plus Developer

#21

View PostHendricks266, on 20 July 2011 - 03:22 PM, said:

I know there's a way to do that but I can't think of it right now. :/


Well my ftp program has no trouble seeing the modified dates on my website files, so it must be possible.
0

#22

Sorry, I accidentally unplugged my hard drive at work and couldn't respond.

View PostDeeperThought, on 20 July 2011 - 02:03 PM, said:

I have just looked at that, and you did list some intriguing possibilities. Do you currently have a good understanding of map format, or did you just list those as theoretical possibilities? Right now I'm having trouble thinking of a use for it that would justify the effort it would take to implement it.


Theoretical. I just have the specifications for the different file formats so far. The abstraction would all be handled by this program (reading files, decoding them, changing the contents, and recreating them at runtime); biggest benefits I think are possible are consistent CON files for multiplayer matches, preventing incompatibilities between different mods and maps, and automatically resolving resource conflicts. Would you be able to do anything special by editing the original Duke 3D con files? Would allowing your mod to run commands and scripts before launching the game be useful? Can you think of any limitations you've had to work around that would be removed with new features like this? Would at least having (possibly) smaller con files improve performance or leave more room for expansion?

I think there's some potential in it, but all I can do is provide the tools and framework. Discovering interesting ways of using new features like that is best left to quality content creators such as yourself (people who are more familiar with the ins and outs of the EDuke32 engine).

Quote

Well my ftp program has no trouble seeing the modified dates on my website files, so it must be possible.

I have encountered a few websites that didn't give out proper timestamps, which makes knowing whether a file has changed or not impossible. Thankfully, none of the resources for this project so far have needed timestamping, and the ones that did supported it.

Quote

Can you check the last modified date on DUKEPLUS.zip without downloading it? If not, I can make sure there is a little file in the directory with that information that can be downloaded separately.

I did a bit of digging and I can use these directions to get the creation time of the DukePlus zip (it says the last modified time was Sunday at 3am GMT). I can have it download the zip and record the timestamp from the server somewhere, then just check the timestamps afterwards to see if an update is needed.


BTW, was tinkering around with Duke Plus. I found it interesting that you can put all the DukePlus content into a zip file, then all the dukeplus cons (including strooper.con and dukebike.con) into a DukePlus subdirectory, and DukePlus would work flawlessly (without specifying the DukePlus folder as a custom game content folder; all the resources in the zip are used properly). Eduke.con seems to get loaded okay, but when it tries to include any other con files it only searches in sub-folders of eduke32.exe and not the zip file. If EDuke32 could be made to search in the same zip file as the con doing the including, DukePlus should work zipped up in the Autoload folder.

This post has been edited by BrentNewland: 20 July 2011 - 09:33 PM

0

User is offline   Master Fibbles 

  • I have the power!

#23

I get an error about having two backup folders. I have no idea what that means but it is preventing an update.
0

#24

View PostMr.Flibble, on 23 July 2011 - 07:05 PM, said:

I get an error about having two backup folders. I have no idea what that means but it is preventing an update.


Sorry about that, it's a Windows bug. Explorer won't let go of the backups folder when it's renamed the first time, so it can't rename it the second time. The next update will automatically download Unlocker (or a similar program) and unlock/rename the backups folder. In the meantime, you can just delete the backups folder (make sure you still have the two HRP zip files in your autoload folder).
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • This topic is locked


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options