Jump to content
  • Advertisement
  • You can syndicate your blog to the GameDev.net community.
    Learn how here.

Blogs

 

Manipulation of a sprite

I am thinking, that even though it is a prototype, we should build in the animation. Mainly, this is because I don’t want to do it later when we replace the graphics. So far we have the player attacking without any animation, and I am about to implement player jumping, again without the graphics. So, its a prototype, so we don’t want to waste time ( maybe looking for graphics, or building new ones ) , and we don’t want to invest into it ( buying premium assets ). SO, i am going to manipulate the ones we got. Boom, right!? I just found that the sprite pack we are using for the player actually has an attack animation, so thats great. I am going to make a jump animation for four directions and then implement it in the game, and then go back and do the attack animation. I am thinking that I can make the sprite have the shadow, and just move the image…and not the collider? I don’t want the player “bumping” into a mob that is two squares above the player because he is jumping into the ‘air’ . I had thought about having a tile map for representing mob and player locations, this way we could have a virtual ‘zed’ axis for the player to jump up into. maybe that would be overkill? And now I am realizing that if a mob was to fly, it would have to have location tied to the ground. hmmmmm Lets try just having the sprites be displaced from the collider ( so the image moves in animation but the collider stays put ). I think this makes sense. Other than missile attacks….. shit. Oh boy, two colliders? Why the heck not, right , I mean,…. I am not even sure that would work. How about we just go in that direction and hope it all works out for the best lol! HAHAHAHAHAHA So, lets do this beeeatcho machado ! First, the damn sprite. I hope this works lol front
side back Yeah, so …. a little distortion and a shadow?!////….. mmmmkay, lets see if it works lol A day goes by, and I am wondering if i might be doing this wrong. So just to recap, the issue is this: We want the player to jump. It is a 2d world, where everything is a flat image in the X and Y, and then there is some layering of images in the Z. If the flat image could jump, the change in Z wouldn’t really be seen. in fact, you wouldn’t see it. So the idea was to have the sprites image move/animate, keep the collider still as to not ‘bump’ into sprites to the north of the player, and probably create a DoubleZed variable holding the virtual Zed difference. So, mobs at ground level would be 1, and a jump would go to 2, and a bird could fly at 3-5 or higher…. things in the water and underground would be 0 or less. When I write it all out, it seems completely retarded, like I am overthinking something really simple. I do this a lot, hence my internal suspicion. The part of this I think I should change right now before implementing it in unity is not having the jump animation include a shadow, but instead, create a shadow in real time…. some way , some how…. maybe if using a light source and actual shadows, it might look really awesome. Or if anything else, it would be a object within the player object, that grows and shrinks depending on the jump height. Just frames, no shadow Ugh, just got the animation clips set up and then had unity crash, only to reboot and find I didn’t save . The clips are still there, just empty. Nothing quite like doing something twice. Okay, back to it. So when it crashed, the player woulden’t move, yet I hadn’t done anything in the code, only set up the animation clips for attacking and jumping. In my jumping animations, I had transform properties animated, which apparently is a no no if you are moving the player via other means. I think anyways. But this makes sense, and it is better. I am not sure what I was thinking. So, yeah, the script will control the jump – and this way we can turn the collider into a trigger while its in the air, which will be the solution for bumping into bad guys ( or untouchable blocks ) when jumping. I also don’t want to write a gravity script…. so, to use the Unity physics engine, we will turn on Gravity momentarily , take note of the jump off point, and when we reach it again, we will stop the player, nullify its velocity, turn off gravity , and make sure the player is where he jumped off from. Boom!
Two days later, and the player animates whilst attacking ( I think he is animated to shoot a bow, so reversing the motions kind of make him look like he punching – and then the weapon item can have a animation set, that should be able to append to the animation and play together – that is going to look crude as heck for the prototype ) and jumping!
attacks look good, jumping standing still or side to side is good, but jumping south and north??? not so much lolFocusing first on jumping north, we have to calculate where the ground is, or rather, where the shadow should be, minus the distance Y+ that is from jumping. I thought it would be as simple as the_ground = player_position.y – velocity.y if velocity.y is above zero. Close but no cigar. The shadow goes from bottom to the top of the screen with no real relation with the player, which ruins the illusion. So here, it works, pretty darn well, and honestly I have no idea what the #*@! is going on so now, jumping south. Basically, the shadow becomes the “landing” point, so going south was a bit of a challenge in the sense that the player doesn’t really show any kind of true movement, the shadow becomes the new “spot” to where the player is. So I simply make the shadow move to a certain point based on jump height ( a variable ) and then allow the player to “fall” ( in gravity ) to the shadow.
View the full article

davidkilmer

davidkilmer

 

Demonstration of Map Mesh

Last month I described in words how I was building a clickable map using vertex colors. Well, a reader requested I make some visuals to demonstrate what I was talking about, so I whipped up a demo in Unity and grabbed a video of my screen: You can see a tile grid with vertex colors, and all the colors are scrambled every click. Technically you could do this with multiple materials, but you would need a lot of materials (one for every color, which is basically every tile) with that approach. That creates two problems: You would need to store and keep track of all those materials. This is actually not that bad, but would be really annoying, and a waste of memory for a big map. Every material forces a draw call. This is the bigger deal, since lots of draw calls is bad for performance. By using vertex colors, the entire map is just one mesh with one material (using a custom shader that displays vertex colors). And it’s super fast to update the colors, as opposed to rendering onto a texture or something. The other thing apparent in this demo is the sphere moving around. I threw that in as a quick demonstration of mouse interaction. By doing a raycast against the map mesh, I can easily determine the triangle that the mouse is over. I can use that to index into a list of tile data that was generated along with the mesh, returning (among other things) the center of that tile. You can’t see it in this recording, but the debug console is also printing the name assigned to each tile. So like I said last month, this kind of proc-gen mesh is really useful for doing a strategy game’s map!
View the full article

jhocking

jhocking

 

Interview With the Co-founder of Bottlespark about his new book, “Start Streaming”!

