Codeka

Members
  • Content count

    2493
  • Joined

  • Last visited

Community Reputation

1239 Excellent

About Codeka

  • Rank
    Contributor

Personal Information

  1. Pathfinding and Databases

    Are we talking pathfinding within rooms, or between rooms? I'm guessing between rooms, because pathfinding in a 3x3 grid is pretty trivial and you could basically brute-force it, try all permutations, and still perform pretty well.   I think the problem you're having is that the way you store your room layout (in a database) isn't really conducive to most path-finding algorithms, which assume that it's easy to load and traverse every node in the graph, right?   You've probably got a couple of options here: Limit the number of rooms you search, which limits how many rooms you're going to have to load. You're going to have a bunch of rooms in memory already to display them to the user, as a first pass you could just limit your path finding to whatever you've already got loaded. The downside here is that you might not find a path which twists through rooms that are not loaded. Pre-calculate some fraction of possible paths when you generate the level. This could potentially mean you have a whole lot more data to store. Some other data structure/storage mechanism for your level (e.g. a quadtree). This could be a lot of work... As always, there's never a perfect solution.
  2. The unnamed RPG

    This post provides a bit of an overview of my plans for my as-yet unnamed RPG. One of the biggest lessons I learned with my previous game (which I talked about last time) is that players want to interact. The in-game chat was pretty much an afterthought in my previous game (in fact, it was the very last feature I added before going to "alpha"). Most of the work I did post-release was community-based features -- an alliance system, one-on-one and group private chats, and so on. So I wanted to make sure my new game supported a vibrant community right from the beginning. Also, I was a little tired of the limitations of working with a phone, so I wanted something that ran on a PC. But more than that, I wanted something that was cross-platform (I personally use a Mac laptop and a Linux workstation, so it needed to run on those platforms as well as Windows, of course). Because I'm a masochist, I decided make the game browser-based. The first iteration I was using a directly and drawing 2D sprites. It worked pretty well, but performance was generally pretty horrible -- and that was with practically nothing on the screen! I actually got pretty far with that 2D engine, including multiple players, chat, animations and so on. Here's a video: [media][/media] That video didn't have pathfinding, but that was also added before I decided that the performance just wasn't there. My plan was going to be to use webgl to speed up the 2D engine, but as I was coding, this happened So I made it fully 3D with three.js as the backend renderer. In fact it's actually not that hard to get webgl up and running -- the hardest part, at least for me, was content. The initial "rewrite" was still talking to the same backend server, so it still supported all those wonderful multiplayer features, but I had an MD2 model (from Quake) as my main character, and some procedurally generated tree I found somewhere as decoration. [media][/media] The most interesting thing about the rewrite is the terrain. I found this cool article on Gamasutra and implemented it as a GLSL shader in three.js. Then I taught myself how to use blender to create some basic 3D objects and animations. All the content in the current gameplay video was made by me in blender. Yay! So that's where we are today. I've have a few ideas for the basic premise behind the game and also some information on how the game has been "architectured" (I put it in quotes because it's much more organically developed than architectured...)
  3. Watching so much of The Wiggles it's doing my head in
  4. What have I done?

    So I've been away for the last 5 or 6 years. It's hard to believe my last post here was way back in 2009! I haven't been entirely away from gamedev though. In fact, a couple of years ago, I released a (to me at least) moderately successful multiplayer strategy game on Android, called "War Worlds". I say "moderately successful" because it never really made any money (it made enough to cover the cost of hosting and that's about it). But at it's peak, it had around 2,000 active players (around 400 of which logged on every day). Here's some screenshots from the game, in no particular order: There's a lot of stuff here that I'm quite proud of. I developed what I think is a pretty cool tool for rendering images of planets and stars: I blogged about the implementation of this algorithm: part 1, part 2, part 3, part 4, part 5, appendix. I'm also proud of some of the other blog posts I wrote which got a reasonable amount of attention in the "hacker" community. For example, this post complaining about App Engine got to the front page of Hacker News. Another one I wrote on the crappiness of MySQL was also quite popular (complaining about things seems to get a lot of attention!) However, all things pass and a few months ago, I decided to move on from War Worlds. I open sourced the code, found a dedicated player to host the server, and basically ended my day-to-day involvement with the game. It still has around 60-80 players logging in every day, and I've not completely abandoned it, but I probably won't be doing any updates any more (unless someone else picks up the slack and wants to submit code changes!) Now, I've started work on a new project. It's an online multiplayer RPG which runs entirely within the browser. Over the next couple of weeks, I'll be revealing the work I've done on it so far (I want to start this journal here to basically document my progress on the game, mostly for my own benefit as I find seeing the progress to be quite rewarding) but for now here's a YouTube video I took of the "gameplay" (such as it is) as of a few weeks ago. [media][/media]
  5. Quote:Original post by gretty Do I need to link to the absolute path of comdef.h, for example, #import <c://windows/...../comdef.h> ?? Do I need to define a specific version of windows before importing windows.h, for example, #define _WIN32_WINNT 0x0502 (although I have tried this already with no success). I am using Windows 7 64 bit. Sounds like you're using Visual Studio express and you don't have the Windows SDK installed. Also, ITaskService is for accessing the Task Scheduler, not Task Manager (Task Manager is the program that lists running applications and processes, etc)
  6. Quote:Original post by Sambori I guess the answer is no? :)Why would guess that? Because nobody responded with the answer in 20 seconds? In the Toolbox, there'll be an entrt for "ContextMenuStrip" underneath the "Menus & Toolbars" entry. Just drag that onto your form and design away.
  7. You can implement it using dynamic_cast if you like. The rule isn't about static_cast vs. dynamic_cast, it simply says you can't "add" or "remove" interfaces from a running object. This is required because of DCOM. The proxy object will cache the result of QueryInterface so that it doesn't have to do a network round-trip every time you call QueryInterface.
  8. Unmanaged DX in C#. Possible?

    Quote:Original post by FenixRoA SlimDX doesn't work for meI think this is the problem you should be solving, rather than trying to write your own wrapper (after all, SlimDX is just a wrapper around native DirectX as well). Why doesn't it work?
  9. Question on path generated from AStar

    This is kind of unrelated, but the the way your paths tend to follow diagonals there is typically an indication that the "actual" path cost that you're using is incorrect. Remember, if you follow a straight line, add 1 to the actual cost for the path, if you follow a diagonal, add sqrt(2) to the actual cost.
  10. Unique Client Identifier

    I don't think you need to go that far. The simple act of signing up (and verifying an email address) is usually enough to discourage most people. For example, I'm pretty sure that's all gamedev.net does.
  11. I would say it's because class names are for more than just registering your own class. There's also the "well-known" class names such as "BUTTON", "EDIT", "LISTBOX", etc. They need to be strings so that you can refer to them in external files (like dialog templates). That's my guess anyway.
  12. Scripting Library compitable with C

    javascript the language is actually pretty neat (most of the time, when people say "javascript sucks" they're actually talking about the DOM and interaction with the browsers). I don't know how easy something like SpiderMonkey would be to integrate into a game, though, because Lua is dead simple...
  13. Aligning a vehicle to terrain

    Quote:Original post by irreversible Oh, one more thing, Codeka - I'm not really getting what's wrong in example B in your post.Example B would be a problem if your tank is coming down a steep slope onto a shallow slope. It could result in the front of the tank "sinking" into the terrain. If your tanks move forward quick enough, then you might not notice it.