Leaderboard
Popular Content
Showing content with the highest reputation on 02/28/2016 in all areas
-
I can gibberish, too
noghiri and 2 others reacted to Fluffy Cupcake for a topic
Slowed down original audio -> imitated it -> speed up imitation -> resulting video How's your gibberishing skills?3 points -
Interesting Title Goes Here
Lind Whisperer and one other reacted to McJobless for a topic
So, it's time to talk about some of the initial design challenges of this project. Because I've been carefully planning out my work before starting, I've realised where a lot of difficulty will lie. Firstly, here's an overview of the code classes I've planned which I think I'll need. Right now, this is only for ACTOR types (i.e. objects that are spawnable in-game). That's probably very complex, but keep in mind that it's not finished. There's still many scripts I need to plan out for specific world objects, and I haven't even detailed the System/Data scripts yet that handle all the behind-the-scenes code. For the time being, there's some key things I want you to look at: Issue 1: Splines & The Grindrail Problem A spline is essentially a "curve in 3D space", In laymen's terms, it's an invisible line that another object can follow. These are frequently used in applications like Cinema 4D or Maya to make certain characters follow a specific path when they're animated, but lines themselves are also used in 2D programs like Illustrator to make text flow in a specific direction or what not. Default Unity doesn't have support for Splines like engines such as Unreal. This isn't necessarily a bad thing, except for the fact that the Ratchet & Clank games use a lot of them to define how different objects get from Point A to Point B. The good news is that making a simple spline should be easy; the Spline class will require several Vector3 "points" that form your line, the speed that the object should travel and the object that is attached to the spline, and then the code will just interpolate the "attached" object between each point once it's triggered. That's simple, right? Well, it gets complex with Grindrails. In Ratchet & Clank, there's a rather famous mechanic called "Grinding", where Ratchet jumps onto a hard edge and will slide across it until he either jumps off, reaches the end or is forced off. Grindrails are allowed to defy gravity, and the player is often required to jump between two adjacent Grindrails, which plays a special animation and attaches Ratchet to the second Grindrail with the same speed as he was originally going. The issue comes with the fact that simply interpolating Ratchet across a spline (which are used for rails) will prevent the player from being able to control Ratchet's speed, direction and jumping, and it will also stop Ratchet from making the appropriate jump animation when he is hit by enemy fire while on a Grindrail. Since this is a major mechanic, it needs to be addressed. The solution I'm proposing is "Movement Modules"; these are interchangeable classes that handle specific parts of character movement. The idea is that the Grindrail Movement Module is built to specifically interface with the Spline class and can pass/receive data from it in order to make additional judgements about how Ratchet should move. For example, if the player presses forward, the Standard Module would move you forward and play a specific animation, while the Grindrail Module will simply increase speed. Similarly, the Grindrail Movement Module could interrupt and freeze the Spline's interpolation functionality if Ratchet freezes or cancel it if Ratchet is jumping off the rail. Issue 2: Seeker Tony Garcia developed the Seeker system supposedly to solve a lot of issues with Ratchet & Clank's AI design. Specifically, each level had an entirely different AI system coded specifically for it. Seeker was supposed to be a nice generic AI system that, with a few hardcoded scenarios, could handle most problems. The issue for me is that...I don't know what "Seeker" is. Instead, I've decided to tailor Seeker to what I think I'll need, which is a condition-evaluation system. What I'm specifically getting at is that there will exist an enum with a list of possible events. While AI units can individually make judgement calls on small items (such as "Is there an object directly in front of me that will prevent me walking forward?"), every time an AI unit completes a task it can pass back to the Seeker class. Seeker will then determine (for the individual AI calling it) what condition that AI is in, and return the enum value. Each AI unit can then act according to the enum it gets back. Obviously, I've never programmed AI before, so this is probably way off from a correct solution, but I think I'm on the right track. Theoretically (in my mind), an AI works by sorting through tasks; it completes or cancels a task, evaluates what further works need to be done, and either gets a new task per conditions or then defaults to an "idle" state (which in my framework would be taken from the level, as AI in some levels might need to act differently to other levels when they have nothing to do). Each AI can handle collision checks and basic avoidance locally on a frame-per-frame basis, but since some condition checking might be really slow, it'd be good to only do that when we really need to. The one issue I've thought about is pathfinding; I assume this is the hardest issue of any AI system. My idea is partially derived from Unreal; the developer can place collision volumes that are keyed to a specific "Channel ID" which AI are linked to; when an AI unit or Seeker is preparing tasks, they will lock all their tasks to inside the relevant collision areas. For example, if an AI unit wanted to move to get a better shot at the player, they would need to choose a random position that isn't just clear of an object, but also falls within the valid collision spaces. One condition I've been considering is "What if an enemy was to move outside their valid collision areas?". Right now, I think the easiest solution is to kill them; this could potentially solve enemies getting stuck below the ground or out of an arena preventing the player from continuing forward. It's something to deal with in the future, however. Issue 3: Multiplayer Replication One concept I haven't even considered yet is Replication; i.e. the ability to replication objects and data on multiple connected clients. Ratchet & Clank 3 has an Online, LAN and Splitscreen Multiplayer mode, and while they're not the real meat I would assume most players and developers would be interested in making a multiplayer shooter out of the Ratchet mechanics. This mode was in development for the full length of the Singleplayer campaign mode (I'm fairly certain), and while this is rough speculation, I'd guess that a lot of it was written using adjusted Ratchet & Clank 2 code. That's not a bad thing and it doesn't change much, but multiplayer in general means special considerations need to be made. One thing to consider is how much data is being transmitted every tick (a tick is a single send-and-recieve transmission of data between a client and the host, which are measured as ticks per second in the form of Hz; i.e. Counter-Strike: Global Offensive uses a tick rate of 64Hz). If you send more data than either the incoming or outgoing bandwidth can handle, the latency increases and this causes lag, which all know too fondly and which we all want to avoid. That said, if you only pass critical data (like position and what weapon the player just fired with), you can start having problems where the players exist in two different versions of the world. Ratchet & Clank 3's multiplayer maps feature some dynamic prop elements, including the standard crates, bridges which can be destroyed for a tactical advantage, and the worst of all, AI. There's a lot of issues in networking with reference to security. For example, if you allow every client unrestricted read/write access to replicated data about a player's health, any client could cheat and change that value to be more or less. A lot of data replication involves read-only values, and the host handles most processing to keep things fair. This is where the big issue is; what is Ratchet & Clank 3's server model? How is a fair Host decided, and what data is allowed to be replicated? In the example of the bridge destruction, is the entire animation state replicated over network, or does the client simply get a message that says to destroy the bridge? What happens when a player joins the game after the bridge is destroyed and misses that message? I've worked with networking in Unreal, so I've got a few solutions under my belt, and Unity does have a giant chunk of Networking-related functionality built-in, which means that all I really need to do is sit down, plan it out, and actually play a few rounds in the real game to see how the model feels in the real world. Issue 4: Spherical Worlds (and the Grav-Boots) Referred to as such by the Ratchet & Clank developers, this physics anomaly is like a much smaller scale of the Earth. Almost all video game levels are planes with elevated or lowered terrain, and this is usually the ideal design approach as it makes physics calculations simple since jumping and weapon projectiles don't need to adjust to the curvature of the terrain. This doesn't apply to the Spherical World levels, which will likely make me rip all my hair out. Before we get onto Spherical Worlds, let's look at the Gravity Boots and metallic surfaces. The Ratchet & Clank games have several unique paths that require you to use the Gravity Boots; these allow you to remain attached to the metallic surface of a path even if it means you'll be walking upside down or in other weird configurations. It sounds simple, right? Just turn off the "Affected by Gravity" property of a character's physics component. This, however, causes an issue: Ratchet & Clank supports double-jumping. Even one jump is an issue, but two? In Ratchet & Clank 2, the solution was to disable jumping. In Ratchet & Clank 3, the player could jump once and still snap back to the metallic surface. In either case, if the player leaves the metallic surface in mid-air, the game will attempt to right them before they hit the ground. None of this is simple, but it's not impossible either; just a lot of tweaking. The problem I'm most worried about is more present in Spherical Worlds, however; as I mentioned above, when you have a spherical world, projectiles need to defy gravity and remain attached to the curvature of the terrain. This also means that lazers need to bend into a curve. Unique to Spherical Worlds is that every object cannot fall off the world, no matter what point of the world you stand on. Thankfully, I'm not the only one who has dealt with this challenge; there seems to be a few tutorials and example code bites which I can learn from where people have grappled with similar problems. I'm certainly not looking forward to it, though, and it seems like the Ratchet & Clank developers didn't enjoy it very much either.2 points -
Sounds+
The Ace Railgun reacted to Fluffy Cupcake for a topic
Sometimes, I like to relax and listen to the ambient sounds of a game's audio, but there are times when said audio has noticeable key points in looping audio, or the audio is just non-existent altogether. So now here I am creating a mod that not only updates the audio by "improving" it, but also adding it to places where it never existed before! I highly recommend being in a quiet environment whilest watching for the full experience. This mod is still a WIP, and I've only gotten the first world done as well as a few common sounds, but I do hope to eventually tackle the rest of the worlds too! Notes: *Since the video I have lowered the rain volume as it was a bit to intrusive. *I'm not sure what to do with the beeping at the science lab/Xalax portal (shared) at this time, I haven't really had any luck finding any suitable soft beeps. Downloads Sandy Bay+Misc: http://www.mediafire.com/download/5f78gvw2ymyzyjs/Sounds%2B.zip WRL Injector (unless you want to use a hex editor to install the above file): http://www.mediafire.com/download/x4zlkl101uc0ptz/WRLInjector.bat This program injects WrlSB files into Sandy.wrl, WrlDI files into Dino.wrl, WrlMa files into Mars.wrl, WrlAr files into Arctic.wrl, WrlXa files into Xalax.wrl. The .bat and Wrl[World] files need to be in the same folder as the WRL, otherwise nothing will happen. If it isn't working, make sure the WRL file isn't in a write protected folder! (You may need to move it to desktop)1 point -
Interesting Title Goes Here
STUDZ reacted to McJobless for a topic
I'm going to ramble for a bit; if you're looking for a game, piss off and come back in 6 months or more. This is a progress log/diary for a little something I'm going to start doing. I'm going to keep coming back with information and screenshots whenever I make something happen. Read on for more info. So, I'm always ripping on other fangames...I guess I need to go ahead and prove my worth, huh? Before I start on what's going on, let's get a few thing straight. Either read the spoiler if you intend on posting, or be labelled a twat forever-more. Now that's all out of the way...McJobless, what the f**** are you doing?! That's a great question, and here's the two phase, idiotic and baffling plan that I've been thinking about for a while. - WHAT AM I DOING - Phase 1: Make a "World of Mechanics"... I know it sounds absolutely ridiculous, but carefully follow along. The first goal of this game is to practice programming game functionality. The best way to do that? Copy other games! That might sound a bit cheap, but hear me out; every game we have today is built off the backs of the work from those before us. You couldn't have Halo without Wolfenstein, and even World of Warcraft has roots in Chess. Learning to read and implement previously made mechanics is a fantastic way to experience the process of making them from scratch; the difference is that you have a very clear, replayable example of what you want to achieve that you can study. You look for all the tiny rules, bits of polish, and even try making changes and improvements. There's one game I've wanted to remake the mechanics from for a long goddam time. That's my favourite game, Ratchet & Clank 3: Up Your Arsenal. The game has a wonderful mix of third person shooting, platforming and puzzles. The actual mechanics that go in to these games are small, manageable pieces that link into each other, which is great for learning and playing with Object-Orientated Programming. Just today, I sat down and jotted down a page worth of work on how I'd organise the various weapons, gadgets and enemy items in a hierarchy of objects. This will not be easy, it will take a long time, and there will be a lot I don't attempt or give up on. For example, I will likely not try and code Ratchet's animation system, or the Plasma Whip's physics system. I also imagine I'll give up on the Tyhrranoid AI at some stage (in a developer commentary, Tony Garcia noted that he developed a pathfinding system called "Seeker" that handled most cases without hardcoding), but the important thing will be trying. I have a lot of resources at my disposal; multiple versions of the game with multiple saves spanning different levels, the PS2 emulator, YouTube Let's Plays, the Developer's Commentary, the Wiki and much more. It's just a matter of getting to work. If you asked me; the ultimate goal of this phase is not just to straight rip Ratchet's mechanics, but to start building a library of mechanics from multiple games which I could turn into generic libraries that I could import into future projects. I'll likely start finding other games that I might want to borrow mechanics from (such as KotOR's dialogue and reputation systems), and I might even come up with my own stuff to build (I want to really refine my own localisation system I've built). Phase 2: Make a LEGO Game with those mechanics... Here's the real knife twist. I've blabbed on a lot about how much I don't think anybody else has made a good "LEGO" game. Maybe I should prove I can make one? It'd also be nice to actually create a decent LEGO fangame, since that side of the fanbase seems to be lacking... I'm not making any plans for this before I know what mechanics I have at my disposal. The idea here is that I can switch entirely to design, pick some mechanics I think would be a good fit for the LEGO values, and then start producing something. I'm not expecting anything amazing from an aesthetic perspective (I'm not an artist or an audio designer, mind you), but so long as I can nail the game from a mechanics stand-point (and maybe even throw in a half-decent story), I'll be content. Now, this phase is the one I'm really not putting any expectations on. I may not even get here in the long run. It's just a long term goal that's supposed to get me motivated and practising for what I can do. At the end of the day, I may go on to make my own game that I can sell, but I don't see why I should discuss it this early on. This is just another far and off goal to think about it amongst the other work. - HOW AM I DOING IT - Well, this is essentially project start, but it's not like I'm completely empty at this point. I've already produced the basis for one mechanic in Unreal; there's an enemy weapon that's used frequently in the game which spawns a large number of missles around and at the player from the sky. The issue I have with Unreal is that...it's not that great for my purposes. I have no clue where to start with the C++ intergration, and Blueprint is just too painful to go back to after months of working with typed code. That's why I'm now jumping to Unity; I reckon that if I can really push my C# skills, it's going to make the eventually planned transition to C++ a lot simpler. C# might lack constructs like pointers, and may have additional features like Lists, but the logic is really what I'm testing, and at the end of the day it's much closer to C++ than other languages. I'll be starting with the weapons. They have shared properties, so I can develop a class structure, and each weapon has its own unique mechanic to deal with; there's nothing super complex, but interesting little challenges that will take some time. I also figure that I can build these items without player interactions just yet, and I think the player would be a very complex system to deal with (and I don't plan on using Unity's prefabs; I need to learn how this stuff works for myself). The good news is that the weapons have pretty particle effects, and so I'll be ducking into shader code at some stage; that'll hopefully make for some pretty screenshots. Because I have access to services like Mixamo, I might just be able to put in some rough animations and other polish to better help my work, but I'll consider that kind of stuff low priority. Any time I make headway, I'll post here and on the Blockland Forums. I'll also be posting code snippets for the experienced coders to pry and laugh at, and the young coders to learn off. I'll do my best to comment. Screenshots and videos will be a must, as that forces me to produce more and work harder. - WHEN DO I START - Well, it won't be bloody tonight, I tell you that much. Since this week is preloaded with the Disney-Pixar Masterclass and my overdue Character Design homework, I'll hopefully start on Monday afternoon with a simple weapon, such as the blasters or shotgun. Feel free to nag me about working on this more; I'll need it.1 point -
building a computer for 500$
dsdude123 reacted to Dazzgracefulmoon for a blog entry
HI GUYS today i'm gonna talk to you about me building a new computer for just 500$;, let's get to the parts: AMD FX-6300 3.5GHz 6-core CPU MSI 760GMA-P34(FX) Micro ATX AM3+ Motherboard G.Skill AEGIS 16GB (2x 8 gb sticks duh) Memory EVGA Geforce GTX 960 2GB SuperSC ACX 2.0+ GPU Thermaltake Versa h25 Mid tower case Thermaltake SMART 650w 80+ Bronze Certified ATX Power supply Total price: 466.66 (without shipping) now I could do a bit better with the CPU and upgrade my video card from 2gb to 4gb but in the end for the cpu isn't compatible with the motherboard so It'd overall be more expensive than what's past my price range as of now I have one major goal: Run most modern games in 1080p 60fps in high settings I'm ordering the parts today and they should come soon so I'll benchmark and give you guys the results SOON ok?1 point -
I can gibberish, too
Ben24x7 reacted to mumboking for a topic
I just extracted the LOCO files to find the sounds but they are unfortunately some of the many sounds that aren't playable... I had a quick mess around in Audacity but I couldn't get them to work.1 point -
Interesting Title Goes Here
Lind Whisperer reacted to Ben24x7 for a topic
It's great to see you are planning ahead. Most immature people, like myself, would dive into a project and when any issues cropped up we would not be prepared to face it. You haven't just decided to work on mechanics over aesthetics in the first stage, but you are looking at potential issues before you even begin work, and calmly thinking it over until you reach a sane solution. This is clever. I can tell that this project is in good hands, and I sincerely wish you the best of luck with this. --Ben24x7--1 point -
Roller Coaster Tycoon 2/OpenRct2 Parks Screenshots
Ayliffe reacted to RobExplorien for a topic
We've made it:1 point -
I can gibberish, too
noghiri reacted to McJobless for a topic
You are a talented man, and it is depressing to see you waste your live like this. What has our world come to when the youth these days would rather make parodies and imitations than spend their time playing piano or doing heart surgery? I hope you're happy.1 point -
Terrev=Jamesster?
ProfessorBrickkeeper reacted to McJobless for a blog entry
This is a giant conspiracy, but I can confirm that it's not true. Jamesster has temporarily disappeared after a recent incident whereby he might have pissed off the entirety of Texas. To protect him, we've recently brought in the wonderful Terrev to hold his place.1 point -
Terrev=Jamesster?
ProfessorBrickkeeper reacted to lol username for a blog entry
no, he died in an unfortunate smelting accident1 point