I recently got the chance to interview Travis Shreffler one of the co-founders of Bottlespark about his new book, “Start Streaming!: 100 Definitely Real Tips for Becoming a Successful Twitch Streamer” “Remember when your parents told you that you’d never be able to make a living playing video games? Well just like everything else, their generation was wrong about that too. However, the road to success can be long, hard, and sometimes hairy. You’ve been looking for something to make it all easier, right? Well this is it! The tips in this book will help guide you to being a successful Twitch streamer before you can say “What do you mean there’s no retirement plan?”. In this book you’ll learn: -What you need to get started (Hardware, software, and hair color)
-How to utilize social media to grow and network (mostly TCP, FTP, and HTTP)
-How to pick a game to stream, as long as it’s Fortnite Don’t be a chump and try to build a community the hard way! Nobody has time to spend years slugging away for minimal return in hopes that one day you’ll stumble upon an opportunity to grow your audience in an organic and meaningful way. Buy this book and you can be rich in no time with no effort and you’ll have no more problems at all! “ Hey so what inspired you to write this book? Hey! There’s a few things. The original inspiration was in February of this year. I saw some people, stream coaches mainly, starting to write books about how to grow audiences, best practices, etc. I was actually hyped about it. There’s not a lot of long form written word about streaming, so that was cool to see. I usually make videos about streaming for Twitter. Tips and tricks. I try to keep everything real light and humorous because that’s how I am. I like making jokes as much as I like providing info. So I thought to myself, “If I were to write a book, how could I make one that’s funny?” Originally, I had a writing partner, my boy Kyle. He helped write some of the jokes but we both are very scatterbrained on this stuff and busy with real work, so it fell to the wayside. A few weeks ago I was at a marketing conference and someone encouraged me to write a book. I started working on it, rewrote what little bit I had, and then did the bulk of the writing. I wanted to make a parody first. I accidentally put in a few good thoughts lol So what percentage parody to advice do you feel it is? I’d say that outwardly, it’s 95% jokes, 5% actual advice. But like all comedy, the joke has to be grounded in truth. So if you read the subtext, there’s meaning in most of the jokes too. But like, 5% minimum is complete nonsense. So what sort of streaming experience do you have? I’ve been streaming on an off for about 5 years or so. I’m not a great streamer myself, but I’ve guided people from starting to Partner to full time streamer. I co-founded a company, Bottlespark, to help streamers monetize their content. Before that, I studied social media networks growing. I’ve always been more of a behind the scenes guy than anything. So do you have a day job? If so what is it? I have two. One is a tech support job to pay my bills. I also am the cofounder and Chief Experience Officer of Bottlespark. We help streamers monetize their content by hooking them up with advertisers. I handle the influencer side of that work, so I spend all day talking to streamers, teaching them, hearing their pain points, etc. So what got you into streaming and what inspired you to start your company?
I got into streaming after finding Twitch from Mario 64 speedruns and League of Legends esports. Thought it looked fun. A few years later, I really got into understanding Twitch and helped a friend get started, start building a community, and get Partnered. My cofounder, JT, found me through a YouTube video I made. He comes from the digital marketing industry and had some questions about streamers. One night we had an overnight Discord call where we accidentally made a business plan for what would become Bottlespark. Here we are a few years later with a platform. That’s really cool. One last question what is an interesting fact about you that people wouldn’t necessarily guess? Oh man, I’m realizing I’m WAY too open about myself on the internet now. I guess most people wouldn’t know that I am a huge gadget nerd for phones and tablets and stuff. Like, when new phones come out I run to Best Buy just to play with them. I have to have the newest phone when possible. Make sure you check out his new book below. The post Interview With the Co-founder of Bottlespark about his new book, “Start Streaming”! appeared first on Gilded Octopus.
View the full article
 

Doom Challenge + Other Things

I haven't been too active on here in the past few months since my last blog entry back in June when I finished up that side scrolling challenge. I also haven't posted about my 3D Chess challenge yet, but I did complete the game fully back in June as well (less the music track), and I just haven't bothered yet uploading the final blog entry (part 2).   I've been pretty busy with work and dealing with some other issues the past few months but I'll be starting up again soon.  I'll work on finishing up a music track so I can put a nail in the coffin on the 3D Chess Challenge I did. I will also be doing a full re-work on the side scrolling challenge because it's way below anything I would've liked to release, but I honestly spent little time on it. This will happen after the DOOM challenge has been completed. DOOM Challenge below for those interested in taking part:     I'll post more about this in my Part 1 post hopefully sometime this weekend. I'll be keeping everything the same in terms of movement, and game play, even shooting. The main difference will be the graphics revamp.  I have a few ideas for enemies and weapons which I'll concept out. I'm very excited about this challenge and I hope to see a lot more people participate.

Rutin

Rutin

[Devlog 6]: Doomsday Clocks

Hello everybody, This is a new devlog about one of the most interesting features in FallNation video game: Doomsday Clocks. These clocks are based in four main problems that if they get out of control you will loose the game. Say hello to the horsemen: War, Hunger, Death and Plague: FallNation Doomsday Clocks War. After years of conflict in Kamau region, the foreign powers are worried about the possibility of loosing the control of the situation in Kamau. That's why if the nation falls, there must be necessary to purge Kamau by using the force. You, as an ARFi Agent should encourage the stability of the region and avoid unnecessary battles. If you fail, confront the worst. Hunger. The borders are closed and the local food production are barely enough for anyone. If food production centers continue to be damaged, there will be no food or future for anyone. Try to keep the food production facilities working in order to feed the population. Death. Many people have died. If the carnage continues, there will be nobody to rebuild Kamau. Ensure that the casualties are not too high and remember, deads could become your enemies. Keep an eye on them. Plague. It's about the Red Death. If it gets out of control, the only way out will be the total annihilation. Huge cargo ships full of zombies are arriving to the coasts and also the old time bustling cities now are full of zombies. You must fight them until the end. These clocks will work as challenge meters. You will suffer these clocks during the gameplay (both Worldmap and Battlefield). The nearer the midnight, the worse. For example, if the Plague Clock is near the midnight, the map will be crowed of zombies. When a Clock advances, catastrophe might happen, for example when Hunger Catastrophe happens the raiders may organize in huge raids.  And remember, If any of the Doomsday Clocks reaches the midnight, you loose the game.   Doomsday Clock in real life (TM) The Doomsday Clocks became an initiative promoted by the Bulletin of Atomic Scientists. It has always symbolically represented how much is left for humanity to destroy the planet. The last time that it was updated it was placed 2 minute before midnight (representing the apocalypse) due to the simultaneous threats of nuclear weapons, the climate change and multiple viral diseases. Humanity is in a period of instability that faces with concern at the growing evolution of the Doomsday Clocks.  Doomsday Clocks in Kamau When we designed the Doomsday Clocks, we were inspired in the real life one (TM). Due to the last events in Kamau, the Doomsday Clocks are near the end. With this uncertainty and imminent danger and the breaking news of The Red Death changed all. The Red Death is a pandemic that strikes the entire Kamau continent and ravages its citizens. Kamau is closer to the midnight. The Red Death expands throughout the Nation. The social, governmental and military sectors have broken down severely and the war is on the agenda. The whole continent is in quarantine. Civilization agonizes for a plate lunch. Kamau has completely broken and Red Death is about to explode around the world. Is it possible to control the Doomsday Clocks? It's necessary. It's your duty (great Projects will come in future devlogs). The four clocks are strongly interconnected, so managing them is increasingly complex. If you try to cut one of the clocks, its implications may directly affect other clocks. For example, when trying to end the war between the different factions of Kamau, the plague and death clocks might increase, since all wars entail human casualties and in Kamau, a continent with a strong presence of Red Death, the zombies are strongly altered by the noise that war causes, generating hordes of them attacking mercilessly wherever they pass. The Kamau Nation is dying. Will you be capable to manage the Doomsday Clocks? It's necessary. It's your duty. FallNation development continues! Don't forget to join us on the  ARF Initiative Discord Server, we are now discussing about this devlog and the recent others. Have fun and enjoy video games!
 

