Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

c0ke

Members
  • Posts

    24
  • Joined

  • Last visited

    Never

Everything posted by c0ke

  1. Err, I don't know if anyone cares about this thread anymore or anything but DataInputStream and DataOutputStream handle primitives really nicely so just feed them into bufffered input / output streams on TCP sockets and you are done. Then all you need to do is be careful what you send things as, you might be working with ints for example but if it's never going to be over 127 then write / read it as a byte etc. Read the source code for those streams and you will see they convert the primitives to bytes for you, there is no need to "optimise" or manually complicate things beyond that point. The next level of efficiency you would want to look into is batching packets together wherever possible so you are only flushing a minimum number of times, this is because if you are using the datastreams correctly you will be sending a lot of small packets that are individually under the minimum TCP packet size so the majority of stuff you send (this dude stepped left, this dude hit that dude, etc…) will actually be padded anyway! I'm not going to comment on "make everything public" gate, smh. Liam
  2. In the real world being a developer is as much about being a professional speed learner (Docs, google, past stuff you have coded) as it is about putting code to disc. You cannot keep the contents of every method in every piece of API from every library in the world in your head at once, so why bother trying. Core API and design patterns are what you need to retain, the rest is easily copied / speed re-learned from either your own previous code or (you guessed it) the internet. When you are using 500 different 3rd party libraries and the software you are writing is extremely complex, trying to retain all of it is an exercise in futility anyway. What matters is your ability to get the information you need and use it effectively to solve the problem, nobody gives a shit that the fix came from stack overflow or was copy and pasted from some other part of the system :) Today you are a master of the Java.IO package, tomorrow you might need to be a master of the org.hibernate package where the File API is going to do you no good whatsoever. You know you have a nice bit of code to handle that particular case, so forget about it and move on to the next thing - next time you have to write files to the system, guess the first place you are going to go and look ;) The longer you work and the more problems you solve the more of that core API sticks in your head and it becomes less of a problem. Can you remember the specific annotation configuration for one way many-to-one entity relationships in hibernate? Me either, and I was only working with them yesterday! But every time I need to do something like that I just go back to my old code and relearn it in about 5 minutes. Your old code is your friend. Google is your friend. As a developer you are a problem solver, not a superhero. If the effective way to solve your problem is to google it, why the hell wouldn't you :) Full disclosure: I've been working as a Java Developer for the last 8 and a half years, so I'd say my perspective is accurate. Hope that helps, Liam
  3. It's shared but its scaled differently and certain screens are laid out differently depending on if they are the PC or Android client.
  4. Hey everyone, So the game now pretty much always has 100 - 200 players online at all times… its gotten a bit out of hand ^^. I'm just stopping by to let everyone know the PC client released today so you can now play cross platform with players on their phones which is pretty cool. ![](http://miragerealms.com/devblog/wp-content/uploads/2017/01/Desktop-01.16.2017-17.30.00.14.png) I think I'm the first person to have done this but who knows these days. Anyway, if any of you are interested in the project you can check it out at [www.miragerealms.com](www.miragerealms.com). I hope this community is still alive, it's nice that there's still a Mirage offshoot clinging on. Liam
  5. If you are talking about Mirage Realms it has (is) been (being) built from scratch so you can't sorry >.<
  6. Just a bump, there have been a lot of updates since this was posted so if anyone had a go and thought they'd come check it out a bit later, now would be a good time :) ![](http://miragerealms.com/devblog/wp-content/uploads/2016/09/Screenshot_2016-08-31-21-00-42.png) We have a solid 10 - 60 players online at all times and the community is growing. I am continuing to add new functionality and features every week so come have a go and tell me what you think. Cheers, Liam
  7. Well… shit. I had no idea! It looks like LibGDX has announced they are going to be providing a different solution going forwards so I guess I'll have to investigate that instead! Hopefully it is nicely settled by the time I look to port the game over... With regards to the back button and such, thanks for raising it. I'm well aware of that particular annoyance and will be addressing it soon, there's a tonne of issues with different keyboards as well that is preventing users from chatting. It's early days yet so, lots to add :)
  8. Absolutely. The game will stay android only through the alpha (next few months) then during the beta phase once the engine has stabalised I'll be porting to IOS via robovm. The game also runs natively on pc though I'm hesitant to release the pc client yet as java is so easy to reverse engineer.
  9. Hello everyone! I really hope you don't mind me making a fresh topic, if a mod could perhaps delete the other one if I'm breaking a rule here that would be awesomecakes. So, yesterday I released Mirage Realms on the google play store for Android devices in open alpha. It's largely an engine test at this stage but there's enough content and stuff to do to keep you entertained for about an hour or so, I'd really appreciate it if any of you guys have an Android device if you would take a look for me when you are on the toilet or waiting at the bus stop or what have you :) You can find it at the play store here: [Mirage Realms (google play store)](https://play.google.com/store/apps/details?id=com.foxcake.mirage.android) I'm totally open to any and all feedback I can get my hands on, and am actively working on this every day. I quit my day job a few months ago to go full time on this for a while so progress has sped up by a significant orderof magnitude! To give a sort of overview of what exactly the game is and what's changed since my last post, I'm going to copy my [websites](http://www.miragerealms.com) latest news post below: **Overview of major changes** ![](http://miragerealms.com/devblog/wp-content/uploads/2016/08/charselect.png) _The user interface has been totally redesigned!_ Well, to tell you the truth, so much has been added since my last news post it's a bit of a fools errand at this stage going over it all. Looking at when I last posted, I'll try and scan over some of the larger things that have changed: * There are now 3 classes, Knight, Mage and Ranger - each use a different weapon and skill * Items are now a thing, items can be stackable * Full loot and inventory system. Monsters drop loot bags that can be opened and taken. Kill monsters, loot stuffs. * Client look and feel redesign to be much friendlier and brighter on mobile devices * Capacity / weight system, Items have a weight and you gain 10 capacity per level * Auto attacks are now tied to weapons, equip a bow to shoot arrows, equip a staff to throw fireballs, etc * Full equipment system, items can modify all player stats when worn * Rewrite of skill system and all combat equations, different stats apply to different types of damage output / defence * The equipment screen now actively compares items from the inventory with the equipped item, displaying the differences * Chat messages now appear over peoples heads * Character creation and selection screens have been redesigned * Vocations now have colours, and their primary damage type is associated with that colour. Cyan for knight, Orange for mage, Pink for ranger * Online list added, chat system revamped * A **lot** of server side improvements, fixes, logging, optimisations, yada yada boring :) * Significantly increased world size, addition of a full set of items for you to loot and equip * You can now destroy Items you no longer want There are all sorts of other bits and bobs that have changed but thats the gist of it. It's weird bullet pointing stuff like this, some of those bullet points took me two weeks to implement, doesn't seem all that impressive in a list. Anyhow, screenshot time. **Inventory** So first things first then, the inventory is here! Rather than restricting players to an arbitrary number of items they can pick up I decided to go with a capacity system. This means each Item has a weight assigned to it, and players have a set capacity they can carry. This capacity increases by 10 every level you gain, so the higher level you are the more stuff you can carry. Simples! Selecting an item displays it's stats and gives you contextual options, at the moment you can only destroy Items but trading and such will come soon. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/08/inventory.png) _Look at my cap, nearly full :O_ **Loot** What use is an inventory with no Items? When a Monster is killed it now rolls for everyone that hit it, and everyone gets their own individual experience and loot bags. You can only see your loot bags so there's no contention there. When you press a loot bag it will present you with the above screen and you can select what you would like to pick up. This screen tells you your current cap usage and adjusts to show you what effect picking up the selected items will have on your inventory! ![](http://miragerealms.com/devblog/wp-content/uploads/2016/08/loot.png) _Sweet, got a new armour piece - thanks mr Troll_ **Equipment** Which brings us neatly to the equipment screen. Once you've looted stuff, you may find yourself wanting to wear it. The equipment screen presents you with your worn items in the section on the left, here you can select a slot to view the stats of what is currently equipped and also any Items from your inventory that you can replace it with. Selecting an Item in the inventory section will show you a comparison tooltip at the bottom showing you the effect equipping it will have on your stats, as well as any contextual actions. Equip is the only contextual action here at this stage so it's nice and simple. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/08/equipment.png) _My precious_ **Communication** The chat screen has also seen some upgrades, it now provides you with a list of everyone online. This list is sorted alphabetically and peoples names are coloured according to their class so you can tell at a glance who is a Mage and what have you. When you say something, if anyone is stood around you they will see your message appear above your characters head for 5 seconds so you can get peoples attention in the game world if you want to talk to them! ![](http://miragerealms.com/devblog/wp-content/uploads/2016/08/chat.png) _Me attempting to communicate with one of our very first players ^^_ **Stats** Finally the stats screen has seen a bunch of work. The stats are now coloured according to the class they are primarily intended for, and behind the scenes over on the server side a lot of work has gone into the equations that decide how these stats rise and what affect they have on your damage and such. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/08/skills.png) _World first level 7 muahaha… is that like less than 1% from magic 15?_ **Look and feel** All of the game screens have had a revamp in an effort to make everything less… gloomy and bland. The character creation process being the first experience people have with the game, I felt it was important it didn't get left too far behind while so much was being added to the engine. It's still super basic, but its looking much nicer than it was in my last news post. In addition, there's now a "remember me" option when you login so you don't even have to see the login screen anymore if you don't want too, the game will take you straight through to character selection. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/08/customisation.png) _Looking good :D_ **So…** That's it for now. The game will be receiving weekly updates deployed to the app store, currently the main focus is on features and engine changes rather than making a big push for content and maps, though I'll try and add some new items, monsters and areas to test play around with each week so continuous testers don't get too bored. Coming next is food and hunger so you can regenerate health and Mana, after that… well, you'll find out when the update hits next friday :) I really hope to see you online and please take the time to let me know what you like / hate about the game so far in the forums, it's super helpful. See you in game!
  10. @'SolidLink': > Mirage Realms and Untitled engine > > Untitled Engine has those features and more > Not sure about Mirage realms > > but none of them came out Just a shout out, Mirage Realms actually went open alpha on the play store yesterday :D
  11. Hello Eclipse, I've posted about this over a year ago when I was starting to put some time into this project and now I've actually quit my job to go full time on it things are progressing much faster. I'd like to raise some awareness where possible, and figured this might be a cool place to do it. My old post contained a lot of outdated screenshots and information and is on page 9 billion by now so I hope the admins don't mind me creating a fresh one. Allow me to apologise in advance for the dodgey in-game text scaling on all of the android screenshots, these were taken on my phone and the aliasing is for it's DPI, on the phone it looks sharp but when screenshotted and blown up to our monitors it looks really crap ¯\_(?)_/¯ **What is Mirage Realms?** ![](http://miragerealms.com/devblog/wp-content/uploads/2015/01/teehee.png) Simply put, it's a 2D ORPG in the spirit of games such as Tibia and to a lesser extent World of Warcraft, but done in an extremely _retro_ way targeting primarily the mobile phone market (Android initially), but also running with a client natively on PC (windows, OSX, and linux are supported). If you are familiar with Tibia, we have taken their style of auto-combat but are throwing in spells and ability rotations similar to world of warcraft. Dungeons are instanced and procedurally generated from 'jigsaw' pieces of maps. **What does it look like?** Well, the client UI is tailored to the platform so you will get a different experience on the PC to your mobile phone, but at present the mobile client looks like this: ![](http://miragerealms.com/devblog/wp-content/uploads/2016/05/newInterface.png) As you can see despite having worked my ass off on this since forever, there's still a long way to go and the UI still looks very placeholder. I've put in a load of cool stuff lately so players can customise what they look like with different hairstyles, helmets, stuff to wear on their back and such when they create their characters. Looks super basic but it's there. When you hit enemies they bleed, different types of enemies have different types of blood. Dead enemies have bodies, and if they drop loot you see a little bag indicating there are some goodies for you. Distance auto-attacks fire things across the screen, here you can see an arrow at the end of it's flight hitting that troll. There are blood 'splash' animations for successful hits, as well as animations indicating the type of attack that occurred, i.e. sword attacks show slash animations on the target, claw attacks show claw scratches etc~ ![](http://miragerealms.com/devblog/wp-content/uploads/2016/06/customisation.png) Once you are in-game the benefits of this become immediately apparent, everyone likes looking different afterall. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/06/outfits-1.png) Different vocations get different boosts to their stamina (health) and spirit (mana) each time they level, but other skills such as your attack power, defense, or magic ability level up the more you do them. This means if you want to get good at hitting things in the face with a sword, you are going to have to go and hit things in the face with a sword. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/06/stats.png) ![](http://miragerealms.com/devblog/wp-content/uploads/2016/06/distanceAdvance.png) Leveling up your various skills results in classic 'rising over the head' notification so everyone can see how awesome you are (or how much you suck I guess). I'm currently working on implementing the basic inventory, no point having loot if people can't pick the sodding stuff up is there. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/06/inventory.png) And of course, I've been writing dev tools to make implementing content viable as I move forwards. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/06/npcEditor.png) Now, I realise I have just bombarded you with screenshots and not written any long paragraphs about lore and all that jazz, we have a lot of story and progression stuff written down but I find that stuff isn't actually any fun to read about unless you are invested in the world it takes place in - as there is currently no game for you to play to get interested about the lore, I feel banging on about it is a pointless endeavor when all you really want to see is what the game looks and feels like. ![](http://miragerealms.com/devblog/wp-content/uploads/2016/01/bodies3.png) I apologise for the crazy scaling of the images, everything on the android client looks nice on the DPI of my phone but when screenshotted and dragged over to the PC all the little tiny aliasing artifacts become glaringly obvious. There of course is a PC client, if you are wondering what the scaling on that looks like, see the above screenshot. Making the window larger just shows more of the game world rather than stretching everything like on mobiles. You'll notice the text also looks great on it's native DPI. If any of this looks interesting at all you can read all about it over at [**www.miragerealms.com**](http://www.miragerealms.com), if you'd like to help or have any suggestions / questions I'm happy to talk openly about the project. I'm currently living on savings and will be trying to push the game to release by the end of the year. There's a lot to do but I don't think it's an impossible task. Cheers everyone, Liam
  12. DSI XL, r4 sdhc cartridge and a 64gb micro sd card 0=)
  13. Hmm there's a lot of unused space on the right at the bottom due to the small width of the chat widget, this seems wasteful. As for that sync button, that needs to go, what a horrible fix :P
  14. c0ke

    Java workshop

    Great for dependency management and build automation, not so great if you are just trying to get the IDE set up :P
  15. c0ke

    Java workshop

    Hello, **What's this post all about then?** The idea of this thread is you can post bits of Java code that aren't working or you don't understand, ask questions about specific Java API or object oriented principles, or ask for help on how to solve a particular problem using Java. I'll fix it / explain it / help you solve it respectively :) Think of me as an asynchronous debugger. If I fix something for you, I'll also explain how I fixed it and teach you why it was broken. I basically want it to be as easy as possible for you guys who are working with Java to learn and progress, I have the free time so why not. Don't worry if you are using some third party libraries either, I'll figure it out. **I want to learn Java but I don't know where to start** No worries, head over here, tick the box and download the JDK for your OS. Java runs in a virtual machine, or VM, often referred to as the JVM (java virtual machine). What this means is when you write code, it is compiled into something called bytecode, that the JVM executes. This means as long as there is a JVM for a given platform, java will run on it - the JDK includes all of the core java libraries that we work with when coding as well as tools to hook into and debug code running in the JVM: [http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) Install that. Then, head over here and download yourself the Eclipse IDE, this is the IDE an overwhelming majority of java developers use, there are others, but this one is free and does the job very well. You want the _Eclipse IDE for Java EE developers_, this just means you want bells and whistles: [http://www.eclipse.org/downloads/](http://www.eclipse.org/downloads/) It comes as a zip file and there is no installer, extract the folder somewhere easy to remember like your home directory. You won't be able to pin it to your task bar initially because eclipse, though awesome, is a pain in the arse, you can fix it by following the guidelines here: [http://androblip.huiges.nl/2011/10/11/how-to-get-eclipse-to-pin-to-taskbar-in-windows-7/](http://androblip.huiges.nl/2011/10/11/how-to-get-eclipse-to-pin-to-taskbar-in-windows-7/) Alright, when you first open Eclipse it will ask you which workspace you want to use, just press ok. A workspace is just a folder that all of your projects are saved in, when you are working with large sets of projects for different companies it is useful to have multiple workspaces, we don't have to worry about all of that :) Now we are ready, here are a set of video tutorials that specifically take you through getting started with java in eclipse, they are awesome, just make sure as you watch them you also code what you are seeing, this is how you will learn! It is _so_ important not to just watch / read, you **have** to actually duplicate what you are seeing or you'll never really learn how to work with the language. [http://eclipsetutorial.sourceforge.net/totalbeginner.html](http://eclipsetutorial.sourceforge.net/totalbeginner.html) Once you are a few tutorials in he starts talking about test driven development and stuff like that, at this stage bin those video tutorials and head over to the oracle tutorials, at this point you should know enough about your IDE and very basic java to start working through them: [http://docs.oracle.com/javase/tutorial/](http://docs.oracle.com/javase/tutorial/) Again, as you go through them, code everything that you are shown. Play with the examples, break it, fix it, etc. You'll learn faster than you think. **Alright, I don't understand some aspect of all this crap you just told me** Lucky you are in a thread where you can ask questions about exactly this sort of thing then aren't you ;) Best of luck chaps, Liam
  16. What does 'sync' mean at the top?
  17. Hey guys I'm very sorry for the delay in response here, I fell quite ill shortly after posting this thread and haven't been well enough to get onto a computer since >.< > I'm trying to make a basic Space invaders with logic game in Java after staying with VB6 for the last two years and I'm so unsure of what to do. I don't know if this or that is the best practice. It just really makes me want to write the game with everything static. > > > > But since you un-learnt it do you have any tips on how to move over to an OOP language after sticking with a procedural one? Well the simplest way to start migrating from procedural to object orientation is to start thinking of your objects as bags of information. Let us use your space invaders game as an example here, so the first and most obvious object we want is a space ship. This space ship needs a sprite, velocity, direction, maybe even weight if we want to go that far. So there's our space ship object with it's 4 fields. Next I guess we are going to need some asteroids right, what will these need? Oh… direction, velocity, a sprite... ok, so we know that different objects in our game are going to need the same fields, so this would be a good point to start abstracting. Let's have an entity class that has a sprite, direction, velocity, and let's have a ship class and an asteroid class that extend this class. We can now create as many ships and asteroids as we want, and they have the fields we need them to have without any code replication. We can add specific logic to either as required, and add shared logic to entity. Hell, 'bullet' is going to be an entity too right? It has velocity and a direction. You can see where I'm going with this. This is the super basic intro to object orientation, start thinking of your 'things' as bags of fields. You will likely find your game logic loop is largely procedural in it's execution as that is the nature of what we are doing, what we can apply basic object orientation to here is in managing our 'stuff'. Now, the next thing you are going to realise is as all of our 'stuff' like the ship and the asteroids and the bullets are all entities, we can refer to them generically in our loop. We can put every entity we have into a Collection, say, an ArrayList, then we can just loop over them in our logic code. This means we can write one little method to draw everything in our space invaders game. Say we create a draw method in entity that makes use of our sprite field, we could literally just write this: ``` for (Entity entity : entities) { entity.draw(); } ``` And then we have everything drawing. You might have different entities with different properties, you can go crazy with this. I don't actually work using abstraction and what you would call 'classic' object orientation in my client-side game loop as it actually becomes a real bastard once things start getting complicated. Instead, I use an entity system which breaks free from this hierarchical structure, my entity class has a collection of 'components', each component is just a bag of fields. A component might be something like ScreenPositionComponent or SpriteComponent, I then write system classes that only process entities that posses a certain component or combination of components, say for example a RenderSystem that only iterates over entities that have the SpriteComponent, thus drawing everything that wants to be drawn. This none-standard design pattern is to avoid the issue where your abstraction becomes unmanagable, and it is uniquely 'acceptable' to code this way in the gaming industry. Say you have an entity class, then a screen entity class, then a movingscreenentity class, and a staticscreenentity class that sits beside it for stuff that doesn't move. Say you then create an npc class that extends the movingscreenentity class and it has cool stuff like strength and defense. Say you now want to create a staticscreenentity like for example a trap that does damage based on an arbitrary value… like say... strength. You are then stuffed when it comes to working with these two entities in the same way, you have to either rework your entire abstraction model to facilitate this particular requirement and put that field somewhere higher up the abstraction model so they can share it, which will screw you over as there will be stuff that doesn't need that field but now has to have it and is no longer a pure object or you duplicate the code in the npc class and the trap class and cannot handle these two entities the same way generically at runtime which is a female dog as the calculation for the damage is going to be the same for both entities based on that particular field so we want to treat them the same. If on the other hand your field belongs to a component that you can just add to both entities, problem solved. The interesting thing here is this way of handling entities and components is the _**wrong**_ way to code as a general rule and only becomes extremely useful when writing games, there is a great article somewhere from a blizzard employee talking about how they pioneered this approach for world of warcraft and sort of made it clear to the industry that 'actually, it's ok to code this way and it solves all our problems when working with entities', I can't remember where I read it but it had a big effect on how I write my entity logic in my game, my previous effort used abstraction as you would expect it to being written by a commercial java developer and it was a nightmare once stuff started getting complicated. But… I may have gone off course here a bit and started rambling. Object orientation != entity system stuffs, there's a word beginning with c _(EDIT: Composition)_ that actually describes coding in this way (having objects have genericised collections of the components that construct them) but I can't for the bloody life of me remember what it is xD Basically unless you are developing the in-game logic for a game you will be murdered for working in this way. How would we apply this to your space invaders example? Well, you'd have entity which is just an object that has a list of component objects, then you would have a position component, a direction component, a velocity component, and a sprite component and add these to your entity instance - we now have a ship. We could create a ship class that extends entity that takes these components in on it's constructor to make life easy for ourselves. You get the idea ^^ I think I may have ventured slightly off of the topic here, I'm still not well so thinking coherently is quite hard xD Did any of this make any sense / help with your question? > For a serious question, what are you working on at the moment? Why Java? > > > > I know you said where the money is but you can make a good amount in any language. I could see the cool new stuff for it for sure. But is that the only reason? What do you use it for in your day to day job? I'm currently working on writing the framework for a new set of applications our business is looking to write in GWT over the next 2-3 years. I'm a software architect so I'm the dude that writes the framework that the other developers plug into so they can then write applications that all work in the same way and have a coherent look and feel. Think how google's framework works, everything ties together neatly, you have one login screen that facilitates all of the google services etc - I'm basically writing that. Basically I am primarily a GWT developer at the moment, this allows us to write web applications entirely using java nomenclature and large parts of the languages API then deploy it using a javascript cross compiler that google wrote. Speaking broadly, I've worked with java so long now I'm an expert in this language's fundamentals and nuances and it just sorta makes sense to keep using it when looking for new work. There's a lot of API you can plug into with Java that I am comfortable with too, Sencha GXT, GWT, Hibernate, Guice, Hazelcast, lots of frameworks that I am used to working with in Java, I guess it's less being a java developer that makes me valuable and more my knowledge of certain design patterns and third party API, having good knowledge of GWT RPC and having worked extensively using the command and model view presenter patterns alongside Sencha GXT with a Hibernate and Hazelcast back end is a valuable combination in our industry right now, which means muggins here gets to ask for lots of money xD Liam _Edit: Remembered the word 'composition'_
  18. Hello! Sorry it's been so long I fell ill in RL and haven't been out of bed / at a PC for some time :/ I have no plans to release this open source, at best this will be a commercial venture, at worst it'll be a hobby :)
  19. Struth… here goes ^^ > Java is the language I'm learning now (it's my first one). I haven't gone off to college yet for it but I plan on majoring in computer science. :D Anyway my question is, how long did it take for you to get to the point where you were pretty fluent in the language? Such as you knew the majority of the concepts and were able to easily write program/games with it. That's cool, you can't go wrong with a Computer Science degree at the moment :D Well there's different layers to learning the language, you've got the nomenclature (the syntax) which is pretty straight forward, you've got the design patterns which imo is where the skill is and you'll be learning every time you have a problem to solve, and then you have the core API which seems to expand with every release xD I'd say it took me about a year before I could plod through stuff without needing any help, maybe 2 or 3 years before I started getting really into the architecture of writing frameworks, and all 6 years learning how to approach problems efficiently. The cool (and sometimes daunting) thing about working as a developer is you work with a lot of technology, our product where I work now was a deployable desktop app written using swing, we did some stuff using JavaFX when that started gaining traction, now it's a GWT product that runs in the browser. On any given day I can be writing swing, javafx, gwt, dealing with hibernate, whatever we need really, it keeps you on your toes at least. I think it's only the last couple of years where I've got to a stage where no problem is too big for me to attack by myself, after you reach a certain point in your career you become more of a professional speed learner than anything else! With regards to writing games, the hardest thing for me is figuring out what is 'fun'… it used to be so obvious... at some point I've became an adult and forgotten what that means >.< If you get stuck on anything Java related let me know and I'll help you out :) > If we're doing an AMA would you rather fight 1 java sized duck or 100 duck sized javas? Definitely 100 duck sized javas > Nice to meet you Liam. do you do any freelance work? I used to do a little bit here and there when money was tight, work requires so much of my brain power these days when I get home I'm pretty much drooling and licking my elbows so I'm not really in a position to do that right now >.< > Hey Liam! > > > > Welcome to the forum! ^_^ > > I've been programming for about four years now, and I've learned several languages along the way. What got you into programming in the first place, and what was your initial method of learning? What programming languages did you learn first, and which ones did you find easiest to start learning with? I find that people who don't have a strong inclination to program, but still interested in learning, get really overwhelmed with getting gritty with code. Having to worry about a complicated IDE and having to deal with various lines of code and files to create/configure to make a program run can be downputting to someone starting out. What programming language and IDE would you personally recommend? Optimization aside. What got me into programming? The Mirage Source! My initial method of 'learning' was ripping off code tutorials from the MS forums and feeling like a boss when it worked haha. Well, I ended up picking up quite a lot of Visual Basic over those initial years which I really wish I hadn't… learning to code procedurally made switching to Object Oriented methods really, really hard. If any of you reading this are just starting out coding, heed my warning, stay away from procedural languages! Unlearning is really, friggin hard! I think the first real language I have gotten to grips with is Java, and I've stuck with it because it's a) where the money is and B) it seems every 6 months we can do cool new stuff with it. It wasn't up until very recently with the success of Minecraft that nobody would ever consider trying to write a game using Java, frameworks like Lwjgl and LibGDX have opened up the language to a whole new set of uses which is pretty sweet. With one language I get to write corporate solutions, games, mobile phone apps, everything, it almost feels like cheating at times. To address your last question, I think the propensity of communities such as this and countless others that have a lot of 'just starting out' coders is to over analyse the pros and cons of a language / implementation. You mention Optimization in your question, the first rule of good design is never prematurely optimize! Worry about writing it elegantly, then if it isn't fast enough, worry about speeding up what you have, never the other way round ;) I think false pressures like this are quite harmful to new developers as they end up spending so much time trying to do something the bestest way ever first time that they never actually get anything done, feeding into your question about everything being a bit overwhelming. Especially when starting out, the best advice I can give is to just write a tonne of utter bum candy that is held together by masking tape and staples, but that works. You'll learn so much by doing everything wrong, that as you go over your code and learn the problem you are trying to solve you'll naturally see ways of doing it better. You can always improve something that sucks! At the moment with my project I am constantly facedesking and refactoring half the code base as I realise more efficient ways to do things, the most elegant design comes from **so much** iteration, the 5 line method that kicks arse may have one day been a 200 line method that sucks balls, it's ok ;) I would recommend downloading the [JDK](http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html), [eclipse IDE](https://eclipse.org/downloads/), and going through the [Oracle Tutorials](http://docs.oracle.com/javase/tutorial/). The most important thing is that you don't just read, write the crappy little bits of code out that they are teaching you, run them yourself. Break them, alter them, play with them. Even if you decide in 3 months time that you hate Java, think how much you will have learned! > Are you Coke from mirage? Yes :) > Same one from the playerworlds forums? Nope :( > For Columbia drug lords? What can I say :P
  20. iOS is an interesting problem, one which I've half ignored half got a solution for… LibGDX's suggested method is to deploy using something called RoboVM, I don't know how great this is though to be honest... if I get to that stage, it might be time to start learning Cocoa Touch ^^
  21. Hello! I'm new around these parts, if we haven't met before my name is Liam Stewart and I've been working as a Java Developer in the UK for about 6 years now. In case you don't know, AMA is reddit speak for ask me anything! After flicking through the forums for a bit I can see there are a lot of people with similar interests in developing a game in this style using a language like Java or C++, which I think is pretty sweet, it's cool to see so much energy and so many projects from so many different people, I didn't even know this place existed. As such, I thought it might be cool to throw a post on here where if any of you have any questions about what it's like to work as a developer, the industry, whatever, you can ask and I'll do my best to give fair and honest answers / advice based on my experience. I'm going out on a limb here and assuming the majority of people here are still in education, if I'm wrong and you are all 45 year old gurus then… well, I guess I look pretty stupid right now ^^ Nice to meet you all :)
  22. Wow thanks for the enthusiastic response chaps, nice to meet you all! Your haxorz will be most welcome Zesh :D I apologise in advance if I am slow to respond to this thread going forwards, time is quite a precious resource and I don't ever seem to have enough of it. I will respond eventually, promise :) You lot have cheered me right up.
  23. Hello world! My name is Liam Stewart and I'm a software developer working in the United Kingdom, I've swung by to firstly introduce myself, secondly shamelessly promote a project of mine, and thirdly help around a bit with any Java related questions the community might have. _Yes, I had to borrow a phone to take this photograph_ ![](http://miragerealms.com/devblog/wp-content/uploads/2015/01/teehee.png) **So what is Mirage Realms?** Mirage Realms is a cross platform online RPG being developed for PC and Android, the idea being users can have a tailored gameplay experience for the device they are on yet share the same world. I find this an exciting concept, and in practise it is pretty awesome. The project has been in the works on and off for about a year now, but in reality the majority of the work has been done in the last 6 months. _Early screenshot of the desktop client_ ![](http://miragerealms.com/devblog/wp-content/uploads/2015/01/readyForTest.png) There are a number of interesting gameplay and design challenges around this concept, first and foremost being supporting this kind of gameplay in a high latency environment. As such, a lot of my time has been spent working on the networking and service handling of different types of requests, how they queue up, how it's distributed and how the client / server handles dropouts and the like. There's been some great computer science problems to solve. _Early screenshot taken on my phone, I suck at scaling images_ ![](http://miragerealms.com/devblog/wp-content/uploads/2015/01/androidGroupShot1.png) **Why tell us about it now?** The project has reached a stage of active testing, last weekend saw the first public 'engine' test which went really well, users on their PCs and phones logged in and ran around like headless chickens. At this stage in development, there are pretty things to show off, and the concept is proven and working, I'm looking for more interest now as testing becomes a much more regular occurance. _Fullscreen screenshot because why not?_ ![](http://miragerealms.com/devblog/wp-content/uploads/2015/01/clientProgress.png) I'm happy to answer any questions on the project and the technology used and hope this rather small introduction and overview looks interesting enough for you to want to learn more. **What is the plan?** As the various underlying systems have reached a stable and cohesive state development speed has increased, especially since November. With this in mind, I am looking to have a deployable alpha at the end of July and be fully released on the android marketplace by Christmas this year. If this project looks exciting and you want to test, have ideas you think might be cool, or perhaps you can draw retro pixel art and would like to help out, I'm all ears. _Obligatory and pointless menu screenshot ;)_ ![](http://miragerealms.com/devblog/wp-content/uploads/2014/12/output_hUwDFo.gif) At the moment with regards to gameplay I am trending towards a sort of cross between Tibia and Harvest Moon, I like the idea of players having farms and I also like the idea of players kicking the crap out of stuff and solving zelda-esque puzzels together in instances. The only real limiting factor here is my free time, and how tired I am at the end of the day. I go to work, code for 8 hours, come home, then have to try and find the energy to continue which is frankly a real challenge. You can follow the project's progress at: **[http://www.miragerealms.com](http://www.miragerealms.com)** I welcome your feedback and questions :) The next test will be happening the second weekend of February, if you want to come and check it out. I especially welcome anyone with uber leet haxorz skills coming and trying their very hardest to violate my server security on these events, on the last test Consty figured out I'd forgotten to implement a method server side and managed to jesus over the water. This is the kind of stuff I really welcome at this stage in development, I want you to come and break my toys ;) _Goddammit_ ![](http://miragerealms.com/devblog/wp-content/uploads/2015/01/constyjesus.png) Cheers, Liam
×
×
  • Create New...