So, I have some pretty badass ideas for memory and build time optimizations. Unfortunately they rely on features not yet implemented into gm's shaders, such as new texture formats and the ability to read texture data from within the vertex shader.
The majority of today is going to be spent working on frustrum culling I think, and implementing new lighting stuff for better detail from lower LODs
EDIT: Lower level LODs now no longer lose lighting details!
EDIT:Implemented vertex buffer saving and loading, so LOD level can be built prior to ever starting the game, drastically reducing the amount of time it takes to actually get into the game.
EDIT: Implemented Frustum culling, nearly doubling my frame rate!!
Considering that this project is less than a week old, and still very much in alpha, I think there's plenty of reason why lots of things arent perfected just yet. Yes, I've known about the gaps for some time, however they have not been priority for me just yet. Also, I've known about the terrain popping, and there's really not a whole lot that can be done about that, save for maybe using some alpha blending transitions between LOD levels, which may or may not look strange. The load time is another thing that will be addressed, at this point in time, the entire map is being generated and stored into memory about 5 times. Instead of doing that, I'll be generating only the areas near the player, and only the LOD levels required at the start of the game, with the remaining LODs generated in real time while the player moves about the map.
I'd like to thank you guys for all of the feedback you've given me on the project so far. It's still very much an early development with tons of room for improvement! My goal is to create possibly the most advanced terrain system for GMS possible, and any feedback, suggestions, and ideas will be taken very seriously.
If you've been paying any attention to the notifications I've been posting lately, you'd know I've been working on a thing. Well, here's a demo of that thing, and a few words to describe what's going on, as well as some fancy pictures to chronicle it's progress from the humble beginnings to what it's become today.
This is GM Total Terrain, an all in one, advanced terrain management suite, which comes complete with the following features already implemented:
Read Heightmap data from grayscale image.
Seamlessly blend up to 5 textures together using fancy blending masks for the most natural looking terrain evarr.
Customizable Level Of Detail (LOD) functions, set the width of your slices, and how many LOD levels to use!
Interpolated data reading for super smooth placement and sub-pixel accuracy on terrain generation, Use more polygons than there is terrain data!
With more to come: (feel free to submit ideas)
Foliage/grass population with wind shader.
Frustrum culling of terrain slices for maximum performance.
and lots more performance boosts!!
Now for the fun stuff, Pictures!
Baby steps, texture blending on a 2d surface.
applied to the first terrain.
The terrain divided, ready to implement LODs!
Look at all those wires! You can see how desperately needed the LODs are
Lods are in, so are seams, and so is mipmapping (not apart of this suite)
close up on the blending, and some weird seams in the rocky grass
I found a solution to the problem. Uninstall GMS, go to your local appdata folder, find the GameMaker Studio folder, and delete it's contents, then reinstall. Re-enter your license key, then restart GMS, this should reinstall all your yyc modules without error. If you do get an error, try it again from the top. But it worked for me the first time!
Thanks guys! BTW Alpha 12 was just submitted, check out all these awesome updates:
Alpha 12 will release November 15th for Desura and Itch.io users. We're pleased to finally be posting the Alpha 12 patch notes for miniFlake. You'll find a massive list of changes, additions, improvements, optimization, increased stability, improved user interface, and a more expanded xData folder for modders to leverage. There's a lot to talk about!
First off, we got Greenlit on Steam!
Thank you to everyone who supported us for the last 805 days on Greenlight. We could not have done with without you. We will be talking about Steam Keys and other bonuses for early supporters at a later date. For now, thank you for believing.
We've been talking for a long time about renaming the game after we hit Beta. We're taking the opportunity we've been given with Steam to do exactly this. We'll be rebranding the same game soon. Don't worry! The game you've supported all this time will not change with the rebranding.
Here are the patch notes!
We'll be offloading a lot more of the current assets in a12, which is coming in very soon. We plan on having 90% of the game in a state where anyone from a hobbyist modder to the first time player interested in how games work — will be able to drastically change the game and see how things function.
We've added a new member to the team! PROTODOME! PROTODOME is a UK based jazz musician with a particular interest and focus on old videogame hardware. You'll find a sample track from his newest EP above. He specializes in FM Synth. Boy, how he can make that old hardware sing! We're honored to have him on board.
The combat system is nearing completion. We're currently finalizing all of the new additions to the math portion of the combat system. The next steps after this are gameplay improvements inside this incredibly robust new system. We won't spoil anything here!
Instruments make a debut. Players will be able to play music. Every instrument has a unique sound. Crafty players will be able cast unique spells with their tunes.
Status effects also make a debut. There's a huge list. We won't break everything down here, but every effect is very different.
≈) Changed General
+ Games can be saved
+ Game saves can be loaded
+ Gamepad support. (Currently mapped for Xbox pad on PC)
+ Inventory will now save and load!
+ Main menu effects
+ Status Effect icons added to database.
+ Status Effects will be displayed in the space between the Stats Plate and the Minimenu Plate in the main GUI.
≈ Shaders optimized. This paves the way for console release.
+ Dungeons now have more than one floor
+ Full NPC dialog system added
+ Players may now play musical instruments.
+ Players may now view paintings.
+ "Enter" key on the keyboard will now confirm on PC.
+ "Esc" key now closes all of the extra frames opened.
+ "Credits" added to the main menu.
+ "CRT Glow" shader. Enable from Options menu.
+ Attack Types
+ Armor Types
+ Category Tags
+ Special Attack Types
≈ Menu Code more generic, game more stable.
≈ Dungeon Generation optimized. More stable.
≈ Screen-space shaders have been improved and now properly fills the screen.
≈ Text rendering in the Inventory has been fixed.
≈ Copyright Information
- All Character Classes removed
≈ Character Classes are now loaded externally
+ Warrior added
+ Wizard added
+ Thief added
The following items are now loaded from xData
+ Player Pawns
+ Character Classes
+ Attack Effects
+ Attack Types
+ Special Types
+ Armor Types
+ Category Tags
+ NPC Dialog, including portraits
+ Attack Types such as "Slashing"
+ Armor Types such as "Scale"
+ Category tags such as "Giant"
+ These are effects that can change your status in the world. Some things are more traditional, like being poisoned. Some change your own personal "weather" effects, current class level, or the "biome" you are standing in. Each effect is unique and all have their own unique outcome. Effects typically last a set number of turns, which is defined in the xml file for the Item, Spell or Monster. Current for Alpha 12:
Your screen goes dark. (NPCs will attack blindly and walk in random patterns in Alpha 13)
X Damage Per Tick. For X turns. Can stack.
These changes pave the way for the following planned status effects:
Changes the level of the Entity.
Gives the entity experience points
Buffs the Str of the entity.
Buffs the Agi of the entity.
Buffs the Con of the entity.
Buffs the Dex of the entity.
Buffs the MND of the entity.
Buffs the INT of the entity.
Buffs the WIS of the entity.
Buffs the CHA of the entity.
Buffs the DEF of the entity.
Buffs the HRM of the entity.
Buffs the SRK of the entity.
Buffs the RES of the entity.
Buffs the EVA of the entity.
Buffs the ACC of the entity.
Buffs the DMG of the entity.
Buffs the DBN of the entity.
Debuff STR and CON of entity by 10%.
Debuff INT and WIS of entity by 10%.
Debuff AGI and DEX of entity by 10%.
Debuff CHA of entity by 10%.
10% Damage Per Tick. For 10 turns.
Lose control of player for 3 turns. Player will move with enemies. If NPC is charmed, NPC moves with player for X turns, will attack with the player.
X Damage to MP Per Tick. For X turns.
X Damage to MP Per Tick. For X turns. Gives caster the MP.
Double damage received from all attacks.
Character is slowly turned to stone. Movement speed decreases over time and, once solidified, are killed if struck by any attack.
X Damage Per Tick. For X turns. An additional stack will happen every 5 rounds.
lose X rounds. To be used sparingly.
Double damage received from Ice and Thunder-based attacks. Half damage from Fire-based.
Double damage recieved from Fire-based attacks.
Character cannot act for X rounds. If struck by an attack is immediately woken up but takes 1.5x damage from the attack.
-60% to all attributes and takes 40% increased damage from all attacks.
Cannot cast spells.
Movement is limited and the character takes damage over time. Movement limited to a radius around where the target was possessed.
Adds X to light Radius.
Does X fire damage every tick.
Changes personal moonphase of target to X
Changes personal weather of target to X
Changes personal biome of target to X
+ Attacks will now be broken down into types. The current types in the xData folder are as follows.
+ Armor will now be broken down into types. The current types in the xData folder are as follows.
+ Magic will now be classified in the "Special Types" XML files. The current types in the xData folder are as follows.
+ Categories are special tags to assign to objects, monsters, NPCs, and players based on what type of creature they are, as well as their condition in the world. Categories will now be classified in the "Special Types" XML files. The current types in the xData folder are as follows.
We added the following bugs
+ "Seam" in the middle of the screen that distorts the art.
Cut from Alpha 12 / Planned for Alpha 13
The following features did not make the cut in time for Alpha 12.
+ "End Dance" added from SilverQuest
+ Crafting recipes can now be found. They serve merely as guides, and do not gate access to crafting
The way this is set up, setting the z of each point as different from other points will create some strange artifacts when the polygons become triangulated. I could do something more similar to how it's done in quake however, whereby you can set the slope and direction of each wadd's floors and ceilings independently, kinda like how it's done in gzdoom.