1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

[development thread]Aftermath mod

Discussion in 'Civ4 - Creation & Customization' started by seZereth, Jul 21, 2008.

  1. Ajidica

    Ajidica High Quality Person

    Joined:
    Nov 29, 2006
    Messages:
    19,209
    Do they show up in the pedia? I have never done terrain modding before so I will take a look. I'll start working on civs.
     
  2. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    Afterworld doesnt have a pedia :)
    If you make everything show up and work in your version, can you simply upload your version? so everyone looks at the same stuff.

    And, i am still wondering if Afterworld allows for different civs. and if it even allows for new units. I think I saw some references in python directed to "feral" and "bleeder".
     
  3. Ajidica

    Ajidica High Quality Person

    Joined:
    Nov 29, 2006
    Messages:
    19,209
    Funny, my copy of aftermath has a pedia show up. If some python functions point to feral or bleeder, it can be changed and it will only affect gameplay.
     
  4. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    Ok, after you are done with your modding, can you please upload your copy? that would help me alot, as it gives us a common base ;)


    edit: does your original afterworld mod show a pedia?
     
  5. Ajidica

    Ajidica High Quality Person

    Joined:
    Nov 29, 2006
    Messages:
    19,209
    Here is the civs. In the pedia No civs show up at all yet when you go to play a random map the civ names show up fine. I think that is a python thing. I'll check to see if my afterworld has a pedia. If it does, it was added with 3.17.

    Could someone who know python go through it and see if it makes no civs appear in pedia.

    I added 2 screenshots to show the wierd things happening with civs.
     

    Attached Files:

  6. Kael

    Kael Deity

    Joined:
    May 6, 2002
    Messages:
    17,401
    Location:
    Ohio
    Okay, I did a lot more digging and I see how they setup Afterworld without any SDK changes.

    First in CvMainInterface.py they manually add action buttons based on promotions you have:

    Code:
    						#Spawn Sentinel
    						if g_pSelectedUnit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SPAWN1')):
    							g_pSelectedUnitData = pAfterworld.getUnitDataByID(pHeadSelectedUnit.getID())
    							if (g_pSelectedUnitData.getSpawnTimer() == 0):
    								screen.appendMultiListButton( "BottomButtonContainer", gc.getPromotionInfo(gc.getInfoTypeForString('PROMOTION_SPAWN1')).getButton(), 0, WidgetTypes.WIDGET_GENERAL, 673, 673, False )
    								screen.show( "BottomButtonContainer" )
    								iCount = iCount + 1
    
    Then also in that file they have you drop into the pick plot mode if that button is selected (673 is the label they give it):

    Code:
    			elif inputClass.getData1() == 673:	#Spawn Sentinel
    				pAfterworld.pPushButton = 10
    				CyInterface().setInterfaceMode(InterfaceModeTypes.INTERFACEMODE_PYTHON_PICK_PLOT)
    
    Then in CvAfterworldEvents.py they apply an action to the button (here the link is the pPushButton number):

    Code:
    				elif Afterworld.pPushButton == 10:
    					print "pushed 10"
    					effectType = gc.getInfoTypeForString('EFFECT_CREATION_BIG_FAST')
    					CyEngine().triggerEffect(effectType, pPlot.getPoint())
    					pPlayer.initUnit(iSentinel1, iX, iY, UnitAITypes.UNITAI_ATTACK_CITY_LEMMING, DirectionTypes.NO_DIRECTION)
    					pUnitData.setSpawnTimer(10)
    
    Finally in CVGameUtils.py they apply some widget help, so when you mouseover the button you get some text about what it does:

    Code:
    			elif (iData1 == 673):
    				return CyTranslator().getText("TXT_KEY_REALBTNSENT1",())
    
    Its completly ignored by the AI, but if you are willing to allow it only to human players its a pretty flexible system and you should be able to do some of the things you want. For example you could use this to allow throwing moltov cocktails pretty easily, as well as granting shot optiosn to shoot the arm/leg/etc as you wanted.
     
  7. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    I think the problem could be connected to Afterworld being very scenario specific. I think they blocked the pedia completely out of the scenario, so they had less things to bother.

    I am not sure if it can be played on a random map at all. If so, one needs a really good mapscript, which sets walls and doors for some buildings. And places several units.

    So, I think creating a Map / Scenario to start with is best.

    A scenario where you will play the 7th Company and will have a given amount of troops (i would also like you to be able to "rescue" more units, when you find them on the map they will join your cause).

    We will need several units for the 7th Company (if you wanna add them, i can do the art defines afterwards):

    "Grunt" Units:
    Recon (mp5, backpack): move 6, strength 5, icombatlimit: 50, airrange 2, iaircombatlimit: 50, field of view (fov):7
    Gunman (ak47/famas/m16, helmet): move 4, strength 7, icombatlimit: 150, airrange 3, iaircombatlimit: 80, field of view (fov):4
    Machinegunner (Machinegun, helmet): move 2, strength 6, icombatlimit: 100, airrange 4, iaircombatlimit: 140, field of view: 5

    "Hero" Units:
    Sev(Double Uzi, close combat) move 5, strength 8, icombatlimit: 100, airrange 2, iaircombatlimit: 50, field of view (fov):5, firststrikechances:2
    Jal(Pumpgun, close combat, Engineer) move 4, strength 9, icombatlimit: 200, airrange 1, iaircombatlimit: 300, field of view (fov):5 firststrikechances:1
    Atticus (Sniper rifle, far ranged) move 3, strength 6, icombatlimit: 50, airrange 6, iaircombatlimit: 200, field of view (fov):7
    Ragah(Rocketlauncher, Mines, MP, Destruction) move 3, strength 7, icombatlimit: 100, airrange 2, iaircombatlimit: 50, field of view (fov):5 (should have something like 5 "Nukes" setting fire (fallout?, making a plot unpassable or at least damaging) on the place they hit, nukes should be able to be fired 4 fields wide and destroy everything on that field)
    Riest (MP5,Medkit Medic) move 5, strength 6, icombatlimit: 70, airrange 2, iaircombatlimit: 70, field of view (fov):5
     
  8. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    Ok, I just had another test run.
    And... well, Afterworld seems pretty limited. Independent of the icombat limit, every unit does the same (not even randomized) damage to an opponent. testet 3 units with strength 5 and icombatlimit of 100 and 500 vs a normal bleeder enemy with icombat 3 and icombatlimit 100 and all results were: 4.6/5 for my units and 1.6/3 for the bleeders after one attack each.
    This makes the whole thing a bit boring, you don´t have factors to influence and divert.

    So, until we have cracked the combat system I don´t think this is leading anywhere :(


    It might be easier to use FfH as a base, clean everything out, transfer the big walls, the line of sight, the UnitAITypes.UNITAI_ATTACK_CITY_LEMMING and the "turn around function" and then make use of the spell system for shooting and the normal combat system for close combat... ?
    Well, I mean, I can´t do that, but... opinions?
     
  9. Kael

    Kael Deity

    Joined:
    May 6, 2002
    Messages:
    17,401
    Location:
    Ohio
    Every way is going to require substantial programming. Some ways are heavier on python, some rely more on the SDK, but your not going to be able to get away from it.

    I would design exactly as we do with FfH. Design the game you want in as much detail as possible. List the equipment, list the creatures, list the abilities, list the scenarios, list the player units, etc. Try to be as small in scope as possible, dont add every cool idea, but the minimum you will need to make a fun game (you can always expand later).

    Use that list to determine the resource needs. Something like:

    Players:
    Brawler (high melee skills)
    Psychic ("special" abilities)
    Medic (can perform limited healing without a med pak, increased effectivness of med paks)
    Para-military (high weapon skills)

    Stats:
    Hit Points
    Armor
    Strength
    Skill (with each of the below weapons)

    Equipment:
    Med Pak (quantity tracked)
    Body Armor (light, destructible)
    Body Armor (heavy, destructible)
    Shotgun (requires shotgun shells)
    Sniper Rifle (requires bullets)
    Gernade (quantity tracked)
    Baseball Bat
    Moltov Cocktail (quantity tracked)
    Chainsaw (requires gasoline)
    Flame Thrower (requires gasoline)
    Pistol (requires bullets)
    Bullets (quantity tracked)
    Shotgun Shells (quantity tracked)
    Gasoline (quantity tracked)
    Money (quantity tracked)

    Abilities:
    Attack
    Move
    Crouch/Stand Up- Increases aim of guns when croched, cant move when croched, croched character get a free shot at an opponent that moves into range if they didnt fire last turn
    Switch Weapons
    Create Moltov Cocktail- requires gasoline, para-military only ability
    Heal- medic only ability
    Frenzy- special brawler ability to increase melee skills for a short time
    Vision- see into an unrevealed area, psychic only
    Leg Shot- decreased chance to hit, slows opponent
    Arm Shot- decreased chance to hit, decreases opponents aim
    Head Shot- decreased chance to hit, increased damage

    Enemies:
    Zombies!!!
    Dogs
    Mutants
    Headcrabs
    Escaped Prisoners
    Asylum Inmates
    Enemy Soldiers

    Mechanics:
    Players with below a required skill can use items but they may react badly (using a chainsaw with under the minimum skill can result in hitting yourself or a nearby ally)
    Build screen- Allows you to select your characters and purchase equipment before missions
    Equipment System- Enforcement of 1 active weapon, 1 active armor
    Targeting System- range determined by the weapon, line of sight enforced
    Stun- players and enemies can be stunned for x amount of turns, during which time they can take no actions

    Other:
    Hostages- must be protected for a set time frame or moved into a secure area for victory/reward
    Chest- Can be opened by any unit within 1 tile, can hide opponents, traps, equipment or money


    The temptation will be to add to this list, thats probably the best part of modding. But to be successful you need just enough to be able to play. Try to cut it as thinly as possible (honestly I would probaby go to about half the above list just to get the things you absolutly need for the 1st scenario). The fastest way to kill a mod is with to much ambition. Start small, get it working and then slowly add and refine. You will maintain focus, interest and have the least chance of burning people out.

    The actual decision on a code base to use doesn't come until this is all figured out. At that point you will need a programmer interested in implementing the ideas and the codebase will largely be his preference. Whatever he thinks is the easiest way in the way he wants to implment (understanding that there is a thousand different ways to do this stuff).

    Hopefully that helps.
     
  10. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    Thanks again Kael,

    I decided to postpone the whole thing until i had a speak to grey fox, I think he already has a base for his civ rpg. And thus a good starting point and motivation.

    I like to design around a given base of options, my brain does that automatically, just because i have no skill (and dont have time to acquire one) to change the options (code / rules / mechanics).
    (when i was young I designed loads of board games and did something similar to this mod, just with little plastic soldiers and a set of rules for dices, it was great fun until my best friend discovered that my grenade system was way overpowered ;] )

    That limited skill was the reason i was happy in the first place to see Afterworld using different xml combat related values, (which could have allowed a nice combat system)... until discovering that they don´t have a meaning.

    I will go back to creating graphics, until I find a programmer as enthusiastic about this project as I am ;) (i never wanted to do the xml work in the first place, i am all about graphics and tactics ;))
     
  11. Ajidica

    Ajidica High Quality Person

    Joined:
    Nov 29, 2006
    Messages:
    19,209
    So the mod is on hold until further notice?
     
  12. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    thanks for your help.

    yes, definitely, the mod is on hold. it is not abandoned.
    But it is definitely easier to create a mod like this with a dedicated programmer and/or a base (like Grey foxes CIVrpg or Lutefisksmafia´s Dungeon Adventure).

    What one could do for a start is, changing the graphics of Afterworld to a whole Zombie-setting, for those who didnt like the futuristic approach of Afterworld (and the gfx is almost available / easy to produce).
    Only thing still inconsitent would be the comic / popups / and texts.

    I might do that at some point.

    First I will continue work on some FfH graphics, then I will have to do some graphics for Fury Road, and after that I will come back to this one.

    I will update that thread as soon as I have something more to show.

    Again, thanks for your help, I will give you notice, as soon as we have a programmer ;)
     
  13. The_Coyote

    The_Coyote Emperor

    Joined:
    Mar 1, 2008
    Messages:
    1,367
    Location:
    Europe
    even a bit too late, iAirCombatLimit gives only the maximun damage that can be done to a unit, eg 100 means max is 100%, a unit can be killed, with iAirCombat you can change the strength, i tried it to set it to 50 and almost killed a bleecher with one shot (0.3 hp remaining), there should be also already a code for changing the model included (there are two SEVER in the and davidlallen seems to use a similar function for his out of fuel units), so different weapons with different strength seems possible (every thing is a model and the models are changed through the function). This iAirCap only means the amount of airspace a unit needs (perhaps 4 was used, so that there are no stacks possible :confused:)

    Nevertheless, hope you find your coder and the project will be soon active again :)
     
  14. Chuggi

    Chuggi Espada

    Joined:
    Jan 2, 2007
    Messages:
    2,369
    Location:
    Australia
    This looks interesting. I hope you can get it launched seZ, it would be cool to play.
     
  15. GarretSidzaka

    GarretSidzaka Deity

    Joined:
    Dec 17, 2002
    Messages:
    4,696
    Location:
    Arizona
    i will do what i can. might just mention it in the "Upcomming Mods" Section:)
     
  16. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    cool idea tony :)
     
  17. Grey Fox

    Grey Fox Master of Points

    Joined:
    Dec 19, 2001
    Messages:
    8,726
    Gender:
    Male
    Location:
    Sweden
    I haven't really read the whole thread yet, but it's possible that I could help you out. The only problem is my "internet-activity". Since I don't have a connection at home it will be hard to work together on something like this. So I can't promise anything yet.

    I might be moving in a while, but that's months from now, and when I do, I am quite certain I will have a steady connection from the get go.
     
  18. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    woa, nice to hear from you!
    I hopes you might still want to develop the engine for civrpg. I think I would base it on that then, as you are completely right with your internet activity problem making things a bit complicated.
    I´d hope you could do a basic rpg engine, useable for all kinds of rpgs (fantasy, tactical, modern, futuristic, etc.).
    Just by having a basic system for combat (i liked your critical hit, stun damage, etc. system you had planned) and equipment which mechanics can be used for all kinds of stuff, the setting would result mostly from graphical differences (have a chainsaw function like of a sword, an ak47 work similar to a bow, have a grenade instead of the fireball spell, a flakvest instead of a chainmail etc. )
     
  19. Grey Fox

    Grey Fox Master of Points

    Joined:
    Dec 19, 2001
    Messages:
    8,726
    Gender:
    Male
    Location:
    Sweden
    Yeah, I just need to get into a productive mood again so I can start doing some hard work on it. I've almost finished the coding on my Advance Wars mod, which I will use as base for the rpg engine.

    I think I will actually take your advice and make a basic rpg engine from that first. Without anything too specific for my mods and with moddability in mind.

    My biggest hassle will be converting the excellent equipment system (by Maian I think) to BTS.

    Anyways, I'll try to keep you updated on the progress. I have some other mod ideas I'm working on as well (including a total conversion mod set in the far future), and also some mod comps which I want to make (which should be easy and fast to do).
     
  20. seZereth

    seZereth FfH´s art monk(ey)

    Joined:
    Feb 3, 2006
    Messages:
    3,900
    Location:
    Bayreuth
    sounds really good to me, no hurry, there also a lot of other things on my to do list :).
    in exchange to your programming effort i can offer you to help out when you need anything graphics wise for your other mods.
     

Share This Page