A Brief Origin Story

“It’s a big idea, but we can do it.”
-Me, an optimistic idiot, paraphrased. Since 2014 I have had one night stands with programming and game development tutorials; only flirting with the journey of game development because committing to it meant work which significantly affected my privileged habits. Though I dreamt of doing so since youth, I never practiced the discipline required to do so. My responsibilities were and continue to be demanding as a husband and father, yet I believe something is better than nothing, and tortured myself over what could have been even with small portions of work. Summer 2018 was one such season; I loaded tutorials and thawed old ideas frozen in procrastination carbonite. I settled on a vision and got to work. By autumn I realized my insufficiencies meant an extensive timeline to accomplish all ideas in my large scope. I was going nowhere fast and considered giving up game development for good. Instead of following the advice of successful creators to simply narrow the scope, I banged my head against a wall I didn’t need to climb. Winter-ish 2019, I get a message: “I’m a dope programmer that can’t decide what game to make.”
-Dave, unsuspecting idiot, paraphrased. Dave and I became friends about 5 years ago when we worked together at a restaurant where we bonded as husbands, fathers, gamers, and other similarities. We’ve kept in touch since we left the restaurant now and again, but being in such a similar headspace still amazes me. He had the skill, but not the design.I pitched the idea, and God knows why but Dave agreed; a thrilling survival game set in the first era on a new world where you play as a primitive alone in the wilderness. It’s a ridiculous design for a first game. Every tutorial I watched preaches some iteration of “start small, learn, go bigger”. Perhaps if the prototype fails we’ll scale back, however this feels worthy of extra effort and delayed gratification. I believe with Dave’s and my talents combined, love from our family and friends, a God portioned miracle, and a little luck; we’ll have something worthy of your time that brings you joy. Or so we hope.
View the full article

davidkilmer

davidkilmer

 

What do an Architect and a Neurologist have in common?

Your name:  Angelika and Stam (Team Versality) Twitter Handle/ Other Social Media:  Twitter: @GamesVersality Facebook: @VersalityGames One interesting and random fact about you that people would not necessarily guess:  When we first met we binge-played Ricochet Robots (a really lovely boardgame which you should definitely try); one of us is a bit of a genius on it and she remains unbeatable to this day!  What country you live/work in:  United Kingdom The video game company producing the project: Versality (our newfound gaming studio!)  The name of the project:  Pop the Line Estimated release date:  23/8/2019 link to website/blog/steam page/Youtube/other:  Website: www.versality.org Pop the line play store page: https://play.google.com/store/apps/details?id=com.Versality.PopTheLine  How did you get into making video games?  We have always been gamers, it was partly how we got together, more than 10 years ago! We always made custom rules for board games, shared cool ideas for video games and day-dreamed about one day making some.  Over the last few years, through our (very different) jobs, we both learned coding and developed custom apps for our employers.  So now that we finally had the skills we thought we would actually try to make some of the games we were always talking about!  What is your background in? One doctor (neurologist) and one architect.  In addition to our jobs and game developing, we are both doing research into visual perception, in disease and in health. We have to be the most versatile game development team ever!
Blurb about game: Our first project Pop the Line, is the ultimate time-killer, or so we hope! It’s a casual mobile game where you have to tap with you little popper at the right colour at the right time to Pop the Line. Switching colours fast and synchronising your taps perfectly gets you extra points.  It’s simple enough that our parents and 5 year old nephew can play it but there are many additional challenges through the game: movements, rotations, fake lines, darkness and many more!  What inspired this game? We both “enjoy” long commutes to our day jobs and spend hours listening to audio books/podcasts and playing mobile games whilst on the train. We wanted to make a game that other people stuck in public transport like us can enjoy!  Also since we are new to game development, we wanted to start with a relatively simple project that we could learn from and grow, before moving to more ambitious games. Pop the line was the winning combination! What makes it unique? Hundreds of levels with many many challenges. Although the gameplay is simple, the game grows with the player and becomes more difficult to master with each level.   What will make it a success? It’s simple gameplay. Pop the Line is easy to get into but difficult to master. Even we don’t get three stars all the time and we have played each level countless times! It’s great fun too!  Who do you think it will appeal to? Everyone stuck on a train, tube or bus or forced to endure a boring meeting or lecture! Number of people working on the project and skillsets: Just the 2 of us and we have done every single thing ourselves.   How are you handling art? Created by us in house with some icons from noun project.  What tech/stack do you use? Unity Also gimp, krita, inkscape, hitfilm express, ocenaudio and others depending on the specific task at hand. Are you full-time? If so how did you make the switch to working full-time in game development? We both have full time jobs; game development happens early in the morning, late at night and on weekends… We would like to have more time to focus on game development in the future though. Is this your first game? If not how many and what other sorts of projects have you worked on? The very first! But we went through many prototypes for games until we ended up with this idea. 
What’s been the hardest thing about making this game? Maintaining motivation. Finding the time and energy to develop after a difficult day at work has been a constant challenge. We try to keep each other enthusiastic though and definitely being a team (even a team of 2) and not a solo developer has been a huge help in maintaining motivation levels.  Anything else you would like people to know about you or the game? We are always looking for feedback and a chance to improve! If you have a moment please take a look at our game or even better download it here https://play.google.com/store/apps/details?id=com.Versality.PopTheLine and let us know how we can improve it!
The post What do an Architect and a Neurologist have in common? appeared first on Gilded Octopus.
View the full article
 

Doomed Beginnings

I started the Doom game dev challenge. Wrote out all the things I'll need to make and develop. Like all project starts, it's still looking good. UE4 is the engine I've chosen. It will be fun getting that engine to behave more like Doom. So far I've created a few graphics (about 65% of them done so far). I decided, against better judgement, to make the enemies in eight different directions. This is for a few reasons, one is that I want the mobs to wander a bit until they see the player, and the other is that for the GemDev.net power up, I want to slow the mobs down to half speed, which would allow the player to move around them and I didn't want the mobs to always face the player. I'm only planning on doing three mobs for the challenge, a zombie, a demon, and a hell puppy. I dropped the detail from the original by about half, I hope that I can still get a good looking aesthetic. Also some power ups, an ammo box, a medium health pack, a medium armor pack, and the GameDev.net power up. I'm going to try to finish all the graphics this week, then start in on the programming. The hell pup took a lot more time than I wanted.

