Jump to content
  • Advertisement

Little Coding Fox

Member
  • Content Count

    298
  • Joined

  • Last visited

Community Reputation

192 Neutral

About Little Coding Fox

  • Rank
    Member

Personal Information

  1. I'm sure this has been asked before but unfortunately I'm unable to find any results on Google, so hopefully you won't mind me asking again...   I was wondering, what would one need to create a character creator a la Guild Wars 2/Skyrim? Basically, decide on some characteristics, and have the character model magically generated by the code.   I'm sure some models are used to calculate each different bit but I could use some tips on how I might achieve this, as I have absolutely no idea how I could do the same.   Any Language/API will do, as long as I have an idea on how to do it. Any help would be appreciated!   Thank you for your time.
  2. Original Journal: https://www.gamedev.net/blog/1062/entry-2255007-heres-a-tiled-converter-just-for-you/ Here's an update to the Tiled Converter: http://www.mediafire.com/?wulvvjc8ju0m5wl This update fixes several issues and adds a couple of features, such as loading the tilesets from multiple possible directories in the loader. You can also specify an output directory by passing -dir to the converter's arguments. I'm also considering rewriting the converter's code so that it works with generic C++ and so I can also release it as full source code under the public domain. If anybody's interested, please let me know!
  3. UPDATE! https://www.gamedev.net/blog/1062/entry-2255173-tiled-converter-update-1/ I've recently developed a format converter for Tiled, the open-source orthogonal and isometric tile map editor! You can download it here, released under the Public Domain: http://www.mediafire...8r1y4b66ohrgm46 It includes has an implementation for a loader, fully working under C++/SFML. It supports TileSets, Layers, and Objects (which is pretty much everything Tiled works with, from what I know). Please notice it only supports Orthogonal tile maps! The converted format has the layers become several slices of geometry, split by tile sets. So you can make a map like this: And the end result will be something like this: The two "Extra Tiles" up top appear due to how we're handling Objects as an example, using them as tile coordinates so certain tiles appear there. Just be sure you convert the map first with convertmap.bat before you try out the sample! It should work relatively well, as it wasn't tested with more complex maps, so please let me know if you spot any bugs!
  4. Here's a video of a game prototype I've been working on for a while: Link This video shows the work of over a year and a half, using the limited time I have after I'm done with my full-time job every day. In this game you can create your own magical spells combining spell fragments, or essences, in order to battle your opponents. The game will have multiplayer, along with much more content, and a story mode where you are Sul, a young girl who has been suddenly thrown into a strange world to fight a corruption that is placing her entire reality in danger! We're hoping to release the game on Steam once it is done. Also, remember, this is a prototype, and is nowhere near finished!
  5. Little Coding Fox

    Awesomium both in name and in use

    [quote name='jbadams' timestamp='1329267338'] Thanks for sharing!I assume the Firefox compatibility is for testing your UI in the browser rather than having to launch the game every time you tweak something?Are you using it for in-game UI, or just menus?How have you found the performance? I've heard previously that the rendered web-content can update poorly if you do anything too fancy, but I'm not sure if that's a genuine concern or the result of trying to do something silly. [/quote] Yes, I'm doing Firefox Compatiblity for testing my UI in the browser. This way I can e.g., position my elements without having to launch the game all the time, as a simple refresh usually works. I'm using it for both in-game UI and menus, and I found the performance to be at the very least adequate. On an nVidia GT320 PC, my performance ranges from 900 to 1300+ FPS when rendering a webpage with constant JS animation (by constant I mean something changes every 15ms at least), altough nothing else was being rendered at the time so the performance may vary on heavier rendering settings like an actual 3D game, as I'm using it on a 2D game at the moment. Also, since the rendering to a bitmap is actually done on the child Awesomium processes, you won't notice too much of a performance impact except when updating your texture with the new data. Regarding the Executable Size, if you use their release_packed binaries, it will only give an increase of about 9.40 MB (although these are separate LL/.exe files, so your .exe doesn't actually increase in size much). These extra files might be much larger if you're not using the packed binaries though. For instance, the debug .dll reaches 76MB in size for me. Also, the .exe file I mention in the extra files is simply the Awesomium process, but you may modify your own .exe so that you can use it instead of Awesomium for the Awesomium Processes.
  6. Backstory Awesomium is a "google chrome in a lib" library that can be used on pretty much any application to render web pages (including flash and silverlight content), and has a great indie license to boot. I know there are developers like me who'd rather not write their own native UI code for their games. After writing my own and having little success, and by that I mean that it was overly complex and hard to create and use any new UI elements and also mimicking their behaviour, and having tried several libraries such as libRocket, I helped a friend work on some web design assignments he had for university, (re)-learning HTML and using HTML5/CSS3/jquery for doing all sorts of awesome things. I already heard of Awesomium and how you could use it combined with games for UIs and such, but considering my lack of HTML skills, I didn't consider it at the time. After I did help my friend, I had some moderate understanding of some fancy CSS3 tricks and was able to compose a UI relatively easy. And after I learned how to use some of Awesomium's most awesome features (no pun intended), I find it to be the very best UI library around. Some advantages on using Awesomium You can design your UI with HTML5, CSS3, and any javascript library. Writing custom elements is much easier. You don't even have to write pretty much any code in your native language. You can have fancy animations and even pre-made UIs using JS libraries like jquery UI. You can use the awesome open source fonts from Google Web Fonts! Works on the 3 main OSs (Windows, Linux, OSX) It is rather quick and uses the same "multiprocess" scheme that Chrome uses (so if an Awesomium-created process crashes, your game won't crash) You can use their Javascript API to create custom JS objects and then use javascript scripts on your pages to control parts of your game (e.g., I have a custom Core JS object with several methods like LoadHTML which let me "move" between HTML pages instead of doing it manually) In the upcoming 1.7 SDK which will be released in the next month, you will have full support for HTML5, and with it, you can use the tag to show videos and the tag to have your own sound system without having to resort to other libraries such as FMOD and as such not having to spend too much money You can have in-game web browsers, among other interesting interactions within your game Many other fancy features like custom HTTP headers and resource handling You may be wondering, why prefer this to libRocket. LibRocket relies on a heavily modified version of HTML/CSS and as such is much harder to work with, even if it has a nicer license. Some tips while using Awesomium The biggest challenge while using Awesomium for me was having the UI elements become unselectable when the user drags the mouse around. You might think this to be a minor inconvenient, but I felt that the UI elements should look like actual UI elements instead of just a webpage overlayed on top of the game. If you do a search for how to do this, you'll find various solutions, but for some reason using them wouldn't work very well for me. However, I ended up writing this very simple CSS class: .unselectable { -webkit-user-select: none; -moz-user-select: none; user-select: none; } And using it like so: function MakeElementsUnselectable() { $("*:not(input)").addClass("unselectable"); } This javascript function will go through all non-input elements and apply the 'unselectable' class I defined upon all of them. Input elements need to be able to be selectable since otherwise elements such as textboxes will not be editable or show the blinking cursor. You may be wondering why I have three lines doing the exact same thing. I did that so that it will work on my main browser (Firefox) and also on Awesomium (which uses Webkit). For some reason Awesomium was not accepting -webkit-user-select so I added the 3rd line which is more standard, CSS3-wise. Another useful bit of code allows us to remove the custom webkit outline that happens around input elements. input:focus { outline: none; } There's not much to talk about this part, but this is very useful since e.g., the outline around textboxes will not be shown. Here's an example of how it looks when the outline is shown: (Taken from http://www.electrictoolbox.com/remove-webkit-border-input-focus/) The End And that's pretty much the end for this post. I hope you find it useful. I didn't leave much details on actually implementing Awesomium because it is rather easy to use, even if you use their C API (as I had to, since their project files on Windows were for VS2008 and I was using VS2010).
  7. Pretty much all indies who are working alone such as yourself have that problem with getting resources without spending a ton of money. All we can do is press forward, because it's better to work, get tired, feel awesome when you add a new feature, feel annoyed when you are fixing a nasty bug, and then maybe, just maybe, you release that game after several months, if not years, of hard work, than to just do nothing at all.
  8. Little Coding Fox

    Piracy, eh?

    [quote name='Black-Rook' timestamp='1325594685'] I'm sorry to hear this is occurring... It doesn't matter to these people if your game is worth $1.00 or $60.00, someone will download it illegally. It's really hurting indie developers, and forcing us to develop in different ways. I'm finding a lot of profit can be made from online games with cash shops, or unique features, simply because if someone wants to pirate the game, they still will not have access to premium features through the online community.I'm sure your sales will pick up with word of mouth. Regardless, I'm seeing online games as the safest bet for making profit right now.Keep releasing your games because in time you'll make enough sales through your inventory that might not make your losses seem as bad. [/quote] Thank you. Although we can't exactly do online games with cash shops right now, especially considering how those would be incredibly complex and extremely hard and expensive for a small company to produce. But all we can hope is that we will release more and better updates and maybe some other games, and that people will either buy our product some more, or at least not pirate it so much.
  9. Little Coding Fox

    Piracy, eh?

    So Drew suggested I elaborate a bit on the piracy levels I reported on my last journal, when I mentioned we had released "Fling!" on the Android Market. I can't give you guys whole numbers, but to sum it up, the game was being pirated since the first day it was released. So far, we estimate it has been pirated over one hundred times the amount of sales we currently have, which is money at least I sure would have loved having (especially considering my personal financial situation, which I will not elaborate on), since we're a small company, and that sort of piracy does hurt us considerably... If you're wondering how we're estimating those numbers, our ping server, which receives a ping from every new copy of Fling the first time it is ran, and thus lets us see how many new copies are around, shows us how many pings we're getting each hour or so, and we can compare that to how many sales we had so far. It's quite disappointing how people are pirating a game that costs as much as 1 USD. It's not that expensive. And it has a lot of content, including several free updates, the first that is going to be released soon. So for those of you who say that piracy is not a lost sale, I'd say that you're right. It's a single lost sale, it's a lot of lost sales. My boss is pretty optimistic though. He believes in the "Piracy can lead to more sales" idea, though I'm not comfortable with either our current sales on Fling for Android or the idea that although the game is being pirated in the hundreds an hour, someone out of those hundreds is going to decide to buy the game. For my final paragraph on this journal entry, we implemented Google's Market Licensing stuff to help fight piracy. However, it is horribly easy to disable. In fact, seems like other game studios don't even bother with that at all. And we're probably going to follow them in that particular point at least.
  10. Little Coding Fox

    Apologies. Also, game released.

    [quote name='Gaiiden' timestamp='1322925467'] [quote] me and CandyCane LLC went past some very hard times porting this [/quote] Stuff you can share? [/quote] Things ranging from poor APIs (we were targetting Android 1.6 as the minimum OS version), to very poor tools, to your device suddenly rebooting from a stack overflow, to extremely poor support for native code, to even some java code that works in a way on one device to behave differently on another device. E.g., their SoundPool class that would not let you know when a sound was done playing, or their MediaPlayer decided to throw exceptions when the documentation specifically said there not to be a thrown exception from a particular function, like the isPlaying method, Another example would be that more often than not, Eclipse would decide to do stuff you didn't want and would be stubborn enough as to actually keep doing it no matter how many different attempts you did at whatever you were trying to do. One example was when I was linking a resource, and it would instead move the files to the folder where my main source was, and when I tried to remove the link, it'd delete my entire source folder, regardless of it saying it wouldn't delete the files. A more recent example would be when I updated the Android SDK and the Eclipse ADT plugin and Eclipse decided to compile everything to .class files instead of building the app package. I had to do some serious hacking and to download 1.5GB of the old SDK from a friend since there was no other way to get an older version with the API levels I needed. Another example would be the Native Development Kit (NDK)'s debugger script that ran GDB and would more often than not fail or otherwise would properly attach to the app, but ignore any crash or any interaction. You'd also often get a crash, check the crash log on the logcat, and it'd give you a very poor callstack, usually with either no callstack or with only one frame (it missed all other frames or something similar). Sometimes we wouldn't even get a call stack, since it'd crash halfway while dumping the crash (seriously, this happened several times).
  11. First off I'd like to apologise for the seemingly "lack of context" in my latest journals. That's what I get for not being used to writing these and being in a hurry all the time. I've been working on a port of a very successful iOS game to Android for 9 months now, and yesterday the game was finally released. It consists of pushing (flinging) some furballs into other furballs in order to push them out of the game board, until you have only one furball left and "win" the puzzle. Some of you might remember it as "Fling!" on the iOS. Well, we kept everything exactly the same on Android, and you can buy it or try it. For more on how the game is played you can also check this youtube video: [media][/media] I hope you like it, me and CandyCane LLC went past some very hard times porting this, and you can finally try our effort. Cheers, Nuno Silva.
  12. [heading]Hey there, how time flies, and some ramblings[/heading] [subheading]Disclaimer[/subheading] I'm sure most of you will disagree with my views, however please don't think of me as someone who is saying "I'm totally right, everyone else doesn't know squat", since these are merely opinions. [subheading]Happy birthmas![/subheading] So I've finally created my GDNet journal. Took me quite a while, too! I hope to be more active around here, as well as in my blog. I've been working for a living as a game programmer for CandyCane LLC, a small smartphone game studio who has been producing a few games mainly for the iPhone, and more recently for HP Palm's webOS, Android, and Windows 7 Phone, where their probably most popular game is Fling, a game where you "fling" various game pieces so they bump and send each other out of the board until you get only one left. I've been working for them for exactly one year now. It was a rough year, especially since this is my first job in the industry and I am still kind of a rookie, even though I've been programming for almost 11 years now. My biggest challenges so far have mainly been the game ports from iPhone to webOS and Android, but I'm getting better so it'll probably stop being such a challenge in this upcoming year of work. Although my dreams of making awesome evolving 3D worlds, a project I called "WorldBase", have been delayed because of my job, I'm hoping to restart working on it in a few years when I have plenty more available resources and thus more security for the entire project, in order to prevent it from failing once more. [heading]If there's one thing I've learned after all these years, it's that:[/heading] [subheading]Learning how game technology works is very important[/subheading] But people tend to end up trying to make their own 3D Game Engine in the end. This is often a bad idea, especially nowadays when we have the UDK and Unity available free-of-charge. [subheading]Spending too long developing game tecnology is a curse you can't escape from[/subheading] After you've learned how a large part of game tecnology can be developed, you start to feel picky when trying to select a game engine for your projects. That's mainly because you end up developing your own "style" and since all game engines are developed in different ways, with many different tools and interfaces, you will end up disliking them all, leaving you to make your own, once more. This is even more of a curse than most people expects, since you can start a project thinking "I'll make a simple basic game engine" and spend years working on it without realizing you're spending too much time on the tech with little of the game to show. [subheading]A lot of commercial game engines out there that are geared for Indies are not that great[/subheading] Everyone loves talking about Torque, Unity, UDK, C4, etc. But fact is that some of those engines have less-than-friendly Indie licenses or are apparently not very good. As an example, I ordered Torque 2D when GarageGames was reborn and started selling all their products for $99 with Source included. I saw their License, and after posting a thread in their forums, they said the following: [quote]@Nuno - The license allows you to use a copy of T2D for your own development. If you want others to help you in development, such as writing code or creating levels, they will each need a license. Anyone touch the editors, TorqueScript or C++ needs a license. If you have an artist that just creates the sprites but just hands them off to you, never touching T2D, then they do not need a license. Make sense? [/quote] Well, this is horrible from an Indie point of view. Often Indies will have more than one programmer, and spending twice or more of the original license makes the whole thing incredibly expensive. Indies don't always have that much funding, so just getting $99 is quite a feat. If you get a SVN server for your project, which will include torquescript and maybe some C++, even if your artists don't use the SVN directly, you have to spend those $99 once more. Imagine this when their $99 promo goes back to the old price which is probably more than twice as expensive. The worst part is that it seems that a lot of asset producers seem to be limiting the number of persons that can have access to purchased assets to one, maybe two persons, and the real world just doesn't work that way. In a world where websites like xp-dev.com and assembla.com provide free file versioning services like SVN and GIT, the ammount of people who have access to a SVN server is generally everyone who is part of the group that created the server. So what can you do in order to keep everything A-OK? Create a separate SVN server? Remove access to the SVN from most team members? Often you'll also find engines that look great, but once you try their demos or look at their samples you notice how they're not something you'd enjoy using. A couple of examples would be C4's engine demo, which although looking pretty sweet, has horrible physics, and the Leadwerks engine's API, which is just ugly. Now, I don't know if the developer who created the C4 demo just wanted to setup the demo's physics quickly, but trying the demo made me not want to get the engine at all. The biggest demotivator was when i tried to climb some stairs. I'd get stuck, press SPACE constantly in order to jump, and more than often I'd jump backwards somehow, causing me to have to painfully climb those stairs all over again. [subheading]It's really hard to manage a team even if there is genuine interest in a project[/subheading] Yes, it's true. I've created a small Indie team called Flaming Torch Games, and even though we were getting some great progress on our first project, a game that we codenamed "Rectangle Bejeweled", the project is slowly dieing as I speak, even if there is no proper reason for this. Most of the team never communicates with each other, no matter what I try to get them to do so, and some people have barely done anything so far. The problem with internet teams is that they often forget about the team and often get busy with things in real life that will make them unavailable pretty much all of the time. The main problem is that most people just go "hey, that game is cool" but don't want to do any work or just lose interest because it's "a lot of work". However, when there are people actually trying to be productive for the team, they are still very busy, often with their full-time job. Bottom line is, people are very busy, so unless you hire them yourself you'll need a lot of luck to have an indie team that works. [subheading]3D games need a team, stat[/subheading] Often you'll see someone single-handedly trying to make an awesome 3D game, maybe even attempting to do something really "simple" like a character moving in a small chunk of land with some buildings around. However, what I've noticed the most is that that's just not possible to do all by yourself. You need external resources, mainly art, since a programmer is often not an artist and free 3D models only get you so far. You also can't just make some simple textures for a 3D game to behave as "programmer art".
  13. Little Coding Fox

    Thoughts on Android NDK

    Yeah, the docs talk about how the Available field can also even be 0. What i do is make a static buffer big enough in order to store the biggest file size in the project (e.g., 5MB), and then do something like: [code] int readBytes = 0; int offset = 0; while((readBytes = stream.read(buffer, offset, buffer.length - offset)) != -1) { if(offset - buffer.length == 0) { Log.d("openResource", "Internal " + buffer.length + " byte Buffer is not enough for resource '" + Name + "'. Consider increasing buffer size."); assert(false); } offset += readBytes; } [/code] I also call java code a lot, mainly to read resources or load images. I also keep getting OutOfMemory exceptions when i'm only using 9MB of RAM and the device has over 119MB of free RAM. Do you have any ideas as of what might cause that?
  14. Little Coding Fox

    Wherein I attempt to reimagine the basic MMO design

    Your thoughts are not far away from mine. I've been pondering about this kind of stuff for a couple of years now, and i believe that both Minecraft, Garry's Mod, and all recent popular sandbox games have a lot of wasted potential. Our technology has surely evolved a lot in the last few years, and i believe that an ever-evolving sandbox game is required at this time. Imagine a 3D role playing game where you can build and craft, where the typical "i dont have a goal so this is boring" sandbox game cancer gets cured by providing content and goals based on technologies you start with, learn, discover, and teach to NPCs and other players if your game supports multiplayer (in this case, technologies are like content packets that include new items to craft, new buildings to build, new actions, and new goals you can select for your custom goal list), where NPCs have their own goals themselves and therefore help evolve the world by creating their own towns and community and occasionally generating conflict. Now imagine the interation scheme. You could use both 1st and 3rd person cameras and therefore have Fable-style movement and interation on 3rd person, and Half-Life 2-style movement and interaction on 1st person. You could cut down trees with an axe, build houses and fortresses, make a sandwich, all the same way that we play melee combat-based Mods like Pirates, Vikings, and Knights II. You could talk to NPCs just like HL2, by pressing an interaction key while looking at them, you could earn Renown for your actions and therefore become important in your world, among other things. As you may concur, there is a lot of potential here that could become something beautiful, if properly implemented. Also, if what i said doesn't strike you as impressive, it tends to be because i dont usually express myself very well, so sorry for the trouble.
  15. Little Coding Fox

    SDL / GLUT

    I would suggest giving SFML a try over SDL or GLUT. It's a generally great library that provides more features than the general (as in, not counting with the addons) SDL library, although it does not support as many platforms as SDL (only Win + Lin + OSX), however it is a C++ library (with some bindings to other languages) and as such it is designed for the best C++ has to offer, it also lets you work with pure OpenGL, as long as you tell it to preserve your OpenGL states. It also has a better license compared to SDL, the Zlib/Libpng license.
  • 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!