UPDATE2: Recovering and retooling for resumed activity soonWorking title: Project ARD (A Random Dungeon-crawler)
Website (work in progress):
www.starwatergames.comForums:
www.starwatergames.com/phpBB3So after working on and off on my exploration game I decided I was getting too bogged down with it and needed to make something simpler, and 2d, and go back to it later (and it also doesn't help I'm busy all the time too). Thus, this is what I'm going for: a sort of 'Tactical' Dungeon crawler.
Basically, here is what I am working off of, with a twist: old style dungeon crawler games, like say, Arcana
http://www.gamespite.net/img/wiki/games2/spot_g10-arcana.gifOr more recently, Legend of Grimrock (but of course nothing that fancy, and I want it turn based)
The main difference I want though: the ability to split your party and do more fancy things. In these games, you are basically
stuck as your '4 man' group the entire time. You can't lock down a door with your fighter, or split off your rogue to go trapping,
or use someone as a distraction while your mage powers up a fireball to clear a room, etc. This is what I want.
However, I don't want to go 'full hog' like a full blown tactics game, I still want it to be a dungeon crawl. (Too far would be dnd tactics,
http://www.youtube.com/watch?v=NpYQHF2kUGw). I also want to preserve the party elements, where you can stack your characters onto each other and fight as a team too, while supporting each other.
I am sorta partial to some more hardcore elements as well (like unit permadeath, see the Wizardry series), but don't want to necessarily always throw your entire progress down the drain. I also like the idea of main characters and some story driven stuff as well. So, heres my compromise: your party consists of 1 hero and 3 mooks. If you die in a dungeon, your hero gets somehow saved, and a small portion of your wealth and items, but everything else is lost. Heros are also always revivable, while mooks can more or less die in the most gruesome ways possible. Also for the trope of it: Heros cant wear helmets. Go go plot armor.
I sorta plan for managing more than one party later, but right now I'm focused on just getting a working prototype. Heres my prototype goals:
Game:
Single hero class/character, 2 types of mooks (Knight and Mystic aka tank and healer). Party creation screen. Stats.
Dungeon exit to town which heals and brings back creation screen, no selling/gold or anything
3 dungeon levels, 3 monsters + 1 boss monster/encounter. 2 wall tile types and 4 floor types.
4 equipment slots (helmet, chest, left hand, right hand) with 3 options on each.
Display of portraits and characters, text. Combat options selecting.
Splittable and groupable party, and party facing. Tile view distance.
Monster spawns and movement/combat.
Simple victory condition / end of game. Simple loss condition: back to town with main char and need to recreate party
Media:
Simple logo (done), titlescreen(have placeholder), 4 screen intro (have placeholder), char creation screen,
Dungeon tiles (ph part), Character portraits, Unit sprites (ph part), victory screen, loss/recreate screen
No animations.
Other:
Website: Went ahead and knuckled down and got one
www.starwatergames.com and
www.starwatergames.com/phpBB3 Need basic website architecture done: Looking into Joomla right now
Miniblog: want to do weekly updates, will be on website and on this thread, attempting to do either Sunday or Saturday updates.
Forums: Setup but need to do more custom stuff and some strong spam prevention because I don't want to ever get bogged down having to clear shit.
Weekly progress, in gifs/images
Week 1:
Week 1: Main game loop, got SDL2 up and running, and got website (sorta) going. Got input going, logo and game company name came to me in a dream so had to use it (thats the rule), few placeholder tiles/arts drawn, bunch of classes prototyped for parties and units and junk, basic dungeon creation and movement around tiles via camera position.
Week 2:
Week 2: Threw a buncha hours at messing with website then lost that work with the continued website host issues, they finally migrated everything over to new stuff, at least its sorta up now. Started fleshing out party and unit classes, got a simple party creation section started, implemented text with scrolling options, auto-size to chatbox, etc. Have a chatbox graphical border, but not implemented yet. Implemented sound and music too: picked up a bunch from this guy I'm still looking over:
http://www.nosoapradio.us/ and one from
http://ucollective.org/ . Also picked up
http://www.bfxr.net/ for sound making and make a quicky 'click' sound for each time a letter is typed into a chatbox (for an example, see first seconds of
http://www.youtube.com/watch?v=E1MCLMRKklQ).
Just jpg this time, not much actual stuff to see other than this screen
Week 3:
Week 3: not much actual programming progress due to being busy as heck and also having to do number crunching/testing for something else... basically left website alone too. Did some more messing with SDL_TTF and figuring out its intricacies anyway. Minor stat display stuff with some default stats, etc (when get to where editing is doable will probably just use how Legend of Grimrock looks as a basis, with some adjustments due to my different system). Started party mechanics and drawing the party as it moves around/changes facing, but nothing displayable yet.
Also only a jpg.
Week 4:
Week 4: Made some crappy sprites and made frames for displaying facing movement, have 3 different ones for my unit types. Going to need to give some distinction to each unit though, probably in form of a colored base under their feet or something. Have basic tile collision working to see if a tile is walkable or not, and facing rotation, strafing to move vs forward/backward, etc. Rotation also keeps party order, so the entire party rotates instead of just the units.
Week 5:
Week 5: Got an editor started and made part of an initial level for testing/etc. Going with a ruined temple in a forest theme (and definitely going over how many tiles I wanted, but I set them low for a reason
) Started going over line of sight stuff and mapping as well, though nothing to show yet. Saving and loading of levels working too. Some basic artwork for tiles. Think I'm going to go over movement timing/turns/partyspeed/etc next, and some basic enemies to move around in the turns as well (once I finish mapping and LoS stuff).
Week 6:
Week 6: Barely got any real coding done, started some refactoring and cleanup. Got the very basics of objects and object interaction working (collisions, interactions, variable sizes, etc). My test for a non-standard box size one is messing up atm so got to go back to that in a bit anyway. Still not finished with map/line of sight either, having to hold off till I get objects and monsters down and everything refactored to work nicely / be less ugly.
Week 7:
Week 7: Still doing just a little at a time. Managed to do some refactoring and packing objects and junk with some inheritance. Got a treasure-chest object now. Also fixed non-standard sized objects collision and activation, so its possible to put stuff between tiles and whatnot. Got monsters started and made a crappy slime, still no AI or anything though. Have some ideas with how to handle turns based on speed and whatnot that I'm going to try to get in asap, then make a simple walker AI and see how the turn system goes.
Week 8:
Week 8:
Well, spent a bit of work getting stacks set up properly: now a party can have multiple stacks (in preparation for splitting up, or summoning pets, etc: no actual splitting or multiple control yet), plus NPCS/Monsters work on stacks now. Basic alternate stack movement set and started an AI handler for moving NPCS. Have a very basic unit.die() for testing purposes (kill one unit per interact). Will need to spawn corpses later. Also as a side effect of getting multiple stacks, noted that I need to set a draworder on them so that far ones draw first, which I'll throw in sometime later.
Week 9:
Week 9: Did some more stack work and got very basic unstacking/restacking done, stack collisions and tests, etc. Not a perfect setup right now with the classes but don't really care atm, just need to push on and come back to it later once other stuff is ironed out.
Week 10:
Week 10: Very little actual work done, mostly played thru Borderlands and did other work, while agonizing over how to do AI and turns. No image this time.
More info on update post.
Week 11:
Week 11: Well, a bit more work done at least but nothing to show for it yet (mostly). Got some turn structuring done and started a few AI prototype functions. Also finally got my hosting company to get my website back up cause something was screwing up for awhile, and poked at that a tiny bit.
No image this time either, as there's nothing new to show yet.
Week 12:
Week 12: Finally managed to get something done: basic turn unit structure is in: works by 1000TU = action, right now if any party member has 1000TU the whole party can move, thinking on ways to work this so its not clunky other than this method. Move = 500 TU (including splitting off from the party), turn = 300 TU, and the system parses thru TU and grabs the first one at 1000TU it sees right now (no speed compare or anything atm). If it can't find anyone, it passes turns (TU += unitspeed) until someone is at 1000TU. Actual numbers, of course, are subject to change. Probably will make basic actual attacks next (and maybe some display stuff) so that NPCs and party can actually trade blows.
This is me controlling a party stack/s and a monster stack/s via the Turn Manager.
Week 13:
Week 13: Well, I did some work earlier in the week, but then an update hit on Hazeron and I had to do some extra work so didn't do much other than that.
At least, I had PLANNED to do more... and now troubleshooting computer problems and may be time to get a new one... but hey, everythings backed up in triplicate which is nice!
Anyway, what I worked on: abilities and using them: got basic skills working and added a basic melee attack to the characters, updated the loop to check for hp and death better, and some misc log prep: An ability has a name, descriptor, and a malleable log print, with $T being replaced by target name, $S being replaced by source name, and $D being replaced by any damage amount. Heres what goes to textfile atm.
Melee Swing
A basic melee attack
Maximillian Arghest takes a swing at Slime and does 37 damage!
Melee Swing
A basic melee attack
Lance Molsby takes a swing at Slime and does 23 damage!
Melee Swing
A basic melee attack
Erdagan Orizan takes a swing at Slime and does 30 damage!
Melee Swing
A basic melee attack
Judith Manchester takes a swing at Slime and does 18 damage!
Week 14:
Week 14: New hard drives in, everything moved over/restored, no major issues, so actually got a little done.
Not very much, but still some! I improved my text-to-textbox a bit and got printing to a log on screen working, with auto-scroll to bottom and fitting for many sizes of text (and the ability to detect newlines and use/trim them from output).
Heres a sample using the above log data from the exact same abilities as before.
Week 15:
Week 15: Not much done, had to do some other work on other things and didn't get much sleep either so was too tired to do much... so mostly vegged out playing games (I should call it research, yea, thats it! Research!).
Worked on a command selection screen for a little bit for the times I did work on it.
Week 16:
Week 16: Actually got a bit distracted this week with playing Only War, and made a character creator for it (since I assumed people would need to make characters over and over as they kept dying). Pretty simple one that works with a hardcoded regiment atm, but I may update it occasionally as our game goes on. If you want to look at it, you can find it here:
https://dl.dropboxusercontent.com/u/42635636/OnlyWarCharCreator.exeWeek 17:
Week 17: Exhausted again due to outdoor projects, and had to do some extended tech troubleshooting thru weekend so got drained dry. Did think about general gameplay a bit at least and how defense usually sucks in games (exception being like Legend of Dragoon) and how you get all these status effects that usually are just there to fuck players and never work on enemies (especially bosses) and how that sucks. Other than jotting stuff down a bit (then vegging out and playing either shitty flash games or one of those rpgs I got from humble bundles... which why I was thinking status effects and defense and whatnot), didn't get anything done this week.
Week 18:
Week 18: Managed to add some stuff to functions and sketch out functionality at least, better than nothing, but nothing to show for it yet.
Week 19:
Week 19: Well, at least I did a little bit- got a basic menu ui barely functional, and it almost even works! Better than nothing. Will get it working and replace it later.
Week 20:
Week 20: When it rains, it pours. Building I was working on outside got wrecked, had to do yet more work, lots of annoying other errands too. Sigh. No progress this week.
Week 21:
Week 21: how to do no progress: with a tough week but a free weekend: decide to take off for a bit for one day (or in fact two days due to getting hooked on another game and wanting to finish it), plan to make up for it the next day, then have the next day kick you in the face. I decided to say screw it and at least code a bit today: more setup/planning on how I'm drawing menus, and got a function to draw the portrait and stats of the current active character started (it does portrait and hitpoints right now), with plans to draw something similar for whatever stack you have moused over/selected so you can inspect and possibly select targets later. Better than nothing at least, no pic though cause really not much to show and still barely banged something together.
Week 22:
Week 22: Finally: outdoor shit finished and cleaned up, financial shit done, things settled down. No progress this week but hopefully this amounts to a lot of random distractions being done with so I can settle down and try to work without too much worry.
Also giving up on my webhost and will transfer domain over when I finally decide to work on website again (since its been down for a long ass time, basically I think they just quit and took da money and ran)
Week 23:
Week 23: Even with supposedly everything done still finding stuff to do, sigh. Drew up some UI stuff to have some semblance of a unit active and stack selected for targeting, which stats shown from highlight of a unit... and got some of it done after buckling down and doing it while tired. At least I got something I guess.
Week 24:
Week 24: My family are magicians: they can make my time disappear. Just did a little more UI and got individual turn units displaying, and the selection function working to highlight different units, not much else.
Week 25:
Week 25: Well, actually got a little bit done. Finally got my website back up (though its just a basic joomla install right now), and got my stack and unit selection thing actually kinda working: can select different stacks and select a target on each stack. Now need to finish getting my abilities/commands thing working so I can select target, use command, profit!
Week 26:
Week 26: Went over abilities structure to make it work better, and got attacking thru ability done a bit better. It should now look at the stack you have targeted and if you have someone selected attempt to use them as a preftarget... though it still only attacks the square in front of the group (and I forgot to show it off in this gif but meh, next time). Can at least open the actions menu, move thru actions, execute action, have the proper person lose the TU and use the ability, then swap to the next relevant person.
And... well, I guess I'll have a lot more time now that Hazeron is gone.
Week 27:
Week 27: Mostly (while not doing lots of outdoor work or other things) worked on website: trawled thru themes and junk and slapped one on phpBB3, still looking for one for Joomla. On the little programming I did, I made a highlight drawer for unit stacks for selection/other purposes, and I'm experimenting with movement and stack syncing (so you don't have to micromanage when you stack up just to move around the dungeon).
Week 28:
Week 28: Had to plan, travel, and recover this week. Little work I did was more messing about with highlights and made a system to draw effects on or over a character or over the entire tile; currently using it to put an arrow over the active stack unit but it looks terrible so I'll probably do another underlay or something else entirely. Nothing really pic worthy.
Week 29:
Week 29: Managed to get a little done nearly every day, but not any real power programming sessions. Anyway, worked on the syncing mechanic: Stacks now sync and desync when a member isn't at 1000 (max) TU. When synced, they all use the same speed for TU (averaged out from party speed). Units can now delay, which doesn't effect TU but makes them not come up for a set amount of turn ticks. This means a unit can attack and take out an enemy, and then the rest of the stack can delay to sync up again. Also made a cheap under-char highlight on unit turns, but I need to make it better (and its better than the over-highlight arrow at least which was confusing). Also need to make a stack-turn-active border itself to make it even easier to see which stack is about to go.
Still to do:
--One button delay-entire-stack (force resync).
--Delay interruption on stack move or being attacked
--Misc movement tweaks; I think its possible to unstack onto objects which will be a quick fix.
Week 30:
Week 30: Finished making an auto-sync button for the stack which delays each unit exactly enough to sync up, then started on inventory. Got something very basic now that draws inventory into slots in a menu and displays the name and a short description in a textbox. Can move cursor around for multiple inventory as well. Using the items do nothing at the moment though (well, except exit the game unceremoniously as my cheapo debug tool to tell me what all it got thru). Need basic inventory at least so I can have simple items, and then also simple equipment (and need paper-doll and equipment done after I get simple items done).
Week 31:
Week 31: Did some more item work, they actually work now (and by they I mean the medicinal herb example). Have the framework in to have items with multiple charges, consume on use, etc. Simple range overlay done, and items can have both a maximum and minimum range to use (shown in gif as demonstration, not actually locked to use range yet). Going to tweak it a little and lock it down then do equipment this week, hopefully do a bit more if I can.
Week 32:
Week 32: Worked on equipment (also messed up my sleep schedule like hell, at least found that waking up at 3 am is decent for programming). Got basic equipment and a vector of stats for each one that I can push as many different stats as I want to. Have a little display of the equipment with mouseover-stats that currently works for a club (weapon): shows damage range, actual damage range (since its modified by strength), the TU cost of the weapon to use in a melee attack, and its name and descriptor. I have it setup where abilities can use weapon data and modify them as well for the ability (like an ability takes 60% of weapon TU to use, or has a flat 100 TU + 25% Weapon TU, or modifies whatever based on equipment/character stats).
Still need to do armor and junk but its a good start (and I'm keeping armor a little simpler right now anyway).
Week 33:
Week 33: Got quite a bit done this week: added armor and some armor items, got items dropping and picking up, added gold to the party and experience to units, and got enemies to drop gold and items from a loot table (as in, roll a d100, look at loot table, if loot table has a >50, >70, >90 and you roll a 75, dump out all the items in the >70 category to the floor). As for what to do with experience, going to likely do a simple leveling system (toyed with exp-buying skills and stats and whatnot but figured may as well go with something easier to manage for now).
Right now working on a simple town and shop screen so theres a base of operations, a better place to start than being dumped straight to the dungeon, and of course place to recruit and buy/sell and recuperate and save and all those wonderful things.
Week 34:
Week 34:Slightly less work managed this week due to... things, but still going at it. Made a rudimentary town screen with (amazing) placeholder art and buttons and all that, and worked a little bit on the shop display (I had started to do a buy screen and sell screen separately but figured that was too old-timey and clunky). Plan is to have inventory / selling on the left, shop stuff on the right, buttons to sort categories, comparisons to current equipment and buy-to-equip / tradein stuff and all that rot.
Did a little back-end with some of my functions and main loop as well so stuff flows together better, and made it so if you delay on the title screen it can take you to the intro (and then back to title screen), and setup so it can play gameplay snippets/vids/whatever if I want to do that as well later. Other than that, reworking items themselves a bit to work more like I set the equipment up so instead of hardcoded effect-per-item its search-for-values instead (So instead of switch (itemtype) case blah_herb: healthisdude(thisdude) ... its listeffects = searchfor(ON_USE, ON_TARGET, parsestatlist(item) ), doeffects(target, listeffects), or thats the idea anyway.
Week 35:
Week 35: Grimrock 2 for quite a large portion of the week, then recovery and then... other things for most of the week. Did manage to do a bit more work on shops and got the selling part done, and some of the work of the actual TOWN class done to hold shop info, push tier lists to the shop or add items individually (as in, clear a section of dungeon, add tier list 2 to shop. Bring in item for a quest, add specific item to shop. etc.) I had kinda planned more sorting stuff for the buying section of the shop, setting up for multiple towns, etc. but for now I'm just going to get it working as I won't have a great deal for prototype anyway (gotta avoid too much feature creep). No image this week due to just drawing some new boxes.
Week 36:
Week 36: Got the rest of the basic buy/sell thing done with basic functionality and done with it for now. Moved back to the dungeon area and finally started line of sight and exploration (cant do a take on classic crawlers without vision and exploration, or otherwise its just a tactics game!). Few minor loose ends still in vision (like: tiles are easy to do revealed / explored draw, but objects are varied size and may take up multiple tiles or overlap or do all sorts of things, or even possibly be removed later if I ever let npc actors move objects around or even just open doors, so I'll need proper ghosts or something plus a shadow overlay so an object isn't just fully drawn even if only a tiny part of it shows up, etc.)
In other news, I finally threw the slime stack out of the main control loop and started it on a simple AI, where all it does is delay right now, but hey, its a start!
Week 37:
Week 37: Didn't do that much this week (nothing really showable), but did more AI work and got a basic roamer script done for my AI stack... and then in figuring out how to actually make it work I started making a proper event system and unit action queues. First I'm converting my player stack/s into using the event system properly, then I'll start the AI behavior and hopefully too much wont explode.
Week 38:
Week 38: Other than some minor eventing (got party moving around with event system) not much actually done this week: ended up playing Shining Force 3 mostly (got a nostalgia hit for Shining Force so figured may as well do it and take notes for the good... and the bad. Definitely had some advancements in the modern genre, but other than those I still like the actual feel of the old game.)
Week 39:
Week 39: Didn't get much done this week either, so stayed up late today in order to at least get something done. Got NPCS moving around in event system, some actual unit event queuing that works, redid a bunch of the language of the events to be more consistent... and then ran into a dumb crash bug I'm still looking at to figure out what my AI borks when I set it to roam around. Ah well, I'll sleep on it.
Week 40:
Week 40: FINALLY got it wandering around (mostly) proper... still need to do proper action truncation for actions that don't make sense, check for conditions, etc. Can switch AI states between DELAY (do nothing but sit there) and ROAMER (wander aimlessly) without much issue at least. Once I get the conditions and whatnot checking I'll try to make an ATTACK / PURSUE behavior... and I still need to make situations where the AI will split the stack instead of just following the leader's whims.
Week 41:
Week 41: Not much actual work due to holidays, but did more work on my AI truncation and got it compiling and sorta working, except it freaks the hell out when trying to run into a wall and just spams stuff till something else works so I need to find the dumb mistake.
Week 42:
Week 42: Not much work this week either, but did fix some stuff with my random function that was making the freakout occur. Brother got me Don't Starve and I played way too much :/ (at least done with it for now)
Week 43:
Week 43: Tried to do a bit, mostly failed due to shenanigans... but at least found several bugs and got the roamer script smoothish for now. Started on NPC vision and CHASE/ATTACK logic.
Week 44:
Week 44: Did a little chase logic and then decided I wanted slime vision to work a bit differently so made different vision modes: 45, 90, 180, 360 vision. Also made it where I could modify vision range or type based on an equipped item so you could put on ye fullhelmet-of-blindness and go from 90 and 7 tiles to 45 and 5 tiles, or something like that. I may do layered vision later as well, so you could have a character that had 360 vision of 1 tile while also having standard vision, but I'd need some kind of idea on what to do if I also modded each with equipment then (basically, flags for modifiable or not, or at the very least what modifies each one)
Week 45:
Week 45: Pretty much nothing at all this week. Ended up playing The Repopulation quite a bit to check it out / do something to veg out for awhile.
Week 46:
Week 46: Finished with Repop, then got a lil sick and I'm recovering from that right now while watching gamesdonequick and reading up on A* specifics. No real coding done this week either, hopefully getting back to it this week: want to get this AI thing done so I can kinda sorta have a real game loop done.
Week 47:
Week 47: ADGQ (awesome games done quick) distracted me a bit but still managed to get quite a big chunk of the A* done. Just need a few more things then some tests to make sure the anti-evil stuff I put in it is actually appropriate and I should be good to go (and then of course comes spawning a thousand slimes and telling them all to go eat the players, mwahahahaha)
Week 48:
Week 48: Managed to program a little every day for a few days and then had some days that just kinda ran together where nothing got done (including sleep). Did pick it up a bit after that though and I've a dummy AI ready to step thru my actual pathfinding code and test stuff now so at least making good progress (just have to actually do the tests and look at output and then fix stuff and yadda yadda)
Week 49:
Week 49: The terrible week says "no programming for you". Best I could do was fix a crash bug here and step thru the pathfinder there just a little bit and pretty much nothing done at all. Seems like this next week may be rough too, hopefully will get better and I'll have a better setup to program when I actually can if I can get a proper desk/setup in this other room.