DavinCreed

DavinCreed

 

Interview with the #GameDev Behind Shores Unknown!

Your name:
Ilya Rudnev Twitter Handle/ Other Social Media: 
Personal: https://twitter.com/Irufufu Game: https://twitter.com/ShoresUnknown One interesting and random fact about you that people would not necessarily guess:I picked up most of my spoken/written English by playing online games, Diablo 2 and World of Warcraft to be specific. I also speak conversational Japanese. I picked up most of my Japanese by… playing more games and chatting in Skype to the person who is now my wife. What country you live/work in:
Japan The video game company producing the project:Vallynne The name of the project:
Shores Unknown Estimated release date:Q1 2020 on Steam and Nintendo Switch link to website/blog/steam page/Youtube/other:https://store.steampowered.com/app/899460/Shores_Unknown/http://shoresunknown.com/ How did you get into making video games?I started making games in early childhood, initially using pen and paper, then moving on to making maps in editors for games such as Warcraft 2. I was always fascinated by fantasy storytelling and dreamed of, at some point, creating my own videogame world.Eventually (in 2009, to be specific), I got a job in game QA, which was my first step in the professional game industry. 

What is your background in?I studied physics of plasma (seriously) for 3 years, then quit that and did another 4 years in business IT. Blurb about game:Shores Unknown melds tactical JRPG combat and Western RPG storytelling, dropping you and your mercenary company into the midst of a hidden war. On the run and seeking retribution, unravel the mysteries of the Murk – a wall of fog from which no ship has ever returned… Until now.
What inspired this game?Oh, many things. I initially started working on this project while learning UE4 to make a tactical RPG inspired by The Last Remnant’s approach of combat with its multiple player parties (it wasn’t supposed to have plot back then).As the project grew, core mechanics changed, we dropped the multi-party “indirect control”, and also decided to make it a story-based experience, influenced by classic RPG titles such as Planescape: Torment and Baldur’s Gate and literary works of Steven Erikson (Malazan: Book of the Fallen) among other things. What makes it unique?The game takes place in an original fantasy setting, in which it is implied that the world is heavily shaped by will and belief. That’s one of the main themes we wanted to explore in Shores – “how does a strong will affect the world, and what happens if wills clash?”We also designed our own combat system, which mixes some well known-concepts from other RPGs into an experience not quite seen before. It’s turn-based, split into two phases: order (in which you assign commands to your characters) and action (in which the characters resolve their orders automatically). The characters maneuver around the battlefield automatically, and, unlike most tRPG these days, there’s no grid. There’s a lot of focus on keeping the amount of micromanagement the player has to do minimal, and while the combat is turn-based, it’s still quite fast-paced and dynamic.

What will make it a success?We hope that Shores’ combination of original story, emphasizing player choice and consequences, beautiful music, colorful stylized low-poly graphics and engaging strategic combat will make it popular among the players! Who do you think it will appeal to?CRPG and JRPG players, people who like a good story, people who enjoy tactical games (but are maybe a bit tired of grid-based tactical games), people who like atmospheric experiences and medieval/fantasy settings. Number of people working on the project and skillsets:14 including outsourcers at the moment. I do game design/programming, then we have 3 scenario writers and 3 level designers, a composer, and the rest are 2D/3D artists. How are you handling art?General approach is create a 2D concept based on references that I provide, then transform result into a low-poly 3D mesh. In some cases, we skip the 2D concepting step and jump to modelling right away. In that case, usually we at least make a whitebox mesh to help guide our 3D artists. What tech/stack do you use?Unreal Engine 4 + Blender.

Are you full-time? If so how did you make the switch to working full-time in game development?I am, though most other members work part-tme. I quit a game company here in Kyoto in July 2018 in order to work on Shores full time, using my own saved money as well as funding provided by our publisher to keep my family afloat. Is this your first game? If not how many and what other sorts of projects have you worked on?This is my first indie title, but not the first game title I have shipped. Before Shores, I shipped 3 mobile games working in a game designer role: midcore strategy/RPG game in the same vein as Clash of Clans, a CCG based on James Bond license, and geolocation-based casual RPG (think a greatly simplified Ingress). I also worked as a game directior in VR R&D and helped ship a couple more games in something of a consultant role at my last company here in Kyoto.I also did QA on a number of games, including high-profile online (Aion) and single-player (Settlers VII, Supreme Commander 2, Just Cause 2) titles. What’s been the hardest thing about making this game?Keeping myself and the team motivated without burning out. Shores is a big title for a small team like ours, and it takes hard work to continue moving steadily towards the goal of releasing it while also managing all the feedback. Although I do my best not to force crunch on other members, I’ve had more than a couple of days where I had to pull an all-nighter myself, and that always comes with a price. Anything else you would like people to know about you or the game?Actually, we released a free public demo build in June 2019 which features the beginning of the first chapter of the game (about 1 hour worth of gameplay with a couple of branching choices). Although it’s a bit rough (the game is in active development and there’s still a lot of polish we need to add to it), we definitely urge people interested in Shores to give the demo a try. You can download it here:  https://gamejolt.com/games/ShoresUnknown/308235And of course, if you like what you see, please consider wishlisting the game on Steam as that helps us a lot with visibility on that platform. 
We also have a Discord server which we’re planning to use to run some closed beta tests later year, so consider joining that as well: discord.gg/q8VcWeB The post Interview with the #GameDev Behind Shores Unknown! appeared first on Gilded Octopus.
View the full article

Dev Diary #034 - Blender For Brains

