Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411430 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 20, 2024, 01:21:09 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsWorld's End
Pages: [1] 2
Print
Author Topic: World's End  (Read 11641 times)
Pineapple
Level 10
*****

~♪


View Profile WWW
« on: September 24, 2010, 05:14:02 PM »

A rougelike/strategy game unlike any other. Survive a post-apocalyptic world by commanding a group of survivors. The game will feature many different disaster possibilities, from alien invasions to zombie infections to worldwide drought.

The above screenshot, though seemingly inconspicuous, is utilizing the ASCII graphics engine that's going to drive the entire game.

So far I've got the graphics dirtywork done, a nifty title screen and a nonfunctioning main menu.

I'm ultimately aiming for a level of depth and complexity on par with that of Dwarf Fortress. We'll see how it all goes.
« Last Edit: October 16, 2012, 09:09:43 AM by _Madk » Logged
Dozer
Level 0
***


View Profile
« Reply #1 on: September 24, 2010, 05:25:14 PM »

You had me at rougelike... and zombies... and ASCII graphics... and (even though I've never played it) Dwarf Fortress style complexity.

A couple questions... When you say as complex as DF, are you going to make it a bit more user friendly and easy to get into? DF scares the crap outta me because I don't like reading instructions (yet I love Rougelikes... WTH?) and I hear that the UI is a mess and I HATE jumping into a game and having no idea what the heck I am supposed to do. Don't get me wrong though, I love complexity... the more you can do the better.

Anyways, good luck!
Logged
Landshark RAWR
Level 10
*****



View Profile
« Reply #2 on: September 24, 2010, 05:35:35 PM »

I hope it wont be too hard for your survivors to become zombies themselves.
Logged

Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #3 on: September 24, 2010, 05:41:07 PM »

A couple questions... When you say as complex as DF, are you going to make it a bit more user friendly and easy to get into? DF scares the crap outta me because I don't like reading instructions (yet I love Rougelikes... WTH?) and I hear that the UI is a mess and I HATE jumping into a game and having no idea what the heck I am supposed to do. Don't get me wrong though, I love complexity... the more you can do the better.

Unfortunately, I don't think I can quite make any promises about user-friendliness. I'm going for completely keyboard controls to keep with the style which isn't going to make the interface any easier, but I'm definitely going to do as much as I can to keep it from being too harsh.
Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #4 on: September 24, 2010, 06:53:56 PM »

Main menu is up and running for the time being. Because of the way I've written the graphics code and how I plan to write the actual game code, it's designed to support  some certain gameplay elements I'm planning. I'm leaving the menu pretty blank until I've got it working. Once the simulation code basics are in place (creatures, vegetation, pathfinding and other basic AI elements, combat, etc.) the center space will be occupied by a viewport that will show a number of creatures and such in an environment, possibly getting along or maybe fighting each other. Kind of like how CnC Generals is showing a battle in the background of the main menu.

Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #5 on: September 25, 2010, 09:50:23 AM »

So now I'm working at implementing the simulation aspect of things.

Right now an individual tile has the following (nonfunctional) characteristics (all to be modifiable and some already via external text data files) Ideas for more are welcome.

Name
Appearance, with the ability to randomize it between tiles just a bit (as in the ability to have a single soil tile type be able to be represented randomly by ,.' or ` and by different possible shades as well)
Whether or not it blocks line of sight
Separate movement costs for foot, tread, tire, air, underwater, and water surface movement methods.
Damage dealt per frame to occupants, and possibility to instakill
Strength to resist damage to tile before it becomes a specified resulting tile
Heat & electric conduction
Whether or not it's insulated (relevant only if it can conduct electricity) and how much damage it takes to destroy the insulation
Amount of heat or cold generated by tile
Electricity generated by tile (to eventually be used not only to power useful things but unexposed wiring laid on the floor will also be a great way to ward off a lot of attackers)
Melting point and what tile it becomes when melted
Freezing point and what tile it becomes when frozen
Item that can be "gathered" from the tile by command of survivors under your control and friendly, neutral, & hostile AIs, how many times the resource can be gathered, if and how quickly the items available to be gathered regenerate, and if and what tile it becomes if all the items have been gathered (think a fruit tree that starts out with 8 apples and regrows one up to the maximum every 20 turns)
Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #6 on: September 25, 2010, 12:49:41 PM »

Added a property that'll prevent flying units from landing inside what would mean to be a roofed area and a possibility to destroy it by damaging.
Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #7 on: September 25, 2010, 03:56:24 PM »

Progress report: I've finished the ground tile codework and now I'm almost done with items. Next will be units, then getting everything to work graphically and finally making things properly function and interact. Once I've got that I'll be on a fast track toward having a playable game.
Logged
Sir Raptor
Level 6
*



View Profile
« Reply #8 on: September 25, 2010, 04:47:47 PM »

Are we allowed to suggest alternate apocalypse scenarios, or do you have a good grasp on what you want?
Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #9 on: September 25, 2010, 05:27:23 PM »

I've got some ideas but I'm certainly open to new ones.
Logged
Melly
Level 10
*****


This is how being from "da hood" is like, right?


View Profile
« Reply #10 on: September 26, 2010, 01:36:46 AM »

Ideas:

Seismic Apocalypse - Millennia-dormant super-volcanoes explode all over the world, covering entire continents in ash, blocking the sun with black clouds, causing ground-splitting earthquakes, hundreds-of-metters-tall tsunamis, and covering huge regions in rivers of magma.

Robot Uprising - The classic. Super-advanced AI computers rebel against humanity and use super-powered robots to destroy human civilization and make us into expendable slaves and lab rats.
Logged

Feel free to disregard the above.
Games: Minus / Action Escape Kitty
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #11 on: September 26, 2010, 03:57:59 AM »

Well yeah, I have already got the more obvious ones in mind.
Logged
Inanimate
Level 10
*****

☆HERO OF JUSTICE!☆


View Profile
« Reply #12 on: September 26, 2010, 11:56:32 AM »

Reality Breakdown - A quantum physics experiment went wrong, and now space-time is deteriorating at a massive rate. Sections of reality can dissolve into nothingness. Time swings between rapidly accelerating and slowing to a near standstill. 'Foldies' can make traversing a continent take a day, while 'stretchies' can make going to the other side of your house take years. 'Merlin Syndrome' spreads across people, reversing their inner time flow. It all is centralized around the original 'point of impact'... every few hours, the distortions are randomized again, so you can never count on up-to-date knowledge.

Is there a way to reverse the changes? Many believe the 'point of impact' is the key...

The Magic Came Back - A mysterious event has caused mythological creatures, magical abilities, and more to suddenly re-appear in the world. Humans now struggle to survive in a world filled with dragons, liches, spirits of nature, and more! Is it all a hallucination? Did we get propelled into another reality? Is it a psychic manifestation of all of humanity's stories and beliefs that dwell in our minds?

Or did the magic just... come back?

Super-pocalypse - A mysterious cosmic event has granted everyone super-powers of varying usefulness, and chaos reigns as those with powerful abilities either wreak havoc or administer 'justice'... Many people with their abilities either became overwhelmed by the power and went mad, or suddenly found themselves instilled with a sense of privilege, and realized that the world is so fragile compared to them... this marks the split between heroes and villains.

Can the world truly be saved by so-called "super-heroes"? Or do they just cause more problems than they are worth?

-

Those are just some ideas. They seem really complex, so it might not be very useful, but eh.


Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #13 on: September 26, 2010, 01:44:22 PM »

So weapons will fall under a number of many categories including classification by weight, projectile utilization, length (of melee weapons) and more.

Conventional weapons will be a rare occurrence in the majority of scenarios. You'll often start the game in possession of a handgun or rifle or something with a bit of ammo, but most combat will be done with improvised arms.

I always like the idea of a weapons triangle in Fire Emblem, and I'm carrying that concept into this game somewhat. The two triangles are

for melee,
Point beats Edge bests Blunt beats Point

for ranged weaponry,
Ballistic beats Sonic beats Laser beats Ballistic

Not that this is all the advantage-disadvantage going on. It's actually very complex.

For example, a warhammer (or at least an improvised version of such) would fall under the characteristics Blunt, Heavy, and Long. A spear might fall under Point and Midlength. Both the warhammer's Blunt and Heavy are advantageous against Point weapons and neither of the spear's classifications possess any advantages versus the warhammer, so it has a raw 2pt advantage. I expect it'll be something like a 1pt advantage deals 1.25x damage, a 2pt deals 1.5x, 3pt 1.75x, etc.


Here's the file this data's going to be read from and a snippet of code, just to show a bit of what's actually getting done.

Code:
define "Point"
info "A sharp tipped melee weapon."
advantage Edge
advantage Small

define "Edge"
info "A sharp edged melee weapon."
advantage Blunt
advantage Short

define "Blunt"
info "A blunt melee weapon."
advantage Point

define "Small"
info "A small melee weapon."
advatage Short

define "Short"
info "A short melee weapon."
advantage Blunt

define "Midlength"
info "A midlength melee weapon."
advantage Small

define "Long"
info "A long melee weapon."
advantage Short
advantage Edge
advantage Blunt

define "Light"
info "A light melee weapon."
advantage Edge

define "Midweight"
info "A midweight melee weapon."
advantage Blade

define "Heavy"
info "A heavy melee weapon."
advantage Point
advantage Long

define "Ballistic"
info "A ranged weapon firing ballistic rounds."
advantage Sonic
advantage Short

define "Laser"
info "A ranged weapon firing laser energy."
advantage Ballistic
advantage Heavy

define "Sonic"
info "A ranged weapon firing sonic energy."
advantage Laser
advantage Blade

define "Taser"
info "A weapon utilizing electric energy."
advantage Small

//example:
//a warhammer might fall under Heavy, Blunt, and Long.
//a spear might fall under Point and Midlength.
//the warhammer would have a 2pt advantage against the spear's Point and none against its midlength.
//the spear would have no advantages against the warhammer.
//therefore Warhammer > Spear if all else is equal

Code:
Type tile
Global list:TList=CreateList()
Field name$,info$
Field chars@[4],colors@[4],bgcolors@[4],numchars@,numcolors@,numbgcolors@ 'appearance
Field blocklos@ 'does the tile block line of sight?
Field movecost_foot@,movecost_tread@,movecost_tire@,movecost_air@,movecost_swim@,movecost_surf@ 'cost to traverse the tile; 0 means unpassable
Field damage%,instakill@ 'damage to deal/heal to occupants per frame
Field strength@@ 'punishment the tile can take before becoming the result
Field threshold% 'this amount is subtracted from damage dealt to the tile, negative value amplifies damage dealt
Field defense# 'raw damage is divided by this amount before it's applied even to threshold. The point of defense & threshold is to allow different damage types
Field heatconduction%,electricconduction% 'how well it conducts heat & electricty
Field electrichazard@ 'whether it's an electric hazard when conducting electricity or if it's properly insulated
Field insulationstrength@@ 'how much damage the tile can take before the insulation is destroyed
Field heatgeneration% 'how much heat is generated by the tile, negative numbers cause it to sap temperatures
Field electricgeneration% 'how much electricity it generates
Field meltingpoint% 'heat required for it to melt
Field freezepoint% 'heat required for it to freeze
Field result_destroyed:tile,tempdestroyresult$ 'what tile it becomes if simply generically destroyed.
Field result_melted:tile,tempmeltresult$ 'if it's melted it becomes this tile
Field result_frozen:tile,tempfreezeresult$ 'if it's frozen it becomes this tile
Field gather:item,tempgatheritem$,result_gathered:tile,tempgatherresult$ 'item that can be gathered from the tile and what the tile becomes if gathered
Field gatherhp@,gatherregen% 'number of times items can be gathered from the tile and how many frames it takes for a single hp to replenish.
Field landable@ 'flying units can or cannot land here
Field roofstrength@@ 'damage that a non-landable tile can sustain before becoming landable

Function Copy(src:tile,dest:tile)
dest.name=src.name
dest.blocklos=src.blocklos
dest.movecost=src.movecost
dest.damage=src.damage
dest.instakill=src.instakill
For Local copies%=0 To 3
dest.chars[copies]=src.chars[copies]
dest.colors[copies]=src.colors[copies]
dest.bgcolors[copies]=src.bgcolors[copies]
Next
End Function

Function FindByName:tile(name$)
For Local find:tile=EachIn tile.list
If Lower(find.name)=Lower(name) Return find
Next
Return Null
End Function

End Type


Type itemclass
Global list:TList=CreateList()
Field name$,info$
Field modifiers:TList=CreateList() 'weak/strong vs. particular itemclasses via class advantages, only really applicable for weaponry
End Type
Type item
Global list:TList=CreateList()
Field name$,info$
Field class:itemclass[8] 'item class (sword, rifle, laser, etc.) when classified under multiple criteria, advantage amounts are added together.
  'if any disadvantages are present they are added together. If the single area's advantages equal or outnumber the disadvantages
  'then the actual value for the weapon is attributed to its total advantage. This quantity is advantage. disadvantage is determined by
  'looking up the opposing weapon class's advantages against this weapon.
Field classname$ 'eg weapon is technically a sword so uses that class but more specifically is a katana
Field damage% 'base damage. set negative damage for healing items
Field energy% 'energy usage per use. negative regenerates energy
Field ammoname$ 'name of ammo. if the ammo has no name then the weapon is assumed to have infinite ammo/uses
Field ammo%,clips%,reload% 'ammo is the number of times the item can be used. clips allow the item to be "reloaded" like a gun and takes reload frames to do so
Field rate% 'rate of fire/uses
Field mass#,volume# 'how much the item weighs and how large it is
Field strength% 'how much damage the item can sustain before being destroyed
Field threshold% 'this amount is subtracted from damage dealt to the tile, negative value amplifies damage dealt
Field defense# 'raw damage is divided by this amount before it's applied even to threshold.
Field holdbonus%[NUMSTATS] 'stat bonus to units with the item in their inventory
Field equipbonus%[NUMSTATS] 'stat bonus to unit only if the item is currently equipped
Field reflexeffect# 'multiplier for how effective enemies' reflex skill is versus the particular (if offensive) item
Field range% 'maximum effect range
Field speed# 'speed of projectile travel to target in tiles per frame
Field accuracy# '>0, amount of angular variation of the attack
Field recoil# 'accuracy amount is multiplied by this after each consecutive shot (numbers <1 are effectively negative recoil, might be cool for laser weapons)
Field char@,color@,bgcolor@ 'appearance
End Type

Logged
winterkill
Level 0
**


Shpadoinkle!


View Profile
« Reply #14 on: September 28, 2010, 08:08:03 PM »

Humans now struggle to survive in a world filled with dragons, lychees, spirits of nature, and more!

Fixed.
Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #15 on: September 29, 2010, 02:04:40 AM »

Modern day setting, not fantasy.  Roll Eyes
Logged
Sir Raptor
Level 6
*



View Profile
« Reply #16 on: September 29, 2010, 01:03:40 PM »

Humans now struggle to survive in a world filled with dragons, lychees, spirits of nature, and more!

Fixed.
I assume this is a joke.
Logged
winterkill
Level 0
**


Shpadoinkle!


View Profile
« Reply #17 on: September 29, 2010, 07:22:12 PM »

I assume this is a joke.

Ohho! Indeed, you assume correctly, sir. I assume that was a sardonic reply intended to convey your lack of amusement.  Well, hello there!
Logged
Inanimate
Level 10
*****

☆HERO OF JUSTICE!☆


View Profile
« Reply #18 on: September 30, 2010, 02:06:12 PM »

Modern day setting, not fantasy.  Roll Eyes

If you read the original post you'd get how it fits.
Logged
Melly
Level 10
*****


This is how being from "da hood" is like, right?


View Profile
« Reply #19 on: September 30, 2010, 03:44:57 PM »

He still suggested a modern-day scenario. Magic in the modern day.
Logged

Feel free to disregard the above.
Games: Minus / Action Escape Kitty
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic