Jump to content
  • Advertisement
    1. Past hour
    2. Stein Ove Helset

      Beelly [Released for iOS and Android]

      Hi, just released a free game for iOS and Android called Beelly! <iframe width="560" height="315" src="https://www.youtube.com/embed/zfSHpge0fyo" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> About the game: Steer Beelly the bee through the green meadow without hitting anything. That sounds easy, right? Too easy. That’s why every now and then the steering changes, right become left, and left becomes right. Can YOUR brain handle the constant changes? Most people can’t... I hope you like it and will give me feedback on what to improve 🙂 Google Play: https://play.google.com/store/apps/details?id=games.antisocial.beelly App Store: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1444677406&mt=8
    3. Miss

      Auto keyword behavior was changed?

      Sorry, you were right! It's fixed now. I must've accidentally messed something up while updating our copy of the sources. Thanks!
    4. effers

      A* Pathfinding for Beginners

      https://www.redblobgames.com/pathfinding/a-star/introduction.html That's what I used. The grid in each section is interactive. Fill in or clear squares, move the X, move the star icon. A great resource IMHO.
    5. Today
    6. Update: Soldier Book DAY 14. If I am writing this it’s because we made it. We took the B-Z Ammo! It’s not all we wanted, but at least it will support us against the great horde. My arms and feet are still trembling in fear. I’ve just shit on me a couple of times and I have no voice in my throat, but I guess these are the consequences of the battle. Little Timmy feels stronger. I believe this battle will make him grow up faster. People at the bunker are really kind. At nursery, they keep us alive the enough time to be ready for the next battle. I barely have energy in my body, but at least I have to try. It is common to say that the world is for the braves. I believe that’s a big lie. The world is for the rest of the people alive after the war.
    7. Esteban5XG

      What's is the best story game you've played?

      I remember myself playing the first Monkey Island for PC, just black and white, and the story simply freaked me out. I was only 5 years old, and my father used to switch the computer on, just to play this game. Talking about Spec Ops, I don't know what is this game about. Is it similar than Monkey Island?
    8. To be fair, you can use those things and not actually be following OOP principles. Likewise, you can still write OO code in languages (such as C) which do not offer those facilities.
    9. sausagejohnson

      Profile Mode for Orx demonstrated on Twitch tomorrow

      Also, a live youtube stream will be available if there are any issues connecting to twitch: https://www.youtube.com/user/orxengine/live
    10. Nothing eliminates risk as anyone can sue you for anything at any time. Technically, it's about the process of creation. Whether you've made a derived work or not. If you traced the original car directly, this work (the tracing) is derived from the original, so is infringing. Any modifications you do from that point are also a derived work. However in practice, if you change it enough that no one can tell that it started off as a derived work, then you won't get caught out. If you drew it all yourself without copying from another design directly, then you're good. There's a bit of a grey are for if you were inspired by something g and recreated it's style. That's mostly safe, but at the most legally-paranoid place where I worked, the artist were banned from using Google-images, and we're only allowed to look at reference images from collections that we'd bought the rights to... At every other job I ever worked, gathering reference/inspiration material from Google was common/fine.
    11. Peoples' brains work in different ways, even when they're solving the same problem. The most important thing is that one's code is logical, clear, consistent and well documented. Programming is like creating art. When you are comfortable, confident and efficient with your technique, it becomes an expression of yourself.
    12. Nothing completely eliminates the risk, there's just more or less risky. Unfortunately, it's really hard to draw that line for you, it's something you'd really need to speak to an experienced legal professional about. A detail as small as the layout of a light-cluster or the particular shape of a spoiler might be legally protected, whilst other seemingly more obvious details may be absolutely fine. If you see something that's really distinctive and unique to a particular model or brand, it's more likely that it may be protected and that the owner might try to enforce that protection, whilst something really common that you see everywhere might be less risky -- but we really can't give any definitive answers, it's a huge grey area. Sorry that's not especially helpful, but it is what it is -- really the only correct answers to this sort of question are: Speak to a lawyer, and Do your best to try to avoid copying any (and especially any distinctive) details.
    13. ljxiango

      A* Pathfinding for Beginners

      Hi, i am a beginner, through the article, I have basically understood the principle of the algorithm. Where can I get the source code? The link in the article has expired. Thanks. Look forward to your reply.
    14. lukash

      Yet another graphic engine

      Now I concentrate on the version for Windows. After writing a basic render and a minimally usable editor, I plan to port to Linux.I will not use COM for Linux, as far as I know there is a stable ABI (I would do it already if I had Linux as the second system on my desktop ). I do not consider Mac because it has a restrictive implementation of OpenGL.
    15. It's strange to see the author saying "OOP is bad and you should unlearn it" and then in the "what should you do instead" section of the article encounter words like "object" and "polymorphism".
    16. Thanks everyone for the valuable responses,one thing is clear for me, not to use the names protected by trademark. I am just confused about the copyright of the vehicle models, up to what extent the resemblances are acceptable.If I add a different spoiler,distort the basic original model a little and change the body proportion of the cars , will this eliminate the risk of lawsuit?
    17. Computers are very good at storing insane amounts of data, and computing everything really fast. In other words, don't make the table yourself, write a program that performs the computation given some input data. If your input data can be systematically computed from other input data, you can repeat this trick of course. I think the bigger problem is what to do with the huge amount of numbers. People are bad at finding their way in numbers. I think you should spend some time on how you're going to present the computed result to a user.
    18. JulieMaru-chan

      License for a Game Engine?

      Where do you get that impression? It seems to me he just wants the benefits of copyleft: to give users the freedom to use and extend the engine, but make sure they don't keep the changes to themselves in a proprietary fork. For that goal, my recommendation is pretty simple: the GNU LGPL for the engine, and the GNU GPL for the editor. Of course the LGPL requires dynamic linking for proprietary programs (instead of static linking), but there's a good reason for that requirement: it makes it possible to modify the library in isolation and then run the proprietary program with the modified library. I think in this case, a lawyer is unnecessary. These are quite simple documents and getting help is quite easy The Free Software Foundation (authors of the GNU GPL, GNU LGPL, GNU AGPL, and the definition of libre software itself) actually has a whole page dedicated to helping libre software developers out on this issue, for example.
    19. Yeah, you can almost re-frame this article as a checklist of signs that you're doing OOP wrong My quick feedback / comments on it: Data is more important than code - yep, people often write stupid class structures without considering the data first. That's a flaw in their execution, not the tools they have at hand. Once the data model is well designed, OO tools can be used to ensure that the program invariants are kept in check and that the code is maintainable at scale. Encouraging complexity - yep, "enterprise software" written by 100 interns is shitty. KISS is life. One of the strengths of OO if done right is managing complexity and allowing software to continue to be maintainable. The typical "enterprise software" crap is simply failing at using the theory. Bad performance - As above, if you structure your data first, and then use OO to do the things it's meant to do (enforce data model invariants, decouple the large-scale architecture, etc)... then this just isn't true. If you make everything an object, just because, and write crap with no structure, then yes, you get bad performance. You often see Pitfalls of OOP cited in this area, but IMHO it's actually a great tutorial on how you should be implementing your badly written OO code Graphs everywhere - this has nothing to do with OO. You can have the same object relations in OO, procedural or relational data models. The actual optimal data model is probably exactly the same in all three paradigms... While we're here though, handles are the better pointers, and that applies to OO coders too. Cross-cutting concerns - if the data was designed properly, then cross-cutting concerns aren't an issue. Also, the argument about where a function should be placed is more valid in languages like Java or C# which force everything into an object, but not in C++ where the use of free-functions is actually considered best practice (even in OO designs). OO is an extension of procedural programming after all, so there's no conflict with continuing to use procedures that don't belong to a single class of object. Object encapsulation is schizophrenic - this whole things smacks of incorrect usages. Getters and setters are a code smell -- they exist when there's encapsulation but zero abstraction. There's no conflict of using plain-old-data structures with public, primitive type members, in an OO program -- it's actually a common solution when employing OO's DIP rule. A simple data structure can be a common interface between modules! If you're creating encapsulation at the wrong level, then just don't create encapsulation at that level... This section is honestly an argument against enterprise zombies who dogmatically apply the methods what their school taught them without any original thought of their own. There are multiple ways to look at the same data - IMHO it's common for an underlying data model to be tabular as in the relational style, with multiple different OO 'views' of that data, exposing it to different modules, with different restrictions, for different purposes, with zero copies/overhead. So, this section is false in my experience. What to do instead? - Learn what OO is actually meant to solve / is actually good at, and use it sparingly for those purposes only
    20. Just to clarify, that wasn't the disclaimer I was recommending. I was recommending something more like this: "The car models in this game are not intended to resemble or portray any real-life car models. Any resemblance to real-life cars is purely coincidental." I don't know, it seems like an unrealistic standard to me. You can't design a car without referencing cars; first of all, you've already seen the cars, so you'll end up getting ideas from them subconsciously anyway, and second of all, all work is derivative; no one just comes up with 100% original art. This may seem like a nitpick, but I find your language here to be rather sloppy, and it stems from your insistence on the term "IP". A car design is not "an IP". It's a combination of various engineering choices (most of which are probably not patented), aesthetic choices (most of which are probably not copyrighted), and distinctive looks (some of which may be considered trademarks). Of course a lawyer should be consulted on stuff like this, but in this case, I don't see copyright as being a real issue. Trademarks seem to be the most important issue. And since, as you yourself said, trademarks are about preventing confusion, you don't need to start in a vacuum to avoid trademark infringement. In Canada, yes, but the U.S. has quite strong, flexible fair use protection.
    21. This is what I was talking about earlier when I recommended considering algorithmic solutions. As I alluded to in my initial reply, when something can reasonably be represented using data rather than code, representing it as data can have some advantages (especially in languages like C++ that can have a relatively slow build process). However, if you find yourself needing to generate an impractical amount of data, that may be a sign that some of what you're wanting to express as explicit data could better be expressed algorithmically and/or via relationships or formulas.
    22. IMHO the presence of assertions is the biggest difference between code written by beginners and advanced programmers. Assertions act as documentation for each of the assumptions that you were making when writing the code, plus documentation and checking of any pre-conditions and post-conditions of a function (which otherwise aren't formally specified in languages like C). Assertions then also check that all of your assumptions are correct and invariant are adhered to. IMHO, they are vital in any kind of serious code. Yeah I'd agree with that. I'd also point out that exceptions are designed for cases where you know that the next bit of code to run (flow control choice) is going to be higher up the stack than your immediate caller -- things that will abort some kind of larger operation. e.g. a file IO error will likely abort an entire save-game loading operation, and not just the function that was trying to write one field into the save file. For D3D in particular, there are some functions that can fail at any time for any reason. e.g. Present can fail because the user physically removed their GPU. In D3D9 there were a LOT of functions that would only fail if you passed them incorrect arguments (i.e. a programming error) -- these are the kind of ones that you should handle with assertions instead of error-handling code. If your code is correct, then they can't occur. In D3D10/11, most of that category have changed to a void return type instead There's still a few, such as CreateBlendState, etc, which can only fail due to programming error (bad arguments) or out of memory, which is unlikely to happen in practice, and to which your only option really is to crash anyway... So, if you know that a function can't fail as long as you've satisfied all of it's conditions, then check for error using assertions (which act as documentation of those conditions, and runtime validation of correctness). If you know that a function can possibly fail, then you've got to pass that up the chain... For D3D, most failures (besides programming errors) are that the GPU was removed, the GPU driver was rebooted, or your ran out of RAM... You could be lazy and just quit in all these cases, popping up a dialog box telling the user that something went wrong ...but on dual-GPU laptops, I have actually seen the "Device physically removed" error occur when the driver has decided to switch from the Intel to NVidia GPU moments after starting the game... so it would definitely be useful to handle it gracefully. My personal philosophy is to write most of your code in a way that there are no failure conditions. Be strict about what the pre/post-conditions and other invariants of each of your functions are. Validate/document these invariants with assertions everywhere. If something has a "failure" / "error" case, treat it as just another unique program feature / branch, not some kind of uniform items that needs a singular, common one-sized-fits-all "error handling" methodology applied to it. Just say no to "error handling". Say yes to features My other philosophy around programming errors, is that if you detect one, you should not try to "handle" it and allow the program to limp onward. You've just discovered that the rules of the program are not being followed - invariants are being violated! At this point, everthing is up in the air (especially in an unsafe language such as C -- memory corruption at this point means the program could do anything next)... So the best course of action is to halt the program and exit quickly. On your way out, flush the program's log to the disk, save a minidump file, and pop up a dialog box asking the user to email the log and minidump to you, so that you can fix the programming error.
    23. I'm not sure it's true that these things are drastically easier in Java. It might even be easier in JS in some ways. However, the approaches taken by the two languages are (arguably) drastically different, which could certainly be an obstacle when coming from Java. JS uses an object-and-prototype based system, which in turn can be used to effect something like the 'classes' you're used to in Java (newer versions of JS include some syntactic sugar for this). It can take some getting used to though. I'll add a couple comments in addition to what markypooch said. First I'll mention that recent versions of JS include a number of new features, such as let and const as additions to (and arguably in most cases replacements for) var. If you're interested in best practices with respect to JS, you might look into references on ES6. (There are different terms for the different versions of JS, but the term 'ES6' should yield plenty of search results.) Following on what markypooch said, you'll definitely want to embrace objects and (pseudo)classes if you're going to use JS. Once you get comfortable with what he described, you'll probably want to look into prototypes as an alternate (and sometimes preferred) way of sharing functionality between objects (this is where things start to look a little more like 'classes' from other languages). The newest versions of JS include some syntactic sugar that makes creating 'classes' at least as straightforward as it is in Java (in my view at least). Once some of these pieces are in place, I think it'll start to become more obvious how to solve problems like the one you're asking about. Lastly, one side note: you don't need the calls to parseInt() in your code, as the array elements are already numbers.
    24. Zakwayda

      Yet another graphic engine

      What platforms are supported? (I looked at the link, but didn't see it mentioned there.) Edit: Maybe your mention of COM answers that question, but it might still be of interest to know specifically what platforms you plan to support.
    25. Septopus

      Sling Bot Boarding

      Album for Sling Bot Boarding
    26. Septopus

      Sling Bot Boarding Day 7, Toy Build 4! :D

      I have a ragdoll setup... I've just not quite figured out where to throw em in... I've been working on the recorded courses and they could totally use it when you get too far off course/etc.. So, as soon as I figure out a reliable/cheap way to determine that. lol! Without giving the player even more finite control over the attitude I'm finding it really hard to draw a line on the "failure" of a trick... The more I think about it, I think I'm mostly going to reserve the ragdoll action for hard collisions... Of which I expect there to be a great many. So, that's what it became.. . It empties out onto a glass plane, 100mX100m, from there.. I'm not sure yet. haha
    27. Those FAILED and null tests are normal and commonplace. Good code is very defensive and checks for errors constantly. Unit tests ensure permanence, not correctness. Unit tests fail when the behavior changes. Hopefully tests are written in a way that verifies results were correct, but through history many unit tests were written that ensure buggy behavior remains constant. Exceptions are a fancy way to provide an alternative return path. They have their uses and some languages rely on them heavily. Since you're talking about C++ code, exceptions generally should only be used in truly exceptional conditions. Games written in C++ should assume that failure is always an option. Reads and writes can always fail, acquiring resources and always fail, anything touching external systems can fail. If you write code as though every function can (and will) potentially fail, your code will be more robust because of it. Exactly how you handle each error is up to the program's design. If you are creating a system, make sure your interfaces are designed that failure is always an option, so failures can be signaled properly upstream. If you decide that exceptions are the best way to signal those conditions, and you're comfortable paying the runtime cost of exceptions, they can be a viable solution. The most common pattern over the decades is a return value indicating success or failure through an error code. The C++ language is adapting more to push better developer behavior in validating success and failure with attributes like [[nodiscard]] in C++17, but even so, correctness and robustness are up to the individual programmers.
    28. I'll dissent and say that this can be perfectly legal, but is still extremely risky. Unauthorized use of trademarks can still be legal and non-infringing. Using the trademarks (Ford badge, Mustang GT name) is fine for descriptive purposes as long as you don't imply endorsement of Ford, are accurate in your description of the product, and only use it to identify their product. It's risky because their lawyers can simply claim that you are implying endorsement, or that your description is damaging, or some other small detail like that, and then sue you for damages. You'd have to hire a lawyer to go and prove to a judge that what you did was fair and non-damaging. As for the photo of the car, that's likely owned by some photographer (or someone who hired the photographer). You can't go reproducing other peoples photos without their permission -- that would be copyright infringement.
    29. frob

      License for a Game Engine?

      Then you're not ready to release it the way you're describing. One of the major purposes of those open source licenses is that anybody can take it, make it better, and release it as their own. Anybody can "fork" a project to create their own based on yours, adopting your work and building a new product from it. This seems to be the opposite of what you are describing as your goal. IP laws are much like a genie in a bottle. If you accidentally release it, it is impossible to recapture. This kind of thing needs a chat with actual lawyers who understand the licenses and can take the time to understand your exact needs. Most likely they will draft a license that exactly matches your requirements. If you want to forbid other people from taking your product and re-launching it, none of the major Open Source licenses will work for you.
    30. ^^^ This one. For the way you are describing, no, it requires permission.
    31. All games written with Orx have a profile screen that can be called up to monitor for any inefficiencies or bottlenecks. Iarwain will be demonstrating the Profile Mode for Orx over twitch tomorrow night at: Come along if you're interested to learn about it. There will be an opportunity to cover any topics after the demo. Here's some time zones as a guide to when it's on: Montréal, Canada Tue, 11 Dec 2018 at 1:00 am EST Rome, Italy Tue, 11 Dec 2018 at 7:00 am CET San Francisco, USA Mon, 10 Dec 2018 at 10:00 pm PST Sydney, Australia Tue, 11 Dec 2018 at 5:00 pm AEDT You can check other time zones here: https://www.timeanddate.com/worldclock/converter.html?iso=20181211T060000&amp;p1=165&amp;p2=215&amp;p3=224&amp;p4=240
    32. I can't really speak on the scale of things, but for this, yeah. Currently I'm using microsoft team services GDnet does not provide a special link for that, even though its technically a github. All you have to do to make the link work is remove the github stuff and just paste in the https://jwcoleman87.visualstudio.com/MyGame2/_git/MYGAME2 part. But, for the other long part, I'm afraid I can't fathom the limitations you are facing with the scope of the "bigness" of your map, so I'm generally unhelpful in that part
    33. I posted this as an edit but in case you missed it...
    34. The console should only scroll when you output a new line character../etc.. at the end of the "buffer"..
    35. Chisser98

      `asCContext::CallScriptFunction` called with null

      Hello, I have been able to reproduce this in a minimal code example. If I build module one with the following code: shared interface Interface1 { void test(); } shared interface Interface2 : Interface1 { } class Object : Interface2 { void test() { } } void main() { Object@ object = Object(); object.test(); } And then build module two with the following code: external shared interface Interface2; This triggers the following assertion: Assertion failed: func->objectType == intfType, file c:\users\jarrett\projects\angelscript\sdk\angelscript\source\as_builder.cpp, line 2754 This is with the latest code from SVN.
    36. Wouldn't that kind of "flash" as it refreshes... the cursor position thing should be seamless.. I just need to build it so it all exists on a single screen with no scrolling.... I will try that idea first though. Thank you.
    37. I would think that Console.SetCursorPosition() would cause problems because of the scrolling. Just clear the screen and redraw the board. You could try this to go up a line, I don't recommend it... Console.CursorTop--;
    38. That looks like the stuff man.. thanks. I'll poke around google using those terms... see if that leads me to a way to get the current console dimensions or set the console dimensions.. as "set potions" would require me to KNOW the positions or w/e right. thanks **EDIT** - actually there are a bunch of methods listed there that dose exactly that.. great man.. thanks I can finish up this exercise now.. thank you!
    39. Is this what you seek? https://docs.microsoft.com/en-us/dotnet/api/system.console.setcursorposition?view=netframework-4.7.2#System_Console_SetCursorPosition_System_Int32_System_Int32_
    40. I'm sorry I do not understand what you mean by that.... I am using a thing I wrote I am calling a inputbuffer that assembles all the text before it is printed... but at the moment every time I print it adds new lines or add to the end of existing lines. Like in a tictactoe game you start with a screen that looks like a 3x3 grid... when a player makes a move, one of those grid points fills... at the moment my game works but the new "frame" so to speak showing the new move is printed to the console and pushes all the other stuff up... as in you can scroll up the console to see old print outs.. What I am asking is how can I, instead, of adding new lines or stuff to the end of existing lines, to over write stuff that is already printed out.
    41. Your game data is in memory, not on the screen, and you should write the routines that use that data correctly. Don't write hacks unless you absolutely have to.
    42. ArcanaDragon

      New Hero Added 12-9-2018

      New hero added: Kid Reading His Christmas List Game Link: Click here
    43. You need transitional tile-maps for every possible transition, that is correct, if you want to explicitly transition between each material type. There are only 14 possible transitions positions (excluding the "all wall"/"all floor" non-transition tiles) provided you're allowing only 90 degree angles. FWIW, the example i've given above misses 2 possibilities, the two diagonals (top right + bottom left, and Top left + bottom right). When making 2d tile-maps my approach in Photoshop is create a square texture, paste the background texture (that happens to be tiled so edges are not a problem) select the whole area, shrink the selection by 1/3rd of the space, paste the foreground (which again is tiled) texture, and then using border selection create an appropriately thick 'wall' between the two as a transition so it looks good. Then do the inverse for the reverse transition, noting that the N,E,S,W cells should be the same as the corresponding S,W,N,E cells (more or less) from the first image, finally, i take the two diagonals and overlay them to create the diagonal blocks. Typically for a prototype this might take ~20 mins per terrain type for basic transitions. In changing tiles; when you change one tile, you trigger each neighbor to recalculate their neighbors and adjust appropriately, the same generation approach applies. Note its important to only trigger the changes when you change something, as re-scanning your entire tile-map every frame is costly. Yes, this is a common way to do it, again you're talking about in 2d space only 16 options for a specific cell's shape. It can be achieved using flags, values, or calculations however for a 2d tile-map it happens to be only hexadecimal F options per terrain type, and easily visualized when converting to binary, if we let 1 represent a wall, and 0 represent a floor/or transparency. Note: i'm assuming we're working clockwise from the top left. 0000/1111 = ground or wall fully filled, 0001,0010,0100,1000 = are all outer corners (only the corner (1) is a wall) 0011,0110,1100,1001 = are all straight edges 1011,1101,0111,1110 = all inner corners (the corner (0) is a floor) 1010, 0101 = are the diagonals, which graphically would meet at the center A lookup table based on these values can easily be constructed, and IIRC can be faster than a calculated method of working it out.
    44. Hi there... If I print out stuff to the console... is there a way to print over that existing text... rather than printing again a new line... Console.Write("This is a bunch of text that gets printed to screen"); Console.ReadKey(); Console.Write("****"); This should output..... (after the keyInput pause... So it over writes the existing text in the console instead of making a new line. Basically I am working on my 1st complete console project as I go through this book called The C# Players Guide and it is asking me to make a TicTacToe game.. I would like to modify the "map" instead of printing out entire new ones and scrolling the game upward.. So... I would like to be able to do the above code but get THIS output. Now I am sure it can do this, but my unfamiliarity with the subject makes googling hard as tons of info comes up not related to what I am asking. I would imagine is a char[][] that represents the console window and I could use this to print at any point of the window with Console.Write(); ... but I do not know exactly how, or how I can make a char[][] as diffrent users may have a different sized console window and stuff. TL;DR - How can I write into the console and replace existing text in the console instead of adding a new line or new chars at the end of an existing line?
    45. Guy Fleegman

      first game ever made

      I played your game for a little bit. I like the design of the main character. It looks like all sorts of cool gadgets and abilities can sprout forth from his suit. The game runs smooth and the character movement feels pretty good. I like his walking animation too. As far as a constructive criticism goes... there's no real feedback for when an enemy gets hit or when your character gets hit. Unfortunately, the lack of feedback kept me from enjoying the game and wanting to play it more. Death animations would be nice too. All in all though, it's pretty good for a first effort.
    46. cherryphysics

      Procedural Content Generation

      Build a realistic city, you say? Well I suppose if you close your eyes, you can pretend that the double slit experiment doesn't produce an interference pattern. But otherwise it's pretty clear that if every outcome were deterministic, the universe would look strikingly different from the way it does. What you can do is measure Shannon Entropy which is basically the size of your random data after you compress the f**k out of it. The higher the entropy, the less information exists in your data, whether you know how to decode it or not. Or, that's the theory at least, and there'd be a considerable uproar if people disproved it, since you could decrypt uh... everything.
    47. Septopus

      Begginings of a Game Console OS

      Unfortunately while I do have extensive experience in Linux, none of it extends to GUI related topics. I think Debian defaults to using Gnome for it's "window system" though, so I would consider writing a simple program that acts as the user interface for your gaming system. Just write a regular application that will run on Gnome and will interface with the user for selecting and loading games. Once a user selects the game they want to play, you launch it in a separate process and when that process ends, you either restart the GUI application or it stays in memory and is given back/takes back control somehow. These are just some very very rough ideas of how I might try to proceed. Like I said, my understanding of the X window system(what Gnome and KDE run on top of) isn't even rudimentary these days...
    48. That wouldn't explain how the neighboring tiles change to fit when you change a tile though. There'd have to be a range of tilemaps, with a transition tilemap between each pair of them, where the left edge matched one tileset, and the right edge matched another. And there are four edges to a given tile, so you might need two transitionary tilemaps for every combination of every regular tilemap. I dunno, it just seems like tons of work. I don't quite understand how "some index calculation" would work. Do you just have a lookup table where "ground,ground,ground,brick" -> "tile for upper left corner of brick wall?" I don't think it's so much a feeling of depth, as making less work needed on the artist's part. They don't have to draw the transition from one texture to every other texture that way, only the transition from one texture to transparency.
    49. Yesterday
    50. Aidan Hadley

      Begginings of a Game Console OS

      Septopus, I am trying to use Debian, but the thing is, I really haven't used and Linux distros in a long time. It's like trying to write an essay in Swedish. I'm just confused on how to make the GUI suitable for a game console. I would like it to look similar to Lakka, except Lakka is for retro games only. P.S. about the computer science thing... I'm in an excelled high school so in 11th and 12th grade, I'll be enrolled fully in college courses. I also hope to go to MIT and take computer science as my major. I hope to create a business of of software and hardware.
    51. Episode 17: Delight Your Costumer! Check it out. Look for ways to surprise and delight your costumers (clients). It makes a difference!
    52. I'm not the developer but i'll have a crack... 2d Tilemaps are nothing super new, you create a grid of options for any specific ground type and transition to the other. Some reference material (Source for below) Generating a map for this becomes a case of building a grid, assigning a 'type' for the ground within that grid, iterating the grid to allocate the tiles appropriate for the neighbours. This can be done multiple ways, but two are: A) You can set 'center of the grid' to a value, for example above, (0,0) is a north-west brick wall corner, which could be value 0, by setting the cell to 0, your program will insert that image into that grid location. Or B) You can set the intersections of the grid to a material type and then programatically set the center of the cell based on the values that the grid (or vertex) points happen to be, for example, the same grid point referenced in A would actually be calculated using values gathered from (0,0),(0,1),(1,0), and (1,1), the 4 corners of the cell. This would have (0,0),(1,0),(0,1) with values for the ground texture, and (1,1) a value indicating a brick wall. Using the 4 points a calculation evaluates the type of cell you have, and then allocate the cell's texture based on some index calculation The second approach follows the same concept as painting 3d models (vertex based texture mapping), and incidently is also a round about way that voxel based terrain generation systems work. It works very well with random map generators, because its easy to create a 'mesh' of values allowing the system itself to calculate the cell's content. Generation of these meshes can be done using noise generation calcs, and height maps. The first approach is very much how you go about building worlds in game maker or other similar tile based drag and drop systems, and while it is possible to generate the edges in the same way as B, i feel i've only ever seen these as static tile map systems. Where "Dont Starve" comes in is that instead of having 1 option for the tilemap, it appears they've produced a range, i'd guess about 5 or 6 per element, and these get selected psudo-randomly. Theres also multiple layers of tile applied with alpha sorting over the top, which gives a feeling of depth.\
  • 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!