Hello and welcome to this weeks Dev Diary! It has been a sincerely exhausting week, as learning the ropes with Blender has been all but convenient. And here is why;   Yet Some More Simple Lessons I started of with some beginner tutorials for how to make landscapes from heightmaps. I followed the said tutorials to the letter, but for some reason the shortcuts did not work, even when I did exactly, as the guy in the video, even re-watched from three to six times, to see every possible little detail that I might have missed. Well, it turned out, that the so called Beginner tutorials did require foreknowledge about the workings of Blender, as some skipped on what shortcuts to press in some stages and some outright cut off part of the video, where the method of selecting was not revealed. Only at fifth tutorial video, where the person in question used visual keyboard and had not cut content from the video, explaining simple way to make real 3D image from maps from start to finish. The little basic thing that all the other videos I watched had missed, was to press TAB in the Layout Workspace, which turn it into "Edit Mode", and only then you can select faces of the object. The intuitive way of unwrapping the object would be a simple one click in the object mode, which would select the object "in the right way" for the "U" shotcut to work. Or better yet, unwrap could be part of the right click menu, as it might be one of the most used functions in Blender.  Lesson of this is; always try to find tutorials on the user interface of the more complicated software, no matter how frustrating it might be. My impression from the hype behind the Blender 2.8 was that it should be even more intuitive than before, but apparently, it's still nowhere near intuitive enough to start using without more careful study of the basics - unlike with SketchUp.   The Alternative In the end, I didn't manage to make a working 3D terrain with Blender, even after working several hours with it, until late yesterday, when I had limited success, but nothing to show just yet, due to blender crashing with trying to subdivide the plane mesh to 60 and subdividing another 60 after adding the heightmap, so that the details would come out more. But to prove a point publicly, I started googling for SketchUp plugins - and today I found what I needed. A Simple tool called "Bitmap to Mesh", which turns any bitmap (or png) heightmaps to workable meshes. Here is the heightmap, while it is processing; And here is the ready mesh;   No extensive tutorials, only 6 steps; Draw > Mesh From Heightmap Context Menu > Mesh From Heightmap Context Menu > Mesh From Bitmap Choose the Start Plane Choose the Width Choose the Depth And after processing, you have a rudimentary heightmap, ready for you to tinker with to make it look more terrain like. The above picture is just a test of this work process and does not represent the end product of my tutorial journey. As you can see, the workflow was effortless and extremely beginner friendly, yet powerful enough so that even professionals can start their miracle working with ease. I would also like to press a point here; I found this plugin today and before writing this Dev Diary, managed to get done what I needed in less than a hour, with nothing but a simple few lines of written tutorial. Blender isn't a bad software, but has a much steeper learning curve and needs a much more thorough study of tutorials and getting used to before you can use it effectively. Yet it is a very powerful tool for developers of all kind, like a swiss army knife for a camper - a tool for quite much any job an artist or game developer could need, if they know or learn how to use it. Also to be fare to Blender, it is a humongous task to make something so versatile to be as intuitive as possible. 2.8 is a huge step in the right direction, in my opinion.   Conclusion I'm going to continue with my attempts to create a 3D world map for the RTS game - yes, I just can't shake that desire for a 3D game, even after saying that it would make more sense to do 2D first and touting that I would try to do a 2D (or 2.5D) game as my first release project. As much as I have dear memories from retro games, like the original Command and Conquer, Dune and the original Warcraft series, and even to some extent KKND (Krush Kill n' Destroy), I don't feel inspired by the thought of making a 2D RTS game in this day and era. Following the rationale of making a 2D game despite not feeling inspired by it doesn't seem right to me, as I wan't my first game to become something as enjoyable and easy to approach as a first game can be. I'm not expecting a masterpiece, but it would be nice to set the bar high enough for the game, so something bigger can come out of it at some point. Some developers are more comfortable with quantity of playable games they make, as it is easy to demand too much from the quality aspect, because many artists are more or less perfectionists. But I feel the most inspired by the idea of building a simple foundation for something much larger. Something that evolves through time and effort, yet offers something to do for the gamers and project funders from an early build. RTS as a genre would be perfect for this, as it has very simple foundations, but like other Real-Time -genres, can also branch out in near limitless ways. As a genre it does not appeal to as many people, as Action games do, but I will try to find a way to make something that feels unique. Thank you for tuning in, and I'll see you on the next one! You can check out every possible mid week announcements about the project on these official channels; • YouTube • Facebook • Twitter • Discord • Reddit • Pinterest • SoundCloud • LinkedIn •

ProjectTaival

ProjectTaival

 

GTD Videos

Add good links on GTD videos here. Please, use spoilers. David Allen's Top 10 Rules For Success GTD in Trello - Getting Things Done Tutorial David Allen - How To Get Things Done  

8Observer8

8Observer8

Musings on restarting development, and free alpha downloads

