9/22/2015: ========== - created Changelog - fully documented world.h, world.cpp, entities.h and entities.cpp - fixed interpolation - made entities dynamically allocatable 9/23/2015: ========== - fully documented ui.h and ui.cpp - converted most world functions to only needing a Player pointer - added entity-world binding, so that only a single world draw()/detect() needs to be called per loop in main.cpp - added dialog boxes and a key binding to acknoledge them (make them disappear) - added a togglable debug overlay thing (F3) - added villages 9/24/2015: ========== - improved entity binding - added structures, villagers, and a basic villager AI 9/26/2015: ========== - added a base for indoor areas 9/28/2015: ========== - added dropping from platforms - added structure entering/exiting - improved world/entity handling - fixed NPC generation - added enumerators for entity types - improved NPC wandering 9/29/2015: ========== - made world handling work with interpolation - successfully ran game 200 entities - improved debug screen - added mouse interaction w/ NPCs 9/30/2015: ========== - improved left/right movement - added framework work NPC dialog n' stuff - added quest stuff between NPCs and player - began work on giving names to NPCs - began working on config file - created a bug file - added displaying of entity names on mouse hover - found more fonts 10/1/2015: ========== - player can now complete assigned requests - player's name is displayed - improved gravity so entities don't shake on the ground 10/2/2015: ========== - added a basic inventory - quests can reward one type of item (but any quantity of that item) - added texture loading, began working on player textures 10/5/2015: ========== - added NPC/player/structure textures - textures flip with direction - made a beautiful Makefile - moved main game loop into separate function 10/6/2015: ========== - Makefile only builds edited files now - improved sprites - improved world drawing 10/8/2015: ========== - added background image - added grass - added running textures to player - added crouching - improved world draw, world now draws player as well 10/9/2015: ========== - improved player inventory - improved quests - added mobs - added DEBUG flags and functions to inventory.cpp and ui.cpp 10/13/2015: =========== - cleaned up main.cpp - added DEBUG flags to common.cpp and Quest.cpp - added player health - made textures for rabbit 10/15/2015: =========== - fixed quest assignment/completion - entities can't move when interacting now - added GLEW libraries - worked on delaying quest assignments until dialog is closed 10/16/2015: =========== - fixed delaying quest assignments until dialog is closed - checked and secured errors in malloc/calloc calls 10/19/2015: =========== - fixed malloc/strlen bug that crashes the game on some linux systems - broke andy's linux system on his laptop, allowing for test game build on Windows - began extensive documentation in main.cpp 10/20/2015: =========== - andy's laptop 'can' boot - added 200+ lines of documentation to main.cpp 10/21/2015: =========== - andy's laptop works :) - finished documenting main.cpp, bringing it to 759 lines - began documenting entities.h/.cpp and world.h/.cpp - fixed structure physics - improved include locations 10/22/2015: =========== - 1 month Changelog anniversary :) - successfully built and ran game on 64-bit linux - successfully build game on 32-bit Windows (game crashes on execution) - removed npc array; NPCs are now created in the entity array - created a basic texture handling library 10/23/2015: =========== - fixed entity initialization - added multiple mobs - improved texture handling 10/26/2015: =========== - removed windows build commands - fixed bug with spawning 'dead' NPCs - entities are now drawn behind the current world as well as the grass - player can now only highlight one NPC at a time - fixed GLEW shader initialization segfault - began working on bird mob - improved world scenery 10/27/2015: =========== - added a parallax background layer - gained knowledge on sprite creation - created tree and mountain sprites - created a decent bird AI 10/28/2015: =========== - fixed world drawing bug - fixed segfault with entering buildings - found bug with npc quest preloading - documented more of world.cpp - improved background textures/parallax stuff 10/29/2015: =========== - re-added NPC quests - fixed issue with player standing on grass - made game exit when player falls in hole - documented world.h - fixed camera ortho - began working on layer-switching animation - added variable width backgrounds - added a debug sprint speed - the currently selected item is now drawn on the player - pressing q discards (w/ visuals) the currently selected item 10/30/2015: =========== - fixed bug involving grass pressing and platforms - added a day/night cycle, with shading on all drawn objects except for entities - added stars at night - successfully enabled and loaded GLSL shaders 11/2/2015: ========== - improved shaders (can now see drawn objects) - re-organized Goals.txt - began working on game concept/design/plot/everything (in google doc) 11/3/2015: ========== - added world gen based off of functions - added cutting to black - added typewriter-esque text drawing - documented ui.h - continued work on GLSL shaders 11/4/2015: ========== - fixed typewriter output free() error - added y-binding to ortho (if player is high in the sky ortho and UI will match it) - added maximum to gravity's pull - worked on storyline 11/5/2015: ========== - wrote more storyline (up to 7 pages) - fixed ortho for when player is inside a building - began work on ray shading (flashlight) - (out of class) began experimenting with writing game soundtracks ~ About 3400 lines of code + documentation written ( +7 pages of story on gdoc) 11/6/2015: ========== - worlds can now be saved & loaded from a file - created 'storyboard' for first few player areas - improved flashlight - made some minor improvements to world appearance 11/9/2015: ========== - gave world's their own entity/mob/npc/build arrays - cleaned up for loops (switched most to `for(auto :)` - added drawing/handling of entities on all layers at all times - removed building entering/exiting - andy broke SDL cuz he's bad 11/10/2015: =========== - fixed building entering/exiting - prototyped first world for story-line-thing - andy fixes sdl 11/12/2015: =========== - began documenting ui.cpp - vastly improved dialog, added options/buttons - improved world physics a lot - created a generic object class - began death handling stuffs - added a quest list in-game 11/13/2015: =========== - began working on cutscene triggers - began working on item dialogs 11/16/2015: =========== - minor bug fixes - began working on arenas - began working on cutscene triggers 11/17/2015: =========== - created basic arena / arena handling - added entity deletion when an entity dies - fixed errors with typewriter-text - finished cutscene triggers 11/18/2015: =========== - converted layered background items to tiles - fixed ortho in small spaces - began formalizing item system 11/19/2015: =========== - texture loaded tracks loaded textures to prevent re-loading (frees resources) - continued work on things finished the following day (11/20) :) 11/20/2015: =========== - began working on inventory UI - moved background drawing to World class - re-did the item system - actually tiled background images to save space 11/23/2015: =========== - 2 month Changelog anniversary :) - Created the new inventory ui - Fixed texture loading bugs 11/24/2015: =========== - Bug fixes related to memory allocation - Broke item textures... - Finshed new inventory ui animations 11/30/2015: =========== - Converted all m/calloc/free calls to new/delete - fixed hardcoded string issues - improved inventory animation - began writing songs for game soundtrack ~ About 4280 lines of code + documentation written ( +7ish pages of story on gdoc) 12/1/2015: ========== - ran game through valgrind, fixed almost all memory leaks/errors - smoothed out game animations - broke the game 12/2/2015: ========== - fixed many item related segfaults :) - removed std::thread calls - improved world background drawing; added that to IndoorWorld's - improved inventory functionality - fixed issues with cutscenes 12/3/2015: ========== - improved inventory draw - fixed most segfaults, including those when exiting - added -Wall,-Wextra, and -Werror to enforce better/safer coding 12/4/2015, 12/7/2015: ========== - re-did fullscreen text (importantText) - began doxygening headersspin a dreidel - fixed entity name reading - fixed entity sprites 12/8/2015: ========== - continued to document header files through doxygen - added border to dialogBox - fix entity movement handling; npcs stop when you talk to them - added sword animation? 12/9/2015, 12/10/2015: =========== - added sound effects - fixed disappearing building - began actually plotting areas - fixed layer switching-ish - added passive dialogs - began working on particles stuffses - improved village spawning 12/11/2015: =========== - plotted out a tutorial-ish area in game - imrpoved BGM handling - continued work on particles, made a fountain - added sanic ~ Broke 5000 lines of code/doc, now with some file Doxygen'd 12/14/2015: =========== - Re-implemented Arena added door mob for exit added white flash + sound transition - fixed fading bugs - continued fixing general game bugs - fixed structure spawn issues 12/15/2015: =========== - began/continued work on original player sprite - began working on dirt textures 12/16/2015: =========== - added more soundtracks - completed dirt texturizing, improved ground shading - checking files for potential divide by 0 errors, due to random floating point errors still have floating point errors - restarted work on real shading (GLSL stuffs) 12/17/2015: =========== - continued work on player sprite - continued work on GLSL shaders - fixed NPC spawning world location stuff - messed with threads/forks - re-fixed/added indoor environment; fixed indoor background 12/18/2015: =========== - upgraded development utilities - began working on pages, made sprite and handler - GLSL shaders are better - redid theme_jazz 12/21/2015: =========== - fixed dialog options issues, finished basic pages - added World::getAvailableNPC() for easy quest assigner assigning - added the Condition class, so that events and actions can be remembered by NPCs - added functionality for multiple lights (GLSL) 12/22/2015: =========== - 3 month Changelog anniversary! - fixed dialog quitting bug - worked on village spawning - worked on wrapping text for dialog boxes - did more work on GLSL shaders 1/3/2016: ========= - finished wrapping text for dialog boxes - began working on world saving/loading again - got some mad GLSL shaders running 1/4/2016: ========= - fixed basic world save/load, working on entity saving - GLSL shaders worked? 1/5/2016: ========= - can save NPCs and Structures - more shadering 1/6/2016: ========= - flashlight! - XML-scripted worlds!!! - !!!!!!!!!!!!!!!!!!!!!!!! 1/7/2016: ========= - xml'd npc and mob spawning - xml'd npc dialogs - drafted page xml 1/11/2016: ========== - improved npc dialog xmling - WIP xml'd world linking - textures? - music? 1/12/2016: ========== - world linking xml'd - xml'ing indoors - shaderssss - more music 1/13/2016: ========== - discovered how intel and nvidia gpus handle lighting - xml'd buildings and their indoors - xml'd settings for screen dimensions - xml'd item giving through npc dialog 1/14/2016: ========== - pondered on non-random generation - fixed some drawing issues - made spritesheet for easier solid-color-texture drawing - began to incorporate XML into the world class for dynamic world loading... 1/16/2016: ========== - removed layers - switched world linking from pointers to file names, rewrote all world-linking code - worlds are now loaded dynamically 1/19/2016: ========== - memory management - began reconsidering save/load stuff 1/20/2016: ========== - can save npc dialog positions - worked on player sprite redesign - greatly simplified/documented gameplay.cpp 1/21/2016: ========== - can save most mob positions - fixed world widths, background drawing - added aggressive flag to mobs, player enters arena on impact - added world load fault handlers - worked on player sprite redesign ~ A little over 5200 lines of code 1/22/2016: ========== - better player sprites??? - fixed major bugs - free'd more resources - documented almost all of world.h - improved settings.xml 1/25/2016: ========== - Game has a menu API - Pause Menu 1/26/2016: ========== - wrote paper regarding what we've learned, and where we're at - ported game to Windows, left EXE and DLLs in repo 2/1/2016: ========= - began rewriting item/inventory system - worked on option menu actually modifying options (updating settings.xml) 2/2/2016: ========= - unbroke inventory stuff - saved xml stuffs and volumes stuffsfees 2/3/2016: ========= - fixed inventory bugs - improved arena handling - removed old, unused and commented codes - began working on XML'ing quests - improved mouse 2/4/2016: ========= - fixed world boundary glitch - began work on XML'ing triggers - npcs can assign quests through XML - screenshots - improved memory management - more audio sliders 2/5/2016: ========= - improved font rendering codes - added font selection to settings.xml - XML'd important text 2/8/2016: ========= - partially fixed text drawing - XML'd quest checking, working on quest requirements - worked on XML'ing villages 2/9/2016: ========= - quests can require one item for completion - better-er text drawing - can set world themes through XML 2/10/2016: ========== - proper quest handling: multiple req's, re-classified, overall good - began considering unique_ptr's because they're good - fixed inventory everything - themes work - pushed template settings.xml 2/11/2016: ========== - fixed text drawing for good - fixed player boundary checks - made importantText passive-able - began work on saving player stats - fixed dialogClick stuffs - added readConfig checks - added background layers and whatnot 2/12/2016: ========== - made saving functionality for player coordinates, inventory, health and current world - addded structured villages 2/22/2016: ========== - found weird memory leak bug with structure inits - mob deaths are saved - fixed building spawning - volumes are better ~ 5 month Changelog anniversary!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2/23/2016: ========== - began re-write of font rendering functions - began documenting main.cpp - improved game efficiency 2/25/2016: ========== - very neatly documented/optimized ui.cpp (very neat) - looked into better automated Makefiles - improving villages, began work on shops 2/26/2016: ========== - made fonts more memory-efficient - C++-ified loaded texture handlers - documented more stuff - made merchant menu 2/29/2016: ========== - renewed branch 'remake': re-wrote world.cpp and pushed - fixed world linkage errors - considered more formal coding? (as in documentation and indentation) - fixed dialog boxes and options - broke screenshots 3/1/2016: ========= - merged 'remake' with 'master', fixed font issues and world stuffs - continued work on merchant dialog 3/2/2016, 3/3/2016: ========= - made particle vector not pointers - improved efficiency of code using newly learned C++11 tricks - added StrAttribute() to TinyXML2 - more merchant stuff, trading???? - improved village XML loading 3/4/2016: ========= - added following functionality to entities - fixed some world shading issues - re-added stars, but stars draw midday - restarted work on arenas - began implementing currency system - made the moon! - merchants are a-o-kay 3/7/2016: ========= - player lighting works more - arenas work - cleaned up world codes - andy got here ~ Total of 7,379 lines of code! 3/8/2016: ========= - fixed world draw shadings - improved merchant menu 3/9/2016: ========= - pages are XMLable and can be drawn - dialogs are cool with threads - better lighting 3/14/2016: ========== - began implementing hills in worlds - more inventory stuffs 3/15/2016: ========== - finished hills, fixed hill collision physics - fixed player repositioning when switching worlds - XML'd tickCount setting - even more inventory stuffs (side panes) 3/16/2016: ========== - cleaned up world and ui functions (std::string'ing) - oh so more inventory stuffs (animations) - planned ahead ~ set finish date for game engine: 3/31 3/17/2016: ========== - cleaned up ui stuff (more std::strings) - worlds load adjacent worlds for faster loading - fixed world fall-through error - (WIP) made ui options dynamic (boxes can have 'infinite' options) - can scroll through inventory with mouse wheel - added text transparency support 3/18/2016: ========== - worked on keeping multiple-sizes fonts in memory (importantText lag) - c++'d more ui stuff - game can run on *BSD systems.. - fixed abort bug on exit - added light that follows player 3/21/2016, 3/22/2016: ========== - andy did stuff ~ 6 month Changelog-aversary! 3/23/2016: ========== - flickery lights - ui font loading is smooth - entities can be flung 3/24/2016: ========== - npcs walking through worlds? - found brazzier glitch - merchants inside stalls - z renders???? 3/25/2016: ========== - relocated detect() to main loop, better thing handling now - implemented rain, snow - added weather to debug overlay thing 3/28/2016: ========== - fixed bug with quest assignment - made file names consistent - namespace'd config stuff - began work on improving rendering stuff 3/29/2016: ========== - prevented structures from moving - began making indoor worlds good - inventory slots are actually being used 3/30/2016: ========== - implemented multiple floors in indoor worlds, xml'd - made headers .hpp - fixed player-following light - began retexturing indoor worlds - rediscovered important-text music fades 3/31/2016: ========== - npcs and mobs can spawn on specific floors - npcs can go to locations after dialog - aborts/exits are better labeled - began implementing food items - more better item stuff 4/4/2016: ========= - improved world handling - player can now begin game inside - removed unnecessary cout's - began actual storyline work? - began actual fighting work 4/5/2016: ========= - worked on item handling stuffs - swords can affect all entities, added knockback - began work with threading pages/triggers - added debug flag for settings.xml - improved particle drawing 4/6/2016: ========= - began considering vertex-based rendering - discovered really weird thread handling issues - broke world transitions 4/7/2016: ========= - fixed world transitions - implemented rain - added custom health values in XML - player can't leave arenas until mob death - typeOut speed is consistent - continued smart renderinging 4/11/2016: ========== - heavily revised merchant code - fixed bug that caused game to crash idly - fixed bug with spawning NPCs at specific coordinates - added functionality to ui to auto-complete the next typeOut 4/12/2016: ========== - potentially fixed inventory drawing bug - moved menu library to its own file 4/13/2016: ========== - began making the world great again - adopted indent style: linuxxxx kernel - began converting pointers to better things - parentheses 4/15/2016: ========== - fixed segfaults in inventory - Andy learned how to use GDB 4/16/2016- 4/27/2016: ========== - added action menu - freakin rewrote half the code - redid mobs, moved to separate file - library-ized game time stuff - made the game:: namespace - removed threadpool, gameplay - redoing inventory system - added -g flag ~ 7 months of Changelog 4/28/2016: ========== - fixed arenas, improved world switching - continued revising inventory 5/2/2016: ========= - fixed arena speed bug - birds don't 'hit' the world boundaries - fixed page drawing - items are unique now - added swords and bows - render is now separated from the main loop ~8,100 lines of code 5/3/2016: ========= - smoothed out ortho snapping - improved arenas, fixed door texture - fixed mob riding / ortho snaps - added command line option handling, with -r option to clear .dat files - found segfault when exiting game - made string tokenizer for tokenizing strings - messed with HLINE scaling, it's bad 5/4/2016: ========= - began implementing event saving thing - fixed fade transitions - re-added click to speed up dialogs - almost ready to add new draw stuff 5/5/2016: ========= - pushing new drawing to master, it's okay... - changed how swords function, only hits nearest entity 5/11/2016: ========== - hired artist - fixed important bugs/memory leaks, few segfaults happen now - new rendering almost complete - brice stuff almost done 5/13/2016: ========== - NPCs and mobs can gracefully walk between worlds, carry dialog - began more work on combat stuffs 5/16/2016: ========== - added jump page - created quest lightbulb texture - fixed overlay 5/17/2016: ========== - added onHit and onDeath routines to mobs - added mob drops on arena kills - continued work on new renderings 5/23/2016: ========== - fixed grass squishing - player sits on cat better - world shading is good-er 5/31/2016: ========== - fixed name generation-er - move random dialogs to file - entitys can modify their XMLs - 'alive' XML attribute works - lighting's pretty neat 6/3/2016: ========= - majorly improved particle handling, made CoolArray - found bugs in quest handling... - making lights and stars n stuff goood - story??? art??? music??? 6/8/2016: ========= - entity stats are saved within the XML files, .dat's are gone - game is overall better - following lights, good lights - good 6/13/2016: ========== - more actual finally story work - laughed at Goals.txt - worked on better inventory / general ui ~ more than 10800 lines of code (just counting .hpp's and .cpp's) 6/15/2016: ========== - fixed major indentation problem with tinyxml - windows build actually works first try..??? - everybody's pushed and merged and stuff - item rendering stuff "I'm also trying to make it so that other entities can use items.. if that makes sense." - Andy Late June (6/16/2016 - 6/27/2016) ================================= - urging need of decent graphics - waiting for player sprites - redid forest trees, mountains, houses - fixed major issue with entering structures - exploring more ideas for soundtracks 6/29/2016: ========== - added chests - added q to drop items, as objects - chests snag dropped objects, right click to reclaim - control setting is good, needs saving though 10/10/2016: =========== THE REVIVAL - began to implement EntityX - things will actually start to work - created render.cpp, moved shader management to there - this game will be kinda decent now??? - input bugs, because we're awful 1/19/2017: ========== What's been happening: - major rewrite, full on EntityX - everything is actually decent now - keeping an eye on optimization, perf, ... - basically no segfaults? like what the heck - new inventory system - new entity animation system - almost ready to really get some story work done