Hi all, It's been a very long time since i last worked on this project. Now that Mr Boom's Firework Factory has been released, i decided to turn my attention to other projects, namely this one that has sat languishing on my hard drive for many years now since 2015. On deciding to restart this project, I had to take stock of the situation, not only technically about how outdated the code was and how badly written it was, but also on how to build from what i'd learned with Mr Boom's Firework Factory. It's safe to say now that this previous game was a critical success, but pretty much a commercial failure - this isn't to say that this will cause any issues for me, as I was extremely careful not to "bet the house" and only spent small amounts on the development and promotion that i could afford to spare or even lose. On the flip side this meant that the community around the game was very small, not large enough to sustain it upon release. As such I decided that a change of approach was needed, if i was to recoup anything at all from such a huge and complicated project as The Seven Spells of Destruction, which is an open world role playing game inspired by the Fighting Fantasy novels of the 80's and 90's. The Release Approach and Timeline I decided that in the case of this game my approach would be to somewhat open up the alpha testing. For the next two years at least, I would have open and free alpha testing, with the game freely available via itch.io, and trusted close fans who had stuck with me throughout Mr Boom and retained an interest in this project would be given steam keys. On the subject of steam, i would set up a steam page as early as humanly possible, pay for the steam direct fee, and build a page within weeks of announcing that the game was restarting. This steam would bootstrap a much larger fan base into spending multiple years gathering wishlist entries. After two years, in August 2021, if development goes to plan, there should be enough features in the game at this point to flip the switch and move to a full-on steam early access model at a fixed price of approximately $12. This price has been selected as the price point other competitors in the open world genre are charging - this includes indies, with equal sized open world games, and also AAA studios selling their older back-catalog, e.g. Bethesda's Skyrim. Within five years of this release date on early access, I plan to complete the game to a condition that it can be called 'done', and make it an actual non-early-access release. It would be nice to pick up 3D artists along the way to help with content generation, but as with Mr Boom this isn't essential to my plan or schedule. As you can see, i'm currently using a lot of off the shelf art, and can do a lot with it, but i'm sure there are improvements that can be made! The results so far... I announced this plan a week ago today, and in the past 7 days, i have gained 30 alpha testers (it's easy to gain testers when the game is free!) who offer feedback regularly on my discord server. I have also produced a trailer (see below) which has been used to bootstrap the itch.io page, be included into the embryonic steam page, and used on woovit. The response has so far been far more successful than the initial similar one for Mr Boom. I've also run an ad campaign on facebook to build a following there, in the past week I have gained 500 followers on that network, who are responding well to the Seven Spells Of Destruction videos. Speaking of videos... The trailer With the limited content at my disposal, i have created a simple trailer to promote the alpha, and have distributed this on various discords and websites: As always, feedback on this entire plan, and on this rudimentary trailer is more than welcome, in fact mandatory! You will leave feedback... just kidding 😀 The plan going forward The plan now is to fix bugs. A lot of bugs had to be fixed just to get this far, let's not even get started on how much of a pain in the ass it is to upgrade a large project from Unreal Engine 4.10 to Unreal Engine 4.22.3, with a whole load of editor modules and a lot of C++, which also included an update from Visual Studio 2015 to 2017, and threw a lot of modern C++ warnings and errors. I've had to rejig the way the whole game displays, due to tone mapping, i've had weird bugs with the camera rotating as the player walks, I've had strange bugs where the player's sword and shield grow to the size of a car. Bumper sword's got nothing on that. I should have captured a video as it was possible just to walk through enemies and slaughter them due to the size of the sword's hit box and the speed of movement of the edge. Please do let me know what you think of this plan, and if anyone wants to offer any kind of help, well you know where to find me. For those of you who want to actually try out the alpha, you can download it on itch.io. Thanks for reading, everyone!

Brain

Brain

 

Snake - The game menu

The game menu is coming along quite well.  You can interact with the menu items with the keyboard or mouse.  It highlights the focused item, and shows some descriptive text along the bottom.   I'm actually quite pleased with the way it's structured as well...  though I'll admit to having quite a few frustrating moments fighting with the C++ STL classes. 🤣  For the game options, I'm going to implement a simple slider UI -- that'll be the next thing to tackle.  Once I have that, I should be able to blaze through the rest of the game options. There's a whole lot I could say about how I structured the menu, but as I have to head off for family stuff right away I'll just let the latest GitHub commit do the talking!

rileyman

rileyman

#WeekInReview

Week In Review: ‘The Mill’ and shaders, shaders, shaders… Let’s bring you up to date with our weekly summary! Visuals Second scene ‘The Mill’ Main character design and animation in progress Sprite distortion via shaders for dynamic wind visualization Shader for 3D mist effect Dithering shader for new field of view visualization Unity Implementation of our second scene WeatherManager refactoring Manual and dynamic weather feature LockDirection feature for upcoming combat system Learn the ropes of shaders Several fixes and minor improvements Combat system performance boost Combat system in progress Character editor in progress   Check out our recent weather teaser and don’t miss our main character revelation on next #ScreenshotSaturday! Take care!   http://rubikon.dev
https://www.instagram.com/rubikongame/
https://www.reddit.com/r/Rubikon_Game/
 

Rubikon

Rubikon

 

Snake - Moving on to game options

The most basic version of my SFML "Snake" clone is now playable, including background music and some rudimentary sound effects.  (The "eating an apple" sound was literally just me making a mouth sound.  I guess that makes me an "ASMRtist"?) I tagged this as "snake_1_0_0" over on my Github repository. Now I'll be moving along to adding game options.  Everything in the image below is still part of my "phase 1".  I'm happy with where things are at, but also slightly bummed because it'll be back to my regular job in a few days. 😥   Some things I feel I'll need to improve upon when I get to "phase 2" (the story mode with level progression)... Loading and managing assets.  So far I've done this with member variables for music, sound, and textures.  If I want to be able to improve the graphics, and perhaps include animations, I feel I'll need some kind of asset management structures. Spawning game objects.  Spawning of the apples is also controlled by two member variables:  "appleExistsFlag" and "applePosition".  That approach definitely won't scale well if I want to have, say, multiple apples or a row of carrots pop onto the field. The "QuickGame::update" method is kind of getting out of control.  Now that I'm typing this, I think I'll add an issue for that over on Github so I don't forget...  

rileyman

rileyman

Unity Weekly Updates #58 - Building the level... please wait!

Well, look who's here! it's you again! And yes, this is your favourite Weekly Updates blog! This week has been quite busy in refactoring. I reworked a lot of code to make my title card much more responsive and fluid. It was a technical feat (at least for me) but the results are worth it! Aside from that there also a bit of bugfix among other things. But anyway, there's a lot to cover so let's get this thing started! Fluid Title Card First, I continued implementing my title card. The challenge here was to correctly identify the code that can be isolated and refactor it to make it run on a secondary thread. With a little code reading, I discovered two pieces of code that could be isolated: the generation part and the rendering part. Level Generation The level generation code being identified, I was able to isolate it and make it run on another thread. By reusing my threaded .mp3 file reading code it was rather easy. Next, I just changed the return value of my level generation function to an IEnumerator, thus effectively making it a coroutine. Afterwards, it was just a matter of adding a yield expression to wait for my thread to finish and that was it. Mesh Generation However, there was a problem. Unity is very strict in terms of multi-thread. This means no access to MeshFilters from secondary threads. To remedy this, I had to refactor my level rendering functions so that they also use coroutines. With a few well-placed yield statements well placed I was able to avoid freezing the title card significantly. Admittedly, this caused some other problems such as reflection probes that would render at the wrong time and whatnot but nothing impossible to fix. The Result With that big refactoring, the title card can continue to animate without any problems. Here's a short video showing this off: The Bank Room Second, I've also implemented the game's bank system. For those who forgot, players can encounter a bunch of special rooms during a run. Each special rooms got their own purpose. If players encounter some padlocked doors and have at least one key, they can open it to find out which type of special room it is. One of these special rooms is the bank. With this room, players can deposit or withdraw money into a savefile-persistent bank account. While depositing money is free of charge, withdrawing some, however, isn't. Each bank has its own transaction rate. Depending on the player's luck, the rate can be between 25% and 75% of the amount to withdraw. Each bank has two windows: a green one (deposit) and a red one (withdraw). Players just need to walk-up and interact with the window they want to use. A popup then appears. For the green window it this popup appears: The player only has to enter the amount to deposit. When the field changes the popup updates the total amount in the bank after the operation. And for the red windows, this one: Here, the player is asked for the amount to withdraw. The popup also specifies the banks' transaction rate. Then there is also the total amount remaining after the transaction. And that's about it for banks. Minor Updates Added a new Memphis texture to the title card blue strip General optimizations and code readability upgrade Many quality-of-life refactorings Added a bunch of helpful ToString functions. Fixed a bug where reflection probes weren't placed right Optimized and refactor a bunch of GUI elements Upgraded the reflection probe resolution. Next Week I'm planning to check if there's any other room that needs to be completed first. I'm also planning to work on my GUI. According to the profiler, most of the slowdowns appear to happen with the GUI so a good optimization is in order. Aside from that I also want to start implementing many other relics, even perhaps modelling some too. After all of this, it's brainstorming time! And finally, it's your usual suspects. So yeah, that's about it for this update! See you next week!

jb-dev

jb-dev

 

Communicator up and running

Hey all, I just got my communicator working. It's not glamorous art, but it's good placeholder for now. I have 4 counselor robots for the 4 pillars of the game: Build, Navigation, Research, and Military. The communicator blinks a button when we queue up a dialogue. The screen will then fade to the dialogue screen, where we display the character portrait, and run through the dialogue. Lots of placeholder art. We run through the dialogue, we have lots of choices in the bottom portion of the screen when we get to options, and when it's done, we go back to the last screen we are on. The DialogueDB keeps a dictionary of all the dialogue in the game, and we send it an enum to pop out the dialogue. The dialogue is queued with the respective counselor button, so if we get 3 messages at once, we will run through the dialogue when the player wants to deal with the messages based on which one came first. If there's more dialogue, the communicator will pop back up and the player can choose to run through the next dialogue. So the next part is something I've spent all week trying to figure out how to handle. How does the game know when there is dialogue? I've thought alot about the observer pattern, but how do I hook up the observer pattern all throughout my code? I want dialogue to trigger when certain events happen. I want dialogue to trigger when you max out your resource stores and lose material. I want dialogue to trigger for ANYTHING. So how do I have my code listen in throughout without using monobehaviors and also not violating SOLID principles or the state of objects or anything that could possibly go wrong? I came up with an idea to have a DialogueTrigger class. This is something I think I'm willing to sacrifice some SRP by having these triggers inside the classes of my Colony Map, or map tiles. For instance, if we max out our storage, and we are now not being inefficient, we will call the dialogue trigger class. Inside the trigger, it can count down, or if it's just an event, it will trigger the event. This will send a message to our dialogue database to trigger a dialogue, and then my dialogue system handles it from there. So I can have these "portals" with dialogue triggers. The code doesn't know what the trigger is, it just sees a trigger and calls it. The class itself decides when to send the dialogue. I really can't think of anymore elegant solution, so this is what I will be going with for now. Visual Studio is actually pretty good about keeping tabs on when these dialogue triggers are called from, so if I need to remove them, I'll have an easy reference back to them. So the first step to game flow is to get these dialogue triggers working, which honestly shouldn't be hard, and then start polishing the game flow from start to finish...what do I want the player to see or do? This will be the next step to getting a playable prototype to start running it by some gamedev forums.

KrisWolfe

KrisWolfe

 

Event system

When I realized that the classes are getting really big and complicated, I splitted them into smaller classes. So the Actor class doesn't do everything anymore, but has some components that do the work instead. A Common problem with this approach is, how do Compositors (in this case the Actor) and Components communicate? Some might say they shouldn't communicate at all, use something like an ECS etc. I looked at ECS et al., and they may be fine when you design your application around it, but I didn't. Up to now I just friend'ed everything and called private methods, but that doesn't seem to be very elegant. Another approach is some event/messaging system. So interested parties subscribe to interesting events, and other may trigger those events. There are many such event systems out there, but all seemed to be too heavy for me, so I made a minimal implementation of such a system. I think this implementation has some Pro's and many Con's: Pros Type safety Event function can have any signature even with return value. The `CallOne()` and `CallAll()` functions returns the same type as the called function (or a vector of it). You must define at compile time the signatures of functions your a going to call, and you can not call anything else. You get a compile error when a function signature is not found. A called function may be a `std::function` or Lambda. No inheritance needed. Single header file `events.h`, only ~110 lines. Minimal run time overhead. Cons Function signature must be passed to each call of `Subscribe()`, `CallOne()` and `CallAll()`. You must define at compile time the signatures of functions your a going to call If you do anything wrong (e.g. wrong function signature), you get weird error messages Increased compile time, because a lot is done at compile time. But what you can do at compile time, doesn't have to be done at run time. You can not unsubscribe from events :(. Examples Lambda sa::Events< int(int, int) > events; events.Subscribe<int(int, int)>(1, [](int i, int j) -> int { return i * j; }); auto result = events.CallOne<int(int, int)>(1, 2, 3); static_assert(std::is_same<decltype(result), int>::value); assert(result == 6); Lambda 2 sa::Events< int(int, int) > events; auto func = [](int i, int j) -> int { return i + j; }; events.Subscribe<int(int, int)>(2, func); auto result = events.CallOne<int(int, int)>(2, 4, 5); static_assert(std::is_same<decltype(result), int>::value); assert(result == 9); Event not found When an event does not exist or nobody subscribed to the event it returns a default value, e.g. `0` for an `int`: sa::Events< int(int, int) > events; events.Subscribe<int(int, int)>(1, [](int i, int j) -> int { return i * j; }); auto result = events.CallOne<int(int, int)>(2, 2, 3); static_assert(std::is_same<decltype(result), int>::value); assert(result == 0); Methods class Foo { private: sa::Events< int(int, int) > events; int Bar(int i, int j) { return i * j; } public: Foo() { events.Subscribe<int(int, int)>(1, std::bind(&Foo::Bar, this, std::placeholders::_1, std::placeholders::_2)); } int DoBar(int i, int j) { return events.CallOne<int(int, int)>(1, i, j); } }; Foo foo; auto result = foo.DoBar(3, 2); assert(result == 6); Different signatures sa::Events< int(int, int), bool(int), void(void) > events; events.Subscribe<int(int, int)>(1, [](int i, int j) -> int { return i * j; }); events.Subscribe<bool(int)>(2, [](int i) -> bool { return i != 0; }); events.Subscribe<void(void)>(3, []() { std::count << "No arguments :(" << std::endl; }); auto result = events.CallOne<int(int, int)>(1, 4, 5); static_assert(std::is_same<decltype(result), int>::value); assert(result == 20); auto result2 = events.CallOne<bool(int)>(2, 5); static_assert(std::is_same<decltype(result2), bool>::value); assert(result2 == true); // void events.CallOne<void(void)>(3); Multiple subscribers sa::Events< void(const std::string&) > events; events.Subscribe<void(const std::string&)>(1, [](const std::string& s) { std::cout << "Subscriber 1 " << s << std::endl; }); events.Subscribe<void(const std::string&)>(1, [](const std::string& s) { std::cout << "Subscriber 2 " << s << std::endl; }); events.CallAll<void(const std::string&)>(1, "Hello Subscribers!"); Should print: Subscriber 1 Hello Subscribers! Subscriber 2 Hello Subscribers! Conclusion I was able to get rid of many virtual functions and the classes got lighter. But the usage is a bit cumbersome, because you always have to pass the function signature of the event as template argument, but you get type safety in return. Download Get it from the Github respository if you are interested (MIT).

trill41

trill41

#ScreenshotSaturday

Last week was mainly influenced by shader work and bringing the mill to life. The sunset hits the land when we arrive the farm. But there is nobody home yet...
Maybe our real character will find him on next #ScreenshotSaturday? Check out our second scene with weather effects.
  http://rubikon.dev
https://www.instagram.com/rubikongame/
https://www.reddit.com/r/Rubikon_Game/  

Rubikon

Rubikon

Unity Fragment’s Moonrise | #19 Open World Design in an RTS, Part 2

Welcome to our nineteenth blog post!   We welcome you back to the second part of our Open World system. If you missed the first part and would like to check it out, click here. We’ll be continuing on from there. ---     We must first begin with our Map Generator- we’re using a fairly interesting algorithm that allows for very organic shapes being randomly generated, with some (but not perfect) persistence via a Seed. This algorithm is known as Cellular Automaton (or Automata), and its quite an old, yet intriguing algorithm. The core algorithm is simple: randomly generate a series of 1s and 0s (1s representing Walls, 0s representing ground tiles), and over a series of iterations, determine which neighbors are “most like each other” to essentially get a very organic cave-like system. A simple definition means that a tile becomes a wall if it has 5 of its 8 neighbors as walls (well, the majority of its neighbors are walls). By repeating this process a few times (but not a lot of times), we can get a fairly good shape structure created.   There are some great resources online for a general algorithm for this, like the ones on RogueBasin or TutsPlus, in addition to the dozens of other resources and generators available already. But a fantastic Unity-specific one was done by a guy named Sebastian Lague- if you’re interested in coding, especially with regards to Unity, you should definitely check him out. Here’s a link to his series. This project, Fragment’s Moonrise, is using a heavily modified version of the central idea behind the Cellular Automata algorithm, to of course fit our needs as it pertains to the project. There’s a series of things we need to ensure and enact in order for the algorithm to actually work and maintain stability.   The first is absolute connectivity- our maps are guaranteed so that any “island’ is connected back into the mainland, so that all of the world is traversable. This is, of course, checked over to ensure there is no terrain that cannot be reached. We merely look for segments of unconnected land, and merge them into their nearest neighbor.   The next is assembling the series 2D sprites, and to do this one, we need a little bit of help from Unity to fully complete. This is because a 2D map like this, especially one containing a 200x200 array of tiles, needs use of Unity’s Tilemap system in order to function and still achieve 60fps+. The Tilemap system essentially converts our array of tiles (GameObjects) into a single sheet, while still allowing it to be editable (which will be important when we begin adding in the Passageways). This single sheet genuinely converts thousands of GameObjects into pretty much just one, saving lots of memory, and greatly improving performance. Link to basic Tilemap. Link to a short tutorial.   The last modification is to pair our generated Map as to work with our Pathfinder. We’re currently using Aron Granberg’s A* Pathfinder as its an incredibly smooth and very fast algorithm. More info here. To perform the pairing process, we just need to ensure that all our tiles denoted as a Wall are referenced by the Pathfinder so the Pathfinder understands that terrain cannot be traversed. This means, as part of the tilemapping process, we need to still have the impassable tiles denoted. ---   Those are the core algorithms we are using to assemble and use our Maps. We decided to go with the Cellular Automata algorithm to give us a fairly open, yet dense land, and, more importantly, to give us a system of randomization so that no two maps are the same. This is key, for the game will definitely feature a good amount of replayability. In addition, the straightforwardness of the map generator allows us for easy modification as we see fit. Maybe in the future we’ll develop a much more varied and significantly more seamless open world system (something that can be done without the use of nodes, alongside an altered map generation system), but for now, this seems like the best base for the game. Now, let’s see how we’ll be tying our Map Generation in with our Node Generator to complete our Open World. Given that we have full access unto our map generator and tile system, as part of the generation process, we now begin to spawn objects we’ll be calling Passageways.   Passageways have some unique characteristics about their generation- first and foremost, when looking at our Node Generator, you’ll notice that no Node is aligned to a grid: their all free-floating. This is critical to represent in the game world, as the Node Generator and the real Maps player will be exploring need to be in sync. So, the first thing we must do is examine two connected Nodes, and determine the angle between them.   Using basic trigonometry, we can figure out the angle, in degrees, and utilize that degrees to determine our spawning location for the Passageway (its a simple "determine the angle between two points" sort of algorithm). We want to place the Passageway in the appropriate spot in the world so that it represents what the player will be seeing in the Node Generator.   By treating our Map as a Circle, we can utilize the angle adequately in order to spawn our Passageways. By simply treating the angle as a ‘vector’, and traveling along its path to the edge of the Map (noting that the ‘center of the circle’ is the center of the Map), we have now found our spawning location (and, upon placing it, we can carve out the part of the Map back to the first walkable tile) Now, with our Passageways spawned, we can correctly hook them up. The logic is straightforward- when player gets near the Passageway, they are allowed to activate it, and upon doing so, they are brought to the next Map. Now, why didn’t we just take the significantly easier approach and align everything to a grid? The answer is just that- then we’d have to align everything to a grid. This approach gives us a significantly more organic system that’s much more fluid for exploration. Its much more expansive, and lends itself to additional uncertainty and unknowingness from the player as they explore the world. Implementing a grid system and our node system would have likely taken equivalent amounts of time to complete, and our node system gives us a much, much better result both aesthetically and functionally. This Passageway system allows for a nearly-seamless interpretation of an Open World while still retaining the core aspects of a Real-Time Strategy. The system is based around a series of Maps, but instead of loading them seamlessly (based on player position), we load them upon Player’s request. This gets us around the issue given that the player can have a multitude of Units, each going a different direction, and ensures stability with a solid framerate. There are some ideas we may play around with to get our system even more seamless, but as it currently stands, this is the best solution that still allows great performance. ---   Lastly, something we want to touch on briefly is our aspect of Time. Time is critical, as our Maps are loaded in a single state, and unloaded when not used. We need to ensure things still ‘function’ as they would in an Open World (notably, with Player’s Home Base) without the need for having things loaded at a given instance. We can do this simply by timestamping things at specific moments, and retaining that across both Maps and also sessions (in which Player stops playing, shuts the game down, then restarts it at a later point). In the next part, we’ll go over how this will be explicitly used in regards to Player’s Home Base (the area we want Time to be persistent in), alongside go over some of our convenience features, like world traversal and teleportation across the maps. ---   Thank you for viewing our post! Support and interest for the project has been rapidly growing ever since we began posting here, and we're incredibly grateful for all the wonderful feedback so far! We hope this project interests you as much as we love developing for it, and please look forward to more updates coming in the very near future! If you’re brand new, consider checking out our trailer and overall description of the game here.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!